第9章 Bridge Operator で Red Hat Quay を OpenShift に統合
Quay Bridge Operator を使用すると、OpenShift の統合コンテナーレジストリーを Red Hat Quay レジストリーで置き換えることができます。これにより、統合された OpenShift レジストリーは、ロールベースのアクセスコントロール (RBAC) 機能が強化された、可用性の高いエンタープライズグレードの Red Hat Quay レジストリーになります。
Bridge Operator の主な目的は、統合された OpenShift レジストリーの機能を、新しい Red Hat Quay レジストリーに複製することです。この Operator で可能な機能は以下の通りです。
Red Hat Quay の組織として OpenShift の名前空間を同期させます。
- デフォルトネームスペースのサービスアカウントごとのロボットアカウントの作成
- 作成されたロボットアカウントごとにシークレットを作成 (各ロボットシークレットをサービスアカウントに Mountable と Image Pull Secret として関連付ける)。
- OpenShift の ImageStream を Quay のリポジトリーとして同期させる
- Red Hat Quay に出力するために ImageStream を使用して新しいビルドを自動的に書き換えます。
- ビルドが完了すると自動的に ImageStream タグをインポートします。
Quay Bridge Operator でこの手順を使用すると、Red Hat Quay と OpenShift クラスター間の双方向通信が有効になります。
9.1. Quay Bridge Operator の実行 リンクのコピーリンクがクリップボードにコピーされました!
9.1.1. 前提条件 リンクのコピーリンクがクリップボードにコピーされました!
Bridge Operator をセットアップする前に、以下のものを用意してください。
- スーパーユーザー権限を持つ既存の Red Hat Quay 環境
- クラスター管理者権限を持つ Red Hat OpenShift Container Platform 環境 (4.2 以降を推奨)
-
OpenShift のコマンドラインツール (
oc
コマンド)
9.1.2. OpenShift および Red Hat Quay のセットアップおよび設定 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Quay と OpenShift の両方の設定が必要です。
9.1.3. Red Hat Quay のセットアップ リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Quay の専用組織を作成し、その組織内で作成した新規アプリケーションから、OpenShift の Quay Bridge Operator で使用する OAuth トークンを生成します。
- スーパーユーザー権限を持つユーザーとして Red Hat Quay にログインし、外部アプリケーションを設定する組織を選択します。
- 左のナビゲーションで Applications を選択します。
-
Create New Application
を選択し、新しいアプリケーションの名前を入力します (例:openshift
)。 - 新しいアプリケーションが表示された状態で、それを選択します。
-
左側のナビゲーションで
Generate Token
を選択し、新しい OAuth2 トークンを作成します。 - すべてのチェックボックスを選択して、統合に必要なアクセスを許可します。
-
割り当てられた権限を確認し、
Authorize Application
を選択して確認します。 - 生成された Access Token は、次のセクションで使用するためにコピーして保存します。
9.1.4. OpenShift のセットアップ リンクのコピーリンクがクリップボードにコピーされました!
Quay Bridge Operator に OpenShift をセットアップするには、以下のようないくつかのステップが必要です。
9.1.4.1. Operator のデプロイ リンクのコピーリンクがクリップボードにコピーされました!
Operator をデプロイする最も高速な方法は、OperatorHub からデプロイすることです。OpenShift Web コンソールの Administrator パースペクティブで、Operators タブに移動し、OperatorHub を選択します。
Quay Bridge Operator を検索し、Install を選択します。
Approval Strategy を選択して、Install を選択すると、Operator をクラスターにデプロイします。
9.1.4.2. OAuth トークンの OpenShift シークレットの作成 リンクのコピーリンクがクリップボードにコピーされました!
Operator は以前に取得したアクセストークンを使用して Quay と通信します。このトークンをシークレットとして OpenShift に保存します。
以下のコマンドを実行して、アクセストークンが含まれる token
というキーを使用して、openshift-operators
namespace に quay-integration
というシークレットを作成します。
oc create secret -n openshift-operators generic quay-integration --from-literal=token=<access_token>
$ oc create secret -n openshift-operators generic quay-integration --from-literal=token=<access_token>
9.1.4.3. QuayIntegration カスタムリソースの作成 リンクのコピーリンクがクリップボードにコピーされました!
最後に、OpenShift と Quay の間のインテグレーションを完了するには、QuayIntegration
カスタムリソースを作成する必要があります。これは、Web コンソールまたはコマンドラインから実行できます。
quay-integration.yaml
QuayIntegration
カスタムリソースを作成します。
oc create -f quay-integration.yaml
$ oc create -f quay-integration.yaml
この時点で Quay の統合リソースが作成され、OpenShift クラスターと Red Hat Quay インスタンスがリンクされます。Quay 内の組織は、OpenShift 環境の関連の namespace 用に作成する必要があります。