deploy/templates/deployment.yaml (123 lines of code) (raw):
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
{{- include "az-appconfig-k8s-provider.labels" . | nindent 4 }}
name: {{ include "az-appconfig-k8s-provider.fullname" . }}
spec:
{{- if not .Values.autoscaling.enabled }}
replicas: {{ .Values.replicaCount }}
{{- end }}
selector:
matchLabels:
{{- include "az-appconfig-k8s-provider.selectorLabels" . | nindent 6 }}
template:
metadata:
{{- with .Values.podAnnotations }}
annotations:
{{- toYaml . | nindent 8 }}
{{- end }}
labels:
{{- include "az-appconfig-k8s-provider.selectorLabels" . | nindent 8 }}
spec:
{{- if .Values.nodeSelector }}
nodeSelector:
{{- toYaml .Values.nodeSelector | nindent 8 }}
{{- end }}
affinity:
{{- if .Values.affinity }}
{{- toYaml .Values.affinity | nindent 8 }}
{{- else }}
nodeAffinity:
preferredDuringSchedulingIgnoredDuringExecution:
- weight: 100
preference:
matchExpressions:
- key: kubernetes.azure.com/mode
operator: In
values:
- system
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/os
operator: NotIn
values:
- windows
- key: type
operator: NotIn
values:
- virtual-kubelet
{{- end }}
tolerations:
{{- if .Values.tolerations }}
{{- toYaml .Values.tolerations | nindent 6 }}
{{- else }}
- key: "CriticalAddonsOnly"
operator: "Exists"
{{- end }}
containers:
- args:
- --leader-elect
{{- if .Values.logVerbosity }}
- -v={{ .Values.logVerbosity }}
{{- end }}
command:
- /manager
image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}"
imagePullPolicy: {{ .Values.image.pullPolicy }}
env:
{{- if .Values.env.azureClientId }}
- name: AZURE_CLIENT_ID
value: {{ .Values.env.azureClientId }}
{{- end }}
{{- if .Values.env.azureTenantId }}
- name: AZURE_TENANT_ID
value: {{ .Values.env.azureTenantId }}
{{- end }}
- name: WORKLOAD_IDENTITY_ENABLED
value: "{{ .Values.workloadIdentity.enabled }}"
- name: WORKLOAD_IDENTITY_GLOBAL_SERVICE_ACCOUNT_ENABLED
value: "{{ .Values.workloadIdentity.globalServiceAccountEnabled }}"
{{- if and (hasKey .Values "global")
(hasKey .Values.global "azure")
(hasKey .Values.global.azure "extension")
(hasKey .Values.global.azure.extension "name") }}
- name: AZURE_EXTENSION_CONTEXT
value: UseExtension
{{- end }}
- name: REQUEST_TRACING_ENABLED
value: "{{ .Values.requestTracing.enabled }}"
livenessProbe:
httpGet:
path: /healthz
port: 8081
initialDelaySeconds: 15
periodSeconds: 20
name: manager
readinessProbe:
httpGet:
path: /readyz
port: 8081
initialDelaySeconds: 5
periodSeconds: 10
resources:
{{- toYaml .Values.resources | nindent 10 }}
securityContext:
{{- toYaml .Values.securityContext | nindent 10 }}
volumeMounts:
- mountPath: /controller_manager_config.yaml
name: manager-config
subPath: controller_manager_config.yaml
securityContext:
{{- toYaml .Values.podSecurityContext | nindent 8 }}
serviceAccountName: {{ include "az-appconfig-k8s-provider.serviceAccountName" . }} # appconfig-controller-manager
{{- with .Values.imagePullSecrets }}
imagePullSecrets:
{{- toYaml . | nindent 8 }}
{{- end }}
terminationGracePeriodSeconds: 10
volumes:
- configMap:
name: {{ .Values.configMap.name }}
name: manager-config