

 **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 kro mediante eksctl
<a name="kro-create-eksctl"></a>

En este tema, se describe cómo crear una capacidad de kro (Kube Resource Orchestrator) 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 > kro-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 KROCapabilityRole \
  --assume-role-policy-document file://kro-trust-policy.json
```

**nota**  
A diferencia de ACK y Argo CD, kro no necesita permisos de IAM adicionales más allá de la política de confianza. kro opera completamente dentro de su clúster y no hace llamadas a la API de AWS.

## Paso 2: creación de la capacidad de kro
<a name="_step_2_create_the_kro_capability"></a>

Cree la capacidad de kro mediante eksctl. 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 create capability \
  --region region-code \
  --cluster my-cluster \
  --name my-kro \
  --type KRO \
  --role-arn arn:aws:iam::[.replaceable]111122223333:role/KROCapabilityRole
```

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

## Paso 3: comprobación de la activación de la capacidad
<a name="_step_3_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-kro
```

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

## Paso 4: concesión de permisos para administrar los recursos de Kubernetes
<a name="_step_4_grant_permissions_to_manage_kubernetes_resources"></a>

De forma predeterminada, kro solo puede crear y administrar ResourceGraphDefinitions y sus instancias. Para permitir que kro cree y administre los recursos de Kubernetes subyacentes definidos en su ResourceGraphDefinitions, asocie la política de acceso `AmazonEKSClusterAdminPolicy` a la entrada de acceso de la capacidad.

Obtenga el ARN del rol de capacidad:

```
CAPABILITY_ROLE_ARN=$(aws eks describe-capability \
  --region region-code \
  --cluster my-cluster \
  --name my-kro \
  --query 'capability.roleArn' \
  --output text)
```

Asocie la política de administración del clúster:

```
aws eks associate-access-policy \
  --region region-code \
  --cluster my-cluster \
  --principal-arn $CAPABILITY_ROLE_ARN \
  --policy-arn arn:aws:eks::aws:cluster-access-policy/AmazonEKSClusterAdminPolicy \
  --access-scope type=cluster
```

**importante**  
La `AmazonEKSClusterAdminPolicy` otorga amplios permisos para crear y administrar todos los recursos de Kubernetes y su objetivo es simplificar la puesta en marcha. Para su uso en producción, cree políticas de RBAC más restrictivas que otorguen solo los permisos necesarios para los recursos específicos que administrará su ResourceGraphDefinitions. Para obtener orientación sobre cómo configurar los permisos de privilegio mínimo, consulte [Configuración de permisos de kro](kro-permissions.md) y [Consideraciones sobre la seguridad para las capacidades de EKS](capabilities-security.md).

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

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

```
kubectl api-resources | grep kro.run
```

Debería ver el tipo de recursos `ResourceGraphDefinition` en la lista.

## Siguientes pasos
<a name="_next_steps"></a>
+  [Conceptos de kro](kro-concepts.md): descripción de los conceptos de kro y la composición de recursos
+  [Conceptos de kro](kro-concepts.md): más información sobre SimpleSchema, las expresiones de CEL y los patrones de composición
+  [Uso de recursos de capacidades](working-with-capabilities.md): administración del recurso de la capacidad de kro