Add image-pull-policy field for karmada-operator

Signed-off-by: wei-chenglai <qazwsx0939059006@gmail.com>
This commit is contained in:
wei-chenglai 2024-04-23 22:23:23 -04:00
parent 20bb7a706d
commit d78ea384d0
16 changed files with 165 additions and 40 deletions

View File

@ -96,6 +96,11 @@ spec:
are not queryable and should be preserved when modifying are not queryable and should be preserved when modifying
objects. More info: http://kubernetes.io/docs/user-guide/annotations' objects. More info: http://kubernetes.io/docs/user-guide/annotations'
type: object type: object
imagePullPolicy:
description: ImagePullPolicy defines the policy for pulling
the container image. If not specified, it defaults to
IfNotPresent.
type: string
imageRepository: imageRepository:
description: ImageRepository sets the container registry description: ImageRepository sets the container registry
to pull images from. if not set, the ImageRepository to pull images from. if not set, the ImageRepository
@ -571,6 +576,10 @@ spec:
description: 'FeatureGates enabled by the user. More info: description: 'FeatureGates enabled by the user. More info:
https://kubernetes.io/docs/reference/command-line-tools-reference/kube-apiserver/' https://kubernetes.io/docs/reference/command-line-tools-reference/kube-apiserver/'
type: object type: object
imagePullPolicy:
description: ImagePullPolicy defines the policy for pulling
the container image. If not specified, it defaults to IfNotPresent.
type: string
imageRepository: imageRepository:
description: ImageRepository sets the container registry to description: ImageRepository sets the container registry to
pull images from. if not set, the ImageRepository defined pull images from. if not set, the ImageRepository defined
@ -703,6 +712,10 @@ spec:
https://karmada.io/docs/userguide/scheduling/cluster-resources#start-to-use-cluster-resource-models https://karmada.io/docs/userguide/scheduling/cluster-resources#start-to-use-cluster-resource-models
More info: https://github.com/karmada-io/karmada/blob/master/pkg/features/features.go' More info: https://github.com/karmada-io/karmada/blob/master/pkg/features/features.go'
type: object type: object
imagePullPolicy:
description: ImagePullPolicy defines the policy for pulling
the container image. If not specified, it defaults to IfNotPresent.
type: string
imageRepository: imageRepository:
description: ImageRepository sets the container registry to description: ImageRepository sets the container registry to
pull images from. if not set, the ImageRepository defined pull images from. if not set, the ImageRepository defined
@ -832,6 +845,10 @@ spec:
- CustomizedClusterResourceModeling: https://karmada.io/docs/userguide/scheduling/cluster-resources#start-to-use-cluster-resource-models - CustomizedClusterResourceModeling: https://karmada.io/docs/userguide/scheduling/cluster-resources#start-to-use-cluster-resource-models
More info: https://github.com/karmada-io/karmada/blob/master/pkg/features/features.go' More info: https://github.com/karmada-io/karmada/blob/master/pkg/features/features.go'
type: object type: object
imagePullPolicy:
description: ImagePullPolicy defines the policy for pulling
the container image. If not specified, it defaults to IfNotPresent.
type: string
imageRepository: imageRepository:
description: ImageRepository sets the container registry to description: ImageRepository sets the container registry to
pull images from. if not set, the ImageRepository defined pull images from. if not set, the ImageRepository defined
@ -937,6 +954,10 @@ spec:
For supported flags, please see https://karmada.io/docs/reference/components/karmada-descheduler For supported flags, please see https://karmada.io/docs/reference/components/karmada-descheduler
for details." for details."
type: object type: object
imagePullPolicy:
description: ImagePullPolicy defines the policy for pulling
the container image. If not specified, it defaults to IfNotPresent.
type: string
imageRepository: imageRepository:
description: ImageRepository sets the container registry to description: ImageRepository sets the container registry to
pull images from. if not set, the ImageRepository defined pull images from. if not set, the ImageRepository defined
@ -1042,6 +1063,10 @@ spec:
configuration. \n For supported flags, please see https://karmada.io/docs/reference/components/karmada-metrics-adapter configuration. \n For supported flags, please see https://karmada.io/docs/reference/components/karmada-metrics-adapter
for details." for details."
type: object type: object
imagePullPolicy:
description: ImagePullPolicy defines the policy for pulling
the container image. If not specified, it defaults to IfNotPresent.
type: string
imageRepository: imageRepository:
description: ImageRepository sets the container registry to description: ImageRepository sets the container registry to
pull images from. if not set, the ImageRepository defined pull images from. if not set, the ImageRepository defined
@ -1154,6 +1179,10 @@ spec:
https://karmada.io/docs/userguide/scheduling/cluster-resources#start-to-use-cluster-resource-models https://karmada.io/docs/userguide/scheduling/cluster-resources#start-to-use-cluster-resource-models
More info: https://github.com/karmada-io/karmada/blob/master/pkg/features/features.go' More info: https://github.com/karmada-io/karmada/blob/master/pkg/features/features.go'
type: object type: object
imagePullPolicy:
description: ImagePullPolicy defines the policy for pulling
the container image. If not specified, it defaults to IfNotPresent.
type: string
imageRepository: imageRepository:
description: ImageRepository sets the container registry to description: ImageRepository sets the container registry to
pull images from. if not set, the ImageRepository defined pull images from. if not set, the ImageRepository defined
@ -1259,6 +1288,10 @@ spec:
please see https://karmada.io/docs/reference/components/karmada-search please see https://karmada.io/docs/reference/components/karmada-search
for details." for details."
type: object type: object
imagePullPolicy:
description: ImagePullPolicy defines the policy for pulling
the container image. If not specified, it defaults to IfNotPresent.
type: string
imageRepository: imageRepository:
description: ImageRepository sets the container registry to description: ImageRepository sets the container registry to
pull images from. if not set, the ImageRepository defined pull images from. if not set, the ImageRepository defined
@ -1364,6 +1397,10 @@ spec:
please see https://karmada.io/docs/reference/components/karmada-webhook please see https://karmada.io/docs/reference/components/karmada-webhook
for details." for details."
type: object type: object
imagePullPolicy:
description: ImagePullPolicy defines the policy for pulling
the container image. If not specified, it defaults to IfNotPresent.
type: string
imageRepository: imageRepository:
description: ImageRepository sets the container registry to description: ImageRepository sets the container registry to
pull images from. if not set, the ImageRepository defined pull images from. if not set, the ImageRepository defined
@ -1512,6 +1549,10 @@ spec:
description: 'FeatureGates enabled by the user. More info: description: 'FeatureGates enabled by the user. More info:
https://kubernetes.io/docs/reference/command-line-tools-reference/kube-controller-manager/' https://kubernetes.io/docs/reference/command-line-tools-reference/kube-controller-manager/'
type: object type: object
imagePullPolicy:
description: ImagePullPolicy defines the policy for pulling
the container image. If not specified, it defaults to IfNotPresent.
type: string
imageRepository: imageRepository:
description: ImageRepository sets the container registry to description: ImageRepository sets the container registry to
pull images from. if not set, the ImageRepository defined pull images from. if not set, the ImageRepository defined

