deploy-templates/templates/jenkins/deployment.yaml (156 lines of code) (raw):
{{if or (eq .Values.global.platform "kubernetes") (eq .Values.global.openshift.deploymentType "deployments")}}
{{if .Values.jenkins.deploy}}
kind: Deployment
apiVersion: apps/v1
metadata:
labels:
app: jenkins
{{- include "jenkins-operator.labels" . | nindent 4 }}
{{- with .Values.jenkins.annotations }}
annotations:
{{- toYaml . | nindent 4 }}
{{- end }}
name: jenkins
spec:
replicas: 1
selector:
matchLabels:
app: jenkins
template:
metadata:
labels:
app: jenkins
spec:
volumes:
- name: jenkins-jenkins-data
persistentVolumeClaim:
claimName: jenkins-data
{{- if .Values.jenkins.caCerts.enabled }}
- name: ca-certs
secret:
secretName: {{ .Values.jenkins.caCerts.secret }}
{{- end }}
{{- with .Values.jenkins.nodeSelector }}
nodeSelector:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.jenkins.affinity }}
affinity:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.jenkins.tolerations }}
tolerations:
{{- toYaml . | nindent 8 }}
{{- end }}
initContainers:
- name: grant-permissions
image: {{.Values.jenkins.initImage}}
imagePullPolicy: "{{ .Values.jenkins.imagePullPolicy }}"
command:
- sh
- '-c'
- >-
JENKINS_HOME="/var/lib/jenkins"; mkdir -p $JENKINS_HOME/.ssh; if [
-d /tmp/ssh ];then chmod 777 -R $JENKINS_HOME/.ssh; cat
/tmp/ssh/id_rsa > $JENKINS_HOME/.ssh/id_rsa;chmod 400
$JENKINS_HOME/.ssh/id_rsa; if [ -e $JENKINS_HOME/.ssh/config ];
then chmod 400 -fR $JENKINS_HOME/.ssh/config; fi; fi
resources: {}
volumeMounts:
- name: jenkins-jenkins-data
mountPath: /var/lib/jenkins
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
securityContext:
runAsUser: 999
runAsGroup: 998
{{- if .Values.jenkins.caCerts.enabled }}
- name: ca-certs
image: {{ default "adoptopenjdk/openjdk11:alpine" .Values.jenkins.caCerts.image }}
imagePullPolicy: {{ .Values.jenkins.imagePullPolicy }}
command: ["sh"]
args: ["-c", "cp -f \"${JAVA_HOME}/lib/security/cacerts\" /tmp/certs/cacerts; if [ \"$(ls /tmp/secrets/ca-certs)\" ]; then for f in /tmp/secrets/ca-certs/*; do keytool -importcert -file \"${f}\" -alias \"$(basename \"${f}\")\" -keystore /tmp/certs/cacerts -storepass changeit -trustcacerts -noprompt; done; fi;"]
volumeMounts:
- mountPath: /tmp/certs
name: jenkins-jenkins-data
subPath: certs
- mountPath: /tmp/secrets/ca-certs
name: ca-certs
securityContext:
runAsUser: 999
runAsGroup: 998
{{- end }}
containers:
- name: edp-jenkins
image: {{.Values.jenkins.image}}:{{.Values.jenkins.version}}
imagePullPolicy: "{{ .Values.jenkins.imagePullPolicy }}"
ports:
- containerPort: 8080
protocol: TCP
env:
- name: CI_NAMESPACE
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.namespace
- name: OPENSHIFT_ENABLE_OAUTH
value: 'false'
- name: OPENSHIFT_ENABLE_REDIRECT_PROMPT
value: 'true'
- name: KUBERNETES_TRUST_CERTIFICATES
value: 'true'
- name: JNLP_SERVICE_NAME
value: jenkins-jnlp
- name: JENKINS_PASSWORD
valueFrom:
secretKeyRef:
name: jenkins-admin-password
key: password
- name: JENKINS_UI_URL
value: https://{{ include "jenkins-operator.jenkinsBaseUrl" . }}
- name: JENKINS_OPTS
value: '--requestHeaderSize=32768'
- name: PLATFORM_TYPE
value: kubernetes
- name: JENKINS_JAVA_OPTIONS
value: {{ template "jenkins.jenkinsJavaOptions" . }}
resources:
{{ toYaml .Values.jenkins.resources | indent 12 }}
volumeMounts:
- name: jenkins-jenkins-data
mountPath: /var/lib/jenkins
{{- if .Values.jenkins.caCerts.enabled }}
- name: jenkins-jenkins-data
mountPath: /var/lib/jenkins/certs
subPath: certs
{{- end }}
readinessProbe:
httpGet:
path: /login
port: 8080
scheme: HTTP
initialDelaySeconds: 60
timeoutSeconds: 10
periodSeconds: 10
successThreshold: 1
failureThreshold: 3
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
securityContext:
runAsUser: 999
runAsGroup: 998
restartPolicy: Always
terminationGracePeriodSeconds: 30
dnsPolicy: ClusterFirst
serviceAccountName: jenkins
serviceAccount: jenkins
securityContext:
runAsNonRoot: true
fsGroup: 0
schedulerName: default-scheduler
strategy:
type: Recreate
revisionHistoryLimit: 10
progressDeadlineSeconds: 600
{{end}}
{{end}}