1.3. HCP 前提条件を備えた ROSA

HCP クラスターを備えた ROSA を作成するには、次のものが必要です。

  • 設定された仮想プライベートクラウド (VPC)
  • アカウント全体のロール
  • OIDC 設定
  • オペレーターのロール

1.3.1. HCP クラスターを備えた ROSA 用の仮想プライベートクラウドの作成

HCP クラスターを備えた ROSA を作成するには、Virtual Private Cloud (VPC) が必要です。次の方法を使用して VPC を作成できます。

  • Terraform テンプレートを使用して VPC を作成する
  • AWS コンソールで VPC リソースを手動で作成する
注記

Terraform の手順はテストとデモンストレーションを目的としています。独自のインストールでは、独自に使用するために VPC にいくつかの変更を加える必要があります。また、この Terraform スクリプトを使用するときは、クラスターをインストールする予定のリージョンと同じリージョンにあることを確認する必要があります。これらの例では、us-east-2 を使用します。

Terraform を使用した Virtual Private Cloud の作成

Terraform は、確立されたテンプレートを使用してさまざまなリソースを作成できるツールです。次のプロセスでは、必要に応じてデフォルトのオプションを使用して、HCP クラスターを備えた ROSA を作成します。Terraform の使用の詳細は、関連情報を参照してください。

前提条件

  • マシンに Terraform バージョン 1.4.0 以降がインストールされている。
  • マシンに Git がインストールされている。

手順

  1. シェルプロンプトを開き、次のコマンドを実行して Terraform VPC リポジトリーのクローンを作成します。

    $ git clone https://github.com/openshift-cs/terraform-vpc-example
  2. 次のコマンドを実行して、作成したディレクトリーに移動します。

    $ cd terraform-vpc-example
  3. 次のコマンドを実行して、Terraform ファイルを開始します。

    $ terraform init

    このプロセスが完了すると、初期化を確認するメッセージが表示されます。

  4. 既存の Terraform テンプレートに基づいて VPC Terraform プランを構築するには、plan コマンドを実行します。AWS リージョンを含める必要があります。クラスター名の指定を選択できます。terraform plan が完了すると、rosa.tfplan ファイルが hypershift-tf ディレクトリーに追加されます。オプションの詳細は、Terraform VPC リポジトリーの README ファイル を参照してください。

    $ terraform plan -out rosa.tfplan -var region=<region> [-var cluster_name=<cluster_name>]
  5. 次のコマンドを実行して、このプランファイルを適用して VPC を構築します。

    $ terraform apply rosa.tfplan
  6. 任意: 次のコマンドを実行して、Terraform でプロビジョニングされたプライベート、パブリック、およびマシンプールのサブネット ID の値を環境変数としてキャプチャーし、HCP クラスターを備えた ROSA を作成するときに使用できます。

    $ export SUBNET_IDS=$(terraform output -raw cluster-subnets-string)

検証

  • 次のコマンドを使用して、変数が正しく設定されたことを確認できます。

    $ echo $SUBNET_IDS

    出力例

    $ subnet-0a6a57e0f784171aa,subnet-078e84e5b10ecf5b0

関連情報

  • ニーズに合わせて VPC をカスタマイズするときに使用できるすべてのオプションの詳細なリストは、Terraform VPC リポジトリーを参照してください。
Virtual Private Cloud を手動で作成する

Terraform を使用する代わりに Virtual Private Cloud (VPC) を手動で作成することを選択した場合は、AWS コンソールの VPC ページ に移動します。VPC は、次の表に示す要件を満たしている必要があります。

表1.3 VPC の要件

要件詳細

VPC 名

クラスターを作成するときは、特定の VPC 名と ID が必要です。

CIDR 範囲

VPC CIDR 範囲はマシンの CIDR と一致する必要があります。

アベイラビリティーゾーン

単一ゾーンの場合は 1 つの可用性ゾーンが必要で、複数ゾーンの場合は 3 つの可用性ゾーンが必要です。

パブリックサブネット

NAT ゲートウェイを備えたパブリックサブネットが 1 つ必要です。

DNS ホスト名と解決

DNS ホスト名と解決が有効になっていることを確認する必要があります。

1.3.2. アカウント全体の STS ロールおよびポリシーの作成

Red Hat OpenShift Service on AWS (ROSA) CLI (rosa) を使用して、ホスト型コントロールプレーン (HCP) クラスターを備えた Red Hat OpenShift Service on AWS (ROSA) を作成する前に、Operator ポリシーを含む、必要なアカウント全体のロールとポリシーを作成します。

前提条件

  • HCP を備えた ROSA の AWS の前提条件を完了している。
  • 利用可能な AWS サービスクォータがある。
  • AWS コンソールで ROSA サービスを有効にしている。
  • インストールホストに、最新の ROSA CLI (rosa) をインストールして設定している。

    注記

    HCP クラスターを備えた ROSA クラスターを正常にインストールするには、最新バージョンの ROSA CLI (rosa) を使用します。

  • ROSA CLI を使用して Red Hat アカウントにログインしている。

