Welcome to Edera

Customer training for authorized users only

Only users with authorized email domains can access this portal.
Contact support@edera.dev if you need assistance.

AWS EKS Deployment


AWS EKS deployments use a different approach: instead of installing Edera on existing nodes, you deploy nodes with pre-configured Edera AMIs.

This streamlines the process and ensures consistent configuration across your EKS cluster.

Prerequisites

Before you begin, ensure you have:

  • AWS CLI installed and configured
  • kubectl installed
  • Terraform (recommended for infrastructure as code)
  • Edera AMI access (provide to Edera support team on the customer portal)
  • Edera account ID (provided by Edera team during onboarding)

Regional Availability

Edera AMIs are currently available in two regions:

  • us-west-2 (US West - Oregon)
  • us-gov-west-1 (AWS GovCloud US-West)

Plan your deployment accordingly. If you need support for additional regions, contact Edera support.

Step 1: Locate the Edera AMI

Set your region:

export AWS_REGION=us-west-2  # or us-gov-west-1 for GovCloud

Query available Edera AMIs using the AWS CLI:

aws ec2 describe-images \
  --owners <edera-account-id> \
  --filters "Name=name,Values=edera-*" \
  --region $AWS_REGION \
  --query 'Images[*].[ImageId,Name,CreationDate]' \
  --output table

Note the most recent AMI IDβ€”you’ll use this in your Terraform configuration.

Step 2: Configure Terraform

Use the official EKS Terraform module with the Edera AMI.

Data source for Edera AMI:

data "aws_ami" "edera" {
  most_recent = true
  owners      = ["<edera-account-id>"]

  filter {
    name   = "name"
    values = ["edera-*"]
  }

  filter {
    name   = "virtualization-type"
    values = ["hvm"]
  }
}

EKS cluster configuration:

module "eks" {
  source  = "terraform-aws-modules/eks/aws"
  version = "~> 20.0"

  cluster_name    = "edera-cluster"
  cluster_version = "1.32"

  vpc_id     = module.vpc.vpc_id
  subnet_ids = module.vpc.private_subnets

  eks_managed_node_groups = {
    edera_nodes = {
      ami_id        = data.aws_ami.edera.id
      instance_types = ["t3.medium"]

      min_size     = 2
      max_size     = 10
      desired_size = 3

      labels = {
        runtime = "edera"
      }
    }
  }
}

Step 3: Deploy the Cluster

Initialize and apply the Terraform configuration:

terraform init
terraform plan
terraform apply

This provisions your EKS cluster with nodes running the Edera AMI.

Step 4: Connect to Your Cluster

Update your kubeconfig to access the new cluster:

aws eks update-kubeconfig \
  --name edera-cluster \
  --region $AWS_REGION

Verify connectivity:

kubectl get nodes

All nodes should show Ready status.

Step 5: Verify Nodes Are Running Edera

Confirm that your nodes are using the Edera AMI:

kubectl describe nodes | grep ami

Check the AMI ID matches the Edera AMI you specified in Terraform.

Step 6: Create the RuntimeClass

Apply the Edera RuntimeClass:

kubectl apply -f https://public.edera.dev/kubernetes/runtime-class.yaml

Step 7: Deploy a Test Workload

Create a test pod to verify Edera is working:

cat <<EOF | kubectl apply -f -
apiVersion: v1
kind: Pod
metadata:
  name: edera-test-eks
  namespace: default
spec:
  runtimeClassName: edera
  containers:
  - name: nginx
    image: nginx:latest
    ports:
    - containerPort: 80
EOF

Check the pod status:

kubectl get pod edera-test-eks
kubectl describe pod edera-test-eks | grep -B 3 edera

The pod should be running with Runtime Class Name: edera.

EKS-Specific Considerations

Node Auto-Scaling

Configure cluster autoscaler to work with Edera nodes:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: cluster-autoscaler
  namespace: kube-system
spec:
  template:
    spec:
      containers:
      - name: cluster-autoscaler
        image: k8s.gcr.io/autoscaling/cluster-autoscaler:v1.27.0
        command:
          - ./cluster-autoscaler
          - --cloud-provider=aws
          - --nodes=2:10:edera-cluster-edera-nodes

IAM Roles for Service Accounts (IRSA)

Edera works seamlessly with IRSA. Configure your pod service accounts as usual:

apiVersion: v1
kind: ServiceAccount
metadata:
  name: my-service-account
  annotations:
    eks.amazonaws.com/role-arn: arn:aws:iam::123456789012:role/my-role

Edera-isolated pods can assume IAM roles just like standard EKS pods.

VPC CNI Compatibility

Edera is compatible with the AWS VPC CNI plugin. No special configuration required.

AMI Updates

Edera periodically releases updated AMIs with security patches and improvements. To update:

  1. Identify the latest AMI using aws ec2 describe-images
  2. Update your Terraform configuration with the new AMI ID
  3. Apply the configuration: terraform apply
  4. Rotate nodes gradually using rolling updates

Getting AMI Access

To deploy Edera on AWS EKS, contact the Edera customer engineering team:

The team will share the Edera AMI with your account and provide the Edera account ID for AMI queries.

What’s Next?

AWS EKS deployment complete! Now let’s look at other cloud platforms.

Up next: Azure Linux Deployment β†’

Last updated on