3.2. IAM の手動作成
Cloud Credential Operator (CCO) は、クラウドアイデンティティーおよびアクセス管理 (IAM) API に到達できない環境にインストールする前に手動モードに配置できます。管理者はクラスター kube-system
namespace に管理者レベルの認証情報シークレットを保存しないようにします。
手順
インストールプログラムが含まれるディレクトリーに切り替え、以下のコマンドを実行して
install-config.yaml
ファイルを作成します。$ openshift-install create install-config --dir <installation_directory>
ここで、
<installation_directory>
は、インストールプログラムがファイルを作成するディレクトリーに置き換えます。install-config.yaml
設定ファイルを編集し、credentialsMode
パラメーターがManual
に設定されるようにします。サンプル
install-config.yaml
設定ファイルapiVersion: v1 baseDomain: cluster1.example.com credentialsMode: Manual 1 compute: - architecture: amd64 hyperthreading: Enabled ...
- 1
- この行は、
credentialsMode
パラメーターをManual
に設定するために追加されます。
インストールプログラムが含まれているディレクトリーから次のコマンドを実行して、マニフェストを生成します。
$ openshift-install create manifests --dir <installation_directory>
ここで、
<installation_directory>
は、インストールプログラムがファイルを作成するディレクトリーに置き換えます。インストールプログラムが含まれるディレクトリーから、以下のコマンドを実行して、
openshift-install
バイナリーがビルドされている OpenShift Container Platform リリースイメージの詳細を取得します。$ openshift-install version
出力例
release image quay.io/openshift-release-dev/ocp-release:4.y.z-x86_64
以下のコマンドを実行して、デプロイするクラウドをターゲットとするリリースイメージですべての
CredentialsRequest
オブジェクトを見つけます。$ oc adm release extract quay.io/openshift-release-dev/ocp-release:4.y.z-x86_64 \ --credentials-requests \ --cloud=aws
このコマンドにより、それぞれの
CredentialsRequest
オブジェクトに YAML ファイルが作成されます。サンプル
CredentialsRequest
オブジェクトapiVersion: cloudcredential.openshift.io/v1 kind: CredentialsRequest metadata: name: <component-credentials-request> namespace: openshift-cloud-credential-operator ... spec: providerSpec: apiVersion: cloudcredential.openshift.io/v1 kind: AWSProviderSpec statementEntries: - effect: Allow action: - iam:GetUser - iam:GetUserPolicy - iam:ListAccessKeys resource: "*" ...
以前に生成した
openshift-install
マニフェストディレクトリーにシークレットの YAML ファイルを作成します。シークレットは、それぞれのCredentialsRequest
オブジェクトにspec.secretRef
に定義される namespace およびシークレット名を使用して保存する必要があります。シークレットを含む
CredentialsRequest
オブジェクトのサンプルapiVersion: cloudcredential.openshift.io/v1 kind: CredentialsRequest metadata: name: <component-credentials-request> namespace: openshift-cloud-credential-operator ... spec: providerSpec: apiVersion: cloudcredential.openshift.io/v1 kind: AWSProviderSpec statementEntries: - effect: Allow action: - s3:CreateBucket - s3:DeleteBucket resource: "*" ... secretRef: name: <component-secret> namespace: <component-namespace> ...
サンプル
Secret
オブジェクトapiVersion: v1 kind: Secret metadata: name: <component-secret> namespace: <component-namespace> data: aws_access_key_id: <base64_encoded_aws_access_key_id> aws_secret_access_key: <base64_encoded_aws_secret_access_key>
重要リリースイメージには、
TechPreviewNoUpgrade
機能セットによって有効になるテクノロジープレビュー機能のCredentialsRequest
オブジェクトが含まれています。これらのオブジェクトは、release.openshift.io/feature-set: TechPreviewNoUpgrade
アノテーションを使用して識別できます。- これらの機能を使用していない場合は、これらのオブジェクトのシークレットを作成しないでください。使用していないテクノロジープレビュー機能のシークレットを作成すると、インストールが失敗する可能性があります。
- これらの機能のいずれかを使用している場合は、対応するオブジェクトのシークレットを作成する必要があります。
TechPreviewNoUpgrade
アノテーションを持つCredentialsRequest
オブジェクトを見つけるには、次のコマンドを実行します。$ grep "release.openshift.io/feature-set" *
出力例
0000_30_capi-operator_00_credentials-request.yaml: release.openshift.io/feature-set: TechPreviewNoUpgrade
インストールプログラムが含まれるディレクトリーから、クラスターの作成に進みます。
$ openshift-install create cluster --dir <installation_directory>
重要手動でメンテナンスされる認証情報を使用するクラスターをアップグレードする前に、CCO がアップグレード可能な状態であることを確認します。