fix: latestplugin always true, add more complex bats tests, update devcontainers and make manifests (#857)
This commit is contained in:
		
							parent
							
								
									0abc758dc3
								
							
						
					
					
						commit
						5ddcf1075d
					
				|  | @ -3,7 +3,7 @@ | ||||||
| { | { | ||||||
| 	"name": "Kubernetes - Minikube-in-Docker", | 	"name": "Kubernetes - Minikube-in-Docker", | ||||||
| 	// Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile | 	// Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile | ||||||
| 	"image": "mcr.microsoft.com/devcontainers/base:bullseye", | 	"image": "mcr.microsoft.com/devcontainers/base:bookworm", | ||||||
| 
 | 
 | ||||||
| 	"features": { | 	"features": { | ||||||
| 		"ghcr.io/devcontainers/features/docker-in-docker:2": { | 		"ghcr.io/devcontainers/features/docker-in-docker:2": { | ||||||
|  |  | ||||||
|  | @ -56,6 +56,5 @@ jobs: | ||||||
|         if: github.ref == 'refs/heads/master' && github.event_name != 'pull_request' |         if: github.ref == 'refs/heads/master' && github.event_name != 'pull_request' | ||||||
|         run: | |         run: | | ||||||
|           git reset --hard |           git reset --hard | ||||||
|           rm bin/sembump |  | ||||||
|           make -C backup/pvc docker-build |           make -C backup/pvc docker-build | ||||||
|           make -C backup/pvc docker-release |           make -C backup/pvc docker-release | ||||||
|  |  | ||||||
							
								
								
									
										1
									
								
								Makefile
								
								
								
								
							
							
						
						
									
										1
									
								
								Makefile
								
								
								
								
							|  | @ -146,6 +146,7 @@ update-lts-version: ## Update the latest lts version | ||||||
| 	sed -i 's|jenkins/jenkins:[0-9]\+.[0-9]\+.[0-9]\+|jenkins/jenkins:$(LATEST_LTS_VERSION)|g' chart/jenkins-operator/values.yaml | 	sed -i 's|jenkins/jenkins:[0-9]\+.[0-9]\+.[0-9]\+|jenkins/jenkins:$(LATEST_LTS_VERSION)|g' chart/jenkins-operator/values.yaml | ||||||
| 	sed -i 's|jenkins/jenkins:[0-9]\+.[0-9]\+.[0-9]\+|jenkins/jenkins:$(LATEST_LTS_VERSION)|g' test/e2e/test_utility.go | 	sed -i 's|jenkins/jenkins:[0-9]\+.[0-9]\+.[0-9]\+|jenkins/jenkins:$(LATEST_LTS_VERSION)|g' test/e2e/test_utility.go | ||||||
| 	sed -i 's|jenkins/jenkins:[0-9]\+.[0-9]\+.[0-9]\+|jenkins/jenkins:$(LATEST_LTS_VERSION)|g' test/helm/helm_test.go | 	sed -i 's|jenkins/jenkins:[0-9]\+.[0-9]\+.[0-9]\+|jenkins/jenkins:$(LATEST_LTS_VERSION)|g' test/helm/helm_test.go | ||||||
|  | 	sed -i 's|jenkins/jenkins:[0-9]\+.[0-9]\+.[0-9]\+|jenkins/jenkins:$(LATEST_LTS_VERSION)|g' pkg/constants/constants.go | ||||||
| 
 | 
 | ||||||
| .PHONY: run | .PHONY: run | ||||||
| run: export WATCH_NAMESPACE = $(NAMESPACE) | run: export WATCH_NAMESPACE = $(NAMESPACE) | ||||||
|  |  | ||||||
|  | @ -373,7 +373,8 @@ type JenkinsMaster struct { | ||||||
| 	// Allow to override jenkins-plugin-cli default behavior
 | 	// Allow to override jenkins-plugin-cli default behavior
 | ||||||
| 	// while downloading the plugin and dependencies
 | 	// while downloading the plugin and dependencies
 | ||||||
| 	// see: https://github.com/jenkinsci/plugin-installation-manager-tool#cli-options
 | 	// see: https://github.com/jenkinsci/plugin-installation-manager-tool#cli-options
 | ||||||
| 	LatestPlugins bool `json:"latestPlugins"` | 	// +optional
 | ||||||
|  | 	LatestPlugins *bool `json:"latestPlugins,omitempty"` | ||||||
| 
 | 
 | ||||||
| 	// DisableCSRFProtection allows you to toggle CSRF Protection on Jenkins
 | 	// DisableCSRFProtection allows you to toggle CSRF Protection on Jenkins
 | ||||||
| 	DisableCSRFProtection bool `json:"disableCSRFProtection"` | 	DisableCSRFProtection bool `json:"disableCSRFProtection"` | ||||||
|  |  | ||||||
|  | @ -23,7 +23,7 @@ package v1alpha2 | ||||||
| 
 | 
 | ||||||
| import ( | import ( | ||||||
| 	corev1 "k8s.io/api/core/v1" | 	corev1 "k8s.io/api/core/v1" | ||||||
| 	rbacv1 "k8s.io/api/rbac/v1" | 	"k8s.io/api/rbac/v1" | ||||||
| 	"k8s.io/apimachinery/pkg/runtime" | 	"k8s.io/apimachinery/pkg/runtime" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
|  | @ -400,7 +400,7 @@ func (in *JenkinsSpec) DeepCopyInto(out *JenkinsSpec) { | ||||||
| 	in.ConfigurationAsCode.DeepCopyInto(&out.ConfigurationAsCode) | 	in.ConfigurationAsCode.DeepCopyInto(&out.ConfigurationAsCode) | ||||||
| 	if in.Roles != nil { | 	if in.Roles != nil { | ||||||
| 		in, out := &in.Roles, &out.Roles | 		in, out := &in.Roles, &out.Roles | ||||||
| 		*out = make([]rbacv1.RoleRef, len(*in)) | 		*out = make([]v1.RoleRef, len(*in)) | ||||||
| 		copy(*out, *in) | 		copy(*out, *in) | ||||||
| 	} | 	} | ||||||
| 	in.ServiceAccount.DeepCopyInto(&out.ServiceAccount) | 	in.ServiceAccount.DeepCopyInto(&out.ServiceAccount) | ||||||
|  |  | ||||||
|  | @ -157,11 +157,11 @@ spec: | ||||||
|                     type: object |                     type: object | ||||||
|                   basePlugins: |                   basePlugins: | ||||||
|                     description: 'BasePlugins contains plugins required by operator |                     description: 'BasePlugins contains plugins required by operator | ||||||
|                       Defaults to : - name: kubernetes version: "1.31.3" - name: |                       Defaults to : - name: configuration-as-code version: "1625.v27444588cc3d" | ||||||
|                       workflow-job version: "1145.v7f2433caa07f" - name: workflow-aggregator version: |                       - name: git version: "5.0.0" - name: job-dsl version: "1.83" | ||||||
|                       "2.6" - name: git version: "4.11.3" - name: job-dsl version: |                       - name: kubernetes version: "3909.v1f2c633e8590" - name: kubernetes-credentials-provider | ||||||
|                       "1.78.1" - name: configuration-as-code version: "1346.ve8cfa_3473c94" - name: |                       version: "1.211.vc236a_f5a_2f3c" - name: workflow-aggregator | ||||||
|                       kubernetes-credentials-provider version: "0.20"' |                       version: "596.v8c21c963d92d" - name: workflow-job version: "1289.vd1c337fd5354"' | ||||||
|                     items: |                     items: | ||||||
|                       description: Plugin defines Jenkins plugin. |                       description: Plugin defines Jenkins plugin. | ||||||
|                       properties: |                       properties: | ||||||
|  | @ -1100,11 +1100,6 @@ spec: | ||||||
|                       - resources |                       - resources | ||||||
|                       type: object |                       type: object | ||||||
|                     type: array |                     type: array | ||||||
|                   latestPlugins: |  | ||||||
|                     description: 'Allow to override jenkins-plugin-cli default behavior |  | ||||||
|                       while downloading the plugin and dependencies, see: |  | ||||||
|                       https://github.com/jenkinsci/plugin-installation-manager-tool#cli-options' |  | ||||||
|                     type: boolean |  | ||||||
|                   disableCSRFProtection: |                   disableCSRFProtection: | ||||||
|                     description: DisableCSRFProtection allows you to toggle CSRF Protection |                     description: DisableCSRFProtection allows you to toggle CSRF Protection | ||||||
|                       on Jenkins |                       on Jenkins | ||||||
|  | @ -1150,6 +1145,10 @@ spec: | ||||||
|                       selectors of replication controllers and services. More info: |                       selectors of replication controllers and services. More info: | ||||||
|                       http://kubernetes.io/docs/user-guide/labels' |                       http://kubernetes.io/docs/user-guide/labels' | ||||||
|                     type: object |                     type: object | ||||||
|  |                   latestPlugins: | ||||||
|  |                     description: 'Allow to override jenkins-plugin-cli default behavior | ||||||
|  |                       while downloading the plugin and dependencies see: https://github.com/jenkinsci/plugin-installation-manager-tool#cli-options' | ||||||
|  |                     type: boolean | ||||||
|                   nodeSelector: |                   nodeSelector: | ||||||
|                     additionalProperties: |                     additionalProperties: | ||||||
|                       type: string |                       type: string | ||||||
|  | @ -3124,8 +3123,10 @@ spec: | ||||||
|                   type: object |                   type: object | ||||||
|                 type: array |                 type: array | ||||||
|               seedJobAgentImage: |               seedJobAgentImage: | ||||||
|  |                 description: SeedJobAgentImage defines the image that will be used | ||||||
|  |                   by the seed job agent. If not defined jenkins/inbound-agent:4.9-1 | ||||||
|  |                   will be used. | ||||||
|                 type: string |                 type: string | ||||||
|                 description: 'SeedJobAgentImage defines the image that will be used by the seed job agent. If not defined jenkins/inbound-agent:4.10-3 will be used.' |  | ||||||
|               seedJobs: |               seedJobs: | ||||||
|                 description: 'SeedJobs defines list of Jenkins Seed Job configurations |                 description: 'SeedJobs defines list of Jenkins Seed Job configurations | ||||||
|                   More info: https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/configuration#configure-seed-jobs-and-pipelines' |                   More info: https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/configuration#configure-seed-jobs-and-pipelines' | ||||||
|  |  | ||||||
|  | @ -157,11 +157,11 @@ spec: | ||||||
|                     type: object |                     type: object | ||||||
|                   basePlugins: |                   basePlugins: | ||||||
|                     description: 'BasePlugins contains plugins required by operator |                     description: 'BasePlugins contains plugins required by operator | ||||||
|                       Defaults to : - name: kubernetes version: "1.31.3" - name: |                       Defaults to : - name: configuration-as-code version: "1625.v27444588cc3d" | ||||||
|                       workflow-job version: "1145.v7f2433caa07f" - name: workflow-aggregator version: |                       - name: git version: "5.0.0" - name: job-dsl version: "1.83" | ||||||
|                       "2.6" - name: git version: "4.11.3" - name: job-dsl version: |                       - name: kubernetes version: "3909.v1f2c633e8590" - name: kubernetes-credentials-provider | ||||||
|                       "1.78.1" - name: configuration-as-code version: "1346.ve8cfa_3473c94" - name: |                       version: "1.211.vc236a_f5a_2f3c" - name: workflow-aggregator | ||||||
|                       kubernetes-credentials-provider version: "0.20"' |                       version: "596.v8c21c963d92d" - name: workflow-job version: "1289.vd1c337fd5354"' | ||||||
|                     items: |                     items: | ||||||
|                       description: Plugin defines Jenkins plugin. |                       description: Plugin defines Jenkins plugin. | ||||||
|                       properties: |                       properties: | ||||||
|  | @ -1100,11 +1100,6 @@ spec: | ||||||
|                       - resources |                       - resources | ||||||
|                       type: object |                       type: object | ||||||
|                     type: array |                     type: array | ||||||
|                   latestPlugins: |  | ||||||
|                     description: 'Allow to override jenkins-plugin-cli default behavior |  | ||||||
|                       while downloading the plugin and dependencies, see: |  | ||||||
|                       https://github.com/jenkinsci/plugin-installation-manager-tool#cli-options' |  | ||||||
|                     type: boolean |  | ||||||
|                   disableCSRFProtection: |                   disableCSRFProtection: | ||||||
|                     description: DisableCSRFProtection allows you to toggle CSRF Protection |                     description: DisableCSRFProtection allows you to toggle CSRF Protection | ||||||
|                       on Jenkins |                       on Jenkins | ||||||
|  | @ -1150,6 +1145,10 @@ spec: | ||||||
|                       selectors of replication controllers and services. More info: |                       selectors of replication controllers and services. More info: | ||||||
|                       http://kubernetes.io/docs/user-guide/labels' |                       http://kubernetes.io/docs/user-guide/labels' | ||||||
|                     type: object |                     type: object | ||||||
|  |                   latestPlugins: | ||||||
|  |                     description: 'Allow to override jenkins-plugin-cli default behavior | ||||||
|  |                       while downloading the plugin and dependencies see: https://github.com/jenkinsci/plugin-installation-manager-tool#cli-options' | ||||||
|  |                     type: boolean | ||||||
|                   nodeSelector: |                   nodeSelector: | ||||||
|                     additionalProperties: |                     additionalProperties: | ||||||
|                       type: string |                       type: string | ||||||
|  | @ -3124,8 +3123,10 @@ spec: | ||||||
|                   type: object |                   type: object | ||||||
|                 type: array |                 type: array | ||||||
|               seedJobAgentImage: |               seedJobAgentImage: | ||||||
|  |                 description: SeedJobAgentImage defines the image that will be used | ||||||
|  |                   by the seed job agent. If not defined jenkins/inbound-agent:4.9-1 | ||||||
|  |                   will be used. | ||||||
|                 type: string |                 type: string | ||||||
|                 description: 'SeedJobAgentImage defines the image that will be used by the seed job agent. If not defined jenkins/inbound-agent:4.10-3 will be used.' |  | ||||||
|               seedJobs: |               seedJobs: | ||||||
|                 description: 'SeedJobs defines list of Jenkins Seed Job configurations |                 description: 'SeedJobs defines list of Jenkins Seed Job configurations | ||||||
|                   More info: https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/configuration#configure-seed-jobs-and-pipelines' |                   More info: https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/configuration#configure-seed-jobs-and-pipelines' | ||||||
|  |  | ||||||
|  | @ -1,9 +1,10 @@ | ||||||
| 
 | 
 | ||||||
| --- | --- | ||||||
| apiVersion: rbac.authorization.k8s.io/v1 | apiVersion: rbac.authorization.k8s.io/v1 | ||||||
| kind: Role | kind: ClusterRole | ||||||
| metadata: | metadata: | ||||||
|   name: jenkins-operator |   creationTimestamp: null | ||||||
|  |   name: manager-role | ||||||
| rules: | rules: | ||||||
| - apiGroups: | - apiGroups: | ||||||
|   - apps |   - apps | ||||||
|  |  | ||||||
|  | @ -68,13 +68,11 @@ func buildConfigMapTypeMeta() metav1.TypeMeta { | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func buildInitBashScript(jenkins *v1alpha2.Jenkins) (*string, error) { | func buildInitBashScript(jenkins *v1alpha2.Jenkins) (*string, error) { | ||||||
| 	defaultlatestPlugin := true |  | ||||||
| 
 |  | ||||||
| 	latestP := jenkins.Spec.Master.LatestPlugins | 	latestP := jenkins.Spec.Master.LatestPlugins | ||||||
| 	if !latestP { | 	if latestP == nil { | ||||||
| 		latestP = defaultlatestPlugin | 		latestP = new(bool) | ||||||
|  | 		*latestP = true | ||||||
| 	} | 	} | ||||||
| 
 |  | ||||||
| 	data := struct { | 	data := struct { | ||||||
| 		JenkinsHomePath          string | 		JenkinsHomePath          string | ||||||
| 		InitConfigurationPath    string | 		InitConfigurationPath    string | ||||||
|  | @ -90,7 +88,7 @@ func buildInitBashScript(jenkins *v1alpha2.Jenkins) (*string, error) { | ||||||
| 		UserPlugins:              jenkins.Spec.Master.Plugins, | 		UserPlugins:              jenkins.Spec.Master.Plugins, | ||||||
| 		InstallPluginsCommand:    installPluginsCommand, | 		InstallPluginsCommand:    installPluginsCommand, | ||||||
| 		JenkinsScriptsVolumePath: JenkinsScriptsVolumePath, | 		JenkinsScriptsVolumePath: JenkinsScriptsVolumePath, | ||||||
| 		LatestPlugins:            latestP, | 		LatestPlugins:            *latestP, | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	output, err := render.Render(initBashTemplate, data) | 	output, err := render.Render(initBashTemplate, data) | ||||||
|  |  | ||||||
|  | @ -8,7 +8,7 @@ const ( | ||||||
| 	// SeedJobSuffix is a suffix added for all seed jobs
 | 	// SeedJobSuffix is a suffix added for all seed jobs
 | ||||||
| 	SeedJobSuffix = "job-dsl-seed" | 	SeedJobSuffix = "job-dsl-seed" | ||||||
| 	// DefaultJenkinsMasterImage is the default Jenkins master docker image
 | 	// DefaultJenkinsMasterImage is the default Jenkins master docker image
 | ||||||
| 	DefaultJenkinsMasterImage = "jenkins/jenkins:2.319.3-lts" | 	DefaultJenkinsMasterImage = "jenkins/jenkins:2.401.1-lts" | ||||||
| 	// DefaultHTTPPortInt32 is the default Jenkins HTTP port
 | 	// DefaultHTTPPortInt32 is the default Jenkins HTTP port
 | ||||||
| 	DefaultHTTPPortInt32 = int32(8080) | 	DefaultHTTPPortInt32 = int32(8080) | ||||||
| 	// DefaultSlavePortInt32 is the default Jenkins port for slaves
 | 	// DefaultSlavePortInt32 is the default Jenkins port for slaves
 | ||||||
|  |  | ||||||
|  | @ -23,6 +23,8 @@ diag() { | ||||||
|     --set jenkins.namespace=${DETIK_CLIENT_NAMESPACE} \ |     --set jenkins.namespace=${DETIK_CLIENT_NAMESPACE} \ | ||||||
|     --set namespace=${DETIK_CLIENT_NAMESPACE} \ |     --set namespace=${DETIK_CLIENT_NAMESPACE} \ | ||||||
|     --set operator.image=${OPERATOR_IMAGE} \ |     --set operator.image=${OPERATOR_IMAGE} \ | ||||||
|  |     --set jenkins.latestPlugins=true \ | ||||||
|  |     --set jenkins.backup.makeBackupBeforePodDeletion=false \ | ||||||
|     chart/jenkins-operator |     chart/jenkins-operator | ||||||
|   assert_success |   assert_success | ||||||
|   assert ${HELM} status default |   assert ${HELM} status default | ||||||
|  | @ -98,6 +100,19 @@ diag() { | ||||||
|   assert_success |   assert_success | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | #bats test_tags=phase:helm | ||||||
|  | @test "1.9 Helm: check Jenkins crd" { | ||||||
|  |   [[ ! -f "chart/jenkins-operator/deploy.tmp" ]] && skip "Jenkins helm chart have not been deployed correctly" | ||||||
|  |   run verify "there is 1 crd named 'jenkins.jenkins.io'" | ||||||
|  |   assert_success | ||||||
|  | } | ||||||
|  | 
 | ||||||
| @test "1.9 Helm: Clean" { | @test "1.9 Helm: Clean" { | ||||||
|  |   run ${HELM} uninstall default | ||||||
|  |   assert_success | ||||||
|  |   # Wait for the complete removal | ||||||
|  |   sleep 30 | ||||||
|  |   run verify "there is 0 pvc named 'jenkins backup'" | ||||||
|  |   assert_success | ||||||
|   rm "chart/jenkins-operator/deploy.tmp" |   rm "chart/jenkins-operator/deploy.tmp" | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -0,0 +1,88 @@ | ||||||
|  | setup() { | ||||||
|  |   load 'test_helper' | ||||||
|  |   _common_setup | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | #bats test_tags=phase:helm | ||||||
|  | @test "2.1 Install helm chart with options" { | ||||||
|  |   run ${HELM} dependency update chart/jenkins-operator | ||||||
|  |   assert_success | ||||||
|  |   run ${KUBECTL} label node jenkins-control-plane batstest=yep | ||||||
|  |   ${HELM} status options && skip "Helm release 'options' already exists" | ||||||
|  |   run ${HELM} install options \ | ||||||
|  |     --set jenkins.namespace=${DETIK_CLIENT_NAMESPACE} \ | ||||||
|  |     --set namespace=${DETIK_CLIENT_NAMESPACE} \ | ||||||
|  |     --set operator.image=${OPERATOR_IMAGE} \ | ||||||
|  |     --set jenkins.latestPlugins=true \ | ||||||
|  |     --set jenkins.nodeSelector.batstest=yep \ | ||||||
|  |     --set jenkins.backup.makeBackupBeforePodDeletion=false \ | ||||||
|  |     chart/jenkins-operator | ||||||
|  |   assert_success | ||||||
|  |   assert ${HELM} status options | ||||||
|  |   touch "chart/jenkins-operator/deploy.tmp" | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | #bats test_tags=phase:helm | ||||||
|  | @test "2.2 Helm: check Jenkins operator pods status" { | ||||||
|  |   [[ ! -f "chart/jenkins-operator/deploy.tmp" ]] && skip "Jenkins helm chart have not been deployed correctly" | ||||||
|  | 
 | ||||||
|  |   run verify "there is 1 deployment named 'options-jenkins-operator'" | ||||||
|  |   assert_success | ||||||
|  | 
 | ||||||
|  |   run verify "there is 1 pod named 'options-jenkins-operator-'" | ||||||
|  |   assert_success | ||||||
|  | 
 | ||||||
|  |   run try "at most 20 times every 10s to get pods named 'options-jenkins-operator-' and verify that '.status.containerStatuses[?(@.name==\"jenkins-operator\")].ready' is 'true'" | ||||||
|  |   assert_success | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | #bats test_tags=phase:helm | ||||||
|  | @test "2.3 Helm: check Jenkins Pod status" { | ||||||
|  |   [[ ! -f "chart/jenkins-operator/deploy.tmp" ]] && skip "Jenkins helm chart have not been deployed correctly" | ||||||
|  | 
 | ||||||
|  |   run try "at most 20 times every 10s to get pods named 'jenkins-jenkins' and verify that '.status.containerStatuses[?(@.name==\"jenkins-master\")].ready' is 'true'" | ||||||
|  |   assert_success | ||||||
|  | 
 | ||||||
|  |   run try "at most 20 times every 5s to get pods named 'jenkins-jenkins' and verify that '.status.containerStatuses[?(@.name==\"jenkins-master\")].ready' is 'true'" | ||||||
|  |   assert_success | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | @test "2.4 check node selector" { | ||||||
|  |   [[ ! -f "chart/jenkins-operator/deploy.tmp" ]] && skip "Jenkins helm chart have not been deployed correctly" | ||||||
|  | 
 | ||||||
|  |   NODENAME=$(${KUBECTL} get pod jenkins-jenkins -o jsonpath={.spec.nodeName}) | ||||||
|  | 
 | ||||||
|  |   run ${KUBECTL} get node -l batstest=yep -o name | ||||||
|  |   assert_success | ||||||
|  |   assert_output "node/$NODENAME" | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | @test "2.5 check jenkins-plugin-cli command" { | ||||||
|  |   [[ ! -f "chart/jenkins-operator/deploy.tmp" ]] && skip "Jenkins helm chart have not been deployed correctly" | ||||||
|  | 
 | ||||||
|  |   run ${KUBECTL} logs -c jenkins-master jenkins-jenkins | ||||||
|  |   assert_success | ||||||
|  |   assert_output --partial 'jenkins-plugin-cli --verbose --latest true -f /var/lib/jenkins/base-plugins.txt' | ||||||
|  |   assert_output --partial 'jenkins-plugin-cli --verbose --latest true -f /var/lib/jenkins/user-plugins.txt' | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | @test "2.7 check backup" { | ||||||
|  |   [[ ! -f "chart/jenkins-operator/deploy.tmp" ]] && skip "Jenkins helm chart have not been deployed correctly" | ||||||
|  |   sleep 120 | ||||||
|  |   run ${KUBECTL} logs -l app.kubernetes.io/name=jenkins-operator --tail 10000 | ||||||
|  |   assert_success | ||||||
|  |   assert_output --partial "Performing backup '1'" | ||||||
|  |   assert_output --partial "Backup completed '1', updating status" | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | @test "2. Helm: Clean" { | ||||||
|  |   skip | ||||||
|  |   [[ ! -f "chart/jenkins-operator/deploy.tmp" ]] && skip "Jenkins helm chart have not been deployed correctly" | ||||||
|  | 
 | ||||||
|  |   run ${HELM} uninstall options | ||||||
|  |   assert_success | ||||||
|  | 
 | ||||||
|  |   rm "chart/jenkins-operator/deploy.tmp" | ||||||
|  | } | ||||||
|  | @ -127,6 +127,7 @@ var _ = Describe("Jenkins Controller with security validator", func() { | ||||||
| 				"--set-string", fmt.Sprintf("jenkins.namespace=%s", namespace.Name), | 				"--set-string", fmt.Sprintf("jenkins.namespace=%s", namespace.Name), | ||||||
| 				"--set-string", fmt.Sprintf("operator.image=%s", *imageName), | 				"--set-string", fmt.Sprintf("operator.image=%s", *imageName), | ||||||
| 				"--set", fmt.Sprintf("webhook.enabled=%t", true), | 				"--set", fmt.Sprintf("webhook.enabled=%t", true), | ||||||
|  | 				"--set", fmt.Sprintf("jenkins.latestPlugins=%t", true), | ||||||
| 				"--set", fmt.Sprintf("jenkins.enabled=%t", false), "--install") | 				"--set", fmt.Sprintf("jenkins.enabled=%t", false), "--install") | ||||||
| 			output, err := cmd.CombinedOutput() | 			output, err := cmd.CombinedOutput() | ||||||
| 			Expect(err).NotTo(HaveOccurred(), string(output)) | 			Expect(err).NotTo(HaveOccurred(), string(output)) | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue