All Policies

Restrict runtimeClass

The runtimeClass field of a Pod spec defines which container engine runtime should be used. In the previous Pod Security Policy controller, defining restrictions on which classes were allowed was permitted. Limiting runtime classes to only those which have been defined can prevent unintended running states or Pods which may not come online. This policy restricts the runtimeClass field to the values `prodclass` or `expclass`.

Policy Definition

/psp-migration/restrict-runtimeClassName/restrict-runtimeClassName.yaml

 1apiVersion: kyverno.io/v1
 2kind: ClusterPolicy
 3metadata:
 4  name: restrict-runtimeclass
 5  annotations:
 6    policies.kyverno.io/title: Restrict runtimeClass
 7    policies.kyverno.io/category: PSP Migration
 8    policies.kyverno.io/subject: Pod
 9    kyverno.io/kyverno-version: 1.10.0
10    kyverno.io/kubernetes-version: "1.24"
11    pod-policies.kyverno.io/autogen-controllers: none
12    policies.kyverno.io/description: >-
13      The runtimeClass field of a Pod spec defines which container engine runtime should be used.
14      In the previous Pod Security Policy controller, defining restrictions on which classes were allowed
15      was permitted. Limiting runtime classes to only those which have been defined can prevent
16      unintended running states or Pods which may not come online. This policy restricts the runtimeClass
17      field to the values `prodclass` or `expclass`.
18spec:
19  validationFailureAction: Enforce
20  background: false
21  rules:
22  - name: prodclass-or-expclass
23    match:
24      any:
25      - resources:
26          kinds:
27          - Pod
28    preconditions:
29      all:
30      - key: "{{request.operation || 'BACKGROUND'}}"
31        operator: Equals
32        value: CREATE
33    validate:
34      message: Only the runtime classes prodclass or expclass may be used.
35      pattern:
36        =(spec):
37          =(runtimeClassName): "prodclass | expclass"