3.5.2.3. odo init イメージを内部レジストリーに直接プッシュする

クラスターでイメージを内部レジストリーに直接プッシュできるようにする場合、以下のように odo init イメージをレジストリーにプッシュします。

3.5.2.3.1. init イメージを Linux 上で直接プッシュする

手順

  1. デフォルトのルートを有効にします。

    $ oc patch configs.imageregistry.operator.openshift.io cluster -p '{"spec":{"defaultRoute":true}}' --type='merge' -n openshift-image-registry
  2. ワイルドカードルート CA を取得します。

    $ oc get secret router-certs-default -n openshift-ingress -o yaml

    出力例

    apiVersion: v1
    data:
      tls.crt: **************************
      tls.key: ##################
    kind: Secret
    metadata:
      [...]
    type: kubernetes.io/tls

  3. base64 を使用してミラーレジストリーのルート認証局 (CA) コンテンツをエンコードします。

    $ echo <tls.crt> | base64 --decode > ca.crt
  4. クライアントプラットフォームで CA を信頼します。

    $ sudo cp ca.crt  /etc/pki/ca-trust/source/anchors/externalroute.crt && sudo update-ca-trust enable && sudo systemctl daemon-reload && sudo systemctl restart docker
  5. 内部レジストリにログインします。

    $ oc get route -n openshift-image-registry
    NAME       HOST/PORT    PATH   SERVICES     PORT  TERMINATION   WILDCARD
    default-route   <registry_path>          image-registry   <all>   reencrypt     None
    
    $ docker login <registry_path> -u kubeadmin -p $(oc whoami -t)
  6. odo init イメージをプッシュします。

    $ docker pull registry.access.redhat.com/openshiftdo/odo-init-image-rhel7:<tag>
    
    $ docker tag registry.access.redhat.com/openshiftdo/odo-init-image-rhel7:<tag> <registry_path>/openshiftdo/odo-init-image-rhel7:<tag>
    
    $ docker push <registry_path>/openshiftdo/odo-init-image-rhel7:<tag>
  7. ODO_BOOTSTRAPPER_IMAGE 環境変数を設定してデフォルトの odo init イメージパスを上書きします。

    $ export ODO_BOOTSTRAPPER_IMAGE=<registry_path>/openshiftdo/odo-init-image-rhel7:1.0.1