Defining image metadata helps OKD better consume your container images, allowing OKD to create a better experience for developers using your image. For example, you can add metadata to provide helpful descriptions of your image, or offer suggestions on other images that may also be needed.
This topic only defines the metadata needed by the current set of use cases. Additional metadata or use cases may be added in the future.
You can use the
LABEL instruction in a Dockerfile to define image
metadata. Labels are similar to environment variables in that they are key value
pairs attached to an image or a container. Labels are different from environment
variable in that they are not visible to the running application and they can
also be used for fast look-up of images and containers.
To include spaces within a label value, enclose the value in quotes (
not include spaces between comma-separated values. See the Docker
documentation for more information on the
The label names should typically be namespaced. The namespace should be set accordingly to reflect the project that is going to pick up the labels and use them. For OKD the namespace should be set to io.openshift and for Kubernetes the namespace is io.k8s.
See the Docker custom metadata documentation for details about the format.
This label contains a list of tags represented as list of comma-separated string values. The tags are the way to categorize the container images into broad areas of functionality. Tags help UI and generation tools to suggest relevant container images during the application creation process.
LABEL io.openshift.tags mongodb,mongodb24,nosql
Specifies a list of tags that the generation tools and the UI might use to
provide relevant suggestions if you don’t have the container images with given tags
already. For example, if the container image wants
LABEL io.openshift.wants mongodb,redis
This label can be used to give the container image consumers more detailed information about the service or functionality this image provides. The UI can then use this description together with the container image name to provide more human friendly information to end users.
LABEL io.k8s.description "The MySQL 5.5 Server with master-slave replication support"
An image might use this variable to suggest that it does not support scaling.
The UI will then communicate this to consumers of that image. Being not-scalable
basically means that the value of
LABEL io.openshift.non-scalable true
This label suggests how much resources the container image might need in order to work properly. The UI might warn the user that deploying this container image may exceed their user quota. The values must be compatible with Kubernetes quantity.
LABEL io.openshift.min-memory 8Gi LABEL io.openshift.min-cpu 4