帮助改进此页面
要帮助改进本用户指南,请选择位于每个页面右侧窗格中的在 GitHub 上编辑此页面链接。
使用 Amazon CLI 创建 Argo CD 功能
本主题将介绍如何使用 Amazon CLI 创建 Argo CD 功能。
先决条件
-
Amazon CLI:版本
2.12.3或更高版本。要检查版本,请运行aws --version。有关更多信息,请参阅《Amazon 命令行界面用户指南》中的安装。 -
kubectl:用于与 Kubernetes 集群结合使用的命令行工具。有关更多信息,请参阅 设置 kubectl 和 eksctl。 -
已配置 Amazon Identity Center:Argo CD 需要使用 Amazon Identity Center 进行身份验证。不支持本地用户。如果您尚未设置 Amazon Identity Center,请参阅开始使用 Amazon Identity Center 以创建 Identity Center 实例,并参阅添加用户和添加组以创建用于访问 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
注意
如果计划使用与 Amazon Secrets Manager 或 Amazon CodeConnections 的可选集成,则需要向该角色添加权限。有关 IAM 策略示例和配置指南,请参阅使用 Amazon Secrets Manager 管理应用程序密钥和使用 Amazon CodeConnections 连接到 Git 存储库。
步骤 2:创建 Argo CD 功能
在集群上创建 Argo CD 功能资源。
首先,为 Identity Center 配置设置环境变量:
# 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"
创建集成了 Identity Center 的功能。将 region-code 替换为集群所在的 Amazon 区域,并将 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 自定义资源定义。
注意
如果收到集群不存在或您没有权限的错误消息,请验证:
-
集群名称是否正确
-
Amazon CLI 是否针对正确的区域进行配置
-
您是否拥有所需的 IAM 权限
步骤 3:验证功能是否处于活动状态
等待功能变为活动状态。将 region-code 替换为集群所在的 Amazon 区域,并将 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:配置存储库、注册集群和创建应用程序
-
Argo CD 注意事项:多集群架构和高级配置
-
使用功能资源:管理 Argo CD 功能资源