

 **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
<a name="create-argocd-capability"></a>

En este tema, se explica cómo crear una capacidad de Argo CD en un clúster de Amazon EKS.

## Requisitos previos
<a name="_prerequisites"></a>

Antes de crear una capacidad de Argo CD, asegúrese de que disponga de lo siguiente:
+ Un clúster de Amazon EKS existente que ejecute una versión de Kubernetes compatible (se admiten todas las versiones con soporte estándar y ampliado)
+  **AWS Identity Center configurado**: necesario para la autenticación de Argo CD (no se admiten los usuarios locales)
+ Un rol de capacidad de IAM con permisos para Argo CD
+ Permisos de IAM suficientes para crear recursos de capacidad en los clústeres de EKS
+  `kubectl` configurado para comunicarse con el clúster
+ (Opcional) La CLI de Argo CD instalada para facilitar la administración de clústeres y repositorios
+ (Para la CLI o eksctl) La herramienta de la CLI adecuada instalada y configurada

Para obtener instrucciones sobre cómo crear el rol de capacidad de IAM, consulte [Rol de IAM de capacidad de Amazon EKS](capability-role.md). Para obtener la configuración de Identity Center, consulte [Introducción a AWS Identity Center](https://docs.aws.amazon.com/singlesignon/latest/userguide/getting-started.html).

**importante**  
El rol de capacidad de IAM que proporcione determina a qué recursos de AWS puede acceder Argo CD. Esto incluye el acceso al repositorio de Git a través de CodeConnections y los secretos en Secrets Manager. Para obtener orientación sobre cómo crear un rol adecuado con los permisos de privilegio mínimo, consulte [Rol de IAM de capacidad de Amazon EKS](capability-role.md) y [Consideraciones sobre la seguridad para las capacidades de EKS](capabilities-security.md).

## Elección de la herramienta
<a name="_choose_your_tool"></a>

Puede crear una capacidad de Argo CD mediante la Consola de administración de AWS, la AWS CLI o eksctl:
+  [Creación de una capacidad de Argo CD mediante la consola](argocd-create-console.md): uso de la consola para una experiencia guiada
+  [Creación de una capacidad de Argo CD mediante la AWS CLI](argocd-create-cli.md): uso de la AWS CLI para scripts y automatización
+  [Creación de una capacidad de Argo CD mediante eksctl](argocd-create-eksctl.md): uso de eksctl para una experiencia nativa de Kubernetes

## Qué ocurre cuando se crea una capacidad de Argo CD
<a name="_what_happens_when_you_create_an_argo_cd_capability"></a>

Cuando crea una capacidad de Argo CD:

1. EKS crea el servicio de capacidad de Argo CD en el plano de control de AWS.

1. Las definiciones de recursos personalizados (CRD) de Kubernetes se instalan en el clúster.

1. Se crea automáticamente una entrada de acceso para el rol de capacidad de IAM, con políticas de entrada de acceso específicas de la capacidad que conceden permisos básicos de Kubernetes (consulte [Consideraciones sobre la seguridad para las capacidades de EKS](capabilities-security.md)).

1. Argo CD comienza a supervisar sus recursos personalizados (Aplicaciones, ApplicationSets, AppProjects)

1. El estado de la capacidad cambia de `CREATING` a `ACTIVE`. 

1. La interfaz de usuario de Argo CD pasa a estar accesible a través de su URL

Una vez activa, puede crear Aplicaciones de Argo CD en el clúster para implementar desde los orígenes declarativos.

**nota**  
La entrada de acceso creada automáticamente no concede permisos para implementar aplicaciones en clústeres. Para implementar aplicaciones, debe configurar permisos adicionales de control de acceso basado en roles de Kubernetes para cada clúster de destino. Consulte [Registro de clústeres de destino](argocd-register-clusters.md) para obtener detalles sobre cómo registrar clústeres y configurar el acceso.

## Siguientes pasos
<a name="_next_steps"></a>

Después de crear la capacidad de Argo CD:
+  [Conceptos de Argo CD](argocd-concepts.md): más información sobre los principios de GitOps, las políticas de sincronización y los patrones de varios clústeres
+  [Uso de Argo CD](working-with-argocd.md): configuración del acceso a repositorios, registro de clústeres de destino y creación de aplicaciones
+  [Consideraciones sobre Argo CD](argocd-considerations.md): exploración de los patrones de arquitectura de varios clústeres y configuración avanzada

# Creación de una capacidad de Argo CD mediante la consola
<a name="argocd-create-console"></a>

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

## Requisitos previos
<a name="_prerequisites"></a>
+  ** 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](https://docs.aws.amazon.com/singlesignon/latest/userguide/getting-started.html) para crear una instancia de Identity Center y [Adición de usuarios](https://docs.aws.amazon.com/singlesignon/latest/userguide/addusers.html) y [Adición de grupos](https://docs.aws.amazon.com/singlesignon/latest/userguide/addgroups.html) para crear usuarios y grupos a fin de acceder a Argo CD.

## Creación de la capacidad de Argo CD
<a name="_create_the_argo_cd_capability"></a>

1. Abra la consola de Amazon EKS en https://console.aws.amazon.com/eks/home\$1/clusters.

1. Seleccione el nombre del clúster para abrir la página de detalles del clúster.

1. Elija la pestaña **Capacidades**.

1. En el panel de navegación izquierdo, elija **Argo CD**.

1. Elija **Crear capacidad de Argo CD**.

1. Para el **rol de capacidad de IAM**:
   + Si ya tiene un rol de capacidad de IAM, selecciónelo en el menú desplegable.
   + Si necesita crear un rol, elija **Crear rol de Argo CD**. 

     De este modo, se abre la consola de IAM en una nueva pestaña con la política de confianza rellenada previamente y el acceso completo de lectura a Secrets Manager. No se agrega ningún otro permiso de forma predeterminada, pero puede agregarlos si es necesario. Si tiene previsto usar los repositorios de CodeCommit u otros servicios de AWS, agregue los permisos adecuados antes de crear el rol.

     Después de crear el rol, regrese a la consola de EKS y el rol se seleccionará automáticamente.
**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](integration-secrets-manager.md) y [Conexión a los repositorios de Git con AWS CodeConnections](integration-codeconnections.md).

