{{- $name := "disallow-selinux" }} {{- if eq (include "kyverno-policies.podSecurityBaseline" (merge (dict "name" $name) .)) "true" }} apiVersion: kyverno.io/v1 kind: ClusterPolicy metadata: name: {{ $name }} annotations: policies.kyverno.io/title: Disallow SELinux policies.kyverno.io/category: Pod Security Standards (Default) {{- if .Values.podSecuritySeverity }} policies.kyverno.io/severity: {{ .Values.podSecuritySeverity | quote }} {{- end }} policies.kyverno.io/description: >- SELinux options can be used to escalate privileges and should not be allowed. labels: {{ include "kyverno-policies.labels" . | nindent 4 }} app: kyverno spec: validationFailureAction: {{ .Values.validationFailureAction }} background: true rules: - name: seLinux match: resources: kinds: - Pod validate: message: >- Setting custom SELinux options is disallowed. The fields spec.securityContext.seLinuxOptions, spec.containers[*].securityContext.seLinuxOptions, and spec.initContainers[*].securityContext.seLinuxOptions must be empty. pattern: spec: =(securityContext): X(seLinuxOptions): "null" =(initContainers): - =(securityContext): X(seLinuxOptions): "null" containers: - =(securityContext): X(seLinuxOptions): "null" {{- end -}}