手順

  1. AWS アカウントに存在しない場合は、次のコマンドを実行して、必要なアカウント全体の STS ロールとポリシーを作成します。

    $ rosa create account-roles --force-policy-creation

    --force-policy-creation パラメーターは、存在する既存のロールとポリシーを更新します。ロールとポリシーが存在しない場合、コマンドは代わりにこれらのリソースを作成します。

1.3.3. OpenID Connect 設定の作成

HCP クラスターを備えた ROSA を使用する場合は、クラスターを作成する前に OpenID Connect (OIDC) 設定を作成する必要があります。OIDC 設定は、OpenShift Cluster Manager で使用するために登録されています。

前提条件

  • HCP を備えた ROSA の AWS の前提条件を完了している。
  • Red Hat OpenShift Service on AWS の AWS 前提条件を完了している。
  • インストールホストに、最新の Red Hat OpenShift Service on AWS (ROSA) CLI (rosa) をインストールして設定している。

手順

  • AWS リソースと一緒に OIDC 設定を作成するには、次のコマンドを実行します。

    $ rosa create oidc-config --mode=auto  --yes

    このコマンドは次の情報を返します。

    出力例

    ? Would you like to create a Managed (Red Hat hosted) OIDC Configuration Yes
    I: Setting up managed OIDC configuration
    I: To create Operator Roles for this OIDC Configuration, run the following command and remember to replace <user-defined> with a prefix of your choice:
    	rosa create operator-roles --prefix <user-defined> --oidc-config-id 13cdr6b
    If you are going to create a Hosted Control Plane cluster please include '--hosted-cp'
    I: Creating OIDC provider using 'arn:aws:iam::4540112244:user/userName'
    ? Create the OIDC provider? Yes
    I: Created OIDC provider with ARN 'arn:aws:iam::4540112244:oidc-provider/dvbwgdztaeq9o.cloudfront.net/13cdr6b'

    クラスターを作成するときは、OIDC 設定 ID を指定する必要があります。CLI 出力では、--mode auto のこの値が提供されます。それ以外の場合は、--mode manualaws CLI 出力に基づいてこれらの値を決定する必要があります。

  • オプション: OIDC 設定 ID を変数として保存して、後で使用できます。次のコマンドを実行して変数を保存します。

    $ export OIDC_ID=30f5dqmk
    1. 次のコマンドを実行して、変数の値を表示します。

      $ echo $OIDC_ID

      出力例

      $ 30f5dqmk

検証

  1. ユーザー組織に関連付けられているクラスターで使用できる可能な OIDC 設定をリストできます。以下のコマンドを実行します。

    $ rosa list oidc-config

    出力例

    ID                                MANAGED  ISSUER URL                                                             SECRET ARN
    2330dbs0n8m3chkkr25gkkcd8pnj3lk2  true     https://dvbwgdztaeq9o.cloudfront.net/2330dbs0n8m3chkkr25gkkcd8pnj3lk2
    233hvnrjoqu14jltk6lhbhf2tj11f8un  false    https://oidc-r7u1.s3.us-east-1.amazonaws.com                           aws:secretsmanager:us-east-1:242819244:secret:rosa-private-key-oidc-r7u1-tM3MDN

1.3.4. Operator のロールとポリシーの作成

HCP クラスターを備えた ROSA を使用する場合は、ホスト型コントロールプレーン (HCP) デプロイメントを備えた Red Hat OpenShift Service on AWS (ROSA) に必要な Operator IAM ロールを作成する必要があります。クラスター Operator は、Operator のロールを使用して、バックエンドストレージ、クラウドプロバイダーの認証情報、クラスターへの外部アクセスの管理など、クラスター操作を実行するために必要な一時的なアクセス許可を取得します。

前提条件

  • HCP を備えた ROSA の AWS の前提条件を完了している。
  • インストールホストに、最新の Red Hat OpenShift Service on AWS (ROSA) CLI (rosa) をインストールして設定している。
  • アカウント全体の AWS ロールを作成している。

