All Policies

Restrict Deprecated Registry in CEL expressions

Legacy k8s.gcr.io container image registry will be frozen in early April 2023 k8s.gcr.io image registry will be frozen from the 3rd of April 2023. Images for Kubernetes 1.27 will not be available in the k8s.gcr.io image registry. Please read our announcement for more details. https://kubernetes.io/blog/2023/02/06/k8s-gcr-io-freeze-announcement/

Policy Definition

/other-cel/restrict-deprecated-registry/restrict-deprecated-registry.yaml

 1apiVersion: kyverno.io/v1
 2kind: ClusterPolicy
 3metadata:
 4  name: restrict-deprecated-registry
 5  annotations:
 6    policies.kyverno.io/title: Restrict Deprecated Registry in CEL expressions
 7    policies.kyverno.io/category: Best Practices, EKS Best Practices in CEL 
 8    policies.kyverno.io/severity: high
 9    policies.kyverno.io/minversion: 1.11.0
10    kyverno.io/kubernetes-version: "1.27-1.28"
11    policies.kyverno.io/subject: Pod
12    policies.kyverno.io/description: >-
13      Legacy k8s.gcr.io container image registry will be frozen in early April 2023
14      k8s.gcr.io image registry will be frozen from the 3rd of April 2023.  
15      Images for Kubernetes 1.27 will not be available in the k8s.gcr.io image registry.
16      Please read our announcement for more details.
17      https://kubernetes.io/blog/2023/02/06/k8s-gcr-io-freeze-announcement/     
18spec:
19  validationFailureAction: Enforce
20  background: true
21  rules:
22  - name: restrict-deprecated-registry
23    match:
24      any:
25      - resources:
26          kinds:
27          - Pod
28          operations:
29          - CREATE
30          - UPDATE
31    validate:
32      cel:
33        variables:
34          - name: allContainers
35            expression: "object.spec.containers + object.spec.?initContainers.orValue([]) + object.spec.?ephemeralContainers.orValue([])"
36        expressions:
37          - expression: "variables.allContainers.all(container, !container.image.startsWith('k8s.gcr.io/'))"
38            message: "The \"k8s.gcr.io\" image registry is deprecated. \"registry.k8s.io\" should now be used."
39