4.3. OpenShift Container Platform クラスターへのイメージのプッシュ

前提条件

  • RHEL マシンから OpenShift Container Platform クラスターへのアクセス。

    1. RHEL マシンから、イメージをクラスターレジストリーにプッシュします。

      $ podman push <cluster-domain>:<registry-port>/iib:my-operator-iib
    2. ミラーリングプロセスに必要な 3 つのファイルを作成します。

      $ /usr/local/bin/oc adm catalog mirror  \
        <cluster-domain>:<registry-port>/iib:my-operator-iib \
        <cluster-domain>:<registry-port> \
        -a /home/customer-user/.docker/config.json \
        --insecure=true \
        --registry-config /home/customer-user/.docker/config.json \
        --index-filter-by-os=linux/amd64 \
        --manifests-only
    3. 次のファイルが存在することを確認します。

      • catalogSource.yaml - catalogSource を記述する YAML ファイル。
      • imageContentSourcePolicy.yaml - 内部レジストリーのイメージを RedHat レジストリーからのアドレスにマップする YAML ファイル。
      • mapping.txt - イメージの内部レジストリーへのミラーリングプロセスを駆動するテキストファイル。
    4. mapping.txt を編集して、ミラーリングするイメージのみを一覧表示します。

      ファイルの形式は次のとおりです。

      [ Operator address on RedHat registry : Operator SHA ] = [ Operator address on internal mirror registry : tag ]

      mapping.txt ファイルの例:

      registry.redhat.io/amq7/amq-interconnect@sha256:6101cc735e4d19cd67c6d80895c425ecf6f1d2604d88f999fa0cae57a7d6abaf=<cluster-domain>:<registry-port>/amq7-amq-interconnect:f793b0cc
      registry.redhat.io/amq7/amq-interconnect-operator@sha256:8dd53290c909589590b88a1544d854b4ad9f8b4a639189597c0a59579bc60c40=<cluster-domain>:<registry-port>/amq7-amq-interconnect-operator:73c142ff
      registry.redhat.io/amq7/amq-interconnect-operator-metadata@sha256:799ce48905d5d2a91b42e2a7943ce9b756aa9da80f6924be06b2a6275ac90214=<cluster-domain>:<registry-port>/amq7-amq-interconnect-operator-metadata:14cc4a4e
    5. 必須イメージのミラーリング

      $ /usr/local/bin/oc image mirror \
        -f mapping-ic.yaml \
        -a /home/customer-user/.docker/config.json \
        --insecure=true \
        --registry-config /home/customer-user/.docker/config.json \
        --keep-manifest-list=true
    6. ImageContentSourcePolicy (ICSP) 名を設定します。

      imageContentSourcePolicy.yaml ファイルの name フィールドを設定します (例: my-operator-icsp)。

      ICSP スニペットの例:

      ---
      apiVersion: operator.openshift.io/v1alpha1
      kind: ImageContentSourcePolicy
      metadata:
          labels:
              operators.openshift.org/catalog: "true"
          name: my-operator-icsp
      spec:
          repositoryDigestMirrors:
          - mirrors:
              - <cluster-domain>:<registry-port>/amq7-amq-interconnect-operator
              source: registry.redhat.io/amq7/amq-interconnect-operator
    7. ポリシー (ICSP) ファイルを適用します。

      $ /usr/local/bin/oc create -f imageContentSourcePolicy.yaml

      このファイルを適用すると、すべてのクラスターノードが自動的にリセットされます。oc get nodes を使用するか、OpenShift コンソールで Compute → Nodes に移動して、ノードのステータスを確認できます。

      注記

      続行する前に、すべてのノードが Ready 状態であることを確認してください。

    8. catalogSource 名を設定します。

      catalogSource.yaml ファイルの name フィールドを設定します (例: my-operator-catalog の)。

      catalogSource.yaml ファイルの例:

      apiVersion: operators.coreos.com/v1alpha1
      kind: CatalogSource
      metadata:
        name: iib
        namespace: openshift-marketplace
      spec:
        image: <cluster-domain>:<registry-port>/iib:my-operator-iib
        sourceType: grpc
    9. カタログソース設定を適用して、Red Hat Integration - AMQ Interconnect Operator のインストールを完了します。

      $ /usr/local/bin/oc apply -f catalogSource.yaml
    10. 「内部ルーターデプロイメントの作成」 の説明に従ってルーターを展開して、インストールが機能していることを確認します。