From 803a13f8b9fc6087ac90d85f74c250143b6bb6ed Mon Sep 17 00:00:00 2001 From: Andrej Krejcir Date: Tue, 8 Aug 2023 14:26:53 +0200 Subject: [PATCH] fix: Use the latest image of vm-console-proxy - Updated release script to change vm-console-proxy image tag. - csv-generator uses VM_CONSOLE_PROXY_IMAGE env variable to set the image. Signed-off-by: Andrej Krejcir --- .github/workflows/release-vm-console-proxy.yaml | 1 + config/manager/manager.template.yaml | 1 + hack/csv-generator.go | 14 ++++++++++++++ hack/csv-generator_test.go | 4 ++++ internal/common/environment.go | 1 + internal/operands/vm-console-proxy/defaults.go | 6 ++++++ internal/operands/vm-console-proxy/reconcile.go | 2 +- tests/e2e-test-csv-generator.sh | 7 ++++++- 8 files changed, 34 insertions(+), 2 deletions(-) create mode 100644 internal/operands/vm-console-proxy/defaults.go diff --git a/.github/workflows/release-vm-console-proxy.yaml b/.github/workflows/release-vm-console-proxy.yaml index 41e1bf82d..340bd12ee 100644 --- a/.github/workflows/release-vm-console-proxy.yaml +++ b/.github/workflows/release-vm-console-proxy.yaml @@ -17,6 +17,7 @@ jobs: OUTPUT_FILE=./data/vm-console-proxy-bundle/vm-console-proxy.yaml mkdir -p ./data/vm-console-proxy-bundle curl -L https://github.com/kubevirt/vm-console-proxy/releases/download/${RELEASE_VERSION}/vm-console-proxy.yaml > ${OUTPUT_FILE} + sed -i "s/defaultVmConsoleProxyImageTag = .*$/defaultVmConsoleProxyImageTag = \"${RELEASE_VERSION}\"/" ./internal/operands/vm-console-proxy/defaults.go - name: Create pull request if: ${{ github.event.client_payload.release_version }} != '' diff --git a/config/manager/manager.template.yaml b/config/manager/manager.template.yaml index 2a4ed61ed..72dbb672c 100644 --- a/config/manager/manager.template.yaml +++ b/config/manager/manager.template.yaml @@ -37,6 +37,7 @@ spec: - name: OPERATOR_VERSION - name: TEKTON_TASKS_IMAGE - name: TEKTON_TASKS_DISK_VIRT_IMAGE + - name: VM_CONSOLE_PROXY_IMAGE image: controller:latest name: manager resources: diff --git a/hack/csv-generator.go b/hack/csv-generator.go index 62dad6a21..64da9ef8e 100644 --- a/hack/csv-generator.go +++ b/hack/csv-generator.go @@ -48,6 +48,7 @@ type generatorFlags struct { tektonTasksImage string tektonTasksDiskVirtImage string virtioImage string + vmConsoleProxyImage string } var ( @@ -83,6 +84,7 @@ func init() { rootCmd.Flags().StringVar(&f.tektonTasksImage, "tekton-tasks-image", "", "Link to tekton tasks image") rootCmd.Flags().StringVar(&f.tektonTasksDiskVirtImage, "tekton-tasks-disk-virt-image", "", "Link to tekton tasks disk virt image") rootCmd.Flags().StringVar(&f.virtioImage, "virtio-image", "", "Link to virtio image") + rootCmd.Flags().StringVar(&f.vmConsoleProxyImage, "vm-console-proxy-image", "", "Link to VM console proxy image") rootCmd.Flags().Int32Var(&f.webhookPort, "webhook-port", 0, "Container port for the admission webhook") rootCmd.Flags().BoolVar(&f.removeCerts, "webhook-remove-certs", false, "Remove the webhook certificate volume and mount") rootCmd.Flags().BoolVar(&f.dumpCRDs, "dump-crds", false, "Dump crds to stdout") @@ -216,6 +218,14 @@ func buildRelatedImages(flags generatorFlags) ([]interface{}, error) { relatedImages = append(relatedImages, relatedImage) } + if flags.vmConsoleProxyImage != "" { + relatedImage, err := buildRelatedImage(flags.vmConsoleProxyImage, "vm-console-proxy") + if err != nil { + return nil, err + } + relatedImages = append(relatedImages, relatedImage) + } + return relatedImages, nil } @@ -271,6 +281,10 @@ func updateContainerEnvVars(flags generatorFlags, container v1.Container) []v1.E if flags.virtioImage != "" { envVariable.Value = flags.virtioImage } + case common.VmConsoleProxyImageKey: + if flags.vmConsoleProxyImage != "" { + envVariable.Value = flags.vmConsoleProxyImage + } } updatedVariables = append(updatedVariables, envVariable) diff --git a/hack/csv-generator_test.go b/hack/csv-generator_test.go index 1afb0d110..3e81c6f2e 100644 --- a/hack/csv-generator_test.go +++ b/hack/csv-generator_test.go @@ -27,6 +27,7 @@ var _ = Describe("csv generator", func() { tektonTasksImage: "testTektonTasksImage", tektonTasksDiskVirtImage: "testTektonTasksDiskVirtImage", virtioImage: "testVirtioImage", + vmConsoleProxyImage: "testVmConsoleProxyImage", } envValues := []v1.EnvVar{ {Name: common.TemplateValidatorImageKey}, @@ -90,6 +91,9 @@ var _ = Describe("csv generator", func() { if envVariable.Name == common.VirtioImageKey { Expect(envVariable.Value).To(Equal(flags.virtioImage)) } + if envVariable.Name == common.VmConsoleProxyImageKey { + Expect(envVariable.Value).To(Equal(flags.vmConsoleProxyImage)) + } } break } diff --git a/internal/common/environment.go b/internal/common/environment.go index 6dcf5c460..cea95d45f 100644 --- a/internal/common/environment.go +++ b/internal/common/environment.go @@ -21,6 +21,7 @@ const ( TektonTasksImageKey = "TEKTON_TASKS_IMAGE" TektonTasksDiskVirtImageKey = "TEKTON_TASKS_DISK_VIRT_IMAGE" VirtioImageKey = "VIRTIO_IMG" + VmConsoleProxyImageKey = "VM_CONSOLE_PROXY_IMAGE" DefaultTektonTasksIMG = "quay.io/kubevirt/tekton-tasks:" + TektonTasksVersion DeafultTektonTasksDiskVirtIMG = "quay.io/kubevirt/tekton-tasks-disk-virt:" + TektonTasksVersion diff --git a/internal/operands/vm-console-proxy/defaults.go b/internal/operands/vm-console-proxy/defaults.go new file mode 100644 index 000000000..2ab6bc957 --- /dev/null +++ b/internal/operands/vm-console-proxy/defaults.go @@ -0,0 +1,6 @@ +package vm_console_proxy + +const ( + defaultVmConsoleProxyImageTag = "v0.3.0" + defaultVmConsoleProxyImage = "quay.io/kubevirt/vm-console-proxy:" + defaultVmConsoleProxyImageTag +) diff --git a/internal/operands/vm-console-proxy/reconcile.go b/internal/operands/vm-console-proxy/reconcile.go index 75e88c0e6..07f7a6ffb 100644 --- a/internal/operands/vm-console-proxy/reconcile.go +++ b/internal/operands/vm-console-proxy/reconcile.go @@ -261,7 +261,7 @@ func getVmConsoleProxyNamespace(request *common.Request) string { } func getVmConsoleProxyImage() string { - return common.EnvOrDefault("VM_CONSOLE_PROXY_IMAGE", "quay.io/kubevirt/vm-console-proxy:v0.1.0") + return common.EnvOrDefault(common.VmConsoleProxyImageKey, defaultVmConsoleProxyImage) } func findResourcesUsingLabels[PtrL interface { diff --git a/tests/e2e-test-csv-generator.sh b/tests/e2e-test-csv-generator.sh index d3afeccfa..921fd19fd 100755 --- a/tests/e2e-test-csv-generator.sh +++ b/tests/e2e-test-csv-generator.sh @@ -1,7 +1,7 @@ #!/bin/bash olm_output=$(podman run --rm --entrypoint=/csv-generator quay.io/kubevirt/ssp-operator:latest \ ---csv-version=9.9.9 --namespace=namespace-test --operator-version=8.8.8 --validator-image=validator-test --dump-crds \ +--csv-version=9.9.9 --namespace=namespace-test --operator-version=8.8.8 --validator-image=validator-test --vm-console-proxy-image=proxy-test --dump-crds \ --operator-image=operator-test) if [ $(echo $olm_output | grep 'ClusterServiceVersion' | wc -l) -eq 0 ]; then @@ -19,6 +19,11 @@ if [ $(echo $olm_output | grep 'value: validator-test'| wc -l) -eq 0 ]; then exit 1 fi +if [ $(echo $olm_output | grep 'value: proxy-test'| wc -l) -eq 0 ]; then + echo "output doesn't contain correct proxy-image" + exit 1 +fi + if [ $(echo $olm_output | grep 'value: 8.8.8'| wc -l) -eq 0 ]; then echo "output doesn't contain correct operator-version" exit 1