使用 eksctl 创建 Argo CD 功能 - Amazon EKS
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

帮助改进此页面

要帮助改进本用户指南,请选择位于每个页面右侧窗格中的在 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 策略示例和配置指南,请参阅使用 Amazon Secrets Manager 管理应用程序密钥使用 Amazon CodeConnections 连接到 Git 存储库

步骤 2:获取 Amazon 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 替换为您的集群所在的 Amazon 区域,并将 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 资源类型。

后续步骤