使用 eksctl 创建 Argo CD 功能 - Amazon EKS

帮助改进此页面

要帮助改进本用户指南,请选择位于每个页面右侧窗格中的在 GitHub 上编辑此页面链接。

使用 eksctl 创建 Argo CD 功能

本主题将介绍如何使用 eksctl 创建 Argo CD 功能。

注意

以下步骤需要 eksctl 版本 0.220.0 或更高版本。要检查版本,请运行 eksctl version

步骤 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 策略。如果计划使用 Secrets Manager 管理存储库凭证或使用 CodeConnections,则需为此角色添加相应权限。有关 IAM 策略示例和配置指南,请参阅使用 AWS Secrets Manager 管理应用程序密钥使用 AWS CodeConnections 连接到 Git 存储库

步骤 2:获取 AWS Identity Center 配置

获取 Identity Center 实例 ARN 和用户 ID,用于 RBAC 配置:

# Get your Identity Center instance ARN aws sso-admin list-instances --query 'Instances[0].InstanceArn' --output text # Get your Identity Center region aws sso-admin list-instances --query 'Instances[0].IdentityStoreId' --output text | cut -d'/' -f1 # 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

记下这些值,下一步将会用到。

步骤 3:创建 eksctl 配置文件

使用以下内容创建名为 argocd-capability.yaml 的文件。将占位符值替换为集群名称、区域、IAM 角色 ARN、Identity Center 实例 ARN、Identity Center 区域和用户 ID:

apiVersion: eksctl.io/v1alpha5 kind: ClusterConfig metadata: name: my-cluster region: region-code capabilities: - name: my-argocd type: ARGOCD roleArn: arn:aws:iam::[.replaceable]111122223333:role/ArgoCDCapabilityRole configuration: argocd: awsIdc: idcInstanceArn: arn:aws:sso:::instance/ssoins-123abc idcRegion: idc-region-code rbacRoleMappings: - role: ADMIN identities: - id: 38414300-1041-708a-01af-5422d6091e34 type: SSO_USER
注意

您可以向 RBAC 映射添加多个用户或组。对于组,请使用 type: SSO_GROUP 并提供组 ID。可用角色包括 ADMINEDITORVIEWER

步骤 4:创建 Argo CD 功能

应用配置文件:

eksctl create capability -f argocd-capability.yaml

命令会立即返回,但该功能需要一些时间才能变为活动状态。

步骤 5:验证功能是否处于活动状态

检查功能状态。将 region-code 替换为您的集群所在的 AWS 区域,并将 my-cluster 替换为您的集群的名称。

eksctl get capability \ --region region-code \ --cluster my-cluster \ --name my-argocd

当状态显示为 ACTIVE 时,表示功能已准备就绪。

步骤 6:验证自定义资源是否可用

待该功能处于活动状态后,验证 Argo CD 自定义资源是否已在集群中正常可用:

kubectl api-resources | grep argoproj.io

您应该会看到列出的 ApplicationApplicationSet 资源类型。

后续步骤