このページの改善にご協力ください
このユーザーガイドに貢献するには、すべてのページの右側のペインにある「GitHub でこのページを編集する」リンクを選択してください。
eksctl を使用して Argo CD 機能を作成する
eksctl を使用して Amazon EKS クラスターで Argo CD 機能を作成します。
注記
以下のステップを実行するには、eksctl バージョン 0.215.0 以降が必要です。バージョンを確認するには、eksctl version を実行します。
前提条件
-
AWS アイデンティティセンターが設定されていること – Argo CD での認証には AWS アイデンティティセンターが必要です。ローカルユーザーはサポートされていません。AWS アイデンティティセンターをセットアップしていない場合は、「AWS アイデンティティセンターの使用を開始する」を参照してアイデンティティセンターインスタンスを作成し、「ユーザーを追加する」と「グループを追加する」を参照して Argo CD へのアクセスに必要なユーザーとグループを作成します。
-
AWS アイデンティティセンターのユーザーまたはグループが少なくとも 1 つ – Argo CD の RBAC ロールマッピングを割り当て、Argo CD UI へのアクセスを提供するには、アイデンティティセンターインスタンスに少なくとも 1 人のユーザーまたは 1 つのグループを設定する必要があります。
ステップ 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
注記
こうした基本的なセットアップの場合、追加の IAM ポリシーは必要ありません。リポジトリ認証情報や CodeConnections に Secrets Manager を使用する場合は、ロールにアクセス許可を追加する必要があります。IAM ポリシーの例と設定ガイダンスについては、「AWS Secrets Manager を使用してアプリケーションシークレットを管理する」および「AWS CodeConnections を使用して Git リポジトリに接続する」を参照してください。
ステップ 2: AWS アイデンティティセンター設定を取得する
RBAC 設定用にアイデンティティセンターインスタンス ARN とユーザー ID を取得します。
# Get your Identity Center instance ARN aws sso-admin list-instances --query 'Instances[0].InstanceArn' --output text # Get a user ID for admin access (replace 'your-username' with your Identity Center username) aws identitystore list-users \ --identity-store-id $(aws sso-admin list-instances --query 'Instances[0].IdentityStoreId' --output text) \ --query 'Users[?UserName==`your-username`].UserId' --output text
これらの値をメモしてください。次のステップで必要になります。
(オプション) プライベートエンドポイントを設定する
デフォルトでは、Argo CD UI と API エンドポイントはインターネット経由でパブリックにアクセスできます。アクセスを制限する必要がある場合は、VPC エンドポイントを設定できます。ネットワークセキュリティ要件が厳格な環境では、この設定をお勧めします。
EKS 機能用の VPC エンドポイントを作成する
VPC 内に EKS 機能サービスのインターフェイス VPC エンドポイントを作成します。vpc-id、subnet-id-1 subnet-id-2、sg-id、region-code を実際の値に置き換えます。
aws ec2 create-vpc-endpoint \ --vpc-endpoint-type Interface \ --service-name com.amazonaws.region-code.eks-capabilities \ --vpc-idvpc-id\ --subnet-idssubnet-id-1 subnet-id-2\ --security-group-idssg-id\ --regionregion-code
注記
-
高可用性を実現するには、サブネットが異なるアベイラビリティーゾーンにある必要があります。
-
セキュリティグループでは、Argo CD UI と API にアクセスする必要があるネットワークからのインバウンド HTTPS (ポート 443) トラフィックを許可する必要があります。
-
このコマンドで返される VPC エンドポイント ID をメモしてください。機能を作成するときに必要になります。
VPC エンドポイントが利用可能であることを確認する
aws ec2 describe-vpc-endpoints \ --vpc-endpoint-idsvpce-xxxxxxxx\ --query 'VpcEndpoints[0].State' \ --output text \ --regionregion-code
続行する前に、状態が available と表示されるまで待ちます。
ステップ 3: eksctl 設定ファイルを作成する
argocd-capability.yaml という名前のファイルを作成し、次の内容を記述します。各プレースホルダーの値をそれぞれクラスター名、クラスターのリージョン、IAM ロール ARN、アイデンティティセンターインスタンス ARN、アイデンティティセンターリージョン、およびユーザー ID に置き換えます。
apiVersion: eksctl.io/v1alpha5 kind: ClusterConfig metadata: name:my-clusterregion:cluster-region-codecapabilities: - name: my-argocd type: ARGOCD roleArn:arn:aws:iam::111122223333:role/ArgoCDCapabilityRoledeletePropagationPolicy: RETAIN configuration: argocd: awsIdc: idcInstanceArn:arn:aws:sso:::instance/ssoins-123abcidcRegion:idc-region-coderbacRoleMappings: - role: ADMIN identities: - id:38414300-1041-708a-01af-5422d6091e34type: SSO_USER
注記
RBAC マッピングに複数のユーザーまたはグループを追加できます。グループの場合、type: SSO_GROUP を使用してグループ ID を指定します。使用可能なロールは、ADMIN、EDITOR、および VIEWER です。
プライベートアクセス用に VPC エンドポイントを設定した場合は、機能定義に networkConfiguration セクションを追加します。vpce-xxxxxxxx を実際の VPC エンドポイント ID に置き換えます。
apiVersion: eksctl.io/v1alpha5 kind: ClusterConfig metadata: name:my-clusterregion:cluster-region-codecapabilities: - name: my-argocd type: ARGOCD roleArn: arn:aws:iam::111122223333:role/ArgoCDCapabilityRole deletePropagationPolicy: RETAIN networkConfiguration: elasticNetworkInterfaces: vpcEndpointId:vpce-xxxxxxxxconfiguration: argocd: awsIdc: idcInstanceArn:arn:aws:sso:::instance/ssoins-123abcidcRegion:idc-region-coderbacRoleMappings: - role: ADMIN identities: - id:38414300-1041-708a-01af-5422d6091e34type: SSO_USER
注記
プライベートエンドポイントを有効にすると、Argo CD UI と API は VPC エンドポイント経由でのみアクセスできます。Argo CD インターフェイスにアクセスするには、ユーザーは VPC (またはピアリングされたネットワーク) に接続されている必要があります。
ステップ 4: Argo CD 機能を作成する
設定ファイルを適用します。
eksctl create capability -f argocd-capability.yaml
このコマンドはすぐに戻りますが、機能がアクティブになるまでにはしばらく時間がかかります。
ステップ 5: 機能がアクティブであることを確認する
機能のステータスを確認します。region-code はクラスターがある AWS リージョンに、my-cluster はクラスターの名前に置き換えます。
eksctl get capability \ --regionregion-code\ --clustermy-cluster\ --name my-argocd
ステータスが ACTIVE と表示されたら、機能の準備は完了です。
ステップ 6: カスタムリソースが使用可能であることを確認する
機能がアクティブになったら、Argo CD カスタムリソースがクラスターで使用可能になっていることを確認します。
kubectl api-resources | grep argoproj.io
Application と ApplicationSet のリソースタイプがリストされます。
次のステップ
-
Argo CD の使用 – Argo CD Application を作成および管理する方法を学ぶ
-
Argo CD に関する考慮事項 – SSO とマルチクラスターアクセスを設定する
-
機能リソースの使用 – Argo CD 機能リソースを管理する