{{- if and .Values.podSecurityPolicy.enabled (empty .Values.controller.existingPsp) -}} apiVersion: policy/v1beta1 kind: PodSecurityPolicy metadata: name: {{ include "ingress-nginx.fullname" . }} labels: {{- include "ingress-nginx.labels" . | nindent 4 }} app.kubernetes.io/component: controller {{- with .Values.controller.labels }} {{- toYaml . | nindent 4 }} {{- end }} spec: allowedCapabilities: - NET_BIND_SERVICE {{- if .Values.controller.sysctls }} allowedUnsafeSysctls: {{- range $sysctl, $value := .Values.controller.sysctls }} - {{ $sysctl }} {{- end }} {{- end }} privileged: false allowPrivilegeEscalation: true # Allow core volume types. volumes: - 'configMap' - 'emptyDir' #- 'projected' - 'secret' #- 'downwardAPI' {{- if .Values.controller.hostNetwork }} hostNetwork: {{ .Values.controller.hostNetwork }} {{- end }} {{- if or .Values.controller.hostNetwork .Values.controller.hostPort.enabled }} hostPorts: {{- if .Values.controller.hostNetwork }} {{- range $key, $value := .Values.controller.containerPort }} # {{ $key }} - min: {{ $value }} max: {{ $value }} {{- end }} {{- else if .Values.controller.hostPort.enabled }} {{- range $key, $value := .Values.controller.hostPort.ports }} # {{ $key }} - min: {{ $value }} max: {{ $value }} {{- end }} {{- end }} {{- if .Values.controller.metrics.enabled }} # metrics - min: {{ .Values.controller.metrics.port }} max: {{ .Values.controller.metrics.port }} {{- end }} {{- if .Values.controller.admissionWebhooks.enabled }} # admission webhooks - min: {{ .Values.controller.admissionWebhooks.port }} max: {{ .Values.controller.admissionWebhooks.port }} {{- end }} {{- range $key, $value := .Values.tcp }} # {{ $key }}-tcp - min: {{ $key }} max: {{ $key }} {{- end }} {{- range $key, $value := .Values.udp }} # {{ $key }}-udp - min: {{ $key }} max: {{ $key }} {{- end }} {{- end }} hostIPC: false hostPID: false runAsUser: # Require the container to run without root privileges. rule: 'MustRunAsNonRoot' supplementalGroups: rule: 'MustRunAs' ranges: # Forbid adding the root group. - min: 1 max: 65535 fsGroup: rule: 'MustRunAs' ranges: # Forbid adding the root group. - min: 1 max: 65535 readOnlyRootFilesystem: false seLinux: rule: 'RunAsAny' {{- end }}