зеркало из https://github.com/Azure/helm-charts.git
161 строка
5.9 KiB
YAML
161 строка
5.9 KiB
YAML
apiVersion: apps/v1beta1
|
|
kind: StatefulSet
|
|
metadata:
|
|
name: {{ template "concourse.worker.fullname" . }}
|
|
labels:
|
|
app: {{ template "concourse.worker.fullname" . }}
|
|
chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
|
|
release: "{{ .Release.Name }}"
|
|
heritage: "{{ .Release.Service }}"
|
|
|
|
spec:
|
|
serviceName: {{ template "concourse.worker.fullname" . }}
|
|
replicas: {{ .Values.worker.replicas }}
|
|
template:
|
|
metadata:
|
|
labels:
|
|
app: {{ template "concourse.worker.fullname" . }}
|
|
annotations:
|
|
{{- range $key, $value := .Values.worker.annotations }}
|
|
{{ $key }}: {{ $value | quote }}
|
|
{{- end }}
|
|
spec:
|
|
terminationGracePeriodSeconds: {{ .Values.worker.terminationGracePeriodSeconds }}
|
|
containers:
|
|
- name: {{ template "concourse.worker.fullname" . }}
|
|
image: "{{ .Values.image }}:{{ .Values.imageTag }}"
|
|
imagePullPolicy: {{ default "" .Values.imagePullPolicy | quote }}
|
|
command:
|
|
- /bin/sh
|
|
args:
|
|
- -c
|
|
- |-
|
|
cp /dev/null /concourse-work-dir/.liveness_probe
|
|
concourse worker --name=${HOSTNAME} | tee -a /concourse-work-dir/.liveness_probe
|
|
sleep ${POST_STOP_DELAY_SECONDS}
|
|
livenessProbe:
|
|
exec:
|
|
command:
|
|
- /bin/sh
|
|
- -c
|
|
- |-
|
|
FATAL_ERRORS=$( echo "${LIVENESS_PROBE_FATAL_ERRORS}" | grep -q '\S' && \
|
|
grep -F "${LIVENESS_PROBE_FATAL_ERRORS}" /concourse-work-dir/.liveness_probe )
|
|
cp /dev/null /concourse-work-dir/.liveness_probe
|
|
if [ ! -z "${FATAL_ERRORS}" ]; then
|
|
>&2 echo "Fatal error detected: ${FATAL_ERRORS}"
|
|
exit 1
|
|
fi
|
|
failureThreshold: 1
|
|
initialDelaySeconds: 10
|
|
periodSeconds: 10
|
|
lifecycle:
|
|
preStop:
|
|
exec:
|
|
command:
|
|
- "/bin/sh"
|
|
- "-c"
|
|
- "concourse retire-worker --name=${HOSTNAME}"
|
|
env:
|
|
- name: CONCOURSE_TSA_HOST
|
|
valueFrom:
|
|
configMapKeyRef:
|
|
name: {{ template "concourse.concourse.fullname" . }}
|
|
key: concourse-tsa-host
|
|
- name: CONCOURSE_TSA_PORT
|
|
valueFrom:
|
|
configMapKeyRef:
|
|
name: {{ template "concourse.concourse.fullname" . }}
|
|
key: concourse-tsa-port
|
|
- name: CONCOURSE_GARDEN_DOCKER_REGISTRY
|
|
valueFrom:
|
|
configMapKeyRef:
|
|
name: {{ template "concourse.concourse.fullname" . }}
|
|
key: garden-docker-registry
|
|
- name: CONCOURSE_GARDEN_INSECURE_DOCKER_REGISTRY
|
|
valueFrom:
|
|
configMapKeyRef:
|
|
name: {{ template "concourse.concourse.fullname" . }}
|
|
key: garden-insecure-docker-registry
|
|
- name: CONCOURSE_TSA_PUBLIC_KEY
|
|
value: "/concourse-keys/host_key.pub"
|
|
- name: CONCOURSE_TSA_WORKER_PRIVATE_KEY
|
|
value: "/concourse-keys/worker_key"
|
|
- name: CONCOURSE_WORK_DIR
|
|
value: "/concourse-work-dir"
|
|
- name: CONCOURSE_BAGGAGECLAIM_DRIVER
|
|
valueFrom:
|
|
configMapKeyRef:
|
|
name: {{ template "concourse.concourse.fullname" . }}
|
|
key: concourse-baggageclaim-driver
|
|
- name: POST_STOP_DELAY_SECONDS
|
|
valueFrom:
|
|
configMapKeyRef:
|
|
name: {{ template "concourse.concourse.fullname" . }}
|
|
key: worker-post-stop-delay-seconds
|
|
- name: LIVENESS_PROBE_FATAL_ERRORS
|
|
valueFrom:
|
|
configMapKeyRef:
|
|
name: {{ template "concourse.concourse.fullname" . }}
|
|
key: worker-fatal-errors
|
|
resources:
|
|
{{ toYaml .Values.worker.resources | indent 12 }}
|
|
securityContext:
|
|
privileged: true
|
|
volumeMounts:
|
|
- name: concourse-keys
|
|
mountPath: /concourse-keys
|
|
readOnly: true
|
|
- name: concourse-work-dir
|
|
mountPath: /concourse-work-dir
|
|
affinity:
|
|
{{- if .Values.worker.additionalAffinities }}
|
|
{{ toYaml .Values.worker.additionalAffinities | indent 8 }}
|
|
{{- end }}
|
|
podAntiAffinity:
|
|
preferredDuringSchedulingIgnoredDuringExecution:
|
|
- weight: 100
|
|
podAffinityTerm:
|
|
topologyKey: kubernetes.io/hostname
|
|
labelSelector:
|
|
matchLabels:
|
|
app: {{ template "concourse.worker.fullname" . }}
|
|
release: {{ .Release.Name | quote }}
|
|
volumes:
|
|
- name: concourse-keys
|
|
secret:
|
|
secretName: {{ template "concourse.concourse.fullname" . }}
|
|
defaultMode: 0400
|
|
items:
|
|
- key: host-key-pub
|
|
path: host_key.pub
|
|
- key: worker-key
|
|
path: worker_key
|
|
- key: worker-key-pub
|
|
path: worker_key.pub
|
|
{{- if .Values.persistence.enabled }}
|
|
volumeClaimTemplates:
|
|
- metadata:
|
|
name: concourse-work-dir
|
|
spec:
|
|
accessModes:
|
|
- {{ .Values.persistence.worker.accessMode | quote }}
|
|
resources:
|
|
requests:
|
|
storage: {{ .Values.persistence.worker.size | quote }}
|
|
{{- if .Values.persistence.worker.storageClass }}
|
|
{{- if (eq "-" .Values.persistence.worker.storageClass) }}
|
|
storageClassName: ""
|
|
{{- else }}
|
|
storageClassName: "{{ .Values.persistence.worker.storageClass }}"
|
|
{{- end }}
|
|
{{- end }}
|
|
{{- else }}
|
|
- name: concourse-work-dir
|
|
emptyDir: {}
|
|
{{- end }}
|
|
{{- if and (eq .Capabilities.KubeVersion.Major "1") (gt .Capabilities.KubeVersion.Minor "5") }}
|
|
updateStrategy:
|
|
type: {{ .Values.worker.updateStrategy }}
|
|
{{- end }}
|