apiVersion: apps/v1 kind: Deployment metadata: labels: app: '{{ template "gatekeeper.name" . }}' chart: '{{ template "gatekeeper.name" . }}' control-plane: controller-manager gatekeeper.sh/operation: webhook gatekeeper.sh/system: "yes" heritage: '{{ .Release.Service }}' release: '{{ .Release.Name }}' name: gatekeeper-controller-manager namespace: '{{ .Release.Namespace }}' spec: replicas: {{ .Values.replicas }} selector: matchLabels: app: '{{ template "gatekeeper.name" . }}' chart: '{{ template "gatekeeper.name" . }}' control-plane: controller-manager gatekeeper.sh/operation: webhook gatekeeper.sh/system: "yes" heritage: '{{ .Release.Service }}' release: '{{ .Release.Name }}' template: metadata: annotations: {{- toYaml .Values.podAnnotations | trim | nindent 8 }} labels: {{- include "gatekeeper.podLabels" . }} app: '{{ template "gatekeeper.name" . }}' chart: '{{ template "gatekeeper.name" . }}' control-plane: controller-manager gatekeeper.sh/operation: webhook gatekeeper.sh/system: "yes" heritage: '{{ .Release.Service }}' release: '{{ .Release.Name }}' spec: affinity: {{- toYaml .Values.controllerManager.affinity | nindent 8 }} automountServiceAccountToken: true containers: - args: - --port=8443 - --logtostderr - --log-denies={{ .Values.logDenies }} - --emit-admission-events={{ .Values.emitAdmissionEvents }} - --log-level={{ .Values.logLevel }} - --exempt-namespace={{ .Release.Namespace }} - --operation=webhook - --enable-mutation={{ .Values.experimentalEnableMutation}} {{- range .Values.disabledBuiltins}} - --disable-opa-builtin={{ . }} {{- end }} command: - /manager env: - name: POD_NAMESPACE valueFrom: fieldRef: apiVersion: v1 fieldPath: metadata.namespace - name: POD_NAME valueFrom: fieldRef: fieldPath: metadata.name image: '{{ template "system_default_registry" . }}{{ .Values.image.repository }}:{{ .Values.image.tag }}' imagePullPolicy: '{{ .Values.image.pullPolicy }}' livenessProbe: httpGet: path: /healthz port: 9090 name: manager ports: - containerPort: 8443 name: webhook-server protocol: TCP - containerPort: 8888 name: metrics protocol: TCP - containerPort: 9090 name: healthz protocol: TCP readinessProbe: httpGet: path: /readyz port: 9090 resources: {{- toYaml .Values.controllerManager.resources | nindent 10 }} securityContext: allowPrivilegeEscalation: false capabilities: drop: - all readOnlyRootFilesystem: true runAsGroup: 999 runAsNonRoot: true runAsUser: 1000 volumeMounts: - mountPath: /certs name: cert readOnly: true hostNetwork: {{ .Values.controllerManager.hostNetwork }} imagePullSecrets: {{- toYaml .Values.image.pullSecrets | nindent 8 }} nodeSelector: {{- toYaml .Values.controllerManager.nodeSelector | nindent 8 }} priorityClassName: {{ .Values.controllerManager.priorityClassName }} serviceAccountName: gatekeeper-admin terminationGracePeriodSeconds: 60 tolerations: {{- toYaml .Values.controllerManager.tolerations | nindent 8 }} volumes: - name: cert secret: defaultMode: 420 secretName: gatekeeper-webhook-server-cert