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
Cree una capacidad de Argo CD en su clúster de Amazon EKS mediante la AWS CLI. Este procedimiento le guía a través de la creación de un rol de IAM, la configuración de la integración de AWS Identity Center y la verificación de que la capacidad esté activa.
Requisitos previos
-
AWS CLI: versión
2.12.3o posterior. Para comprobar la versión, ejecuteaws --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.
-
Al menos un usuario o grupo en AWS Identity Center: debe tener al menos un usuario o grupo configurado en la instancia de Identity Center para asignar asignaciones de roles de RBAC de Argo CD y proporcionar acceso a la interfaz de usuario de 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, agregue 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.
(Opcional) Configuración de un punto de conexión privado
De forma predeterminada, la interfaz de usuario de Argo CD y el punto de conexión de la API son accesibles públicamente a través de Internet. Si necesita restringir el acceso, puede configurar un punto de conexión de VPC. Esta opción se recomienda para entornos con requisitos de seguridad de red estrictos.
Creación de un punto de conexión de VPC para capacidades de EKS
Cree un punto de conexión de VPC de interfaz para el servicio de capacidades de EKS en la VPC. Sustituya vpc-id, subnet-id-1 subnet-id-2, sg-id y region-code por sus propios valores:
aws ec2 create-vpc-endpoint \ --vpc-endpoint-type Interface \ --service-name com.amazonaws.region-code.eks-capabilities \ --vpc-idvpc-id\ --subnet-idssubnet-id-1 subnet-id-2\ --security-group-idssg-id\ --regionregion-code
nota
-
Las subredes deben estar en diferentes zonas de disponibilidad para lograr una alta disponibilidad.
-
El grupo de seguridad debe permitir el tráfico HTTPS (puerto 443) entrante desde las redes que necesitan acceder a la interfaz de usuario y la API de Argo CD.
-
Anote el ID de punto de conexión de VPC devuelto por este comando: lo necesitará al crear la capacidad.
Verificación de que el punto de conexión de VPC esté disponible
aws ec2 describe-vpc-endpoints \ --vpc-endpoint-idsvpce-xxxxxxxx\ --query 'VpcEndpoints[0].State' \ --output text \ --regionregion-code
Espere a que aparezca el estado available antes de continuar.
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 --regionregion-code--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 \ --regionregion-code\ --identity-store-id $(aws sso-admin list-instances --regionregion-code--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. Sustituya region-code por la región de AWS donde se encuentra el clúster, my-cluster por el nombre del clúster e idc-region-code por el código de la región donde se encuentra la instancia de Identity Center:
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": "'idc-region-code'" }, "rbacRoleMappings": [{ "role": "ADMIN", "identities": [{ "id": "'$IDC_USER_ID'", "type": "SSO_USER" }] }] } }'
Si configuró un punto de conexión de VPC para el acceso privado, incluya el parámetro network-configuration para crear la capacidad con un punto de conexión privado. Sustituya vpce-xxxxxxxx por el ID de punto de conexión de VPC:
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 \ --network-configuration '{ "elasticNetworkInterfaces": { "vpcEndpointId": "'vpce-xxxxxxxx'" } }' \ --configuration '{ "argoCd": { "awsIdc": { "idcInstanceArn": "'$IDC_INSTANCE_ARN'", "idcRegion": "'idc-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 instala las definiciones de recursos personalizados (CRD) de Kubernetes en su clúster durante la creación de la capacidad.
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 \ --regionregion-code\ --cluster-namemy-cluster\ --capability-name my-argocd \ --query 'capability.status' \ --output text
La capacidad estará lista cuando aparezca el estado ACTIVE. Espere a que el estado sea ACTIVE antes de continuar al paso siguiente.
También puede ver todos los detalles de la capacidad:
aws eks describe-capability \ --regionregion-code\ --cluster-namemy-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
-
Uso de Argo CD: configuración de repositorios, registro de clústeres y creación de aplicaciones
-
Consideraciones sobre Argo CD: arquitectura de varios clústeres y configuración avanzada
-
Uso de recursos de capacidades: administración del recurso de la capacidad de Argo CD