2.10. ビルドでの Red Hat サブスクリプションの使用
以下のセクションを使用して、OpenShift Container Platform でエンタイトルメントが適用されたビルドを実行します。
2.10.1. Red Hat Universal Base Image へのイメージストリームタグの作成 リンクのコピーリンクがクリップボードにコピーされました!
ビルド内で Red Hat サブスクリプションを使用するには、Universal Base Image (UBI) を参照するイメージストリームを作成します。
UBI をクラスター内の すべてのプロジェクトで 利用可能にするには、イメージストリームタグを openshift namespace に追加します。それ以外の場合は、これを 特定のプロジェクトで 利用可能にするには、イメージストリームタグをそのプロジェクトに追加します。
このようにイメージストリームタグを使用すると、他のユーザーにプルシークレットを公開せずに、インストールプルシークレットの registry.redhat.io 認証情報に基づいて UBI へのアクセスを付与することができます。これは、各開発者が各プロジェクトで registry.redhat.io 認証情報を使用してプルシークレットをインストールすることが必要になる場合よりも便利です。
手順
openshiftnamespace でImageStreamTagを作成し、これを開発者に対してすべてのプロジェクトで利用可能にするには、以下を実行します。$ oc tag --source=docker registry.redhat.io/ubi8/ubi:latest ubi:latest -n openshiftヒントまたは、以下の YAML を適用して
openshiftnamespace にImageStreamTagを作成できます。apiVersion: image.openshift.io/v1 kind: ImageStream metadata: name: ubi namespace: openshift spec: tags: - from: kind: DockerImage name: registry.redhat.io/ubi8/ubi:latest name: latest referencePolicy: type: Source単一プロジェクトで
ImageStreamTagを作成するには、以下を実行します。$ oc tag --source=docker registry.redhat.io/ubi8/ubi:latest ubi:latestヒントまたは、以下の YAML を適用して単一のプロジェクトに
ImageStreamTagを作成できます。apiVersion: image.openshift.io/v1 kind: ImageStream metadata: name: ubi spec: tags: - from: kind: DockerImage name: registry.redhat.io/ubi8/ubi:latest name: latest referencePolicy: type: Source
2.10.2. ビルドシークレットとしてのサブスクリプションエンタイトルメントの追加 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat サブスクリプションを使用してコンテンツをインストールするビルドには、ビルドシークレットとしてエンタイトルメントキーを含める必要があります。
前提条件
サブスクリプションを使用して Red Hat エンタイトルメントにアクセスできる。エンタイトルメントシークレットは Insights Operator によって自動的に作成されます。
Red Hat Enterprise Linux (RHEL) 7 を使用してエンタイトルメントビルドを実行する場合、yum コマンドを実行する前に、Dockerfile に次の手順を含める必要があります。
RUN rm /etc/rhsm-host
手順
etc-pki-entitlement シークレットをビルド設定の Docker ストラテジーでビルドボリュームとして追加します。
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
2.10.3. Subscription Manager を使用したビルドの実行 リンクのコピーリンクがクリップボードにコピーされました!
2.10.3.1. Subscription Manager を使用した Docker ビルド リンクのコピーリンクがクリップボードにコピーされました!
Docker ストラテジービルドは Subscription Manager を使用してサブスクリプションコンテンツをインストールできます。
前提条件
エンタイトルメントキーは、ビルドストラテジーのボリュームとして追加する必要があります。
手順
以下を Dockerfile の例として使用し、Subscription Manager でコンテンツをインストールします。
FROM registry.redhat.io/ubi8/ubi:latest
RUN dnf search kernel-devel --showduplicates && \
dnf install -y kernel-devel
2.10.4. Red Hat Satellite サブスクリプションを使用したビルドの実行 リンクのコピーリンクがクリップボードにコピーされました!
2.10.4.1. Red Hat Satellite 設定のビルドへの追加 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Satellite を使用してコンテンツをインストールするビルドは、Satellite リポジトリーからコンテンツを取得するための適切な設定を提供する必要があります。
前提条件
Satellite インスタンスからコンテンツをダウンロードするために、
yum互換リポジトリー設定ファイルを提供するか、これを作成する必要があります。サンプルリポジトリーの設定
[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
手順
Satellite リポジトリーの設定ファイルを含む
ConfigMapを作成します。$ oc create configmap yum-repos-d --from-file /path/to/satellite.repoSatellite リポジトリー設定およびエンタイトルメントキーをビルドボリュームとして追加します。
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
2.10.4.2. Red Hat Satellite サブスクリプションを使用した Docker ビルド リンクのコピーリンクがクリップボードにコピーされました!
Docker ストラテジービルドは、Red Hat Satellite リポジトリーを使用してサブスクリプションコンテンツをインストールできます。
前提条件
- エンタイトルメントキーと Satellite リポジトリー設定がビルドボリュームとして追加しておく。
手順
以下のサンプル Dockerfile を使用して、Satellite を使用してコンテンツをインストールします。
FROM registry.redhat.io/ubi8/ubi:latest
RUN dnf search kernel-devel --showduplicates && \
dnf install -y kernel-devel