From da59a7a3feaea863c0ce42e807c8e0849523f6ca Mon Sep 17 00:00:00 2001 From: "Benjamin W. Smith" Date: Mon, 26 Feb 2018 15:04:45 -0500 Subject: [PATCH] [spinnaker] Make Jenkins optional (#3626) * Make Jenkins optional Some organizations may not use jenkins. - Adds jenkins.enabled - Load requirements, hooks, and config maps if jenkins enabled Update dependencies bump chart version Actually bump version * Add jenkins.enabled value to stable/spinnaker * Update Jenkins * Update requirements.lock * Use new config override mechanism * Remove Jenkins test from Spinnaker chart --- stable/spinnaker/Chart.yaml | 2 +- stable/spinnaker/requirements.lock | 6 ++-- stable/spinnaker/requirements.yaml | 3 +- ...enkins-config.yaml => _jenkins-config.tpl} | 30 ++++++++++--------- .../templates/configmap/jenkins-jobs.yaml | 4 ++- .../templates/configmap/spinnaker-config.yaml | 2 +- .../templates/configmap/test-config.yaml | 3 -- .../templates/hooks/upload-build-image.yaml | 2 ++ .../templates/hooks/upload-run-pipeline.yaml | 2 ++ .../templates/hooks/upload-run-script.yaml | 2 ++ stable/spinnaker/values.yaml | 1 + 11 files changed, 33 insertions(+), 24 deletions(-) rename stable/spinnaker/templates/configmap/{jenkins-config.yaml => _jenkins-config.tpl} (82%) diff --git a/stable/spinnaker/Chart.yaml b/stable/spinnaker/Chart.yaml index b534aa6bf0..25e38b7861 100644 --- a/stable/spinnaker/Chart.yaml +++ b/stable/spinnaker/Chart.yaml @@ -1,7 +1,7 @@ apiVersion: v1 description: Open source, multi-cloud continuous delivery platform for releasing software changes with high velocity and confidence. name: spinnaker -version: 0.3.13 +version: 0.3.14 appVersion: 1.1.0 home: http://spinnaker.io/ sources: diff --git a/stable/spinnaker/requirements.lock b/stable/spinnaker/requirements.lock index 6c450a00e4..b24590784b 100644 --- a/stable/spinnaker/requirements.lock +++ b/stable/spinnaker/requirements.lock @@ -7,6 +7,6 @@ dependencies: version: 0.4.3 - name: jenkins repository: https://kubernetes-charts.storage.googleapis.com/ - version: 0.11.1 -digest: sha256:8035b2a0deff9dec733c243a02620b6229c909fce48d4136ffb18957d2495752 -generated: 2018-01-09T19:17:57.721455275-06:00 + version: 0.13.3 +digest: sha256:5cdbf5aa7fa2f1fab477b75cbe931bb053e261c4437413af3c8d8a39b119924c +generated: 2018-02-25T13:11:01.017154568-08:00 diff --git a/stable/spinnaker/requirements.yaml b/stable/spinnaker/requirements.yaml index 6ccddae149..6d0346f91c 100644 --- a/stable/spinnaker/requirements.yaml +++ b/stable/spinnaker/requirements.yaml @@ -7,5 +7,6 @@ dependencies: repository: https://kubernetes-charts.storage.googleapis.com/ condition: minio.enabled - name: jenkins - version: 0.11.1 + version: 0.13.3 repository: https://kubernetes-charts.storage.googleapis.com/ + condition: jenkins.enabled diff --git a/stable/spinnaker/templates/configmap/jenkins-config.yaml b/stable/spinnaker/templates/configmap/_jenkins-config.tpl similarity index 82% rename from stable/spinnaker/templates/configmap/jenkins-config.yaml rename to stable/spinnaker/templates/configmap/_jenkins-config.tpl index 1cff70a58c..8793a1f74a 100644 --- a/stable/spinnaker/templates/configmap/jenkins-config.yaml +++ b/stable/spinnaker/templates/configmap/_jenkins-config.tpl @@ -1,9 +1,10 @@ +{{- define "override_config_map" -}} apiVersion: v1 kind: ConfigMap metadata: name: {{.Release.Name}}-jenkins labels: - app: {{ template "fullname" . }} + app: {{ template "jenkins.fullname" . }} data: config.xml: |- @@ -28,10 +29,10 @@ data: kubernetes -{{- if .Values.jenkins.Agent.Enabled }} +{{- if .Values.Agent.Enabled }} jnlp - {{ .Values.jenkins.Agent.Image }}:{{ .Values.jenkins.Agent.ImageTag }} + {{ .Values.Agent.Image }}:{{ .Values.Agent.ImageTag }} false false @@ -41,15 +42,15 @@ data: {{- $local := dict "first" true }} - {{- range $key, $value := .Values.jenkins.Agent.NodeSelector }} + {{- range $key, $value := .Values.Agent.NodeSelector }} {{- if not $local.first }},{{- end }} {{- $key }}={{ $value }} {{- $_ := set $local "first" false }} {{- end }} - {{ .Values.jenkins.Agent.Cpu }} - {{ .Values.jenkins.Agent.Memory }} - {{ .Values.jenkins.Agent.Cpu }} - {{ .Values.jenkins.Agent.Memory }} + {{ .Values.Agent.Cpu }} + {{ .Values.Agent.Memory }} + {{ .Values.Agent.Cpu }} + {{ .Values.Agent.Memory }} /usr/bin/docker @@ -97,24 +98,25 @@ data: mkdir -p /usr/share/jenkins/ref/secrets/; echo "false" > /usr/share/jenkins/ref/secrets/slave-to-master-security-kill-switch; cp -n /var/jenkins_config/config.xml /var/jenkins_home; -{{- if .Values.jenkins.Master.InstallPlugins }} +{{- if .Values.Master.InstallPlugins }} cp -n /var/jenkins_config/plugins.txt /var/jenkins_home; /usr/local/bin/install-plugins.sh `echo $(cat /var/jenkins_home/plugins.txt)`; {{- end }} -{{- if .Values.jenkins.Master.ScriptApproval }} +{{- if .Values.Master.ScriptApproval }} cp -n /var/jenkins_config/scriptapproval.xml /var/jenkins_home/scriptApproval.xml; {{- end }} -{{- if .Values.jenkins.Master.InitScripts }} +{{- if .Values.Master.InitScripts }} mkdir -p /var/jenkins_home/init.groovy.d/; cp -n /var/jenkins_config/*.groovy /var/jenkins_home/init.groovy.d/ {{- end }} -{{- range $key, $val := .Values.jenkins.Master.InitScripts }} +{{- range $key, $val := .Values.Master.InitScripts }} init{{ $key }}.groovy: |- {{ $val | indent 4}} {{- end }} plugins.txt: |- -{{- if .Values.jenkins.Master.InstallPlugins }} -{{- range $index, $val := .Values.jenkins.Master.InstallPlugins }} +{{- if .Values.Master.InstallPlugins }} +{{- range $index, $val := .Values.Master.InstallPlugins }} {{ $val | indent 4 }} {{- end }} {{- end }} +{{- end }} \ No newline at end of file diff --git a/stable/spinnaker/templates/configmap/jenkins-jobs.yaml b/stable/spinnaker/templates/configmap/jenkins-jobs.yaml index d7fcb1a09e..dc63157395 100644 --- a/stable/spinnaker/templates/configmap/jenkins-jobs.yaml +++ b/stable/spinnaker/templates/configmap/jenkins-jobs.yaml @@ -1,3 +1,4 @@ +{{ if .Values.jenkins.enabled -}} apiVersion: v1 kind: ConfigMap metadata: @@ -189,4 +190,5 @@ data: false - \ No newline at end of file + +{{- end }} diff --git a/stable/spinnaker/templates/configmap/spinnaker-config.yaml b/stable/spinnaker/templates/configmap/spinnaker-config.yaml index 1eda55d904..204148131d 100644 --- a/stable/spinnaker/templates/configmap/spinnaker-config.yaml +++ b/stable/spinnaker/templates/configmap/spinnaker-config.yaml @@ -420,7 +420,7 @@ data: # # Note that jenkins is not installed with Spinnaker so you must obtain this # on your own if you are interested. - enabled: true + enabled: {{ .Values.jenkins.enabled }} defaultMaster: name: default baseUrl: http://{{ .Release.Name }}-jenkins:8080/ diff --git a/stable/spinnaker/templates/configmap/test-config.yaml b/stable/spinnaker/templates/configmap/test-config.yaml index 603e2381b0..07d5d8fabe 100644 --- a/stable/spinnaker/templates/configmap/test-config.yaml +++ b/stable/spinnaker/templates/configmap/test-config.yaml @@ -7,6 +7,3 @@ data: @test "Testing Spinnaker UI is accessible" { curl --retry 12 --retry-delay 10 {{ template "fullname" . }}-deck:9000 } - @test "Testing Jenkins UI is accessible" { - curl --retry 12 --retry-delay 10 {{.Release.Name}}-jenkins:8080/login - } \ No newline at end of file diff --git a/stable/spinnaker/templates/hooks/upload-build-image.yaml b/stable/spinnaker/templates/hooks/upload-build-image.yaml index 1c01af249c..2410b5b95a 100644 --- a/stable/spinnaker/templates/hooks/upload-build-image.yaml +++ b/stable/spinnaker/templates/hooks/upload-build-image.yaml @@ -1,3 +1,4 @@ +{{ if .Values.jenkins.enabled -}} apiVersion: batch/v1 kind: Job metadata: @@ -44,3 +45,4 @@ spec: volumeMounts: - name: jenkins-jobs mountPath: /jobs +{{- end }} diff --git a/stable/spinnaker/templates/hooks/upload-run-pipeline.yaml b/stable/spinnaker/templates/hooks/upload-run-pipeline.yaml index 476315a5f0..507cdb5dd0 100644 --- a/stable/spinnaker/templates/hooks/upload-run-pipeline.yaml +++ b/stable/spinnaker/templates/hooks/upload-run-pipeline.yaml @@ -1,3 +1,4 @@ +{{ if .Values.jenkins.enabled -}} apiVersion: batch/v1 kind: Job metadata: @@ -44,3 +45,4 @@ spec: volumeMounts: - name: jenkins-jobs mountPath: /jobs +{{- end }} diff --git a/stable/spinnaker/templates/hooks/upload-run-script.yaml b/stable/spinnaker/templates/hooks/upload-run-script.yaml index 7c31dd1e40..8321975571 100644 --- a/stable/spinnaker/templates/hooks/upload-run-script.yaml +++ b/stable/spinnaker/templates/hooks/upload-run-script.yaml @@ -1,3 +1,4 @@ +{{ if .Values.jenkins.enabled -}} apiVersion: batch/v1 kind: Job metadata: @@ -44,3 +45,4 @@ spec: volumeMounts: - name: jenkins-jobs mountPath: /jobs +{{- end }} diff --git a/stable/spinnaker/values.yaml b/stable/spinnaker/values.yaml index 388e126396..c3d61bece7 100644 --- a/stable/spinnaker/values.yaml +++ b/stable/spinnaker/values.yaml @@ -111,6 +111,7 @@ gcs: # with Spinnaker, visit: # https://www.spinnaker.io/setup/ci/jenkins/ jenkins: + enabled: true Master: Cpu: "500m" Memory: "512Mi"