From 834370c2c71aa43bafdf01c9d48bd9e147230a41 Mon Sep 17 00:00:00 2001 From: Jian Zhu Date: Thu, 9 Jan 2025 22:08:52 +0800 Subject: [PATCH] Use e2e images instead of latest (#756) (#196) * Use e2e images instead of latest (#756) Signed-off-by: zhujian * override images in helm chart (#771) Signed-off-by: Zhiwei Yin * use images overrides in operator deploy (#795) Signed-off-by: Zhiwei Yin --------- Signed-off-by: zhujian Signed-off-by: Zhiwei Yin Co-authored-by: Zhiwei Yin --- .../cluster-manager/templates/_helpers.tpl | 51 +++++++++++++++++-- .../templates/cluster_manager.yaml | 8 +-- .../cluster-manager/templates/operator.yaml | 2 +- .../chart/cluster-manager/values.yaml | 10 ++++ .../chart/klusterlet/templates/_helpers.tpl | 31 +++++++++-- .../klusterlet/templates/klusterlet.yaml | 6 +-- .../chart/klusterlet/templates/operator.yaml | 2 +- .../klusterlet/chart/klusterlet/values.yaml | 8 +++ test/e2e-test.mk | 4 +- 9 files changed, 101 insertions(+), 21 deletions(-) diff --git a/deploy/cluster-manager/chart/cluster-manager/templates/_helpers.tpl b/deploy/cluster-manager/chart/cluster-manager/templates/_helpers.tpl index 7644ffc8c..5063d9781 100644 --- a/deploy/cluster-manager/chart/cluster-manager/templates/_helpers.tpl +++ b/deploy/cluster-manager/chart/cluster-manager/templates/_helpers.tpl @@ -13,11 +13,52 @@ -{{/* Define the image tag. */}} -{{- define "imageTag" }} -{{- if .Values.images.tag }} -{{- printf "%s" .Values.images.tag }} +{{- define "registrationImage" }} +{{- if .Values.images.overrides.registrationImage }} +{{- printf "%s" .Values.images.overrides.registrationImage }} +{{- else if .Values.images.tag }} +{{- printf "%s/registration:%s" .Values.images.registry .Values.images.tag }} {{- else }} -{{- printf "%s" .Chart.AppVersion }} +{{- printf "%s/registration:%s" .Values.images.registry .Chart.AppVersion }} +{{- end }} +{{- end }} + +{{- define "workImage" }} +{{- if .Values.images.overrides.workImage }} +{{- printf "%s" .Values.images.overrides.workImage }} +{{- else if .Values.images.tag }} +{{- printf "%s/work:%s" .Values.images.registry .Values.images.tag }} +{{- else }} +{{- printf "%s/work:%s" .Values.images.registry .Chart.AppVersion }} +{{- end }} +{{- end }} + +{{- define "addOnManagerImage" }} +{{- if .Values.images.overrides.addOnManagerImage }} +{{- printf "%s" .Values.images.overrides.addOnManagerImage }} +{{- else if .Values.images.tag }} +{{- printf "%s/addon-manager:%s" .Values.images.registry .Values.images.tag }} +{{- else }} +{{- printf "%s/addon-manager:%s" .Values.images.registry .Chart.AppVersion }} +{{- end }} +{{- end }} + +{{- define "placementImage" }} +{{- if .Values.images.overrides.placementImage }} +{{- printf "%s" .Values.images.overrides.placementImage }} +{{- else if .Values.images.tag }} +{{- printf "%s/placement:%s" .Values.images.registry .Values.images.tag }} +{{- else }} +{{- printf "%s/placement:%s" .Values.images.registry .Chart.AppVersion }} +{{- end }} +{{- end }} + +{{- define "operatorImage" }} +{{- if .Values.images.overrides.operatorImage }} +{{- printf "%s" .Values.images.overrides.operatorImage }} +{{- else if .Values.images.tag }} +{{- printf "%s/registration-operator:%s" .Values.images.registry .Values.images.tag }} +{{- else }} +{{- printf "%s/registration-operator:%s" .Values.images.registry .Chart.AppVersion }} {{- end }} {{- end }} diff --git a/deploy/cluster-manager/chart/cluster-manager/templates/cluster_manager.yaml b/deploy/cluster-manager/chart/cluster-manager/templates/cluster_manager.yaml index 39d96b9be..7f330c977 100644 --- a/deploy/cluster-manager/chart/cluster-manager/templates/cluster_manager.yaml +++ b/deploy/cluster-manager/chart/cluster-manager/templates/cluster_manager.yaml @@ -4,10 +4,10 @@ kind: ClusterManager metadata: name: cluster-manager spec: - registrationImagePullSpec: {{ .Values.images.registry }}/registration:{{ template "imageTag" . }} - workImagePullSpec: {{ .Values.images.registry }}/work:{{ template "imageTag" . }} - placementImagePullSpec: {{ .Values.images.registry }}/placement:{{ template "imageTag" . }} - addOnManagerImagePullSpec: {{ .Values.images.registry }}/addon-manager:{{ template "imageTag" . }} + registrationImagePullSpec: "{{ template "registrationImage" . }}" + workImagePullSpec: "{{ template "workImage" . }}" + placementImagePullSpec: "{{ template "placementImage" . }}" + addOnManagerImagePullSpec: "{{ template "addOnManagerImage" . }}" deployOption: mode: {{ .Values.clusterManager.mode }} {{- with .Values.clusterManager.resourceRequirement }} diff --git a/deploy/cluster-manager/chart/cluster-manager/templates/operator.yaml b/deploy/cluster-manager/chart/cluster-manager/templates/operator.yaml index c360fc18b..5d6e55de9 100644 --- a/deploy/cluster-manager/chart/cluster-manager/templates/operator.yaml +++ b/deploy/cluster-manager/chart/cluster-manager/templates/operator.yaml @@ -32,7 +32,7 @@ spec: serviceAccountName: cluster-manager containers: - name: registration-operator - image: "{{ .Values.images.registry }}/registration-operator:{{ template "imageTag" . }}" + image: "{{ template "operatorImage" . }}" imagePullPolicy: {{ .Values.images.imagePullPolicy }} args: - "/registration-operator" diff --git a/deploy/cluster-manager/chart/cluster-manager/values.yaml b/deploy/cluster-manager/chart/cluster-manager/values.yaml index b4c855503..0a9388420 100644 --- a/deploy/cluster-manager/chart/cluster-manager/values.yaml +++ b/deploy/cluster-manager/chart/cluster-manager/values.yaml @@ -4,6 +4,14 @@ replicaCount: 3 # image configurations for all images used in operator deployment and clusterManager CR. images: + # the overrides can replace the corresponding image if not empty. + overrides: + registrationImage: "" + workImage: "" + placementImage: "" + addOnManagerImage: "" + operatorImage: "" + # registry and tag work on all images, but the image will be replaced by overrides if the image in overrides is not empty. # The registry name must NOT contain a trailing slash. registry: quay.io/open-cluster-management # The image tag is the appVersion by default, can be replaced by this version. @@ -11,6 +19,8 @@ images: imagePullPolicy: IfNotPresent # The image pull secret name is open-cluster-management-image-pull-credentials. # Please set the userName/password or the dockerConfigJson if you use a private image registry. + # The registry will be set in the generated credential if you set userName/password. + # Suggest to use dockerConfigJson if you set overrides here. # The image pull secret is fixed into the serviceAccount, you can also set # `createImageCredentials` to `false` and create the pull secret manually. imageCredentials: diff --git a/deploy/klusterlet/chart/klusterlet/templates/_helpers.tpl b/deploy/klusterlet/chart/klusterlet/templates/_helpers.tpl index d402a8e46..29959e66e 100644 --- a/deploy/klusterlet/chart/klusterlet/templates/_helpers.tpl +++ b/deploy/klusterlet/chart/klusterlet/templates/_helpers.tpl @@ -14,11 +14,32 @@ Create secret to access docker registry {{- end }} {{- end }} -{{/* Define the image tag. */}} -{{- define "imageTag" }} -{{- if .Values.images.tag }} -{{- printf "%s" .Values.images.tag }} +{{- define "registrationImage" }} +{{- if .Values.images.overrides.registrationImage }} +{{- printf "%s" .Values.images.overrides.registrationImage }} +{{- else if .Values.images.tag }} +{{- printf "%s/registration:%s" .Values.images.registry .Values.images.tag }} {{- else }} -{{- printf "%s" .Chart.AppVersion }} +{{- printf "%s/registration:%s" .Values.images.registry .Chart.AppVersion }} +{{- end }} +{{- end }} + +{{- define "workImage" }} +{{- if .Values.images.overrides.workImage }} +{{- printf "%s" .Values.images.overrides.workImage }} +{{- else if .Values.images.tag }} +{{- printf "%s/work:%s" .Values.images.registry .Values.images.tag }} +{{- else }} +{{- printf "%s/work:%s" .Values.images.registry .Chart.AppVersion }} +{{- end }} +{{- end }} + +{{- define "operatorImage" }} +{{- if .Values.images.overrides.operatorImage }} +{{- printf "%s" .Values.images.overrides.operatorImage }} +{{- else if .Values.images.tag }} +{{- printf "%s/registration-operator:%s" .Values.images.registry .Values.images.tag }} +{{- else }} +{{- printf "%s/registration-operator:%s" .Values.images.registry .Chart.AppVersion }} {{- end }} {{- end }} diff --git a/deploy/klusterlet/chart/klusterlet/templates/klusterlet.yaml b/deploy/klusterlet/chart/klusterlet/templates/klusterlet.yaml index 3367be46b..d0b97aa88 100644 --- a/deploy/klusterlet/chart/klusterlet/templates/klusterlet.yaml +++ b/deploy/klusterlet/chart/klusterlet/templates/klusterlet.yaml @@ -10,9 +10,9 @@ metadata: spec: deployOption: mode: {{ .Values.klusterlet.mode | default "Singleton" }} - registrationImagePullSpec: "{{ .Values.images.registry }}/registration:{{ template "imageTag" . }}" - workImagePullSpec: "{{ .Values.images.registry }}/work:{{ template "imageTag" . }}" - imagePullSpec: "{{ .Values.images.registry }}/registration-operator:{{ template "imageTag" . }}" + registrationImagePullSpec: "{{ template "registrationImage" . }}" + workImagePullSpec: "{{ template "workImage" . }}" + imagePullSpec: "{{ template "operatorImage" . }}" clusterName: {{ .Values.klusterlet.clusterName }} {{- if or ( eq .Values.klusterlet.mode "Hosted") (eq .Values.klusterlet.mode "SingletonHosted") }} namespace: "open-cluster-management-{{ .Values.klusterlet.clusterName }}" diff --git a/deploy/klusterlet/chart/klusterlet/templates/operator.yaml b/deploy/klusterlet/chart/klusterlet/templates/operator.yaml index 15b724d9e..6301f4586 100644 --- a/deploy/klusterlet/chart/klusterlet/templates/operator.yaml +++ b/deploy/klusterlet/chart/klusterlet/templates/operator.yaml @@ -35,7 +35,7 @@ spec: {{- toYaml .Values.podSecurityContext | nindent 8 }} containers: - name: klusterlet - image: "{{ .Values.images.registry }}/registration-operator:{{ template "imageTag" . }}" + image: "{{ template "operatorImage" . }}" imagePullPolicy: {{ .Values.images.imagePullPolicy }} args: - "/registration-operator" diff --git a/deploy/klusterlet/chart/klusterlet/values.yaml b/deploy/klusterlet/chart/klusterlet/values.yaml index eb3f368fd..a4dab739b 100644 --- a/deploy/klusterlet/chart/klusterlet/values.yaml +++ b/deploy/klusterlet/chart/klusterlet/values.yaml @@ -3,6 +3,12 @@ replicaCount: 3 # image configurations for all images used in operator deployment and klusterlet CR. images: + # the overrides can replace the corresponding image if not empty. + overrides: + registrationImage: "" + workImage: "" + operatorImage: "" + # registry and tag work on all images, but the image will be replaced by overrides if the image in overrides is not empty. # The registry name must NOT contain a trailing slash. registry: quay.io/open-cluster-management # The image tag is the appVersion by default, can be replaced by this version. @@ -10,6 +16,8 @@ images: imagePullPolicy: IfNotPresent # The image pull secret name is open-cluster-management-image-pull-credentials. # Please set the userName/password or the dockerConfigJson if you use a private image registry. + # The registry will be set in the generated credential if you set userName/password. + # Suggest to use dockerConfigJson if you set overrides here. # The image pull secret is fixed into the serviceAccount, you can also set # `createImageCredentials` to `false` and create the pull secret manually. imageCredentials: diff --git a/test/e2e-test.mk b/test/e2e-test.mk index 2aa460c00..cafbebcc0 100644 --- a/test/e2e-test.mk +++ b/test/e2e-test.mk @@ -21,7 +21,7 @@ hub-kubeconfig: deploy-hub: deploy-hub-helm hub-kubeconfig cluster-ip deploy-hub-helm: ensure-helm - $(HELM) install cluster-manager deploy/cluster-manager/chart/cluster-manager --namespace=open-cluster-management --create-namespace --set images.registry=$(IMAGE_REGISTRY),image.tag=$(IMAGE_TAG) + $(HELM) install cluster-manager deploy/cluster-manager/chart/cluster-manager --namespace=open-cluster-management --create-namespace --set images.overrides.operatorImage=$(OPERATOR_IMAGE_NAME),images.overrides.registrationImage=$(REGISTRATION_IMAGE),images.overrides.workImage=$(WORK_IMAGE),images.overrides.placementImage=$(PLACEMENT_IMAGE),images.overrides.addOnManagerImage=$(ADDON_MANAGER_IMAGE) deploy-hub-operator: ensure-kustomize cp deploy/cluster-manager/config/kustomization.yaml deploy/cluster-manager/config/kustomization.yaml.tmp @@ -56,7 +56,7 @@ bootstrap-secret: $(KUSTOMIZE) build deploy/klusterlet/config/samples/bootstrap | $(KUBECTL) apply -f - deploy-spoke-operator-helm: ensure-helm - $(HELM) install klusterlet deploy/klusterlet/chart/klusterlet --namespace=open-cluster-management --set klusterlet.create=false,images.registry=$(IMAGE_REGISTRY),image.tag=$(IMAGE_TAG) --set-file bootstrapHubKubeConfig=$(HUB_KUBECONFIG) + $(HELM) install klusterlet deploy/klusterlet/chart/klusterlet --namespace=open-cluster-management --set-file bootstrapHubKubeConfig=$(HUB_KUBECONFIG) --set klusterlet.create=false,images.overrides.operatorImage=$(OPERATOR_IMAGE_NAME),images.overrides.registrationImage=$(REGISTRATION_IMAGE),images.overrides.workImage=$(WORK_IMAGE) deploy-spoke-operator: ensure-kustomize cp deploy/klusterlet/config/kustomization.yaml deploy/klusterlet/config/kustomization.yaml.tmp