

 **協助改進此頁面** 

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

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

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

# 使用 eksctl 建立 Argo CD 功能
<a name="argocd-create-eksctl"></a>

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

**注意**  
下列步驟需要 eksctl 版本 `0.220.0` 或更新版本。若要檢查您的版本，請執行 `eksctl version`。

## 步驟 1：建立 IAM 功能角色
<a name="_step_1_create_an_iam_capability_role"></a>

建立信任政策檔案：

```
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 管理應用程式秘密](integration-secrets-manager.md)和 [使用 AWS CodeConnections 連線至 Git 儲存庫](integration-codeconnections.md)。

## 步驟 2：取得 AWS Identity Center 組態
<a name="step_2_get_your_shared_aws_identity_center_configuration"></a>

取得 RBAC 組態的 Identity Center 執行個體 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
```

請注意這些值 - 您將在下一個步驟中使用這些值。

## 步驟 3：建立 eksctl 組態檔案
<a name="_step_3_create_an_eksctl_configuration_file"></a>

建立名為 `argocd-capability.yaml` 且具有下列內容的檔案。將預留位置值取代為您叢集的名稱、叢集的區域、IAM 角色 ARN、Identity Center 執行個體 ARN、Identity Center 區域和使用者 ID：

```
apiVersion: eksctl.io/v1alpha5
kind: ClusterConfig

metadata:
  name: my-cluster
  region: cluster-region-code

capabilities:
  - name: my-argocd
    type: ARGOCD
    roleArn: arn:aws:iam::[.replaceable]111122223333:role/ArgoCDCapabilityRole
    deletePropagationPolicy: RETAIN
    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。可用的角色為 `ADMIN`、 `EDITOR`和 `VIEWER`。

## 步驟 4：建立 Argo CD 功能
<a name="_step_4_create_the_argo_cd_capability"></a>

套用組態檔案：

```
eksctl create capability -f argocd-capability.yaml
```

命令會立即傳回，但 功能需要一些時間才會變成作用中。

## 步驟 5：確認功能已啟用
<a name="_step_5_verify_the_capability_is_active"></a>

檢查功能狀態。將 *region-code* 取代為您的叢集所在的 AWS 區域，並將 *my-cluster* 取代為您的叢集名稱。

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

當狀態顯示 時，此功能已就緒`ACTIVE`。

## 步驟 6：確認可用的自訂資源
<a name="_step_6_verify_custom_resources_are_available"></a>

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

```
kubectl api-resources | grep argoproj.io
```

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

## 後續步驟
<a name="_next_steps"></a>
+  [使用 Argo CD](working-with-argocd.md) - 了解如何建立和管理 Argo CD 應用程式
+  [Argo CD 考量事項](argocd-considerations.md) - 設定 SSO 和多叢集存取
+  [使用 功能資源](working-with-capabilities.md) - 管理您的 Argo CD 功能資源