$ oc set image-lookup mysql
Image streams, being OKD native resources, work with all native resources available in OKD, such as Build or DeploymentConfigs resources. It is also possible to make them work with native Kubernetes resources, such as Job, ReplicationController, ReplicaSet or Kubernetes Deployment resources.
When using Kubernetes resources, you must reference image streams located within the same project by specifying a single segment value, such as ruby:2.5, which identifies the image stream name and its tag. This ensures the resource correctly targets the local image stream within its scope.
|
Do not run workloads in or share access to default projects. Default projects are reserved for running core cluster components. The following default projects are considered highly privileged: |
There are two ways to enable image streams with Kubernetes resources:
Enabling image stream resolution on a specific resource. This allows only this resource to use the image stream name in the image field.
Enabling image stream resolution on an image stream. This allows all resources pointing to this image stream to use it in the image field.
You can use oc set image-lookup to enable image stream resolution on a specific resource or image stream resolution on an image stream.
To allow all resources to reference the image stream named mysql, enter the following command:
$ oc set image-lookup mysql
This sets the Imagestream.spec.lookupPolicy.local field to true.
apiVersion: image.openshift.io/v1
kind: ImageStream
metadata:
annotations:
openshift.io/display-name: mysql
name: mysql
namespace: myproject
spec:
lookupPolicy:
local: true
When enabled, the behavior is enabled for all tags within the image stream.
Then you can query the image streams and see if the option is set:
$ oc set image-lookup imagestream --list
Optional: You can enable image lookup on a specific resource.
To allow the Kubernetes deployment named mysql to use image streams, run the following command:
$ oc set image-lookup deploy/mysql
This sets the alpha.image.policy.openshift.io/resolve-names annotation
on the deployment.
apiVersion: apps/v1
kind: Deployment
metadata:
name: mysql
namespace: myproject
spec:
replicas: 1
template:
metadata:
annotations:
alpha.image.policy.openshift.io/resolve-names: '*'
spec:
containers:
- image: mysql:latest
imagePullPolicy: Always
name: mysql
Optional: To disable image lookup, pass --enabled=false:
$ oc set image-lookup deploy/mysql --enabled=false