jenkins: update to 2.568.1 LTS and chart
Change-Id: Ib6b48599a09dee669d77441c12b354240ef257b8
diff --git a/charts/jenkins/templates/_helpers.tpl b/charts/jenkins/templates/_helpers.tpl
index 8301a84..33b2d13 100644
--- a/charts/jenkins/templates/_helpers.tpl
+++ b/charts/jenkins/templates/_helpers.tpl
@@ -13,6 +13,21 @@
{{- printf "%s-%s" (include "jenkins.name" .) .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
{{- end -}}
+{{/*
+Common labels for all Jenkins resources
+*/}}
+{{- define "jenkins.labels" -}}
+"app.kubernetes.io/name": '{{ template "jenkins.name" .}}'
+"app.kubernetes.io/managed-by": "{{ .Release.Service }}"
+"app.kubernetes.io/instance": "{{ .Release.Name }}"
+"app.kubernetes.io/component": "{{ .Values.controller.componentName }}"
+{{- if .Values.renderHelmLabels }}
+"helm.sh/chart": "{{ template "jenkins.label" .}}"
+{{- end }}
+{{- with .Values.extraLabels }}
+{{- toYaml . | nindent 0 }}
+{{- end }}
+{{- end -}}
{{/*
Allow the release namespace to be overridden for multi-namespace deployments in combined charts.
@@ -140,6 +155,14 @@
clouds:
- kubernetes:
containerCapStr: "{{ .Values.agent.containerCap }}"
+ {{- if .Values.agent.garbageCollection.enabled }}
+ garbageCollection:
+ {{- if .Values.agent.garbageCollection.namespaces }}
+ namespaces: |-
+ {{- .Values.agent.garbageCollection.namespaces | nindent 10 }}
+ {{- end }}
+ timeout: "{{ .Values.agent.garbageCollection.timeout }}"
+ {{- end }}
{{- if .Values.agent.jnlpregistry }}
jnlpregistry: "{{ .Values.agent.jnlpregistry }}"
{{- end }}
@@ -164,6 +187,8 @@
webSocket: true
{{- end }}
{{- end }}
+ skipTlsVerify: {{ .Values.agent.skipTlsVerify | default false}}
+ usageRestricted: {{ .Values.agent.usageRestricted | default false}}
maxRequestsPerHostStr: {{ .Values.agent.maxRequestsPerHostStr | quote }}
retentionTimeout: {{ .Values.agent.retentionTimeout | quote }}
waitForPodSec: {{ .Values.agent.waitForPodSec | quote }}
@@ -171,6 +196,7 @@
namespace: "{{ template "jenkins.agent.namespace" . }}"
restrictedPssSecurityContext: {{ .Values.agent.restrictedPssSecurityContext }}
serverUrl: "{{ .Values.kubernetesURL }}"
+ addMasterProxyEnvVars: {{ .Values.agent.addMasterProxyEnvVars | default false }}
credentialsId: "{{ .Values.credentialsId }}"
{{- if .Values.agent.enabled }}
podLabels:
@@ -189,8 +215,18 @@
{{- $agent := .Values.agent }}
{{- range $name, $additionalAgent := .Values.additionalAgents }}
{{- $additionalContainersEmpty := and (hasKey $additionalAgent "additionalContainers") (empty $additionalAgent.additionalContainers) }}
+ {{- $runAsUser := $additionalAgent.runAsUser }}
+ {{- $runAsUserSet := not (kindIs "invalid" $runAsUser) }}
+ {{- $runAsGroup := $additionalAgent.runAsGroup }}
+ {{- $runAsGroupSet := not (kindIs "invalid" $runAsGroup) }}
{{- /* merge original .Values.agent into additional agent to ensure it at least has the default values */}}
{{- $additionalAgent := merge $additionalAgent $agent }}
+ {{- if $runAsUserSet }}
+ {{- $_ := set $additionalAgent "runAsUser" $runAsUser }}
+ {{- end }}
+ {{- if $runAsGroupSet }}
+ {{- $_ := set $additionalAgent "runAsGroup" $runAsGroup }}
+ {{- end }}
{{- /* clear list of additional containers in case it is configured empty for this agent (merge might have overwritten that) */}}
{{- if $additionalContainersEmpty }}
{{- $_ := set $additionalAgent "additionalContainers" list }}
@@ -224,6 +260,14 @@
{{- with $newRoot}}
- kubernetes:
containerCapStr: "{{ .Values.agent.containerCap }}"
+ {{- if .Values.agent.garbageCollection.enabled }}
+ garbageCollection:
+ {{- if .Values.agent.garbageCollection.namespaces }}
+ namespaces: |-
+ {{- .Values.agent.garbageCollection.namespaces | nindent 10 }}
+ {{- end }}
+ timeout: "{{ .Values.agent.garbageCollection.timeout }}"
+ {{- end }}
{{- if .Values.agent.jnlpregistry }}
jnlpregistry: "{{ .Values.agent.jnlpregistry }}"
{{- end }}
@@ -248,6 +292,8 @@
webSocket: true
{{- end }}
{{- end }}
+ skipTlsVerify: {{ .Values.agent.skipTlsVerify | default false}}
+ usageRestricted: {{ .Values.agent.usageRestricted | default false}}
maxRequestsPerHostStr: {{ .Values.agent.maxRequestsPerHostStr | quote }}
retentionTimeout: {{ .Values.agent.retentionTimeout | quote }}
waitForPodSec: {{ .Values.agent.waitForPodSec | quote }}
@@ -273,8 +319,18 @@
{{- $agent := .Values.agent }}
{{- range $name, $additionalAgent := .Values.additionalAgents }}
{{- $additionalContainersEmpty := and (hasKey $additionalAgent "additionalContainers") (empty $additionalAgent.additionalContainers) }}
+ {{- $runAsUser := $additionalAgent.runAsUser }}
+ {{- $runAsUserSet := not (kindIs "invalid" $runAsUser) }}
+ {{- $runAsGroup := $additionalAgent.runAsGroup }}
+ {{- $runAsGroupSet := not (kindIs "invalid" $runAsGroup) }}
{{- /* merge original .Values.agent into additional agent to ensure it at least has the default values */}}
{{- $additionalAgent := merge $additionalAgent $agent }}
+ {{- if $runAsUserSet }}
+ {{- $_ := set $additionalAgent "runAsUser" $runAsUser }}
+ {{- end }}
+ {{- if $runAsGroupSet }}
+ {{- $_ := set $additionalAgent "runAsGroup" $runAsGroup }}
+ {{- end }}
{{- /* clear list of additional containers in case it is configured empty for this agent (merge might have overwritten that) */}}
{{- if $additionalContainersEmpty }}
{{- $_ := set $additionalAgent "additionalContainers" list }}
@@ -297,7 +353,8 @@
{{- /* restore root */}}
{{- $_ := set $ "Values" $oldRoot.Values }}
{{- end }}
- {{- if .Values.controller.csrf.defaultCrumbIssuer.enabled }}
+ slaveAgentPort: {{ .Values.controller.agentListenerPort }}
+ {{- if and .Values.controller.csrf.defaultCrumbIssuer.enabled (eq .Chart.AppVersion (index (splitList "-" (include "controller.image.tag" .)) 0)) (lt (atoi (index (splitList "." .Chart.AppVersion) 1)) 543) }}
crumbIssuer:
standard:
excludeClientIPFromCrumb: {{ if .Values.controller.csrf.defaultCrumbIssuer.proxyCompatability }}true{{ else }}false{{- end }}
@@ -366,7 +423,11 @@
value: "http://{{ template "jenkins.fullname" . }}.{{ template "jenkins.namespace" . }}.svc.{{.Values.clusterZone}}:{{.Values.controller.servicePort}}{{ default "/" .Values.controller.jenkinsUriPrefix }}"
{{- end }}
{{- end }}
- image: "{{ .Values.agent.image.repository }}:{{ .Values.agent.image.tag }}"
+ {{- if ne .Values.agent.image.registry "" }}
+ image: "{{ tpl .Values.agent.image.registry . }}/{{ tpl .Values.agent.image.repository . }}:{{ tpl .Values.agent.image.tag . }}"
+ {{- else }}
+ image: "{{ tpl .Values.agent.image.repository . }}:{{ tpl .Values.agent.image.tag . }}"
+ {{- end }}
{{- if .Values.agent.livenessProbe }}
livenessProbe:
execArgs: {{.Values.agent.livenessProbe.execArgs | quote}}
@@ -387,11 +448,11 @@
{{- with .Values.agent.resources.requests.ephemeralStorage }}
resourceRequestEphemeralStorage: {{.}}
{{- end }}
- {{- with .Values.agent.runAsUser }}
- runAsUser: {{ . }}
+ {{- if not (kindIs "invalid" .Values.agent.runAsUser) }}
+ runAsUser: {{ .Values.agent.runAsUser }}
{{- end }}
- {{- with .Values.agent.runAsGroup }}
- runAsGroup: {{ . }}
+ {{- if not (kindIs "invalid" .Values.agent.runAsGroup) }}
+ runAsGroup: {{ .Values.agent.runAsGroup }}
{{- end }}
ttyEnabled: {{ .Values.agent.TTYEnabled }}
workingDir: {{ .Values.agent.workingDir }}
@@ -425,11 +486,15 @@
resourceLimitMemory: {{ if $additionalContainers.resources }}{{ $additionalContainers.resources.limits.memory }}{{ else }}{{ $.Values.agent.resources.limits.memory }}{{ end }}
resourceRequestCpu: {{ if $additionalContainers.resources }}{{ $additionalContainers.resources.requests.cpu }}{{ else }}{{ $.Values.agent.resources.requests.cpu }}{{ end }}
resourceRequestMemory: {{ if $additionalContainers.resources }}{{ $additionalContainers.resources.requests.memory }}{{ else }}{{ $.Values.agent.resources.requests.memory }}{{ end }}
- {{- if or $additionalContainers.runAsUser $.Values.agent.runAsUser }}
- runAsUser: {{ $additionalContainers.runAsUser | default $.Values.agent.runAsUser }}
+ {{- if not (kindIs "invalid" $additionalContainers.runAsUser) }}
+ runAsUser: {{ $additionalContainers.runAsUser }}
+ {{- else if not (kindIs "invalid" $.Values.agent.runAsUser) }}
+ runAsUser: {{ $.Values.agent.runAsUser }}
{{- end }}
- {{- if or $additionalContainers.runAsGroup $.Values.agent.runAsGroup }}
- runAsGroup: {{ $additionalContainers.runAsGroup | default $.Values.agent.runAsGroup }}
+ {{- if not (kindIs "invalid" $additionalContainers.runAsGroup) }}
+ runAsGroup: {{ $additionalContainers.runAsGroup }}
+ {{- else if not (kindIs "invalid" $.Values.agent.runAsGroup) }}
+ runAsGroup: {{ $.Values.agent.runAsGroup }}
{{- end }}
ttyEnabled: {{ $additionalContainers.TTYEnabled | default $.Values.agent.TTYEnabled }}
workingDir: {{ $additionalContainers.workingDir | default $.Values.agent.workingDir }}
@@ -450,7 +515,7 @@
{{- end }}
{{- end }}
idleMinutes: {{ .Values.agent.idleMinutes }}
- instanceCap: 2147483647
+ instanceCap: {{ int .Values.agent.instanceCap }}
{{- if .Values.agent.hostNetworking }}
hostNetwork: {{ .Values.agent.hostNetworking }}
{{- end }}
@@ -471,7 +536,10 @@
nodeUsageMode: {{ quote .Values.agent.nodeUsageMode }}
podRetention: {{ .Values.agent.podRetention }}
showRawYaml: {{ .Values.agent.showRawYaml }}
- serviceAccount: "{{ include "jenkins.serviceAccountAgentName" . }}"
+{{- $asaname := default (include "jenkins.serviceAccountAgentName" .) .Values.agent.serviceAccount -}}
+{{- if or (.Values.agent.useDefaultServiceAccount) (.Values.agent.serviceAccount) }}
+ serviceAccount: "{{ $asaname }}"
+{{- end }}
slaveConnectTimeoutStr: "{{ .Values.agent.connectTimeout }}"
{{- if .Values.agent.volumes }}
volumes:
@@ -520,6 +588,7 @@
{{- tpl (trim .Values.agent.yamlTemplate) . | nindent 4 }}
{{- end }}
yamlMergeStrategy: {{ .Values.agent.yamlMergeStrategy }}
+ inheritYamlMergeStrategy: {{ .Values.agent.inheritYamlMergeStrategy }}
{{- end -}}
{{- define "jenkins.kubernetes-version" -}}
@@ -607,6 +676,8 @@
fieldPath: metadata.name
- name: LABEL
value: "{{ template "jenkins.fullname" $root }}-jenkins-config"
+ - name: HEALTH_PORT
+ value: "{{ $root.Values.controller.sidecars.configAutoReload.healthPort }}"
- name: FOLDER
value: "{{ $root.Values.controller.sidecars.configAutoReload.folder }}"
- name: NAMESPACE
@@ -640,6 +711,10 @@
{{- end -}}
{{- end -}}
{{- end }}
+ {{- if $root.Values.controller.sidecars.configAutoReload.logging.configuration.override }}
+ - name: LOG_CONFIG
+ value: "{{ $root.Values.controller.jenkinsHome }}/auto-reload/auto-reload-config.yaml"
+ {{- end }}
resources:
{{ toYaml $root.Values.controller.sidecars.configAutoReload.resources | indent 4 }}
@@ -651,5 +726,24 @@
{{- if $root.Values.persistence.subPath }}
subPath: {{ $root.Values.persistence.subPath }}
{{- end }}
+ - name: tmp-volume
+ mountPath: /tmp
+ {{- if $root.Values.controller.sidecars.configAutoReload.logging.configuration.override }}
+ - name: auto-reload-config
+ mountPath: {{ $root.Values.controller.jenkinsHome }}/auto-reload
+ - name: auto-reload-config-logs
+ mountPath: {{ $root.Values.controller.jenkinsHome }}/auto-reload-logs
+ {{- end }}
+ {{- if $root.Values.controller.sidecars.configAutoReload.additionalVolumeMounts }}
+{{ (tpl (toYaml $root.Values.controller.sidecars.configAutoReload.additionalVolumeMounts) $root) | indent 4 }}
+ {{- end }}
{{- end -}}
+
+{{- define "controller.replicas" -}}
+{{- $replicas := int (default 1 .Values.controller.replicas) -}}
+{{- if or (lt $replicas 0) (gt $replicas 1) -}}
+{{- fail "controller.replicas must be 0 or 1" -}}
+{{- end -}}
+{{- .Values.controller.replicas -}}
+{{- end -}}