手順

  • Operator ロールを作成するには、次のコマンドを実行します。

    $ rosa create operator-roles --hosted-cp --prefix <prefix-name> --oidc-config-id <oidc-config-id>

    次の内訳は、Operator ロール作成のオプションを示しています。

    $ rosa create operator-roles --hosted-cp
    	--prefix <prefix-name> 1
    	--oidc-config-id <oidc-config-id> 2
    1
    これらの Operator ロールを作成するときは、接頭辞を指定する必要があります。そうしないとエラーが発生します。演算子接頭辞は、このセクションの関連情報を参照してください。
    2
    この値は、HCP クラスターを備えた ROSA 用に作成した OIDC 設定 ID です。

    HCP クラスターを備えた ROSA の正しいロールを作成するには、--hosted-cp パラメーターを含める必要があります。このコマンドは次の情報を返します。

    出力例

    ? Role creation mode: auto
    ? Operator roles prefix: <pre-filled_prefix> 1
    ? OIDC Configuration ID: 23soa2bgvpek9kmes9s7os0a39i13qm4 | https://dvbwgdztaeq9o.cloudfront.net/23soa2bgvpek9kmes9s7os0a39i13qm4 2
    ? Create hosted control plane operator roles: Yes
    W: More than one Installer role found
    ? Installer role ARN: arn:aws:iam::4540112244:role/<prefix>-Installer-Role
    ? Permissions boundary ARN (optional):
    I: Reusable OIDC Configuration detected. Validating trusted relationships to operator roles:
    I: Creating roles using 'arn:aws:iam::4540112244:user/<userName>'
    I: Created role '<prefix>-openshift-cluster-csi-drivers-ebs-cloud-credentials' with ARN 'arn:aws:iam::4540112244:role/<prefix>-openshift-cluster-csi-drivers-ebs-cloud-credentials'
    I: Created role '<prefix>-openshift-cloud-network-config-controller-cloud-credenti' with ARN 'arn:aws:iam::4540112244:role/<prefix>-openshift-cloud-network-config-controller-cloud-credenti'
    I: Created role '<prefix>-kube-system-kube-controller-manager' with ARN 'arn:aws:iam::4540112244:role/<prefix>-kube-system-kube-controller-manager'
    I: Created role '<prefix>-kube-system-capa-controller-manager' with ARN 'arn:aws:iam::4540112244:role/<prefix>-kube-system-capa-controller-manager'
    I: Created role '<prefix>-kube-system-control-plane-operator' with ARN 'arn:aws:iam::4540112244:role/<prefix>-kube-system-control-plane-operator'
    I: Created role '<prefix>-kube-system-kms-provider' with ARN 'arn:aws:iam::4540112244:role/<prefix>-kube-system-kms-provider'
    I: Created role '<prefix>-openshift-image-registry-installer-cloud-credentials' with ARN 'arn:aws:iam::4540112244:role/<prefix>-openshift-image-registry-installer-cloud-credentials'
    I: Created role '<prefix>-openshift-ingress-operator-cloud-credentials' with ARN 'arn:aws:iam::4540112244:role/<prefix>-openshift-ingress-operator-cloud-credentials'
    I: To create a cluster with these roles, run the following command:
    	rosa create cluster --sts --oidc-config-id 23soa2bgvpek9kmes9s7os0a39i13qm4 --operator-roles-prefix <prefix> --hosted-cp

    1
    このフィールドには、最初の作成コマンドで設定した接頭辞が事前に入力されます。
    2
    このフィールドでは、HCP クラスターを備えた ROSA 用に作成した OIDC 設定を選択する必要があります。

    これで、Operator ロールが作成され、HCP クラスターを備えた ROSA の作成に使用できるようになりました。

検証

  1. ROSA アカウントに関連付けられている Operator ロールをリスト表示できます。以下のコマンドを実行します。

    $ rosa list operator-roles

    出力例

    I: Fetching operator roles
    ROLE PREFIX  AMOUNT IN BUNDLE
    <prefix>      8
    ? Would you like to detail a specific prefix Yes 1
    ? Operator Role Prefix: <prefix>
    ROLE NAME                                                         ROLE ARN                                                                                         VERSION  MANAGED
    <prefix>-kube-system-capa-controller-manager                       arn:aws:iam::4540112244:role/<prefix>-kube-system-capa-controller-manager                       4.13     No
    <prefix>-kube-system-control-plane-operator                        arn:aws:iam::4540112244:role/<prefix>-kube-system-control-plane-operator                        4.13     No
    <prefix>-kube-system-kms-provider                                  arn:aws:iam::4540112244:role/<prefix>-kube-system-kms-provider                                  4.13     No
    <prefix>-kube-system-kube-controller-manager                       arn:aws:iam::4540112244:role/<prefix>-kube-system-kube-controller-manager                       4.13     No
    <prefix>-openshift-cloud-network-config-controller-cloud-credenti  arn:aws:iam::4540112244:role/<prefix>-openshift-cloud-network-config-controller-cloud-credenti  4.13     No
    <prefix>-openshift-cluster-csi-drivers-ebs-cloud-credentials       arn:aws:iam::4540112244:role/<prefix>-openshift-cluster-csi-drivers-ebs-cloud-credentials       4.13     No
    <prefix>-openshift-image-registry-installer-cloud-credentials      arn:aws:iam::4540112244:role/<prefix>-openshift-image-registry-installer-cloud-credentials      4.13     No
    <prefix>-openshift-ingress-operator-cloud-credentials              arn:aws:iam::4540112244:role/<prefix>-openshift-ingress-operator-cloud-credentials              4.13     No

    1
    コマンドを実行すると、AWS アカウントに関連付けられているすべての接頭辞が表示され、この接頭辞に関連付けられているロールの数が記録されます。これらのロールとその詳細をすべて表示する必要がある場合は、詳細プロンプトで "Yes" と入力すると、これらのロールが詳細とともにリストされます。

関連情報