For the complete documentation index, see llms.txt. This page is also available as Markdown.

Configure registry, VPC, EKS, and networking

Build the AWS infrastructure (VPC, IAM, EKS, networking, ECR access) and install the Kubernetes platform components for an In-VPC e6data deployment.

This page builds the AWS infrastructure for an In-VPC deployment and installs the Kubernetes platform components that the e6data workspace runs on. Run these steps with the AWS CLI, kubectl, and Helm.

Infrastructure requirements

Review these requirements before you begin. They apply whether you create a new VPC (Part 1, Step 1) or reuse an existing one.

VPC options

You can either create a new VPC or use an existing one:

Option
When to use

New VPC

Recommended for an isolated e6data deployment. Follow Step 1 in Part 1 below.

Existing VPC

Use when e6data must share a network with other workloads. Skip Step 1 and confirm your VPC meets the requirements below.

VPC and subnet CIDR ranges

Resource
Minimum
Recommended
Notes

VPC CIDR

/20 (4,096 IPs)

/16 (65,536 IPs)

Must accommodate EKS nodes, pods, and services.

Private subnets

/22 per subnet (1,024 IPs)

/20 per subnet (4,096 IPs)

e6data engine nodes run here.

Public subnets

/24 per subnet (256 IPs)

/24 per subnet

NAT Gateway and load balancers only.

Each e6data engine pod consumes one IP address. For large workloads with 100+ concurrent pods, make sure private subnets have enough IP space.

Availability zones

Requirement
Minimum
Recommended

Number of AZs

2

3

Private subnets

1 per AZ

1 per AZ

Public subnets

1 per AZ

1 per AZ

e6data spreads workloads across AZs for high availability. Tag subnets so EKS, the load balancer controller, and Karpenter can discover them:

Service quotas

Verify these quotas before deploying. Request increases early - they can take 24–48 hours.

Service
Quota
Minimum required

EC2

Running On-Demand instances

100 vCPUs

EC2

Running Spot instances

500 vCPUs

EC2

EC2-VPC Elastic IPs

5

EKS

Clusters per Region

1+ available

VPC

NAT Gateways per AZ

1+ available

VPC

VPCs per Region

1+ available

Instance types

Component
Instance families
Architecture
Notes

System nodes

t3, m5

x86_64 (amd64)

EKS managed node group for system pods.

e6-operator

t3, t4g

amd64 or arm64

Operator controller pods.

Engine nodes

r6g, r6gd, r7g, r7gd, m7g, c7g

arm64 (Graviton)

Query engine pods, provisioned by Karpenter.

The e6data engine is optimized for AWS Graviton (arm64) instances for better price-performance. Confirm your Region has capacity for the r6g/r7g families.

VPC CNI configuration

The Amazon VPC CNI plugin manages pod networking:

Setting
Value
Rationale

WARM_IP_TARGET

5

Pre-allocates IPs for faster pod startup.

MINIMUM_IP_TARGET

10

Keeps a minimum number of IPs available per node.

ENABLE_PREFIX_DELEGATION

true

Increases IP capacity per node (recommended for large clusters).

For clusters with 100+ pods, enable prefix delegation to avoid IP exhaustion. It assigns /28 prefixes (16 IPs) instead of individual IPs, allowing up to 110 pods per node on most instance types:

Existing VPC checklist

If you reuse an existing VPC, verify:

Part 1 - AWS infrastructure

Step 1: Create the VPC

Step 2: Create IAM roles

EKS cluster role:

EKS node role:

Karpenter role:

ALB Controller role:

EBS CSI driver role:

The EBS CSI driver addon uses EKS Pod Identity for its IAM permissions:

Step 3: Create the EKS cluster

Step 4: Create the OIDC provider and Pod Identity add-ons

Step 5: Create the system node group

Step 6: Create the S3 metadata bucket

Step 7: Create workspace IAM roles

Create the engine, console, and app roles. All three trust pods.eks.amazonaws.com:

Step 8: Create Pod Identity associations

Step 9: Create the Karpenter SQS queue

Part 2 - Kubernetes platform components

e6data uses the helm template | kubectl apply --server-side pattern instead of helm install to avoid Helm's 1 MB release Secret limit and ensure clean field-manager handling during upgrades.

Step 1: Install Karpenter CRDs

Step 2: Install the Karpenter controller

Step 3: Install the AWS Load Balancer Controller

Step 4: Create the e6-operator NodePool

Step 5: Install cert-manager

Step 6: Install the e6-operator CRDs

e6data provides the CRD files. Apply them with server-side apply:

All CRDs from the provided archive are installed - expect 20+ resources with the e6data.io suffix, including:

Step 7: Create the gp3 StorageClass

Step 8: Install the e6-operator controller

e6data provides the operator Helm chart. Install it with helm template | kubectl apply:

Next

Continue to Deploy workspace and e6data.

Last updated

Was this helpful?