{{- if (semverCompare "<1.25.0-0" .Capabilities.KubeVersion.Version) }} {{- if and .Values.podSecurityPolicy.enabled (empty .Values.controller.existingPsp) -}} apiVersion: policy/v1beta1 kind: PodSecurityPolicy metadata: name: {{ include "ingress-nginx.fullname" . }} annotations: seccomp.security.alpha.kubernetes.io/allowedProfileNames: "*" labels: {{- include "ingress-nginx.labels" . | nindent 4 }} app.kubernetes.io/component: controller {{- with .Values.controller.labels }} {{- toYaml . | nindent 4 }} {{- end }} spec: privileged: false hostPID: false hostIPC: false hostNetwork: {{ .Values.controller.hostNetwork }} {{- if or .Values.controller.hostNetwork .Values.controller.hostPort.enabled }} hostPorts: {{- if .Values.controller.hostNetwork }} {{- range $key, $value := .Values.controller.containerPort }} # controller.containerPort.{{ $key }} - min: {{ $value }} max: {{ $value }} {{- end }} {{- else if .Values.controller.hostPort.enabled }} {{- range $key, $value := .Values.controller.hostPort.ports }} # controller.hostPort.ports.{{ $key }} - min: {{ $value }} max: {{ $value }} {{- end }} {{- end }} {{- if .Values.controller.metrics.enabled }} # controller.metrics.port - min: {{ .Values.controller.metrics.port }} max: {{ .Values.controller.metrics.port }} {{- end }} {{- if .Values.controller.admissionWebhooks.enabled }} # controller.admissionWebhooks.port - min: {{ .Values.controller.admissionWebhooks.port }} max: {{ .Values.controller.admissionWebhooks.port }} {{- end }} {{- range $key, $value := .Values.tcp }} # tcp.{{ $key }} - min: {{ $key }} max: {{ $key }} {{- end }} {{- range $key, $value := .Values.udp }} # udp.{{ $key }} - min: {{ $key }} max: {{ $key }} {{- end }} {{- end }} volumes: - configMap - downwardAPI - emptyDir - secret - projected fsGroup: rule: MustRunAs ranges: - min: 1 max: 65535 readOnlyRootFilesystem: false runAsUser: rule: MustRunAsNonRoot runAsGroup: rule: MustRunAs ranges: - min: 1 max: 65535 supplementalGroups: rule: MustRunAs ranges: - min: 1 max: 65535 allowPrivilegeEscalation: {{ or .Values.controller.image.allowPrivilegeEscalation .Values.controller.image.chroot }} requiredDropCapabilities: - ALL allowedCapabilities: - NET_BIND_SERVICE {{- if .Values.controller.image.chroot }} {{- if .Values.controller.image.seccompProfile }} - SYS_ADMIN {{- end }} - SYS_CHROOT {{- end }} seLinux: rule: RunAsAny {{- if .Values.controller.sysctls }} allowedUnsafeSysctls: {{- range $sysctl, $value := .Values.controller.sysctls }} - {{ $sysctl }} {{- end }} {{- end }} {{- end }} {{- end }}