$ oc tag --source=docker registry.redhat.io/ubi8/ubi:latest ubi:latest -n openshift
Use the following sections to run entitled builds on OpenShift Container Platform.
To use Red Hat subscriptions within a build, you create an image stream tag to reference the Universal Base Image (UBI).
To make the UBI available in every project in the cluster, you add the image stream tag to the openshift
namespace. Otherwise, to make it available in a specific project, you add the image stream tag to that project.
The benefit of using image stream tags this way is that doing so grants access to the UBI based on the registry.redhat.io
credentials in the install pull secret without exposing the pull secret to other users. This is more convenient than requiring each developer to install pull secrets with registry.redhat.io
credentials in each project.
To create an ImageStreamTag
in the openshift
namespace, so it is available to developers in all projects, enter:
$ oc tag --source=docker registry.redhat.io/ubi8/ubi:latest ubi:latest -n openshift
You can alternatively apply the following YAML to create an
|
To create an ImageStreamTag
in a single project, enter:
$ oc tag --source=docker registry.redhat.io/ubi8/ubi:latest ubi:latest
You can alternatively apply the following YAML to create an
|
Builds that use Red Hat subscriptions to install content must include the entitlement keys as a build secret.
You must have access to Red Hat entitlements through your subscription. The entitlement secret is automatically created by the Insights Operator.
When you perform an Entitlement Build using Red Hat Enterprise Linux (RHEL) 7, you must have the following instructions in your Dockerfile before you run any
|
Add the etc-pki-entitlement secret as a build volume in the build configuration’s Docker strategy:
strategy:
dockerStrategy:
from:
kind: ImageStreamTag
name: ubi:latest
volumes:
- name: etc-pki-entitlement
mounts:
- destinationPath: /etc/pki/entitlement
source:
type: Secret
secret:
secretName: etc-pki-entitlement
Docker strategy builds can use the Subscription Manager to install subscription content.
The entitlement keys must be added as build strategy volumes.
Use the following as an example Dockerfile to install content with the Subscription Manager:
FROM registry.redhat.io/ubi8/ubi:latest
RUN dnf search kernel-devel --showduplicates && \
dnf install -y kernel-devel
Builds that use Red Hat Satellite to install content must provide appropriate configurations to obtain content from Satellite repositories.
You must provide or create a yum
-compatible repository configuration file that downloads content from your Satellite instance.
[test-<name>]
name=test-<number>
baseurl = https://satellite.../content/dist/rhel/server/7/7Server/x86_64/os
enabled=1
gpgcheck=0
sslverify=0
sslclientkey = /etc/pki/entitlement/...-key.pem
sslclientcert = /etc/pki/entitlement/....pem
Create a ConfigMap
containing the Satellite repository configuration file:
$ oc create configmap yum-repos-d --from-file /path/to/satellite.repo
Add the Satellite repository configuration and entitlement key as a build volumes:
strategy:
dockerStrategy:
from:
kind: ImageStreamTag
name: ubi:latest
volumes:
- name: yum-repos-d
mounts:
- destinationPath: /etc/yum.repos.d
source:
type: ConfigMap
configMap:
name: yum-repos-d
- name: etc-pki-entitlement
mounts:
- destinationPath: /etc/pki/entitlement
source:
type: Secret
secret:
secretName: etc-pki-entitlement
Docker strategy builds can use Red Hat Satellite repositories to install subscription content.
You have added the entitlement keys and Satellite repository configurations as build volumes.
Use the following as an example Dockerfile to install content with Satellite:
FROM registry.redhat.io/ubi8/ubi:latest
RUN dnf search kernel-devel --showduplicates && \
dnf install -y kernel-devel