artifacts/oci/rundeck/chart/templates/deployment.yaml
2023-02-20 10:47:32 +08:00

188 lines
6.1 KiB
YAML

apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ include "rundeck.fullname" . }}
labels: {{ include "rundeck.labels" . | indent 4 }}
{{- with .Values.deployment.annotations }}
annotations:
{{- toYaml . | nindent 4 }}
{{- end }}
spec:
replicas: {{ .Values.deployment.replicaCount }}
strategy:
{{- toYaml .Values.deployment.strategy | nindent 4 }}
selector:
matchLabels:
app.kubernetes.io/name: {{ include "rundeck.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
template:
metadata:
annotations:
# This will restart the rundeck pod if its environment configuration is updated by helm
checksum/config: {{ include (print $.Template.BasePath "/rundeck-environment-configmap.yaml") . | sha256sum }}
{{- with .Values.deployment.annotations }}
{{- toYaml . | nindent 8 }}
{{- end }}
labels:
app.kubernetes.io/name: {{ include "rundeck.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
spec:
serviceAccountName: {{ include "rundeck.serviceAccountName" . }}
securityContext:
fsGroup: 1000
{{- if .Values.image.pullSecrets }}
imagePullSecrets:
- name: {{ .Values.image.pullSecrets }}
{{- end }}
containers:
{{- if .Values.sideCars }}
{{- toYaml .Values.sideCars | nindent 8 }}
{{- end }}
- name: nginx
image: nginx:stable
ports:
- name: http
containerPort: 80
protocol: TCP
livenessProbe:
httpGet:
path: /healthz
port: 80
scheme: HTTP
periodSeconds: 5
readinessProbe:
httpGet:
path: /healthz
port: 80
scheme: HTTP
periodSeconds: 5
volumeMounts:
- name: nginx-config
mountPath: /etc/nginx
- name: {{ .Chart.Name }}
command:
- /bin/sh
- -c
- echo {{ .Values.rundeck.adminUser }} > /home/rundeck/server/config/realm.properties && /home/rundeck/docker-lib/entry.sh
image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
imagePullPolicy: {{ .Values.image.pullPolicy }}
envFrom:
- configMapRef:
name: {{ .Release.Name }}-environment-configmap
{{- if .Values.rundeck.envSecret }}
- secretRef:
name: {{ .Values.rundeck.envSecret }}
{{- end }}
env:
- name: RUNDECK_GRAILS_URL
value: {{ .Values.rundeck.env.RUNDECK_GRAILS_URL }}
- name: RUNDECK_SERVER_FORWARDED
value: "true"
- name: RUNDECK_LOGGING_STRATEGY
value: "CONSOLE"
volumeMounts:
- name: data
mountPath: /home/rundeck/server/data
{{- if .Values.rundeck.sshSecrets }}
- name: sshkeys
mountPath: /home/rundeck/.ssh
readOnly: true
{{- end }}
{{- if .Values.rundeck.awsConfigSecret }}
- name: aws-config
mountPath: /home/rundeck/.aws/
{{- end }}
{{- if .Values.rundeck.kubeConfigSecret }}
- name: kube-config
mountPath: /home/rundeck/.kube/
{{- end }}
{{- if .Values.rundeck.extraConfigSecret }}
- name: extra-config
mountPath: /home/rundeck/extra/
{{- end }}
{{- if .Values.volumeMounts }}
{{- toYaml .Values.volumeMounts | nindent 10}}
{{- end }}
ports:
- name: rundeck
containerPort: 4440
livenessProbe:
httpGet:
path: /
port: 4440
scheme: HTTP
initialDelaySeconds: 120
periodSeconds: 120
readinessProbe:
httpGet:
path: /
port: 4440
scheme: HTTP
initialDelaySeconds: 60
periodSeconds: 5
resources:
{{- toYaml .Values.resources | nindent 12 }}
volumes:
- name: nginx-config
configMap:
name: {{ .Release.Name }}-nginx-configmap
items:
- key: nginx.conf
path: nginx.conf
- name: data
{{- if .Values.persistence.enabled }}
{{- if .Values.persistence.awsVolumeId }}
# This AWS EBS volume must already exist.
awsElasticBlockStore:
volumeID: {{ .Values.rundeck.awsVolumeId }}
fsType: ext4
{{- else if .Values.persistence.existingClaim }}
persistentVolumeClaim:
claimName: {{ .Values.persistence.existingClaim }}
{{- else if .Values.persistence.claim.create }}
persistentVolumeClaim:
claimName: {{ include "rundeck.fullname" . }}
{{- end }}
{{- else }}
emptyDir: {}
{{- end }}
{{- if .Values.rundeck.sshSecrets }}
- name: sshkeys
secret:
secretName: {{ .Values.rundeck.sshSecrets }}
{{- end }}
{{- if .Values.rundeck.awsCredentialsSecret }}
- name: aws-credentials
secret:
secretName: {{ .Values.rundeck.awsCredentialsSecret}}
{{- end }}
{{- if .Values.rundeck.kubeConfigSecret }}
- name: kube-config
secret:
secretName: {{ .Values.rundeck.kubeConfigSecret}}
{{- end }}
{{- if .Values.rundeck.extraConfigSecret }}
- name: extra-config
secret:
secretName: {{ .Values.rundeck.extraConfigSecret}}
{{- end }}
{{- if .Values.volumes }}
{{- toYaml .Values.volumes | nindent 8}}
{{- end }}
{{- if .Values.initContainers }}
initContainers:
{{- toYaml .Values.initContainers | nindent 8 }}
{{- end }}
{{- with .Values.nodeSelector }}
nodeSelector:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.affinity }}
affinity:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.tolerations }}
tolerations:
{{- toYaml . | nindent 8 }}
{{- end }}