{{- define "override_config_map" }}
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ template "jenkins.fullname" . }}
data:
config.xml: |-
{{ .Values.Master.ImageTag }}
0
NORMAL
{{ .Values.Master.UseSecurity }}
true
{{- if .Values.Master.Security.UseGitHub }}
https://github.com
https://api.github.com
{{ .Values.Master.Security.GitHub.ClientID }}
{{ .Values.Master.Security.GitHub.ClientSecret }}
read:org,user:email
{{- else }}
{{- end }}
false
${JENKINS_HOME}/workspace/${ITEM_FULLNAME}
${ITEM_ROOTDIR}/builds
dev
kubernetes
{{- range $podName, $pod := .Values.Pods }}
{{ $pod.InheritFrom | default "" }}
{{ $podName }}
2147483647
0
{{- $local := dict "first" true }}
{{- range $key, $value := .NodeSelector }}
{{- if not $local.first }},{{- end }}
{{- $key }}={{ $value }}
{{- $_ := set $local "first" false }}
{{- end }}
{{ .NodeUsageMode }}
{{- range $index, $volume := .volumes }}
{{- range $key, $value := $volume }}{{- if not (eq $key "type") }}
<{{ $key }}>{{ $value }}{{ $key }}>
{{- end }}{{- end }}
{{- end }}
{{- range $containerName, $container := .Containers }}
{{ $containerName }}
{{ .Image }}:{{ .ImageTag | default "latest" }}
{{- range $index, $envVar := .Ports }}
{{ .name }}
{{ .containerPort }}
{{ .hostPort }}
{{- end }}
{{- if .Privileged }}
true
{{- else }}
false
{{- end }}
{{- if .AlwaysPullImage }}
true
{{- else }}
false
{{- end }}
{{ .WorkingDir | default "" }}
{{ .Command | default "" }}
{{ .Args | default "" }}
{{- if .TTY }}
true
{{- else }}
false
{{- end }}
{{- range $index, $envVar := .EnvVars }}
{{- range $key, $value := $envVar }}{{- if not (eq $key "type") }}
<{{ $key }}>{{ $value }}{{ $key }}>
{{- end }}{{- end }}
{{- end }}
{{- if .resources }}
{{- if .resources.requests }}
{{ .resources.requests.cpu | default "" }}
{{ .resources.requests.memory | default "" }}
{{- end }}
{{- if .resources.limits }}
{{ .resources.limits.cpu | default "" }}
{{ .resources.limits.memory | default "" }}
{{- end }}
{{- end }}
{{- end }}
JENKINS_URL
http://{{ template "jenkins.fullname" $ }}:{{$.Values.Master.ServicePort}}{{ default "" $.Values.Master.JenkinsUriPrefix }}
{{- range $index, $envVar := .EnvVars }}
{{- range $key, $value := $envVar }}{{- if not (eq $key "type") }}
<{{ $key }}>{{ $value }}{{ $key }}>
{{- end }}{{- end }}
{{- end }}
{{- if .ImagePullSecret }}
{{ .ImagePullSecret }}
{{- else }}
{{- end }}
{{- end }}
https://kubernetes.default
false
{{ .Release.Namespace }}
http://{{ template "jenkins.fullname" . }}:{{.Values.Master.ServicePort}}{{ default "" .Values.Master.JenkinsUriPrefix }}
{{ template "jenkins.fullname" . }}-agent:50000
50
5
0
0
5
0
all
false
false
{{- range $viewName, $view := .Values.Master.Views }}
{{ $viewName }}
false
false
{{- range $index, $job := $view }}
{{ $job }}
{{- end }}
false
{{- end }}
{{ .Values.Master.DefaultView }}
50000
{{- range .Values.Master.DisabledAgentProtocols }}
{{ . }}
{{- end }}
{{- if .Values.Master.CSRF.DefaultCrumbIssuer.Enabled }}
{{- if .Values.Master.CSRF.DefaultCrumbIssuer.ProxyCompatability }}
true
{{- end }}
{{- end }}
true
{{- if .Values.Master.ScriptApproval }}
scriptapproval.xml: |-
{{- range $key, $val := .Values.Master.ScriptApproval }}
{{ $val }}
{{- end }}
{{- end }}
jenkins.CLI.xml: |-
{{- if .Values.Master.CLI }}
true
{{- else }}
false
{{- end }}
apply_config.sh: |-
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;
cp -n /var/jenkins_config/jenkins.CLI.xml /var/jenkins_home;
{{- if .Values.Master.InstallPlugins }}
# Install missing plugins
cp /var/jenkins_config/plugins.txt /var/jenkins_home;
rm -rf /usr/share/jenkins/ref/plugins/*.lock
/usr/local/bin/install-plugins.sh `echo $(cat /var/jenkins_home/plugins.txt)`;
# Copy plugins to shared volume
cp -n /usr/share/jenkins/ref/plugins/* /var/jenkins_plugins;
{{- end }}
{{- if .Values.Master.ScriptApproval }}
cp -n /var/jenkins_config/scriptapproval.xml /var/jenkins_home/scriptApproval.xml;
{{- end }}
{{- 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 }}
{{- if .Values.Master.CredentialsXmlSecret }}
cp -n /var/jenkins_credentials/credentials.xml /var/jenkins_home;
{{- end }}
{{- if .Values.Master.SecretsFilesSecret }}
cp -n /var/jenkins_secrets/* /usr/share/jenkins/ref/secrets;
{{- end }}
{{- if .Values.Master.Jobs }}
for job in $(ls /var/jenkins_jobs); do
mkdir -p /var/jenkins_home/jobs/$job
cp -n /var/jenkins_jobs/$job /var/jenkins_home/jobs/$job/config.xml
done
{{- end }}
{{- range $key, $val := .Values.Master.InitScripts }}
init{{ $key }}.groovy: |-
{{ $val | indent 4 }}
{{- end }}
plugins.txt: |-
{{- if .Values.Master.InstallPlugins }}
{{- range $index, $val := .Values.Master.InstallPlugins }}
{{ $val | indent 4 }}
{{- end }}
{{- end }}
{{- end }}