1.11.5. Cluster API を使用して Red Hat OpenShift Service on AWS with Hosted Control Plane クラスターを作成するための準備
Red Hat OpenShift Service on AWS with Hosted Control Plane クラスターをプロビジョニングするには、サービスアカウント、AWS 認証情報、および OpenShift Cluster Manager 認証情報が必要です。
必要なアクセス権: クラスター管理者
前提条件
- AWS アクセスキーが必要である。詳細は、AWS ドキュメントの Manage access keys for IAM users を参照してください。
- AWS Red Hat OpenShift Service on AWS (classic) マネージドポリシーは、AWS ユーザーの権限にアタッチされています。詳細は、AWS ドキュメントの AWS managed policies for ROSA を参照してください。
-
OpenShift CLI (
oc) が必要である。詳細は、OpenShift Container Platform ドキュメントの OpenShift CLI (oc) を参照してください。 -
ROSA CLI (
rosa) が必要である。詳細は、Red Hat OpenShift Service on AWS (classic) ドキュメントの ROSA CLI を参照してください。
手順
以下の手順を実行します。
- コンソールで Identity & Access Management > Service Accounts に移動して、サービスアカウントを作成します。すでにサービスアカウントがある場合は、ステップ 4 に進みます。
- Create service account ボタンをクリックします。
作成する新しいサービスアカウントごとに、ROSA CLI を使用してアカウントをアクティブ化します。
新しいサービスアカウントにログインします。以下のコマンドを実行します。必要に応じて値を置き換えます。
rosa login --client-id <your-client-id> --client-secret <your-client-secret>- サービスアカウントを有効にします。以下のコマンドを実行します。
rosa whoamiAWS で多要素認証を使用していない場合は、作成した AWS アクセスキーを使用して AWS 認証情報を設定します。以下のコマンドを実行します。必要に応じて値を置き換えます。
echo '[default] aws_access_key_id = <your-access-key> aws_secret_access_key = <your-secret-access-key> region = us-east-1 ' | base64 -w 0AWS で多要素認証を使用している場合は、次のコマンドを実行します。必要に応じて値を置き換えます。
echo '[default] aws_access_key_id = <your-access-key> aws_secret_access_key = <your-secret-access-key> aws_session_token= <your-aws-session-token> region = us-east-1 ' | base64 -w 0capa-manager-bootstrap-credentialsシークレットを更新します。前のコマンドの出力をコピーし、その出力を
capa-manager-bootstrap-credentialsシークレットに追加します。シークレットを編集するには、次のコマンドを実行します。oc edit secret -n multicluster-engine capa-manager-bootstrap-credentials出力を
credentialsフィールドに追加します。以下の例を参照してください。apiVersion: v1 data: credentials: <your-aws-credentials> kind: Secret metadata: name: capa-manager-bootstrap-credentials namespace: multicluster-engineオプション: サービスアカウントで AWS IAM ロールを使用して
capa-controller-managerを認証したい場合は、関連情報セクションを参照し、Cluster API マネージドクラスターで AWS 認証情報から IAM ロールに切り替える (テクノロジープレビュー) の手順を完了します。
capa-controller-managerデプロイメントを再起動します。以下のコマンドを実行します。oc rollout restart deployment capa-controller-manager -n multicluster-engine作成したサービスアカウントの認証情報を使用して、ターゲット namespace に Kubernetes シークレットを作成します。
ROSAControlPlaneリソースは、プロビジョニング中にこのシークレットを参照します。namespace を作成します。以下のコマンドを実行します。
<your-rosa-hcp-namespace>は、使用しているターゲット namespace に置き換えます。oc create namespace <your-rosa-hcp-namespace>シークレットを作成します。以下のコマンドを実行します。
<your-rosa-hcp-namespace>は、使用しているターゲット namespace に置き換えます。oc -n <your-rosa-hcp-namespace> create secret generic rosa-creds-secret \ --from-literal=ocmClientID='....' \ --from-literal=ocmClientSecret='eyJhbGciOiJIUzI1NiIsI....' \ --from-literal=ocmApiUrl='https://api.openshift.com'
オプション: シークレット
rosa-creds-secretを呼び出してmulticluster-enginenamespace に作成することで、ROSAControlPlaneリソースからシークレットを参照せずに使用できます。以下のコマンドを実行します。oc -n multicluster-engine create secret generic rosa-creds-secret \ --from-literal=ocmClientID='....' \ --from-literal=ocmClientSecret='eyJhbGciOiJIUzI1NiIsI....' \ --from-literal=ocmApiUrl='https://api.openshift.com'