このページの改善にご協力ください
このユーザーガイドに貢献するには、すべてのページの右側のペインにある「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 \ --regionregion-code\ --cluster-namemy-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 \ --regionregion-code\ --cluster-namemy-cluster\ --capability-name my-argocd \ --query 'capability.status' \ --output text
ステータスが ACTIVE と表示されたら、機能の準備は完了です。ステータスが ACTIVE になるまで、次のステップに進まないでください。
機能の詳細全体を表示することもできます。
aws eks describe-capability \ --regionregion-code\ --cluster-namemy-cluster\ --capability-name my-argocd
ステップ 4: カスタムリソースが使用可能であることを確認する
機能がアクティブになったら、Argo CD カスタムリソースがクラスターで使用可能になっていることを確認します。
kubectl api-resources | grep argoproj.io
Application と ApplicationSet のリソースタイプがリストされます。
次のステップ
-
Argo CD の使用 - リポジトリを設定し、クラスターを登録し、Application を作成する
-
Argo CD に関する考慮事項 - マルチクラスターアーキテクチャと高度な設定
-
機能リソースの使用 - Argo CD 機能リソースを管理する