--- apiVersion: apps/v1 kind: StatefulSet metadata: labels: app: {{ .Chart.Name }}-{{ .Values.environment }}-main service: jenkins name: {{ .Chart.Name }}-{{ .Values.environment }}-main namespace: {{ .Values.namespace }} spec: serviceName: jenkins replicas: 1 selector: matchLabels: app: {{ .Chart.Name }}-{{ .Values.environment }}-main service: jenkins template: metadata: labels: app: {{ .Chart.Name }}-{{ .Values.environment }}-main service: jenkins spec: serviceAccountName: jenkins-admin initContainers: - name: volume-mount-hack image: busybox:latest command: [ "sh", "-c", "chown -R 1000:1000 /var/jenkins_home" ] volumeMounts: - name: jenkins-data mountPath: /var/jenkins_home containers: - image: {{ .Values.image.name }}:{{ .Values.image.tag | default .Chart.AppVersion }} imagePullPolicy: Always name: jenkins-main ports: - name: web containerPort: 8080 - name: jnlp containerPort: 30000 env: - name: JENKINS_OPTS value: "--prefix=/jenkins" - name: JENKINS_SLAVE_AGENT_PORT value: '30000' resources: {{- toYaml .Values.resources | nindent 12 }} volumeMounts: - name: jenkins-data mountPath: /var/jenkins_home volumes: - name: jenkins-data persistentVolumeClaim: claimName: jenkins-pv-claim