View File

@ -96,6 +96,11 @@ spec:
are not queryable and should be preserved when modifying are not queryable and should be preserved when modifying
objects. More info: http://kubernetes.io/docs/user-guide/annotations' objects. More info: http://kubernetes.io/docs/user-guide/annotations'
type: object type: object
imagePullPolicy:
description: ImagePullPolicy defines the policy for pulling
the container image. If not specified, it defaults to
IfNotPresent.
type: string
imageRepository: imageRepository:
description: ImageRepository sets the container registry description: ImageRepository sets the container registry
to pull images from. if not set, the ImageRepository to pull images from. if not set, the ImageRepository
@ -571,6 +576,10 @@ spec:
description: 'FeatureGates enabled by the user. More info: description: 'FeatureGates enabled by the user. More info:
https://kubernetes.io/docs/reference/command-line-tools-reference/kube-apiserver/' https://kubernetes.io/docs/reference/command-line-tools-reference/kube-apiserver/'
type: object type: object
imagePullPolicy:
description: ImagePullPolicy defines the policy for pulling
the container image. If not specified, it defaults to IfNotPresent.
type: string
imageRepository: imageRepository:
description: ImageRepository sets the container registry to description: ImageRepository sets the container registry to
pull images from. if not set, the ImageRepository defined pull images from. if not set, the ImageRepository defined
@ -703,6 +712,10 @@ spec:
https://karmada.io/docs/userguide/scheduling/cluster-resources#start-to-use-cluster-resource-models https://karmada.io/docs/userguide/scheduling/cluster-resources#start-to-use-cluster-resource-models
More info: https://github.com/karmada-io/karmada/blob/master/pkg/features/features.go' More info: https://github.com/karmada-io/karmada/blob/master/pkg/features/features.go'
type: object type: object
imagePullPolicy:
description: ImagePullPolicy defines the policy for pulling
the container image. If not specified, it defaults to IfNotPresent.
type: string
imageRepository: imageRepository:
description: ImageRepository sets the container registry to description: ImageRepository sets the container registry to
pull images from. if not set, the ImageRepository defined pull images from. if not set, the ImageRepository defined
@ -832,6 +845,10 @@ spec:
- CustomizedClusterResourceModeling: https://karmada.io/docs/userguide/scheduling/cluster-resources#start-to-use-cluster-resource-models - CustomizedClusterResourceModeling: https://karmada.io/docs/userguide/scheduling/cluster-resources#start-to-use-cluster-resource-models
More info: https://github.com/karmada-io/karmada/blob/master/pkg/features/features.go' More info: https://github.com/karmada-io/karmada/blob/master/pkg/features/features.go'
type: object type: object
imagePullPolicy:
description: ImagePullPolicy defines the policy for pulling
the container image. If not specified, it defaults to IfNotPresent.
type: string
imageRepository: imageRepository:
description: ImageRepository sets the container registry to description: ImageRepository sets the container registry to
pull images from. if not set, the ImageRepository defined pull images from. if not set, the ImageRepository defined
@ -937,6 +954,10 @@ spec:
For supported flags, please see https://karmada.io/docs/reference/components/karmada-descheduler For supported flags, please see https://karmada.io/docs/reference/components/karmada-descheduler
for details." for details."
type: object type: object
imagePullPolicy:
description: ImagePullPolicy defines the policy for pulling
the container image. If not specified, it defaults to IfNotPresent.
type: string
imageRepository: imageRepository:
description: ImageRepository sets the container registry to description: ImageRepository sets the container registry to
pull images from. if not set, the ImageRepository defined pull images from. if not set, the ImageRepository defined
@ -1042,6 +1063,10 @@ spec:
configuration. \n For supported flags, please see https://karmada.io/docs/reference/components/karmada-metrics-adapter configuration. \n For supported flags, please see https://karmada.io/docs/reference/components/karmada-metrics-adapter
for details." for details."
type: object type: object
imagePullPolicy:
description: ImagePullPolicy defines the policy for pulling
the container image. If not specified, it defaults to IfNotPresent.
type: string
imageRepository: imageRepository:
description: ImageRepository sets the container registry to description: ImageRepository sets the container registry to
pull images from. if not set, the ImageRepository defined pull images from. if not set, the ImageRepository defined
@ -1154,6 +1179,10 @@ spec:
https://karmada.io/docs/userguide/scheduling/cluster-resources#start-to-use-cluster-resource-models https://karmada.io/docs/userguide/scheduling/cluster-resources#start-to-use-cluster-resource-models
More info: https://github.com/karmada-io/karmada/blob/master/pkg/features/features.go' More info: https://github.com/karmada-io/karmada/blob/master/pkg/features/features.go'
type: object type: object
imagePullPolicy:
description: ImagePullPolicy defines the policy for pulling
the container image. If not specified, it defaults to IfNotPresent.
type: string
imageRepository: imageRepository:
description: ImageRepository sets the container registry to description: ImageRepository sets the container registry to
pull images from. if not set, the ImageRepository defined pull images from. if not set, the ImageRepository defined
@ -1259,6 +1288,10 @@ spec:
please see https://karmada.io/docs/reference/components/karmada-search please see https://karmada.io/docs/reference/components/karmada-search
for details." for details."
type: object type: object
imagePullPolicy:
description: ImagePullPolicy defines the policy for pulling
the container image. If not specified, it defaults to IfNotPresent.
type: string
imageRepository: imageRepository:
description: ImageRepository sets the container registry to description: ImageRepository sets the container registry to
pull images from. if not set, the ImageRepository defined pull images from. if not set, the ImageRepository defined
@ -1364,6 +1397,10 @@ spec:
please see https://karmada.io/docs/reference/components/karmada-webhook please see https://karmada.io/docs/reference/components/karmada-webhook
for details." for details."
type: object type: object
imagePullPolicy:
description: ImagePullPolicy defines the policy for pulling
the container image. If not specified, it defaults to IfNotPresent.
type: string
imageRepository: imageRepository:
description: ImageRepository sets the container registry to description: ImageRepository sets the container registry to
pull images from. if not set, the ImageRepository defined pull images from. if not set, the ImageRepository defined
@ -1512,6 +1549,10 @@ spec:
description: 'FeatureGates enabled by the user. More info: description: 'FeatureGates enabled by the user. More info:
https://kubernetes.io/docs/reference/command-line-tools-reference/kube-controller-manager/' https://kubernetes.io/docs/reference/command-line-tools-reference/kube-controller-manager/'
type: object type: object
imagePullPolicy:
description: ImagePullPolicy defines the policy for pulling
the container image. If not specified, it defaults to IfNotPresent.
type: string
imageRepository: imageRepository:
description: ImageRepository sets the container registry to description: ImageRepository sets the container registry to
pull images from. if not set, the ImageRepository defined pull images from. if not set, the ImageRepository defined

