AWS CLI を使用して Argo CD 機能を作成する - Amazon EKS

このページの改善にご協力ください

このユーザーガイドに貢献するには、すべてのページの右側のペインにある「GitHub でこのページを編集する」リンクを選択してください。

AWS CLI を使用して Argo CD 機能を作成する

このトピックでは、AWS CLI を使用して Argo CD 機能を作成する方法について説明します。

前提条件

  • AWS CLI バージョン 2.12.3 以降。バージョンを確認するには、aws --version を実行します。詳細についてはAWS コマンドラインインターフェイスユーザーガイドの「インストール」を参照してください。

  • kubectl - Kubernetes クラスターを操作するためのコマンドラインツール。詳細については、「kubectl および eksctl のセットアップ」を参照してください。

  • AWS アイデンティティセンターが設定されていること – Argo CD での認証には AWS アイデンティティセンターが必要です。ローカルユーザーはサポートされていません。AWS アイデンティティセンターをセットアップしていない場合は、「AWS アイデンティティセンターの使用を開始する」を参照してアイデンティティセンターインスタンスを作成し、「ユーザーを追加する」と「グループを追加する」を参照して Argo CD へのアクセスに必要なユーザーとグループを作成します。

ステップ 1: IAM 機能ロールを作成する

信頼ポリシーファイルを作成します。

cat > argocd-trust-policy.json << 'EOF' { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "capabilities.eks.amazonaws.com" }, "Action": [ "sts:AssumeRole", "sts:TagSession" ] } ] } EOF

IAM ロールを作成します。

aws iam create-role \ --role-name ArgoCDCapabilityRole \ --assume-role-policy-document file://argocd-trust-policy.json
注記

AWS Secrets Manager または AWS CodeConnections とをオプションで統合する場合は、ロールにアクセス許可を追加する必要があります。IAM ポリシーの例と設定ガイダンスについては、「AWS Secrets Manager を使用してアプリケーションシークレットを管理する」および「AWS CodeConnections を使用して Git リポジトリに接続する」を参照してください。

ステップ 2: Argo CD 機能を作成する

クラスターに Argo CD 機能リソースを作成します。

まず、アイデンティティセンターを設定するための環境変数を設定します。

# Get your Identity Center instance ARN (replace region if your IDC instance is in a different region) export IDC_INSTANCE_ARN=$(aws sso-admin list-instances --region [.replaceable]`region` --query 'Instances[0].InstanceArn' --output text) # Get a user ID for RBAC mapping (replace with your username and region if needed) export IDC_USER_ID=$(aws identitystore list-users \ --region [.replaceable]`region` \ --identity-store-id $(aws sso-admin list-instances --region [.replaceable]`region` --query 'Instances[0].IdentityStoreId' --output text) \ --query 'Users[?UserName==`your-username`].UserId' --output text) echo "IDC_INSTANCE_ARN=$IDC_INSTANCE_ARN" echo "IDC_USER_ID=$IDC_USER_ID"

アイデンティティセンター統合で機能を作成します。region-code はクラスターが配置された AWS リージョンに置き換え、my-cluster はクラスターの名前に置き換えます。

aws eks create-capability \ --region region-code \ --cluster-name my-cluster \ --capability-name my-argocd \ --type ARGOCD \ --role-arn arn:aws:iam::$(aws sts get-caller-identity --query Account --output text):role/ArgoCDCapabilityRole \ --delete-propagation-policy RETAIN \ --configuration '{ "argoCd": { "awsIdc": { "idcInstanceArn": "'$IDC_INSTANCE_ARN'", "idcRegion": "'[.replaceable]`region-code`'" }, "rbacRoleMappings": [{ "role": "ADMIN", "identities": [{ "id": "'$IDC_USER_ID'", "type": "SSO_USER" }] }] } }'

このコマンドはすぐに戻りますが、EKS が必要な機能インフラストラクチャとコンポーネントを作成するため、機能がアクティブになるまでにはしばらく時間がかかります。EKS は、この機能に関連する Kubernetes カスタムリソース定義をその作成時にクラスターにインストールします。

注記

クラスターが存在しないというエラーやアクセス許可がないというエラーが表示された場合は、以下の点を確認します。

  • クラスター名が正しいこと

  • AWS CLI が正しいリージョンに設定されていること

  • 必要な IAM アクセス許可を追加したこと

ステップ 3: 機能がアクティブであることを確認する

機能がアクティブになるまで待機します。region-code はクラスターが配置された AWS リージョンに置き換え、my-cluster はクラスターの名前に置き換えます。

aws eks describe-capability \ --region region-code \ --cluster-name my-cluster \ --capability-name my-argocd \ --query 'capability.status' \ --output text

ステータスが ACTIVE と表示されたら、機能の準備は完了です。ステータスが ACTIVE になるまで、次のステップに進まないでください。

機能の詳細全体を表示することもできます。

aws eks describe-capability \ --region region-code \ --cluster-name my-cluster \ --capability-name my-argocd

ステップ 4: カスタムリソースが使用可能であることを確認する

機能がアクティブになったら、Argo CD カスタムリソースがクラスターで使用可能になっていることを確認します。

kubectl api-resources | grep argoproj.io

ApplicationApplicationSet のリソースタイプがリストされます。

次のステップ