1. Configure la integración de AWS Identity Center:

   1. Seleccione **Habilitar la integración de AWS Identity Center**.

   1. Elija su instancia de Identity Center en el menú desplegable.

   1. Para configurar las asignaciones de roles para RBAC, asigne usuarios o grupos a los roles de Argo CD (ADMIN, EDITOR o VIEWER)

1. Seleccione **Crear**.

Comenzará el proceso de creación de la capacidad.

## Comprobación de la activación de la capacidad
<a name="_verify_the_capability_is_active"></a>

1. En la pestaña **Capacidades**, consulte el estado de la capacidad de Argo CD.

1. Espere a que el estado cambie de `CREATING` a `ACTIVE`.

1. Una vez activa, la capacidad está lista para usarse.

Para obtener información sobre los estados de la capacidad y la solución de problemas, consulte [Uso de recursos de capacidades](working-with-capabilities.md).

## Acceso a la interfaz de usuario de Argo CD
<a name="_access_the_argo_cd_ui"></a>

Después de que la capacidad esté activa, puede acceder a la interfaz de usuario de Argo CD:

1. En la página de la capacidad de Argo CD, seleccione **Abrir la interfaz de usuario de Argo CD**.

1. La interfaz de usuario de Argo CD se abre en una nueva pestaña del navegador.

1. Ahora puede crear aplicaciones y administrar las implementaciones a través de la interfaz de usuario.

## Siguientes pasos
<a name="_next_steps"></a>
+  [Uso de Argo CD](working-with-argocd.md): configuración de repositorios, registro de clústeres y creación de aplicaciones
+  [Consideraciones sobre Argo CD](argocd-considerations.md): arquitectura de varios clústeres y configuración avanzada
+  [Uso de recursos de capacidades](working-with-capabilities.md): administración del recurso de la capacidad de Argo CD

# Creación de una capacidad de Argo CD mediante la AWS CLI
<a name="argocd-create-cli"></a>

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

