From 24eac18564790c3992418fdb3f8e9bebbd2f6de2 Mon Sep 17 00:00:00 2001 From: Luigi Operoso <40476330+brokenpip3@users.noreply.github.com> Date: Mon, 8 Jul 2024 08:56:23 +0200 Subject: [PATCH] fix(test): helm/bats + chore(blog): add 0.8.1 release note (#1033) --- Makefile | 2 +- test/bats/1-deploy.bats | 8 ++-- test/bats/2-deploy-with-more-options.bats | 8 ++-- test/bats/3-deploy-with-webhook.bats | 12 ++++-- test/helm/helm_test.go | 4 +- website/content/en/blog/news/release-0-8-1.md | 38 +++++++++++++++++-- 6 files changed, 58 insertions(+), 14 deletions(-) diff --git a/Makefile b/Makefile index e4ef73b29..5983c05f9 100644 --- a/Makefile +++ b/Makefile @@ -134,7 +134,7 @@ helm-release-latest: helm .PHONY: helm-e2e IMAGE_NAME := quay.io/$(QUAY_ORGANIZATION)/$(QUAY_REGISTRY):$(GITCOMMIT)-amd64 -helm-e2e: helm container-runtime-build-amd64 ## Runs helm e2e tests, you can use EXTRA_ARGS +helm-e2e: helm container-runtime-build-amd64 backup-kind-load ## Runs helm e2e tests, you can use EXTRA_ARGS kind load docker-image ${IMAGE_NAME} --name $(KIND_CLUSTER_NAME) @echo "+ $@" RUNNING_TESTS=1 go test -parallel=1 "./test/helm/" -ginkgo.v -tags "$(BUILDTAGS) cgo" -v -timeout 60m -run "$(E2E_TEST_SELECTOR)" -image-name=$(IMAGE_NAME) $(E2E_TEST_ARGS) diff --git a/test/bats/1-deploy.bats b/test/bats/1-deploy.bats index ea5e327e6..c425ac212 100644 --- a/test/bats/1-deploy.bats +++ b/test/bats/1-deploy.bats @@ -34,6 +34,7 @@ diag() { --set operator.image=${OPERATOR_IMAGE} \ --set jenkins.latestPlugins=true \ --set jenkins.image="jenkins/jenkins:2.452.2-lts" \ + --set jenkins.imagePullPolicy="IfNotPresent" \ --set jenkins.backup.makeBackupBeforePodDeletion=false \ --set jenkins.backup.image=quay.io/jenkins-kubernetes-operator/backup-pvc:e2e-test \ --set jenkins.seedJobs[0].id=seed-job \ @@ -154,9 +155,10 @@ diag() { --set operator.image=${OPERATOR_IMAGE} \ --set jenkins.latestPlugins=true \ --set jenkins.image="jenkins/jenkins:2.452.2-lts" \ + --set jenkins.imagePullPolicy="IfNotPresent" \ --set jenkins.backup.makeBackupBeforePodDeletion=false \ --set jenkins.backup.image=quay.io/jenkins-kubernetes-operator/backup-pvc:e2e-test \ - chart/jenkins-operator + chart/jenkins-operator --wait assert_success assert ${HELM} status default } @@ -199,10 +201,10 @@ diag() { #bats test_tags=phase:helm,scenario:vanilla @test "1.15 Helm: clean" { - run ${HELM} uninstall default + run ${HELM} uninstall default --wait assert_success # Wait for the complete removal - sleep 30 + sleep 10 run verify "there is 0 pvc named 'jenkins backup'" assert_success diff --git a/test/bats/2-deploy-with-more-options.bats b/test/bats/2-deploy-with-more-options.bats index e3a99fda0..d69cb260a 100644 --- a/test/bats/2-deploy-with-more-options.bats +++ b/test/bats/2-deploy-with-more-options.bats @@ -30,6 +30,7 @@ setup() { --set jenkins.latestPlugins=true \ --set jenkins.nodeSelector.batstest=yep \ --set jenkins.image="jenkins/jenkins:2.452.2-lts" \ + --set jenkins.imagePullPolicy="IfNotPresent" \ --set jenkins.backup.makeBackupBeforePodDeletion=false \ --set jenkins.backup.image=quay.io/jenkins-kubernetes-operator/backup-pvc:e2e-test \ jenkins-operator/jenkins-operator --version=$(get_latest_chart_version) @@ -103,9 +104,10 @@ setup() { --set jenkins.latestPlugins=true \ --set jenkins.nodeSelector.batstest=yep \ --set jenkins.image="jenkins/jenkins:2.452.2-lts" \ + --set jenkins.imagePullPolicy="IfNotPresent" \ --set jenkins.backup.makeBackupBeforePodDeletion=false \ --set jenkins.backup.image=quay.io/jenkins-kubernetes-operator/backup-pvc:e2e-test \ - chart/jenkins-operator + chart/jenkins-operator --wait assert_success assert ${HELM} status options } @@ -160,9 +162,9 @@ setup() { @test "2.14 Helm: clean" { [[ ! -f "chart/jenkins-operator/deploy.tmp" ]] && skip "Jenkins helm chart have not been deployed correctly" - run ${HELM} uninstall options + run ${HELM} uninstall options --wait assert_success - sleep 30 + sleep 10 run verify "there is 0 pvc named 'jenkins backup'" assert_success diff --git a/test/bats/3-deploy-with-webhook.bats b/test/bats/3-deploy-with-webhook.bats index d2ea751cf..7c861aa0c 100644 --- a/test/bats/3-deploy-with-webhook.bats +++ b/test/bats/3-deploy-with-webhook.bats @@ -30,9 +30,12 @@ setup() { --set operator.image=${OPERATOR_IMAGE} \ --set jenkins.latestPlugins=true \ --set jenkins.image="jenkins/jenkins:2.452.2-lts" \ + --set jenkins.imagePullPolicy="IfNotPresent" \ --set jenkins.backup.makeBackupBeforePodDeletion=true \ --set jenkins.backup.image=quay.io/jenkins-kubernetes-operator/backup-pvc:e2e-test \ --set webhook.enabled=true \ + --set cert-manager.enabled=true \ + --set cert-manager.startupapicheck.enabled=true \ jenkins-operator/jenkins-operator --version=$(get_latest_chart_version) assert_success assert ${HELM} status webhook @@ -88,10 +91,13 @@ setup() { --set operator.image=${OPERATOR_IMAGE} \ --set jenkins.latestPlugins=true \ --set jenkins.image="jenkins/jenkins:2.452.2-lts" \ + --set jenkins.imagePullPolicy="IfNotPresent" \ --set jenkins.backup.makeBackupBeforePodDeletion=true \ --set jenkins.backup.image=quay.io/jenkins-kubernetes-operator/backup-pvc:e2e-test \ --set webhook.enabled=true \ - chart/jenkins-operator + --set cert-manager.enabled=true \ + --set cert-manager.startupapicheck.enabled=true \ + chart/jenkins-operator --wait assert_success assert ${HELM} status webhook sleep 10 @@ -137,9 +143,9 @@ setup() { @test "3.12 Helm: clean" { [[ ! -f "chart/jenkins-operator/deploy.tmp" ]] && skip "Jenkins helm chart have not been deployed correctly" - run ${HELM} uninstall webhook + run ${HELM} uninstall webhook --wait assert_success - sleep 30 + sleep 20 run verify "there is 0 pvc named 'jenkins backup'" assert_success diff --git a/test/helm/helm_test.go b/test/helm/helm_test.go index f9e922a50..70fe3944f 100644 --- a/test/helm/helm_test.go +++ b/test/helm/helm_test.go @@ -48,7 +48,9 @@ var _ = Describe("Jenkins Controller", func() { cmd := exec.Command("../../bin/helm", "upgrade", "jenkins", "../../chart/jenkins-operator", "--namespace", namespace.Name, "--debug", "--set-string", fmt.Sprintf("jenkins.namespace=%s", namespace.Name), "--set-string", fmt.Sprintf("jenkins.image=%s", "jenkins/jenkins:2.452.2-lts"), - "--set-string", fmt.Sprintf("operator.image=%s", *imageName), "--install") + "--set-string", fmt.Sprintf("operator.image=%s", *imageName), + "--set-string", fmt.Sprintf("backup.image=%s", "quay.io/jenkins-kubernetes-operator/backup-pvc:e2e-test"), + "--set-string", fmt.Sprintf("jenkins.imagePullPolicy=%s", "IfNotPresent"), "--install") output, err := cmd.CombinedOutput() Expect(err).NotTo(HaveOccurred(), string(output)) diff --git a/website/content/en/blog/news/release-0-8-1.md b/website/content/en/blog/news/release-0-8-1.md index 2b15cde96..a3d215c9e 100644 --- a/website/content/en/blog/news/release-0-8-1.md +++ b/website/content/en/blog/news/release-0-8-1.md @@ -1,7 +1,39 @@ --- -title: "Lorem ipsum" -linkTitle: "Temporary title" +title: "v0.8.1" +linkTitle: "v0.8.1" date: 2024-04-07 description: > - TODO: change this + v0.8.1 has been released --- + +# New in this Release + +## Jenkins + +* Updated the base plugins and Jenkins LTS to the latest version. +* Exposed `terminationGracePeriodSeconds` for the Jenkins master. + +## Backup + +* From version `4.1`, the backup temporary directory is created in the backup PVC, so the temporary tar file is moved immediately after the tar process ends. This improves speed and reliability. Size your backup PVC accordingly. See the [documentation](https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/configuring-backup-and-restore/#pvc-storage-size) section `PVC Storage Size`. +* From version `4.1`, each backup component (backup, restore, run) logs everything to stdout/stderr, improving understanding in case of issues and providing a backup and restore timeline. You can have a preview of the logs from the [PR](https://github.com/jenkinsci/kubernetes-operator/pull/1023) description. +* From version `4.1`, a lock file for backup and restore processes is implemented to prevent multiple backups in case of operator crash/restart. See this [section](https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/configuring-backup-and-restore/#Customizing-pvc-backup-behaviour) of the docs. + +If you do not wish to use these new features, you can use the old `v0.2.6` tag. + +## CI / Chart + +* Cert-manager CRDs are no longer shipped by default. +* Improved Ginkgo tests by implementing matrix testing. +* Enhanced BATS tests to cover more scenarios. + + +## Bug Fixes + +* Fix incorrect double restore in the reconciliation loop +* Fixed `configurationAsCode` and `groovyScripts` arrays in the Helm chart. +* Ensured consistent `imagePullPolicy` for the backup container. +* Stopped using deprecated `jnlpUrl` for getting seed agents node secret. +* Fixed the website build CI. + +Thanks to all contributors who made this release possible!