Creación de una capacidad de Argo CD mediante la AWS CLI - Amazon EKS

Ayude a mejorar esta página

Para contribuir a esta guía del usuario, elija el enlace Edit this page on GitHub que se encuentra en el panel derecho de cada página.

Creación de una capacidad de Argo CD mediante la AWS CLI

En este tema, se describe cómo crear una capacidad de Argo CD mediante la AWS CLI.

Requisitos previos

  • AWS CLI: versión 2.12.3 o posterior. Para comprobar la versión, ejecute aws --version. Para obtener más información, consulte Instalación en la Guía del usuario de la interfaz de la línea de comandos de AWS.

  • kubectl – una herramienta de línea de comandos para trabajar con clústeres de Kubernetes. Para obtener más información, consulte Configuración de kubectl y eksctl.

  • AWS Identity Center configurado: Argo CD requiere AWS Identity Center para la autenticación. No se admiten usuarios locales. Si no ha configurado AWS Identity Center, consulte Introducción a AWS Identity Center para crear una instancia de Identity Center y Adición de usuarios y Adición de grupos para crear usuarios y grupos a fin de acceder a Argo CD.

Paso 1: creación de un rol de capacidad de IAM

Cree un archivo de política de confianza:

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

Cree el rol de IAM:

aws iam create-role \ --role-name ArgoCDCapabilityRole \ --assume-role-policy-document file://argocd-trust-policy.json
nota

Si tiene previsto usar las integraciones opcionales con AWS Secrets Manager o AWS CodeConnections, tendrá que agregar permisos al rol. Para ver ejemplos de políticas de IAM y guías de configuración, consulte Administración de secretos de aplicaciones con AWS Secrets Manager y Conexión a los repositorios de Git con AWS CodeConnections.

Paso 2: creación de la capacidad de Argo CD

Cree el recurso de la capacidad de Argo CD en su clúster.

En primer lugar, defina las variables de entorno para la configuración de 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"

Cree la capacidad con la integración de Identity Center. Reemplace region-code por la región de AWS en la que se encuentra el clúster y my-cluster por el nombre del clúster:

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" }] }] } }'

El comando devuelve una respuesta inmediatamente, pero la capacidad tarda algún tiempo en activarse mientras EKS crea la infraestructura y los componentes de la capacidad necesarios. EKS instalará las definiciones de recursos personalizados de Kubernetes relacionadas con esta capacidad en el clúster según se vaya creando.

nota

Si recibe un error que indica que el clúster no existe o que no tiene permisos, compruebe lo siguiente:

  • El nombre del clúster es correcto

  • La AWS CLI está configurada para la región correcta

  • Dispone de los permisos de IAM necesarios

Paso 3: comprobación de la activación de la capacidad

Espere a que se active la capacidad. Reemplace region-code por la región de AWS en la que se encuentra el clúster y my-cluster por el nombre del clúster.

aws eks describe-capability \ --region region-code \ --cluster-name my-cluster \ --capability-name my-argocd \ --query 'capability.status' \ --output text

La capacidad estará lista cuando aparezca el estado ACTIVE. No continúe con el paso siguiente hasta que el estado sea ACTIVE.

También puede ver todos los detalles de la capacidad:

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

Paso 4: comprobación de la disponibilidad de los recursos personalizados

Una vez que la capacidad esté activa, compruebe que los recursos personalizados de Argo CD estén disponibles en el clúster:

kubectl api-resources | grep argoproj.io

Debería ver todos los tipos de recursos Application y ApplicationSet en la lista.

Siguientes pasos