使用 CLI 建立 Argo CD AWS 功能 - Amazon EKS

協助改進此頁面

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

若要為本使用者指南貢獻內容,請點選每個頁面右側面板中的在 GitHub 上編輯此頁面連結。

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用 CLI 建立 Argo CD AWS 功能

本主題說明如何使用 CLI 建立 Argo CD AWS 功能。

先決條件

  • AWS CLI – 版本 2.12.3 或更新版本。若要檢查您的版本,請執行 aws --version。如需詳細資訊,請參閱《 AWS 命令列界面使用者指南》中的安裝

  • kubectl :命令列工具,適用於使用 Kubernetes 叢集。如需詳細資訊,請參閱設定 kubectl 和 eksctl

  • AWS 已設定 Identity Center – Argo CD 需要 AWS Identity Center 進行身分驗證。不支援本機使用者。如果您沒有設定 AWS Identity Center,請參閱 AWS 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
注意

如果您計劃使用與 AWS Secrets Manager 或 AWS CodeConnections 的選用整合,您將需要將許可新增至角色。如需 IAM 政策範例和組態指引,請參閱 使用 AWS Secrets Manager 管理應用程式秘密使用 AWS 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 取代為您的叢集所在的 AWS 區域,並將 my-cluster 取代為您的叢集名稱:

aws eks create-capability \ --region region-code \ --cluster-name my-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 \ --region region-code \ --cluster-name my-cluster \ --capability-name my-argocd \ --query 'capability.status' \ --output text

當狀態顯示 時,此功能已就緒ACTIVE。在狀態為 之前,請勿繼續下一個步驟ACTIVE

您也可以檢視完整的功能詳細資訊:

aws eks describe-capability \ --region region-code \ --cluster-name my-cluster \ --capability-name my-argocd

步驟 4:確認可用的自訂資源

功能處於作用中狀態後,請確認叢集中是否有可用的 Argo CD 自訂資源:

kubectl api-resources | grep argoproj.io

您應該會看到列出的 ApplicationSet Application和資源類型。

後續步驟