2.2.4. Cloud Credential Operator ユーティリティーを使用したクラウドプロバイダーリソースの更新


CCO ユーティリティー (ccoctl) を使用して設定された OpenShift Container Platform クラスターをアップグレードするプロセスは、インストール時にクラウドプロバイダーリソースを作成するプロセスに似ています。

注記

AWS クラスターでは、一部の ccoctl コマンドが AWS API 呼び出しを行い、AWS リソースを作成または変更します。--dry-run フラグを使用して、API 呼び出しを回避できます。このフラグを使用すると、代わりにローカルファイルシステムに JSON ファイルが作成されます。JSON ファイルを確認して変更し、AWS CLI ツールで --cli-input-json パラメーターを使用して適用できます。

前提条件

  • OpenShift Container Platform リリースイメージから CredentialsRequest カスタムリソース (CR) を抽出し、spec.secretRef.namespace フィールドのテキストと一致する namespace がクラスター内に存在している。
  • リリースイメージから ccoctl バイナリーを抽出して設定している。

手順

  1. 出力ディレクトリーが存在しない場合は、次のコマンドを実行して作成します。

    $ mkdir -p <path_to_ccoctl_output_dir>
  2. 次のコマンドを実行して、バインドされたサービスアカウント署名鍵をクラスターから抽出し、出力ディレクトリーに保存します。

    $ oc get secret bound-service-account-signing-key \
      -n openshift-kube-apiserver \
      -ojsonpath='{ .data.service-account\.pub }' | base64 \
      -d > <path_to_ccoctl_output_dir>/serviceaccount-signer.public
  3. ccoctl ツールを使用して、クラウドプロバイダーのコマンドを実行して、すべての CredentialsRequest オブジェクトを処理します。以下のコマンドは CredentialsRequest オブジェクトを処理します。

    例2.1 Amazon Web Services (AWS)

    $ ccoctl aws create-all \
    1
    
      --name=<name> \
    2
    
      --region=<aws_region> \
    3
    
      --credentials-requests-dir=<path_to_credentials_requests_directory> \
    4
    
      --output-dir=<path_to_ccoctl_output_dir> \
    5
    
      --public-key-file=<path_to_ccoctl_output_dir>/serviceaccount-signer.public \
    6
    
      --create-private-s3-bucket 
    7
    1
    AWS リソースを個別に作成するには、「カスタマイズを使用した AWS へのクラスターのインストール」コンテンツの「AWS リソースの個別の作成」手順を使用します。このオプションは、AWS リソースを変更する前に ccoctl ツールが作成する JSON ファイルを確認する必要がある場合、または ccoctl ツールが AWS リソースを自動的に作成するために使用するプロセスが組織の要件を満たしていない場合に役立つ可能性があります。
    2
    追跡用に作成されたクラウドリソースにタグを付けるために使用される名前です。
    3
    クラウドリソースが作成される AWS リージョンです。
    4
    コンポーネント CredentialsRequest オブジェクトのファイルを含むディレクトリーを指定します。
    5
    出力ディレクトリーへのパスを指定します。
    6
    クラスターから抽出した serviceaccount-signer.public ファイルへのパスを指定します。
    7
    オプション: デフォルトでは、ccoctl ユーティリティーは OpenID Connect (OIDC) 設定ファイルをパブリック S3 バケットに保存し、S3 URL をパブリック OIDC エンドポイントとして使用します。代わりに、パブリック CloudFront ディストリビューション URL を介して IAM アイデンティティープロバイダーがアクセスするプライベート S3 バケットに OIDC 設定を保存するには、--create-private-s3-bucket パラメーターを使用します。

    例2.2 Google Cloud

    $ ccoctl gcp create-all \
      --name=<name> \
    1
    
      --region=<gcp_region> \
    2
    
      --project=<gcp_project_id> \
    3
    
      --credentials-requests-dir=<path_to_credentials_requests_directory> \
    4
    
      --output-dir=<path_to_ccoctl_output_dir> \
    5
    
      --public-key-file=<path_to_ccoctl_output_dir>/serviceaccount-signer.public \
    6
    1
    トラッキングに使用される、作成されたすべての Google Cloud リソースのユーザー定義名を指定します。
    2
    クラウドリソースを作成する Google Cloud リージョンを指定します。
    3
    クラウドリソースを作成する Google Cloud プロジェクト ID を指定します。
    4
    Google Cloud サービスアカウントを作成するために、CredentialsRequest マニフェストのファイルを含むディレクトリーを指定します。
    5
    出力ディレクトリーへのパスを指定します。
    6
    クラスターから抽出した serviceaccount-signer.public ファイルへのパスを指定します。

    例2.3 IBM Cloud

    $ ccoctl ibmcloud create-service-id \
      --credentials-requests-dir=<path_to_credential_requests_directory> \
    1
    
      --name=<cluster_name> \
    2
    
      --output-dir=<installation_directory> \
    3
    
      --resource-group-name=<resource_group_name> 
    4
    1
    コンポーネント CredentialsRequest オブジェクトのファイルを含むディレクトリーを指定します。
    2
    OpenShift Container Platform クラスターの名前を指定します。
    3
    オプション: ccoctl ユーティリティーがオブジェクトを作成するディレクトリーを指定します。デフォルトでは、ユーティリティーは、コマンドが実行されるディレクトリーにオブジェクトを作成します。
    4
    オプション: アクセスポリシーのスコープに使用されるリソースグループの名前を指定します。

    例2.4 Microsoft Azure

    $ ccoctl azure create-managed-identities \
      --name <azure_infra_name> \
    1
    
      --output-dir=<path_to_ccoctl_output_dir> \
    2
    
      --region <azure_region> \
    3
    
      --subscription-id <azure_subscription_id> \
    4
    
      --credentials-requests-dir <path_to_directory_for_credentials_requests> \
    5
    
      --issuer-url "${OIDC_ISSUER_URL}" \
    6
    
      --dnszone-resource-group-name <azure_dns_zone_resourcegroup_name> \
    7
    
      --installation-resource-group-name "${AZURE_INSTALL_RG}" 
    8
    1
    name パラメーターの値は、Azure リソースグループを作成するために使用します。新しい Azure リソースグループを作成する代わりに既存の Azure リソースグループを使用するには、--oidc-resource-group-name を指定し、その値として既存のグループ名を使用します。
    2
    出力ディレクトリーへのパスを指定します。
    3
    既存のクラスターのリージョンを指定します。
    4
    既存のクラスターのサブスクリプション ID を指定します。
    5
    コンポーネント CredentialsRequest オブジェクトのファイルを含むディレクトリーを指定します。
    6
    既存のクラスターから OIDC 発行者 URL を指定します。この値は、以下のコマンドを実行して取得できます。
    $ oc get authentication cluster \
      -o jsonpath \
      --template='{ .spec.serviceAccountIssuer }'
    7
    DNS ゾーンを含むリソースグループの名前を指定します。
    8
    Azure リソースグループを指定します。この値は、以下のコマンドを実行して取得できます。
    $ oc get infrastructure cluster \
      -o jsonpath \
      --template '{ .status.platformStatus.azure.resourceGroupName }'

    例2.5 Nutanix

    $ ccoctl nutanix create-shared-secrets \
      --credentials-requests-dir=<path_to_credentials_requests_directory> \
    1
    
      --output-dir=<ccoctl_output_dir> \
    2
    
      --credentials-source-filepath=<path_to_credentials_file> 
    3
    1
    コンポーネント CredentialsRequests オブジェクトのファイルを含むディレクトリーへのパスを指定します。
    2
    オプション: ccoctl ユーティリティーがオブジェクトを作成するディレクトリーを指定します。デフォルトでは、ユーティリティーは、コマンドが実行されるディレクトリーにオブジェクトを作成します。
    3
    オプション: 認証情報データ YAML ファイルを含むディレクトリーを指定します。デフォルトでは、ccoctl はこのファイルが <home_directory>/.nutanix/credentials にあると想定します。

    OpenShift Container Platform リリースイメージの各 CredentialsRequest オブジェクトで定義されているとおり、ccoctlCredentialsRequest オブジェクトごとに必要なプロバイダーリソースと権限ポリシーを作成します。

  4. 次のコマンドを実行して、シークレットをクラスターに適用します。

    $ ls <path_to_ccoctl_output_dir>/manifests/*-credentials.yaml | xargs -I{} oc apply -f {}

検証

クラウドプロバイダーにクエリーを実行することで、必要なプロバイダーのリソースと権限ポリシーが作成されていることを確認できます。詳細は、適切なクラウドプロバイダーのドキュメントでロールまたはサービスアカウントの一リストを参照してください。

次のステップ

  • upgradeable-to アノテーションを更新して、クラスターをアップグレードする準備ができていることを示します。
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

会社概要

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

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

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

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

Legal Notice

Theme

© 2026 Red Hat
トップに戻る