charts/csi-secrets-store-provider-azure/templates/provider-azure-installer.yaml (145 lines of code) (raw):
{{- if .Values.linux.enabled}}
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: {{ template "sscdpa.fullname" . }}
namespace: {{ .Release.Namespace }}
{{ include "sscdpa.labels" . | indent 2 }}
spec:
updateStrategy:
{{ toYaml .Values.linux.updateStrategy | indent 4 }}
selector:
matchLabels:
app: {{ template "sscdpa.name" . }}
template:
metadata:
{{ include "sscdpa.labels" . | indent 6 }}
{{- if .Values.linux.podLabels }}
{{- toYaml .Values.linux.podLabels | nindent 8 }}
{{- end }}
{{- if or .Values.linux.podAnnotations .Values.enableArcExtension }}
annotations:
{{- if .Values.linux.podAnnotations}}
{{- toYaml .Values.linux.podAnnotations | nindent 8 }}
{{- end }}
{{- if .Values.enableArcExtension }}
{{- if .Values.arc.enableMonitoring }}
prometheus.io/scrape: "true"
prometheus.io/port: "{{ .Values.metricsAddr }}"
{{- end }}
{{- end }}
# this will ensure pods are rolled in next helm upgrade if cert files are updated.
{{- if .Values.enableArcExtension }}
{{- if .Values.Azure.proxySettings.isProxyEnabled }}
checksum/arc-proxy-config: {{ include (print $.Template.BasePath "/arc-proxy-secret.yaml") . | sha256sum }}
{{- end }}
{{- end }}
{{- end }}
spec:
{{- if .Values.imagePullSecrets }}
imagePullSecrets:
{{ toYaml .Values.imagePullSecrets | indent 8 }}
{{- end }}
serviceAccountName: csi-secrets-store-provider-azure
hostNetwork: true
{{- if .Values.linux.dnsPolicy }}
dnsPolicy: {{ .Values.linux.dnsPolicy }}
{{- end }}
containers:
- name: provider-azure-installer
image: "{{ .Values.linux.image.repository }}:{{ .Values.linux.image.tag }}"
imagePullPolicy: {{ .Values.linux.image.pullPolicy }}
args:
- --endpoint=unix:///provider/azure.sock
{{- if .Values.logFormatJSON }}
- --log-format-json={{ .Values.logFormatJSON }}
{{- end }}
{{- if .Values.logVerbosity }}
- -v={{ .Values.logVerbosity }}
{{- end }}
{{- if .Values.constructPEMChain }}
- --construct-pem-chain={{ .Values.constructPEMChain }}
{{- end }}
{{- if .Values.linux.customUserAgent }}
- --custom-user-agent={{ .Values.linux.customUserAgent }}
{{- end }}
- --healthz-port={{ .Values.linux.healthzPort }}
- --healthz-path={{ .Values.linux.healthzPath }}
- --healthz-timeout={{ .Values.linux.healthzTimeout }}
{{- if .Values.writeCertAndKeyInSeparateFiles }}
- --write-cert-and-key-in-separate-files={{ .Values.writeCertAndKeyInSeparateFiles }}
{{- end }}
livenessProbe:
httpGet:
path: {{ .Values.linux.healthzPath }}
port: {{ .Values.linux.healthzPort }}
failureThreshold: 3
initialDelaySeconds: 5
timeoutSeconds: 10
periodSeconds: 30
resources:
{{ toYaml .Values.linux.resources | indent 12 }}
ports:
- containerPort: {{ .Values.metricsAddr }}
name: metrics
protocol: TCP
securityContext:
{{- if not .Values.linux.privileged }}
allowPrivilegeEscalation: false
{{- end }}
readOnlyRootFilesystem: true
runAsUser: 0
capabilities:
drop:
- ALL
{{- if .Values.linux.privileged }}
privileged: true
{{- end }}
{{- if .Values.enableArcExtension }}
{{- if .Values.Azure.proxySettings.isProxyEnabled }}
envFrom:
- secretRef:
name: arc-proxy-config
{{- end }}
{{- end }}
volumeMounts:
- name: provider-vol
mountPath: /provider
{{- if .Values.linux.volumeMounts }}
{{- toYaml .Values.linux.volumeMounts | nindent 12 }}
{{- end}}
{{- if .Values.enableArcExtension }}
{{- if and .Values.Azure.proxySettings.isProxyEnabled .Values.Azure.proxySettings.proxyCert }}
- mountPath: /etc/ssl/certs/proxy-cert.crt
subPath: proxy-cert.crt
name: proxy-certstore
{{- end }}
{{- end }}
affinity:
{{ toYaml .Values.linux.affinity | indent 8 }}
{{- if .Values.linux.priorityClassName }}
priorityClassName: {{ .Values.linux.priorityClassName | quote }}
{{- end }}
volumes:
- name: provider-vol
hostPath:
path: {{ .Values.linux.providersDir }}
{{- if .Values.linux.volumes }}
{{- toYaml .Values.linux.volumes | nindent 8 }}
{{- end}}
{{- if .Values.enableArcExtension }}
{{- if and .Values.Azure.proxySettings.isProxyEnabled .Values.Azure.proxySettings.proxyCert }}
- name: proxy-certstore
secret:
secretName: arc-proxy-cert
{{- end }}
{{- end }}
nodeSelector:
kubernetes.io/os: linux
{{- if .Values.linux.nodeSelector }}
{{- toYaml .Values.linux.nodeSelector | nindent 8 }}
{{- end }}
{{- with .Values.linux.tolerations }}
tolerations:
{{ toYaml . | indent 8 }}
{{- end }}
{{- end -}}