211 lines
8.7 KiB
YAML
211 lines
8.7 KiB
YAML
{{- if and (not .Values.enableSqsTerminationDraining) (lower .Values.targetNodeOs | contains "linux") -}}
|
|
apiVersion: apps/v1
|
|
kind: DaemonSet
|
|
metadata:
|
|
name: {{ include "aws-node-termination-handler.fullname" . }}
|
|
namespace: {{ .Release.Namespace }}
|
|
labels:
|
|
{{- include "aws-node-termination-handler.labelsDaemonset" . | nindent 4 }}
|
|
spec:
|
|
{{- with .Values.updateStrategy }}
|
|
updateStrategy:
|
|
{{- toYaml . | nindent 4 }}
|
|
{{- end }}
|
|
selector:
|
|
matchLabels:
|
|
{{- include "aws-node-termination-handler.selectorLabelsDaemonset" . | nindent 6 }}
|
|
kubernetes.io/os: linux
|
|
template:
|
|
metadata:
|
|
labels:
|
|
{{- include "aws-node-termination-handler.selectorLabelsDaemonset" . | nindent 8 }}
|
|
kubernetes.io/os: linux
|
|
k8s-app: aws-node-termination-handler
|
|
{{- with (mergeOverwrite (dict) .Values.podLabels .Values.linuxPodLabels) }}
|
|
{{- toYaml . | nindent 8 }}
|
|
{{- end }}
|
|
{{- if or .Values.podAnnotations .Values.linuxPodAnnotations }}
|
|
annotations:
|
|
{{- toYaml (mergeOverwrite (dict) .Values.podAnnotations .Values.linuxPodAnnotations) | nindent 8 }}
|
|
{{- end }}
|
|
spec:
|
|
{{- with .Values.image.pullSecrets }}
|
|
imagePullSecrets:
|
|
{{- toYaml . | nindent 8 }}
|
|
{{- end }}
|
|
serviceAccountName: {{ include "aws-node-termination-handler.serviceAccountName" . }}
|
|
{{- with .Values.podSecurityContext }}
|
|
securityContext:
|
|
{{- toYaml . | nindent 8 }}
|
|
{{- end }}
|
|
{{- with .Values.daemonsetPriorityClassName }}
|
|
priorityClassName: {{ . }}
|
|
{{- end }}
|
|
{{- with .Values.terminationGracePeriodSeconds }}
|
|
terminationGracePeriodSeconds: {{ . }}
|
|
{{- end }}
|
|
hostNetwork: {{ .Values.useHostNetwork }}
|
|
dnsPolicy: {{ default .Values.linuxDnsPolicy .Values.dnsPolicy }}
|
|
{{- with .Values.dnsConfig }}
|
|
dnsConfig:
|
|
{{- toYaml . | nindent 8 }}
|
|
{{- end }}
|
|
containers:
|
|
- name: aws-node-termination-handler
|
|
{{- with .Values.securityContext }}
|
|
securityContext:
|
|
{{- toYaml . | nindent 12 }}
|
|
{{- end }}
|
|
image: {{ include "aws-node-termination-handler.image" . }}
|
|
imagePullPolicy: {{ .Values.image.pullPolicy }}
|
|
env:
|
|
- name: NODE_NAME
|
|
valueFrom:
|
|
fieldRef:
|
|
fieldPath: spec.nodeName
|
|
- name: POD_NAME
|
|
valueFrom:
|
|
fieldRef:
|
|
fieldPath: metadata.name
|
|
- name: NAMESPACE
|
|
valueFrom:
|
|
fieldRef:
|
|
fieldPath: metadata.namespace
|
|
- name: ENABLE_PROBES_SERVER
|
|
value: {{ .Values.enableProbesServer | quote }}
|
|
- name: PROBES_SERVER_PORT
|
|
value: {{ .Values.probes.httpGet.port | quote }}
|
|
- name: PROBES_SERVER_ENDPOINT
|
|
value: {{ .Values.probes.httpGet.path | quote }}
|
|
- name: LOG_LEVEL
|
|
value: {{ .Values.logLevel | quote }}
|
|
- name: JSON_LOGGING
|
|
value: {{ .Values.jsonLogging | quote }}
|
|
- name: LOG_FORMAT_VERSION
|
|
value: {{ .Values.logFormatVersion | quote }}
|
|
- name: ENABLE_PROMETHEUS_SERVER
|
|
value: {{ .Values.enablePrometheusServer | quote }}
|
|
- name: PROMETHEUS_SERVER_PORT
|
|
value: {{ .Values.prometheusServerPort | quote }}
|
|
{{- with .Values.instanceMetadataURL }}
|
|
- name: INSTANCE_METADATA_URL
|
|
value: {{ . | quote }}
|
|
{{- end }}
|
|
- name: METADATA_TRIES
|
|
value: {{ .Values.metadataTries | quote }}
|
|
- name: DRY_RUN
|
|
value: {{ .Values.dryRun | quote }}
|
|
- name: CORDON_ONLY
|
|
value: {{ .Values.cordonOnly | quote }}
|
|
- name: TAINT_NODE
|
|
value: {{ .Values.taintNode | quote }}
|
|
- name: EXCLUDE_FROM_LOAD_BALANCERS
|
|
value: {{ .Values.excludeFromLoadBalancers | quote }}
|
|
- name: DELETE_LOCAL_DATA
|
|
value: {{ .Values.deleteLocalData | quote }}
|
|
- name: IGNORE_DAEMON_SETS
|
|
value: {{ .Values.ignoreDaemonSets | quote }}
|
|
- name: POD_TERMINATION_GRACE_PERIOD
|
|
value: {{ .Values.podTerminationGracePeriod | quote }}
|
|
- name: NODE_TERMINATION_GRACE_PERIOD
|
|
value: {{ .Values.nodeTerminationGracePeriod | quote }}
|
|
- name: EMIT_KUBERNETES_EVENTS
|
|
value: {{ .Values.emitKubernetesEvents | quote }}
|
|
{{- with .Values.kubernetesEventsExtraAnnotations }}
|
|
- name: KUBERNETES_EVENTS_EXTRA_ANNOTATIONS
|
|
value: {{ . | quote }}
|
|
{{- end }}
|
|
{{- if or .Values.webhookURL .Values.webhookURLSecretName }}
|
|
- name: WEBHOOK_URL
|
|
{{- if .Values.webhookURLSecretName }}
|
|
valueFrom:
|
|
secretKeyRef:
|
|
name: {{ .Values.webhookURLSecretName }}
|
|
key: webhookurl
|
|
{{- else }}
|
|
value: {{ .Values.webhookURL | quote }}
|
|
{{- end }}
|
|
{{- end }}
|
|
{{- with .Values.webhookHeaders }}
|
|
- name: WEBHOOK_HEADERS
|
|
value: {{ . | quote }}
|
|
{{- end }}
|
|
{{- with .Values.webhookProxy }}
|
|
- name: WEBHOOK_PROXY
|
|
value: {{ . | quote }}
|
|
{{- end }}
|
|
{{- if and .Values.webhookTemplateConfigMapName .Values.webhookTemplateConfigMapKey }}
|
|
- name: WEBHOOK_TEMPLATE_FILE
|
|
value: {{ print "/config/" .Values.webhookTemplateConfigMapKey | quote }}
|
|
{{- else if .Values.webhookTemplate }}
|
|
- name: WEBHOOK_TEMPLATE
|
|
value: {{ .Values.webhookTemplate | quote }}
|
|
{{- end }}
|
|
- name: ENABLE_SPOT_INTERRUPTION_DRAINING
|
|
value: {{ .Values.enableSpotInterruptionDraining | quote }}
|
|
- name: ENABLE_SCHEDULED_EVENT_DRAINING
|
|
value: {{ .Values.enableScheduledEventDraining | quote }}
|
|
- name: ENABLE_REBALANCE_MONITORING
|
|
value: {{ .Values.enableRebalanceMonitoring | quote }}
|
|
- name: ENABLE_REBALANCE_DRAINING
|
|
value: {{ .Values.enableRebalanceDraining | quote }}
|
|
- name: ENABLE_SQS_TERMINATION_DRAINING
|
|
value: "false"
|
|
- name: UPTIME_FROM_FILE
|
|
value: {{ .Values.procUptimeFile | quote }}
|
|
{{- with .Values.extraEnv }}
|
|
{{- toYaml . | nindent 12 }}
|
|
{{- end }}
|
|
{{- if or .Values.enablePrometheusServer .Values.enableProbesServer }}
|
|
ports:
|
|
{{- if .Values.enableProbesServer }}
|
|
- name: liveness-probe
|
|
protocol: TCP
|
|
containerPort: {{ .Values.probes.httpGet.port }}
|
|
{{- end }}
|
|
{{- if .Values.enablePrometheusServer }}
|
|
- name: http-metrics
|
|
protocol: TCP
|
|
containerPort: {{ .Values.prometheusServerPort }}
|
|
{{- end }}
|
|
{{- end }}
|
|
{{- if .Values.enableProbesServer }}
|
|
livenessProbe:
|
|
{{- toYaml .Values.probes | nindent 12 }}
|
|
{{- end }}
|
|
{{- with .Values.resources }}
|
|
resources:
|
|
{{- toYaml . | nindent 12 }}
|
|
{{- end }}
|
|
volumeMounts:
|
|
- name: uptime
|
|
mountPath: {{ .Values.procUptimeFile }}
|
|
readOnly: true
|
|
{{- if and .Values.webhookTemplateConfigMapName .Values.webhookTemplateConfigMapKey }}
|
|
- name: webhook-template
|
|
mountPath: /config/
|
|
{{- end }}
|
|
volumes:
|
|
- name: uptime
|
|
hostPath:
|
|
path: {{ .Values.procUptimeFile | default "/proc/uptime" }}
|
|
{{- if and .Values.webhookTemplateConfigMapName .Values.webhookTemplateConfigMapKey }}
|
|
- name: webhook-template
|
|
configMap:
|
|
name: {{ .Values.webhookTemplateConfigMapName }}
|
|
{{- end }}
|
|
nodeSelector:
|
|
kubernetes.io/os: linux
|
|
{{- with default .Values.daemonsetNodeSelector (default .Values.nodeSelector .Values.linuxNodeSelector) }}
|
|
{{- toYaml . | nindent 8 }}
|
|
{{- end }}
|
|
{{- if or .Values.daemonsetAffinity (or .Values.affinity .Values.linuxAffinity) }}
|
|
affinity:
|
|
{{- toYaml (default .Values.daemonsetAffinity (default .Values.affinity .Values.linuxAffinity)) | nindent 8 }}
|
|
{{- end }}
|
|
{{- if or .Values.daemonsetTolerations (or .Values.tolerations .Values.linuxTolerations) }}
|
|
tolerations:
|
|
{{- toYaml (default .Values.daemonsetTolerations (default .Values.tolerations .Values.linuxTolerations )) | nindent 8 }}
|
|
{{- end }}
|
|
{{- end -}}
|