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 コマンドを使用するには、以下を実行します。

  1. base64 エンコードされた APB 仕様が Dockerfile のラベルであることを確認します。これは、通常は apb prepare コマンドを使用して実行できます。apb ツールがインストールされていない場合は、以下を実行できます。

    $ cat apb.yml | base64

    base64 エンコードされた apb.yml を返します。 これは、以下のように DockerfileLABEL "com.redhat.apb.spec" の下にコピーアンドペーストできます。

    LABEL "com.redhat.apb.spec"=\
    "dmVyc2lvbjogMS4wCm5hbWU6IG1lZGlhd2lraS1hcGIKZGVzY3JpcHRpb246IE1lZGlhd2lraSBh\
    cGIgaW1wbGVtZW50YXRpb24KYmluZGFibGU6IEZhbHNlCmFzeW5jOiBvcHRpb25hbAptZXRhZGF0\
    YToKICBkb2N1bWVudGF0aW9uVXJsOiBodHRwczovL3d3dy5tZWRpYXdpa2kub3JnL3dpa2kvRG9j\
    dW1lbnRhdGlvbgogIGxvbmdEZXNjcmlwdGlvbjogQW4gYXBiIHRoYXQgZGVwbG95cyBNZWRpYXdp\
    a2kgMS4yMwogIGRlcGVuZGVuY2llczogWydkb2NrZXIuaW8vYW5zaWJsZXBsYXlib29rYnVuZGxl\
    L21lZGlhd2lraTEyMzpsYXRlc3QnXQogIGRpc3BsYXlOYW1lOiBNZWRpYXdpa2kgKEFQQilmZGZk\
    CiAgY29uc29sZS5vcGVuc2hpZnQuaW8vaWNvbkNsYXNzOiBpY29uLW1lZGlhd2lraQogIHByb3Zp\
    ZGVyRGlzcGxheU5hbWU6ICJSZWQgSGF0LCBJbmMuIgpwbGFuczoKICAtIG5hbWU6IGRlZmF1bHQK\
    ICAgIGRlc2NyaXB0aW9uOiBBbiBBUEIgdGhhdCBkZXBsb3lzIE1lZGlhV2lraQogICAgZnJlZTog\
    VHJ1ZQogICAgbWV0YWRhdGE6CiAgICAgIGRpc3BsYXlOYW1lOiBEZWZhdWx0CiAgICAgIGxvbmdE\
    ZXNjcmlwdGlvbjogVGhpcyBwbGFuIGRlcGxveXMgYSBzaW5nbGUgbWVkaWF3aWtpIGluc3RhbmNl\
    IHdpdGhvdXQgYSBEQgogICAgICBjb3N0OiAkMC4wMAogICAgcGFyYW1ldGVyczoKICAgICAgLSBu\
    YW1lOiBtZWRpYXdpa2lfZGJfc2NoZW1hCiAgICAgICAgZGVmYXVsdDogbWVkaWF3aWtpCiAgICAg\
    ICAgdHlwZTogc3RyaW5nCiAgICAgICAgdGl0bGU6IE1lZGlhd2lraSBEQiBTY2hlbWEKICAgICAg\
    ICBwYXR0ZXJuOiAiXlthLXpBLVpfXVthLXpBLVowLTlfXSokIgogICAgICAgIHJlcXVpcmVkOiBU\
    cnVlCiAgICAgIC0gbmFtZTogbWVkaWF3aWtpX3NpdGVfbmFtZQogICAgICAgIGRlZmF1bHQ6IE1l\
    ZGlhV2lraQogICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgIHRpdGxlOiBNZWRpYXdpa2kgU2l0\
    ZSBOYW1lCiAgICAgICAgcGF0dGVybjogIl5bYS16QS1aXSskIgogICAgICAgIHJlcXVpcmVkOiBU\
    cnVlCiAgICAgICAgdXBkYXRhYmxlOiBUcnVlCiAgICAgIC0gbmFtZTogbWVkaWF3aWtpX3NpdGVf\
    bGFuZwogICAgICAgIGRlZmF1bHQ6IGVuCiAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgdGl0\
    bGU6IE1lZGlhd2lraSBTaXRlIExhbmd1YWdlCiAgICAgICAgcGF0dGVybjogIl5bYS16XXsyLDN9\
    JCIKICAgICAgICByZXF1aXJlZDogVHJ1ZQogICAgICAtIG5hbWU6IG1lZGlhd2lraV9hZG1pbl91\
    c2VyCiAgICAgICAgZGVmYXVsdDogYWRtaW4KICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICB0\
    aXRsZTogTWVkaWF3aWtpIEFkbWluIFVzZXIgKENhbm5vdCBiZSB0aGUgc2FtZSB2YWx1ZSBhcyBB\
    ZG1pbiBVc2VyIFBhc3N3b3JkKQogICAgICAgIHJlcXVpcmVkOiBUcnVlCiAgICAgIC0gbmFtZTog\
    bWVkaWF3aWtpX2FkbWluX3Bhc3MKICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICB0aXRsZTog\
    TWVkaWF3aWtpIEFkbWluIFVzZXIgUGFzc3dvcmQKICAgICAgICByZXF1aXJlZDogVHJ1ZQogICAg\
    ICAgIGRpc3BsYXlfdHlwZTogcGFzc3dvcmQK"
  2. 内部 OpenShift Container Platform レジストリーにビルドされた APB イメージを設定します。

    通常、これは apb push コマンドで処理されます。docker CLI を使用せずにイメージをビルドするには、OpenShift Container Platform の S2I 機能を利用することができます。

    デフォルトで、OAB は openshift プロジェクトで公開済みの APB を検索するように設定されます。このプロジェクトは、クラスターのすべての認証ユーザーが利用できるようにイメージとイメージストリームを公開するグローバル namespace です。イメージをビルドするために openshift プロジェクトで oc new-app コマンドを使用して、この利点を活用できます。

    $ oc new-app <path_to_bundle_source> \
        --name <bundle_name> \
        -n openshift

    2 分ほど経過したら、イメージが内部レジストリーに表示されるはずです。

    $ oc get images | grep <bundle_name>
    
    sha256:b2dcb4b95e178e9b7ac73e5ee0211080c10b24260f76cfec30b89e74e8ee6742   172.30.1.1:5000/openshift/<bundle_name>@sha256:b2dcb4b95e178e9b7ac73e5ee0211080c10b24260f76cfec30b89e74e8ee6742
  3. OAB をブートストラップします。通常、これも apb push または apb bootstrap コマンドで処理されます。apb bootstrap コマンドは 5 分から 10 分の待機時間なしにサービスカタログを再度一覧表示するため、このコマンドをこの手順で使用するのが適しています。

    apb ツールがインストールされていない場合、代わりに以下を実行できます。

    1. ブローカーのルート名を取得します。

      $ 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     None
    2. ブローカーのサポートされているパスの一覧を取得します。

      $ curl -H "Authorization: Bearer $(oc whoami -t)" -k \
          https://asb-1338-openshift-ansible-service-broker.172.17.0.1.nip.io/
      
          {
            "paths": [
              "/apis",
              "/ansible-service-broker/", 1
              "/healthz",
              "/healthz/ping",
              "/healthz/poststarthook/generic-apiserver-start-informers",
              "/metrics"
            ]
          }
      1
      このパスは v2/bootstrap および v2/catalog パスを指定します。
    3. 直前の手順で検出される値を使用し、v2/bootstrap パスに対して curl を実行します。

      $ curl -H "Authorization: Bearer $(oc whoami -t)" -k -X POST \
          https://asb-1338-openshift-ansible-service-broker.172.17.0.1.nip.io/ansible-service-broker/v2/bootstrap 1
      
      {
        "spec_count": 38,
        "image_count": 109
      }
      1
      直前の手順で検出される値と異なる場合には、ansible-service-broker を置き換えます。
      注記

      oc whoami -t コマンドはトークンを返し、認証ユーザーにはアクセスパーミッションで説明されているパーミッションがなければなりません。

  4. 新規 APB が OAB に存在することを確認します。通常、これは apb list コマンドの機能になります。apb ツールがインストールされていない場合、代わりに以下を実行できます。

    1. 直前の 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

      ブートストラップされたすべての APB 仕様の一覧および localregistry-<bundle_name> のラベルが付けられたものが表示されるはずです。出力の形式が JSON であるため、|grep <bundle_name> を使用して検索することができます。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.