## Requisitos previos
<a name="_prerequisites"></a>
+  **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](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html) 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`](install-kubectl.md).
+  ** 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](https://docs.aws.amazon.com/singlesignon/latest/userguide/getting-started.html) para crear una instancia de Identity Center y [Adición de usuarios](https://docs.aws.amazon.com/singlesignon/latest/userguide/addusers.html) y [Adición de grupos](https://docs.aws.amazon.com/singlesignon/latest/userguide/addgroups.html) para crear usuarios y grupos a fin de acceder a Argo CD.

## Paso 1: creación de un rol de capacidad de IAM
<a name="_step_1_create_an_iam_capability_role"></a>

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](integration-secrets-manager.md) y [Conexión a los repositorios de Git con AWS CodeConnections](integration-codeconnections.md).

## Paso 2: creación de la capacidad de Argo CD
<a name="_step_2_create_the_argo_cd_capability"></a>

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. 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 ha configurado el IAM Identity Center:

```
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]`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 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
<a name="_step_3_verify_the_capability_is_active"></a>

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
<a name="_step_4_verify_custom_resources_are_available"></a>

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
<a name="_next_steps"></a>
+  [Uso de Argo CD](working-with-argocd.md): configuración de repositorios, registro de clústeres y creación de aplicaciones
+  [Consideraciones sobre Argo CD](argocd-considerations.md): arquitectura de varios clústeres y configuración avanzada
+  [Uso de recursos de capacidades](working-with-capabilities.md): administración del recurso de la capacidad de Argo CD

# Creación de una capacidad de Argo CD mediante eksctl
<a name="argocd-create-eksctl"></a>

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

**nota**  
Los siguientes pasos requieren la versión `0.220.0` o posterior de eksctl. Para comprobar la versión, ejecute `eksctl version`.

## Paso 1: creación de un rol de capacidad de IAM
<a name="_step_1_create_an_iam_capability_role"></a>

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**  
Para esta configuración básica, no se necesitan políticas de IAM adicionales. Si tiene previsto usar Secrets Manager para las credenciales del repositorio o 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](integration-secrets-manager.md) y [Conexión a los repositorios de Git con AWS CodeConnections](integration-codeconnections.md).

## Paso 2: obtención de la configuración de AWS Identity Center
<a name="step_2_get_your_shared_aws_identity_center_configuration"></a>

Obtenga el ARN y el ID de usuario de su instancia de Identity Center para la configuración de RBAC:

```
# 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
```

Anote estos valores, ya que los necesitará en el siguiente paso.

## Paso 3: creación de un archivo de configuración de eksctl
<a name="_step_3_create_an_eksctl_configuration_file"></a>

Cree un archivo llamado `argocd-capability.yaml` con el siguiente contenido. Sustituya los valores de marcador de posición por el nombre del clúster, la región del clúster, el ARN del rol de IAM, el ARN de la instancia de Identity Center, la región de Identity Center y el ID de usuario:

```
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
```

**nota**  
Puede agregar varios usuarios o grupos a las asignaciones de RBAC. Para los grupos, utilice `type: SSO_GROUP` y proporcione el ID del grupo. Los roles disponibles son `ADMIN`, `EDITOR` y `VIEWER`.

## Paso 4: creación de la capacidad de Argo CD
<a name="_step_4_create_the_argo_cd_capability"></a>

Aplique el archivo de configuración:

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

El comando vuelve inmediatamente, pero la capacidad tarda algún tiempo en activarse.

## Paso 5: comprobación de la activación de la capacidad
<a name="_step_5_verify_the_capability_is_active"></a>

Compruebe el estado de la capacidad. Reemplace *region-code* por la región de AWS donde creó el clúster y *my-cluster* por el nombre de su clúster.

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

La capacidad estará lista cuando aparezca el estado `ACTIVE`.

## Paso 6: comprobación de la disponibilidad de los recursos personalizados
<a name="_step_6_verify_custom_resources_are_available"></a>

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
<a name="_next_steps"></a>
+  [Uso de Argo CD](working-with-argocd.md): más información sobre cómo crear y administrar aplicaciones de Argo CD
+  [Consideraciones sobre Argo CD](argocd-considerations.md): configuración del SSO y el acceso a varios clústeres
+  [Uso de recursos de capacidades](working-with-capabilities.md): administración del recurso de la capacidad de Argo CD