View File

@ -126,7 +126,9 @@ func setDefaultsEtcd(obj *KarmadaComponents) {
if len(obj.Etcd.Local.Image.ImageTag) == 0 { if len(obj.Etcd.Local.Image.ImageTag) == 0 {
obj.Etcd.Local.Image.ImageTag = constants.EtcdDefaultVersion obj.Etcd.Local.Image.ImageTag = constants.EtcdDefaultVersion
} }
if len(obj.Etcd.Local.ImagePullPolicy) == 0 {
obj.Etcd.Local.ImagePullPolicy = corev1.PullIfNotPresent
}
if obj.Etcd.Local.VolumeData == nil { if obj.Etcd.Local.VolumeData == nil {
obj.Etcd.Local.VolumeData = &VolumeData{} obj.Etcd.Local.VolumeData = &VolumeData{}
} }
@ -148,6 +150,9 @@ func setDefaultsKarmadaAPIServer(obj *KarmadaComponents) {
if len(apiserver.Image.ImageTag) == 0 { if len(apiserver.Image.ImageTag) == 0 {
apiserver.Image.ImageTag = constants.KubeDefaultVersion apiserver.Image.ImageTag = constants.KubeDefaultVersion
} }
if len(apiserver.ImagePullPolicy) == 0 {
apiserver.ImagePullPolicy = corev1.PullIfNotPresent
}
if apiserver.Replicas == nil { if apiserver.Replicas == nil {
apiserver.Replicas = pointer.Int32(1) apiserver.Replicas = pointer.Int32(1)
} }
@ -171,6 +176,9 @@ func setDefaultsKarmadaAggregatedAPIServer(obj *KarmadaComponents) {
if len(aggregated.Image.ImageTag) == 0 { if len(aggregated.Image.ImageTag) == 0 {
aggregated.Image.ImageTag = DefaultKarmadaImageVersion aggregated.Image.ImageTag = DefaultKarmadaImageVersion
} }
if len(aggregated.ImagePullPolicy) == 0 {
aggregated.ImagePullPolicy = corev1.PullIfNotPresent
}
if aggregated.Replicas == nil { if aggregated.Replicas == nil {
aggregated.Replicas = pointer.Int32(1) aggregated.Replicas = pointer.Int32(1)
} }
@ -188,6 +196,9 @@ func setDefaultsKubeControllerManager(obj *KarmadaComponents) {
if len(kubeControllerManager.Image.ImageTag) == 0 { if len(kubeControllerManager.Image.ImageTag) == 0 {
kubeControllerManager.Image.ImageTag = constants.KubeDefaultVersion kubeControllerManager.Image.ImageTag = constants.KubeDefaultVersion
} }
if len(kubeControllerManager.ImagePullPolicy) == 0 {
kubeControllerManager.ImagePullPolicy = corev1.PullIfNotPresent
}
if kubeControllerManager.Replicas == nil { if kubeControllerManager.Replicas == nil {
kubeControllerManager.Replicas = pointer.Int32(1) kubeControllerManager.Replicas = pointer.Int32(1)
} }
@ -205,6 +216,9 @@ func setDefaultsKarmadaControllerManager(obj *KarmadaComponents) {
if len(karmadaControllerManager.Image.ImageTag) == 0 { if len(karmadaControllerManager.Image.ImageTag) == 0 {
karmadaControllerManager.Image.ImageTag = DefaultKarmadaImageVersion karmadaControllerManager.Image.ImageTag = DefaultKarmadaImageVersion
} }
if len(karmadaControllerManager.ImagePullPolicy) == 0 {
karmadaControllerManager.ImagePullPolicy = corev1.PullIfNotPresent
}
if karmadaControllerManager.Replicas == nil { if karmadaControllerManager.Replicas == nil {
karmadaControllerManager.Replicas = pointer.Int32(1) karmadaControllerManager.Replicas = pointer.Int32(1)
} }
@ -222,6 +236,9 @@ func setDefaultsKarmadaScheduler(obj *KarmadaComponents) {
if len(scheduler.Image.ImageTag) == 0 { if len(scheduler.Image.ImageTag) == 0 {
scheduler.Image.ImageTag = DefaultKarmadaImageVersion scheduler.Image.ImageTag = DefaultKarmadaImageVersion
} }
if len(scheduler.ImagePullPolicy) == 0 {
scheduler.ImagePullPolicy = corev1.PullIfNotPresent
}
if scheduler.Replicas == nil { if scheduler.Replicas == nil {
scheduler.Replicas = pointer.Int32(1) scheduler.Replicas = pointer.Int32(1)
} }
@ -239,6 +256,9 @@ func setDefaultsKarmadaWebhook(obj *KarmadaComponents) {
if len(webhook.Image.ImageTag) == 0 { if len(webhook.Image.ImageTag) == 0 {
webhook.Image.ImageTag = DefaultKarmadaImageVersion webhook.Image.ImageTag = DefaultKarmadaImageVersion
} }
if len(webhook.ImagePullPolicy) == 0 {
webhook.ImagePullPolicy = corev1.PullIfNotPresent
}
if webhook.Replicas == nil { if webhook.Replicas == nil {
webhook.Replicas = pointer.Int32(1) webhook.Replicas = pointer.Int32(1)
} }
@ -256,6 +276,9 @@ func setDefaultsKarmadaSearch(obj *KarmadaComponents) {
if len(search.Image.ImageTag) == 0 { if len(search.Image.ImageTag) == 0 {
search.Image.ImageTag = DefaultKarmadaImageVersion search.Image.ImageTag = DefaultKarmadaImageVersion
} }
if len(search.ImagePullPolicy) == 0 {
search.ImagePullPolicy = corev1.PullIfNotPresent
}
if search.Replicas == nil { if search.Replicas == nil {
search.Replicas = pointer.Int32(1) search.Replicas = pointer.Int32(1)
} }
@ -273,6 +296,9 @@ func setDefaultsKarmadaDescheduler(obj *KarmadaComponents) {
if len(descheduler.Image.ImageTag) == 0 { if len(descheduler.Image.ImageTag) == 0 {
descheduler.Image.ImageTag = DefaultKarmadaImageVersion descheduler.Image.ImageTag = DefaultKarmadaImageVersion
} }
if len(descheduler.ImagePullPolicy) == 0 {
descheduler.ImagePullPolicy = corev1.PullIfNotPresent
}
if descheduler.Replicas == nil { if descheduler.Replicas == nil {
descheduler.Replicas = pointer.Int32(1) descheduler.Replicas = pointer.Int32(1)
} }
@ -290,7 +316,9 @@ func setDefaultsKarmadaMetricsAdapter(obj *KarmadaComponents) {
if len(metricsAdapter.Image.ImageTag) == 0 { if len(metricsAdapter.Image.ImageTag) == 0 {
metricsAdapter.Image.ImageTag = DefaultKarmadaImageVersion metricsAdapter.Image.ImageTag = DefaultKarmadaImageVersion
} }
if len(metricsAdapter.ImagePullPolicy) == 0 {
metricsAdapter.ImagePullPolicy = corev1.PullIfNotPresent
}
if metricsAdapter.Replicas == nil { if metricsAdapter.Replicas == nil {
metricsAdapter.Replicas = pointer.Int32(2) metricsAdapter.Replicas = pointer.Int32(2)
} }

View File

@ -524,6 +524,11 @@ type CommonSettings struct {
// Image allows to customize the image used for the component. // Image allows to customize the image used for the component.
Image `json:",inline"` Image `json:",inline"`
// ImagePullPolicy defines the policy for pulling the container image.
// If not specified, it defaults to IfNotPresent.
// +optional
ImagePullPolicy corev1.PullPolicy `json:"imagePullPolicy,omitempty"`
// Number of desired pods. This is a pointer to distinguish between explicit // Number of desired pods. This is a pointer to distinguish between explicit
// zero and not specified. Defaults to 1. // zero and not specified. Defaults to 1.
// +optional // +optional

View File

@ -52,7 +52,7 @@ func EnsureKarmadaAggregatedAPIServer(client clientset.Interface, cfg *operatorv
func installKarmadaAPIServer(client clientset.Interface, cfg *operatorv1alpha1.KarmadaAPIServer, name, namespace string, _ map[string]bool) error { func installKarmadaAPIServer(client clientset.Interface, cfg *operatorv1alpha1.KarmadaAPIServer, name, namespace string, _ map[string]bool) error {
apiserverDeploymentBytes, err := util.ParseTemplate(KarmadaApiserverDeployment, struct { apiserverDeploymentBytes, err := util.ParseTemplate(KarmadaApiserverDeployment, struct {
DeploymentName, Namespace, Image, EtcdClientService string DeploymentName, Namespace, Image, ImagePullPolicy, EtcdClientService string
ServiceSubnet, KarmadaCertsSecret, EtcdCertsSecret string ServiceSubnet, KarmadaCertsSecret, EtcdCertsSecret string
Replicas *int32 Replicas *int32
EtcdListenClientPort int32 EtcdListenClientPort int32
@ -60,6 +60,7 @@ func installKarmadaAPIServer(client clientset.Interface, cfg *operatorv1alpha1.K
DeploymentName: util.KarmadaAPIServerName(name), DeploymentName: util.KarmadaAPIServerName(name),
Namespace: namespace, Namespace: namespace,
Image: cfg.Image.Name(), Image: cfg.Image.Name(),
ImagePullPolicy: string(cfg.ImagePullPolicy),
EtcdClientService: util.KarmadaEtcdClientName(name), EtcdClientService: util.KarmadaEtcdClientName(name),
ServiceSubnet: *cfg.ServiceSubnet, ServiceSubnet: *cfg.ServiceSubnet,
KarmadaCertsSecret: util.KarmadaCertSecretName(name), KarmadaCertsSecret: util.KarmadaCertSecretName(name),
@ -112,7 +113,7 @@ func createKarmadaAPIServerService(client clientset.Interface, cfg *operatorv1al
func installKarmadaAggregatedAPIServer(client clientset.Interface, cfg *operatorv1alpha1.KarmadaAggregatedAPIServer, name, namespace string, featureGates map[string]bool) error { func installKarmadaAggregatedAPIServer(client clientset.Interface, cfg *operatorv1alpha1.KarmadaAggregatedAPIServer, name, namespace string, featureGates map[string]bool) error {
aggregatedAPIServerDeploymentBytes, err := util.ParseTemplate(KarmadaAggregatedAPIServerDeployment, struct { aggregatedAPIServerDeploymentBytes, err := util.ParseTemplate(KarmadaAggregatedAPIServerDeployment, struct {
DeploymentName, Namespace, Image, EtcdClientService string DeploymentName, Namespace, Image, ImagePullPolicy, EtcdClientService string
KubeconfigSecret, KarmadaCertsSecret, EtcdCertsSecret string KubeconfigSecret, KarmadaCertsSecret, EtcdCertsSecret string
Replicas *int32 Replicas *int32
EtcdListenClientPort int32 EtcdListenClientPort int32
@ -120,6 +121,7 @@ func installKarmadaAggregatedAPIServer(client clientset.Interface, cfg *operator
DeploymentName: util.KarmadaAggregatedAPIServerName(name), DeploymentName: util.KarmadaAggregatedAPIServerName(name),
Namespace: namespace, Namespace: namespace,
Image: cfg.Image.Name(), Image: cfg.Image.Name(),
ImagePullPolicy: string(cfg.ImagePullPolicy),
EtcdClientService: util.KarmadaEtcdClientName(name), EtcdClientService: util.KarmadaEtcdClientName(name),
KubeconfigSecret: util.AdminKubeconfigSecretName(name), KubeconfigSecret: util.AdminKubeconfigSecretName(name),
KarmadaCertsSecret: util.KarmadaCertSecretName(name), KarmadaCertsSecret: util.KarmadaCertSecretName(name),

View File

@ -41,7 +41,7 @@ spec:
containers: containers:
- name: kube-apiserver - name: kube-apiserver
image: {{ .Image }} image: {{ .Image }}
imagePullPolicy: IfNotPresent imagePullPolicy: {{ .ImagePullPolicy }}
command: command:
- kube-apiserver - kube-apiserver
- --allow-privileged=true - --allow-privileged=true
@ -173,7 +173,7 @@ spec:
containers: containers:
- name: karmada-aggregated-apiserver - name: karmada-aggregated-apiserver
image: {{ .Image }} image: {{ .Image }}
imagePullPolicy: IfNotPresent imagePullPolicy: {{ .ImagePullPolicy }}
command: command:
- /bin/karmada-aggregated-apiserver - /bin/karmada-aggregated-apiserver
- --kubeconfig=/etc/karmada/kubeconfig - --kubeconfig=/etc/karmada/kubeconfig

View File

@ -84,13 +84,14 @@ func getComponentManifests(name, namespace string, featureGates map[string]bool,
func getKubeControllerManagerManifest(name, namespace string, cfg *operatorv1alpha1.KubeControllerManager) (*appsv1.Deployment, error) { func getKubeControllerManagerManifest(name, namespace string, cfg *operatorv1alpha1.KubeControllerManager) (*appsv1.Deployment, error) {
kubeControllerManagerBytes, err := util.ParseTemplate(KubeControllerManagerDeployment, struct { kubeControllerManagerBytes, err := util.ParseTemplate(KubeControllerManagerDeployment, struct {
DeploymentName, Namespace, Image string DeploymentName, Namespace, Image, ImagePullPolicy string
KarmadaCertsSecret, KubeconfigSecret string KarmadaCertsSecret, KubeconfigSecret string
Replicas *int32 Replicas *int32
}{ }{
DeploymentName: util.KubeControllerManagerName(name), DeploymentName: util.KubeControllerManagerName(name),
Namespace: namespace, Namespace: namespace,
Image: cfg.Image.Name(), Image: cfg.Image.Name(),
ImagePullPolicy: string(cfg.ImagePullPolicy),
KarmadaCertsSecret: util.KarmadaCertSecretName(name), KarmadaCertsSecret: util.KarmadaCertSecretName(name),
KubeconfigSecret: util.AdminKubeconfigSecretName(name), KubeconfigSecret: util.AdminKubeconfigSecretName(name),
Replicas: cfg.Replicas, Replicas: cfg.Replicas,
@ -113,12 +114,13 @@ func getKarmadaControllerManagerManifest(name, namespace string, featureGates ma
karmadaControllerManagerBytes, err := util.ParseTemplate(KamradaControllerManagerDeployment, struct { karmadaControllerManagerBytes, err := util.ParseTemplate(KamradaControllerManagerDeployment, struct {
Replicas *int32 Replicas *int32
DeploymentName, Namespace, SystemNamespace string DeploymentName, Namespace, SystemNamespace string
Image, KubeconfigSecret string Image, ImagePullPolicy, KubeconfigSecret string
}{ }{
DeploymentName: util.KarmadaControllerManagerName(name), DeploymentName: util.KarmadaControllerManagerName(name),
Namespace: namespace, Namespace: namespace,
SystemNamespace: constants.KarmadaSystemNamespace, SystemNamespace: constants.KarmadaSystemNamespace,
Image: cfg.Image.Name(), Image: cfg.Image.Name(),
ImagePullPolicy: string(cfg.ImagePullPolicy),
KubeconfigSecret: util.AdminKubeconfigSecretName(name), KubeconfigSecret: util.AdminKubeconfigSecretName(name),
Replicas: cfg.Replicas, Replicas: cfg.Replicas,
}) })
@ -140,12 +142,13 @@ func getKarmadaSchedulerManifest(name, namespace string, featureGates map[string
karmadaSchedulerBytes, err := util.ParseTemplate(KarmadaSchedulerDeployment, struct { karmadaSchedulerBytes, err := util.ParseTemplate(KarmadaSchedulerDeployment, struct {
Replicas *int32 Replicas *int32
DeploymentName, Namespace, SystemNamespace string DeploymentName, Namespace, SystemNamespace string
Image, KubeconfigSecret string Image, ImagePullPolicy, KubeconfigSecret string
}{ }{
DeploymentName: util.KarmadaSchedulerName(name), DeploymentName: util.KarmadaSchedulerName(name),
Namespace: namespace, Namespace: namespace,
SystemNamespace: constants.KarmadaSystemNamespace, SystemNamespace: constants.KarmadaSystemNamespace,
Image: cfg.Image.Name(), Image: cfg.Image.Name(),
ImagePullPolicy: string(cfg.ImagePullPolicy),
KubeconfigSecret: util.AdminKubeconfigSecretName(name), KubeconfigSecret: util.AdminKubeconfigSecretName(name),
Replicas: cfg.Replicas, Replicas: cfg.Replicas,
}) })
@ -167,12 +170,13 @@ func getKarmadaDeschedulerManifest(name, namespace string, featureGates map[stri
karmadaDeschedulerBytes, err := util.ParseTemplate(KarmadaDeschedulerDeployment, struct { karmadaDeschedulerBytes, err := util.ParseTemplate(KarmadaDeschedulerDeployment, struct {
Replicas *int32 Replicas *int32
DeploymentName, Namespace, SystemNamespace string DeploymentName, Namespace, SystemNamespace string
Image, KubeconfigSecret string Image, ImagePullPolicy, KubeconfigSecret string
}{ }{
DeploymentName: util.KarmadaDeschedulerName(name), DeploymentName: util.KarmadaDeschedulerName(name),
Namespace: namespace, Namespace: namespace,
SystemNamespace: constants.KarmadaSystemNamespace, SystemNamespace: constants.KarmadaSystemNamespace,
Image: cfg.Image.Name(), Image: cfg.Image.Name(),
ImagePullPolicy: string(cfg.ImagePullPolicy),
KubeconfigSecret: util.AdminKubeconfigSecretName(name), KubeconfigSecret: util.AdminKubeconfigSecretName(name),
Replicas: cfg.Replicas, Replicas: cfg.Replicas,
}) })

View File

@ -62,7 +62,7 @@ func installKarmadaEtcd(client clientset.Interface, name, namespace string, cfg
} }
etcdStatefulSetBytes, err := util.ParseTemplate(KarmadaEtcdStatefulSet, struct { etcdStatefulSetBytes, err := util.ParseTemplate(KarmadaEtcdStatefulSet, struct {
StatefulSetName, Namespace, Image, EtcdClientService string StatefulSetName, Namespace, Image, ImagePullPolicy, EtcdClientService string
CertsSecretName, EtcdPeerServiceName string CertsSecretName, EtcdPeerServiceName string
InitialCluster, EtcdDataVolumeName, EtcdCipherSuites string InitialCluster, EtcdDataVolumeName, EtcdCipherSuites string
Replicas, EtcdListenClientPort, EtcdListenPeerPort int32 Replicas, EtcdListenClientPort, EtcdListenPeerPort int32
@ -70,6 +70,7 @@ func installKarmadaEtcd(client clientset.Interface, name, namespace string, cfg
StatefulSetName: util.KarmadaEtcdName(name), StatefulSetName: util.KarmadaEtcdName(name),
Namespace: namespace, Namespace: namespace,
Image: cfg.Image.Name(), Image: cfg.Image.Name(),
ImagePullPolicy: string(cfg.ImagePullPolicy),
EtcdClientService: util.KarmadaEtcdClientName(name), EtcdClientService: util.KarmadaEtcdClientName(name),
CertsSecretName: util.EtcdCertSecretName(name), CertsSecretName: util.EtcdCertSecretName(name),
EtcdPeerServiceName: util.KarmadaEtcdName(name), EtcdPeerServiceName: util.KarmadaEtcdName(name),

View File

@ -45,7 +45,7 @@ spec:
containers: containers:
- name: etcd - name: etcd
image: {{ .Image }} image: {{ .Image }}
imagePullPolicy: IfNotPresent imagePullPolicy: {{ .ImagePullPolicy }}
command: command:
- /usr/local/bin/etcd - /usr/local/bin/etcd
- --name=$(KARMADA_ETCD_NAME) - --name=$(KARMADA_ETCD_NAME)

View File

@ -51,7 +51,7 @@ spec:
containers: containers:
- name: kube-controller-manager - name: kube-controller-manager
image: {{ .Image }} image: {{ .Image }}
imagePullPolicy: IfNotPresent imagePullPolicy: {{ .ImagePullPolicy }}
command: command:
- kube-controller-manager - kube-controller-manager
- --allocate-node-cidrs=true - --allocate-node-cidrs=true
@ -124,7 +124,7 @@ spec:
containers: containers:
- name: karmada-controller-manager - name: karmada-controller-manager
image: {{ .Image }} image: {{ .Image }}
imagePullPolicy: IfNotPresent imagePullPolicy: {{ .ImagePullPolicy }}
command: command:
- /bin/karmada-controller-manager - /bin/karmada-controller-manager
- --kubeconfig=/etc/karmada/kubeconfig - --kubeconfig=/etc/karmada/kubeconfig
@ -180,7 +180,7 @@ spec:
containers: containers:
- name: karmada-scheduler - name: karmada-scheduler
image: {{ .Image }} image: {{ .Image }}
imagePullPolicy: IfNotPresent imagePullPolicy: {{ .ImagePullPolicy }}
command: command:
- /bin/karmada-scheduler - /bin/karmada-scheduler
- --kubeconfig=/etc/karmada/kubeconfig - --kubeconfig=/etc/karmada/kubeconfig
@ -235,7 +235,7 @@ spec:
containers: containers:
- name: karmada-descheduler - name: karmada-descheduler
image: {{ .Image }} image: {{ .Image }}
imagePullPolicy: IfNotPresent imagePullPolicy: {{ .ImagePullPolicy }}
command: command:
- /bin/karmada-descheduler - /bin/karmada-descheduler
- --kubeconfig=/etc/karmada/kubeconfig - --kubeconfig=/etc/karmada/kubeconfig

View File

@ -44,7 +44,7 @@ spec:
containers: containers:
- name: karmada-metrics-adapter - name: karmada-metrics-adapter
image: {{ .Image }} image: {{ .Image }}
imagePullPolicy: IfNotPresent imagePullPolicy: {{ .ImagePullPolicy }}
command: command:
- /bin/karmada-metrics-adapter - /bin/karmada-metrics-adapter
- --kubeconfig=/etc/karmada/kubeconfig - --kubeconfig=/etc/karmada/kubeconfig

View File

@ -42,13 +42,14 @@ func EnsureKarmadaMetricAdapter(client clientset.Interface, cfg *operatorv1alpha
func installKarmadaMetricAdapter(client clientset.Interface, cfg *operatorv1alpha1.KarmadaMetricsAdapter, name, namespace string) error { func installKarmadaMetricAdapter(client clientset.Interface, cfg *operatorv1alpha1.KarmadaMetricsAdapter, name, namespace string) error {
metricAdapterBytes, err := util.ParseTemplate(KarmadaMetricsAdapterDeployment, struct { metricAdapterBytes, err := util.ParseTemplate(KarmadaMetricsAdapterDeployment, struct {
DeploymentName, Namespace, Image string DeploymentName, Namespace, Image, ImagePullPolicy string
KubeconfigSecret, KarmadaCertsSecret string KubeconfigSecret, KarmadaCertsSecret string
Replicas *int32 Replicas *int32
}{ }{
DeploymentName: util.KarmadaMetricsAdapterName(name), DeploymentName: util.KarmadaMetricsAdapterName(name),
Namespace: namespace, Namespace: namespace,
Image: cfg.Image.Name(), Image: cfg.Image.Name(),
ImagePullPolicy: string(cfg.ImagePullPolicy),
Replicas: cfg.Replicas, Replicas: cfg.Replicas,
KubeconfigSecret: util.AdminKubeconfigSecretName(name), KubeconfigSecret: util.AdminKubeconfigSecretName(name),
KarmadaCertsSecret: util.KarmadaCertSecretName(name), KarmadaCertsSecret: util.KarmadaCertSecretName(name),

View File

@ -44,7 +44,7 @@ spec:
containers: containers:
- name: karmada-search - name: karmada-search
image: {{ .Image }} image: {{ .Image }}
imagePullPolicy: IfNotPresent imagePullPolicy: {{ .ImagePullPolicy }}
volumeMounts: volumeMounts:
- name: k8s-certs - name: k8s-certs
mountPath: /etc/karmada/pki mountPath: /etc/karmada/pki

View File

@ -43,7 +43,7 @@ func EnsureKarmadaSearch(client clientset.Interface, cfg *operatorv1alpha1.Karma
func installKarmadaSearch(client clientset.Interface, cfg *operatorv1alpha1.KarmadaSearch, name, namespace string, _ map[string]bool) error { func installKarmadaSearch(client clientset.Interface, cfg *operatorv1alpha1.KarmadaSearch, name, namespace string, _ map[string]bool) error {
searchDeploymentSetBytes, err := util.ParseTemplate(KarmadaSearchDeployment, struct { searchDeploymentSetBytes, err := util.ParseTemplate(KarmadaSearchDeployment, struct {
DeploymentName, Namespace, Image, KarmadaCertsSecret string DeploymentName, Namespace, Image, ImagePullPolicy, KarmadaCertsSecret string
KubeconfigSecret, EtcdClientService string KubeconfigSecret, EtcdClientService string
Replicas *int32 Replicas *int32
EtcdListenClientPort int32 EtcdListenClientPort int32
@ -51,6 +51,7 @@ func installKarmadaSearch(client clientset.Interface, cfg *operatorv1alpha1.Karm
DeploymentName: util.KarmadaSearchName(name), DeploymentName: util.KarmadaSearchName(name),
Namespace: namespace, Namespace: namespace,
Image: cfg.Image.Name(), Image: cfg.Image.Name(),
ImagePullPolicy: string(cfg.ImagePullPolicy),
KarmadaCertsSecret: util.KarmadaCertSecretName(name), KarmadaCertsSecret: util.KarmadaCertSecretName(name),
Replicas: cfg.Replicas, Replicas: cfg.Replicas,
KubeconfigSecret: util.AdminKubeconfigSecretName(name), KubeconfigSecret: util.AdminKubeconfigSecretName(name),

View File

@ -44,7 +44,7 @@ spec:
containers: containers:
- name: karmada-webhook - name: karmada-webhook
image: {{ .Image }} image: {{ .Image }}
imagePullPolicy: IfNotPresent imagePullPolicy: {{ .ImagePullPolicy }}
command: command:
- /bin/karmada-webhook - /bin/karmada-webhook
- --kubeconfig=/etc/karmada/kubeconfig - --kubeconfig=/etc/karmada/kubeconfig

View File

@ -42,13 +42,14 @@ func EnsureKarmadaWebhook(client clientset.Interface, cfg *operatorv1alpha1.Karm
func installKarmadaWebhook(client clientset.Interface, cfg *operatorv1alpha1.KarmadaWebhook, name, namespace string, _ map[string]bool) error { func installKarmadaWebhook(client clientset.Interface, cfg *operatorv1alpha1.KarmadaWebhook, name, namespace string, _ map[string]bool) error {
webhookDeploymentSetBytes, err := util.ParseTemplate(KarmadaWebhookDeployment, struct { webhookDeploymentSetBytes, err := util.ParseTemplate(KarmadaWebhookDeployment, struct {
DeploymentName, Namespace, Image string DeploymentName, Namespace, Image, ImagePullPolicy string
KubeconfigSecret, WebhookCertsSecret string KubeconfigSecret, WebhookCertsSecret string
Replicas *int32 Replicas *int32
}{ }{
DeploymentName: util.KarmadaWebhookName(name), DeploymentName: util.KarmadaWebhookName(name),
Namespace: namespace, Namespace: namespace,
Image: cfg.Image.Name(), Image: cfg.Image.Name(),
ImagePullPolicy: string(cfg.ImagePullPolicy),
Replicas: cfg.Replicas, Replicas: cfg.Replicas,
KubeconfigSecret: util.AdminKubeconfigSecretName(name), KubeconfigSecret: util.AdminKubeconfigSecretName(name),
WebhookCertsSecret: util.WebhookCertSecretName(name), WebhookCertsSecret: util.WebhookCertSecretName(name),