This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.Chapter 8. Image Policy
8.1. Overview Copy linkLink copied to clipboard!
You can control which images are allowed to run on your cluster using the ImagePolicy admission plug-in (currently considered beta). It allows you to control:
- The source of images: which registries can be used to pull images
- Image resolution: force pods to run with immutable digests to ensure the image does not change due to a re-tag
- Container image label restrictions: force an image to have or not have particular labels
- Image annotation restrictions: force an image in the integrated container registry to have or not have particular annotations
8.2. Configuring the ImagePolicy Admission Plug-in Copy linkLink copied to clipboard!
To enable this feature, configure the plug-in in master-config.yaml
:
Example 8.1. Annotated Example File
- 1
- Try to resolve images to an immutable image digest and update the image pull specification in the pod.
- 2
- Array of rules to evaluate against incoming resources. If you only have reject==true rules, the default is allow all. If you have any accept rule, the default is deny all.
- 3
- Indicates which resources to enforce rules upon. If nothing is specified, the default is pods.
- 4
- Indicates that if this rule matches, the pod should be rejected.
- 5
- List of annotations to match on the image object’s metadata.
- 6
- If you are not able to resolve the image, do not fail the pod.
8.3. Testing the ImagePolicy Admission Plug-in Copy linkLink copied to clipboard!
Use the
openshift/image-policy-check
to test your configuration.For example, use the information above, then test like this:
oc import-image openshift/image-policy-check:latest --confirm
oc import-image openshift/image-policy-check:latest --confirm
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Create a pod using this YAML. The pod should be created.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Create another pod pointing to a different registry. The pod should be rejected.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Create a pod pointing to the internal registry using the imported image. The pod should be created and if you look at the image specification, you should see a digest in place of the tag.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Create a pod pointing to the internal registry using the imported image. The pod should be created and if you look at the image specification, you should see the tag unmodified.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Get the digest from
oc get istag/image-policy-check:latest
and use it foroc annotate images/<digest> images.openshift.io/deny-execution=true
. For example:oc annotate images/sha256:09ce3d8b5b63595ffca6636c7daefb1a615a7c0e3f8ea68e5db044a9340d6ba8 images.openshift.io/deny-execution=true
$ oc annotate images/sha256:09ce3d8b5b63595ffca6636c7daefb1a615a7c0e3f8ea68e5db044a9340d6ba8 images.openshift.io/deny-execution=true
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Create this pod again, and you should see the pod rejected:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow