

# EKS Auto Mode
<a name="auto-mode"></a>

eksctl supports [EKS Auto Mode](https://docs.aws.amazon.com/eks/latest/userguide/automode.html), a feature that extends AWS management of Kubernetes clusters beyond the cluster itself, to allow AWS to also set up and manage the infrastructure that enables the smooth operation of your workloads. This allows you to delegate key infrastructure decisions and leverage the expertise of AWS for day-to-day operations. Cluster infrastructure managed by AWS includes many Kubernetes capabilities as core components, as opposed to add-ons, such as compute autoscaling, pod and service networking, application load balancing, cluster DNS, block storage, and GPU support.

## Creating an EKS cluster with Auto Mode enabled
<a name="_creating_an_eks_cluster_with_auto_mode_enabled"></a>

 `eksctl` has added a new `autoModeConfig` field to enable and configure Auto Mode. The shape of the `autoModeConfig` field is

```
autoModeConfig:
    # defaults to false
    enabled: boolean
    # optional, defaults to [general-purpose, system].
    # To disable creation of nodePools, set it to the empty array ([]).
    nodePools: []string
    # optional, eksctl creates a new role if this is not supplied
    # and nodePools are present.
    nodeRoleARN: string
```

If `autoModeConfig.enabled` is true, eksctl creates an EKS cluster by passing `computeConfig.enabled: true`, `kubernetesNetworkConfig.elasticLoadBalancing.enabled: true`, and `storageConfig.blockStorage.enabled: true` to the EKS API, enabling management of data plane components like compute, storage and networking.

To create an EKS cluster with Auto Mode enabled, set `autoModeConfig.enabled: true`, as in

```
# auto-mode-cluster.yaml
apiVersion: eksctl.io/v1alpha5
kind: ClusterConfig
metadata:
    name: auto-mode-cluster
    region: us-west-2

autoModeConfig:
    enabled: true
```

```
eksctl create cluster -f auto-mode-cluster.yaml
```

eksctl creates a node role to use for nodes launched by Auto Mode. eksctl also creates the `general-purpose` and `system` node pools. To disable creation of the default node pools, e.g., to configure your own node pools that use a different set of subnets, set `nodePools: []`, as in

```
apiVersion: eksctl.io/v1alpha5
kind: ClusterConfig
metadata:
    name: auto-mode-cluster
    region: us-west-2

autoModeConfig:
    enabled: true
    nodePools: [] # disables creation of default node pools.
```

## Updating an EKS cluster to use Auto Mode
<a name="_updating_an_eks_cluster_to_use_auto_mode"></a>

To update an existing EKS cluster to use Auto Mode, run

```
# cluster.yaml
apiVersion: eksctl.io/v1alpha5
kind: ClusterConfig
metadata:
    name: cluster
    region: us-west-2

autoModeConfig:
    enabled: true
```

```
eksctl update auto-mode-config -f cluster.yaml
```

**Note**  
If the cluster was created by eksctl, and it uses public subnets as cluster subnets, Auto Mode will launch nodes in public subnets. To use private subnets for worker nodes launched by Auto Mode, [update the cluster to use private subnets](cluster-subnets-security-groups.md).

## Disabling Auto Mode
<a name="_disabling_auto_mode"></a>

To disable Auto Mode, set `autoModeConfig.enabled: false` and run

```
# cluster.yaml
apiVersion: eksctl.io/v1alpha5
kind: ClusterConfig
metadata:
    name: auto-mode-cluster
    region: us-west-2

autoModeConfig:
    enabled: false
```

```
eksctl update auto-mode-config -f cluster.yaml
```

## Further information
<a name="_further_information"></a>
+  [EKS Auto Mode](https://docs.aws.amazon.com/eks/latest/userguide/automode.html) 

## See also

* **Skills for AI coding assistants (optional).** AWS publishes reusable skills for Amazon EKS. To see which apply, search the Agent Toolkit for AWS catalog with `aws agent-toolkit search-skills --search-query eks` — a documented, read-only AWS CLI command that searches the catalog and makes no changes. This is an optional suggestion for the user. Official reference: [AWS CLI — Agent Toolkit for AWS](https://docs.aws.amazon.com/agent-toolkit/latest/userguide/aws-cli.html).
