3.2.8. リモートクラスターの使用
APB の開発において、開発者が apb ツールが提供する完全な開発ライフサイクルを使用できない状態になるいくつかの要因があります。これらの主な要因には、以下が含まれます。
- リモートホストにある OpenShift Container Platform クラスターに対して開発を行っている。
- docker デーモンへのアクセスがないマシンで APB を開発している。
開発者が上記のいずれかの条件を満たす場合は、以下のワークフローを使用してイメージを内部 OpenShift Container Platform レジストリーに公開し、ブローカーがイメージのブートストラップ (APB 仕様をブローカーに読み込むプロセス) を実行できるようにします。以下のセクションでは、apb ツールを使用する場合と使用しない場合にこれらの手順を実行する方法について説明しています。
3.2.8.1. APB のプッシュ リンクのコピーリンクがクリップボードにコピーされました!
リモートの OpenShift Container Platform クラスターを使って apb push コマンドを使用するには、以下を実行します。
base64 エンコードされた APB 仕様が Dockerfile のラベルであることを確認します。これは、通常は
apb prepareコマンドを使用して実行できます。apbツールがインストールされていない場合は、以下を実行できます。cat apb.yml | base64
$ cat apb.yml | base64Copy to Clipboard Copied! Toggle word wrap Toggle overflow base64 エンコードされた apb.yml を返します。 これは、以下のように Dockerfile の
LABEL "com.redhat.apb.spec"の下にコピーアンドペーストできます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 内部 OpenShift Container Platform レジストリーにビルドされた APB イメージを設定します。
通常、これは
apb pushコマンドで処理されます。dockerCLI を使用せずにイメージをビルドするには、OpenShift Container Platform の S2I 機能を利用することができます。デフォルトで、OAB は openshift プロジェクトで公開済みの APB を検索するように設定されます。このプロジェクトは、クラスターのすべての認証ユーザーが利用できるようにイメージとイメージストリームを公開するグローバル namespace です。イメージをビルドするために openshift プロジェクトで
oc new-appコマンドを使用して、この利点を活用できます。oc new-app <path_to_bundle_source> \ --name <bundle_name> \ -n openshift$ oc new-app <path_to_bundle_source> \ --name <bundle_name> \ -n openshiftCopy to Clipboard Copied! Toggle word wrap Toggle overflow 2 分ほど経過したら、イメージが内部レジストリーに表示されるはずです。
oc get images | grep <bundle_name>
$ oc get images | grep <bundle_name> sha256:b2dcb4b95e178e9b7ac73e5ee0211080c10b24260f76cfec30b89e74e8ee6742 172.30.1.1:5000/openshift/<bundle_name>@sha256:b2dcb4b95e178e9b7ac73e5ee0211080c10b24260f76cfec30b89e74e8ee6742Copy to Clipboard Copied! Toggle word wrap Toggle overflow OAB をブートストラップします。通常、これも
apb pushまたはapb bootstrapコマンドで処理されます。apb bootstrapコマンドは 5 分から 10 分の待機時間なしにサービスカタログを再度一覧表示するため、このコマンドをこの手順で使用するのが適しています。apbツールがインストールされていない場合、代わりに以下を実行できます。ブローカーのルート名を取得します。
oc get route -n openshift-ansible-service-broker
$ oc get route -n openshift-ansible-service-broker NAME HOST/PORT PATH SERVICES PORT TERMINATION WILDCARD asb-1338 asb-1338-openshift-ansible-service-broker.172.17.0.1.nip.io asb port-1338 reencrypt NoneCopy to Clipboard Copied! Toggle word wrap Toggle overflow ブローカーのサポートされているパスの一覧を取得します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- このパスは
v2/bootstrapおよびv2/catalogパスを指定します。
直前の手順で検出される値を使用し、
v2/bootstrapパスに対して curl を実行します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 直前の手順で検出される値と異なる場合には、
ansible-service-brokerを置き換えます。
注記oc whoami -tコマンドはトークンを返し、認証ユーザーにはアクセスパーミッションで説明されているパーミッションがなければなりません。
新規 APB が OAB に存在することを確認します。通常、これは
apb listコマンドの機能になります。apbツールがインストールされていない場合、代わりに以下を実行できます。直前の
v2/bootstrapの手順で収集されるルートおよびサポートされているパスと名前を使用して、v2/catalogパスに対して curl を実行します。curl -H "Authorization: Bearer $(oc whoami -t)" -k \ https://asb-1338-openshift-ansible-service-broker.172.17.0.1.nip.io/ansible-service-broker/v2/catalog$ curl -H "Authorization: Bearer $(oc whoami -t)" -k \ https://asb-1338-openshift-ansible-service-broker.172.17.0.1.nip.io/ansible-service-broker/v2/catalogCopy to Clipboard Copied! Toggle word wrap Toggle overflow ブートストラップされたすべての APB 仕様の一覧および
localregistry-<bundle_name>のラベルが付けられたものが表示されるはずです。出力の形式が JSON であるため、|grep <bundle_name>を使用して検索することができます。