Skip to content

Experimental AWS target (EKS Autopilot / Auto Mode)

Status: experimental (ADR 0007 / ADR 0008). Not Magento-acceptance certified. Certified paths remain AWS ECS Fargate and GCP GKE Autopilot. See the product matrix in architecture.md.

Target

target:
  provider: aws
  runtime: eks-autopilot
  aws:
    # Same account inputs as ECS (KMS, secrets, VPC CIDR, AZs, image digest).
    catalog:
      eks:
        cpuRequest: 500m
        memoryRequest: 1Gi
        desiredWebReplicas: 1
      # Do not set catalog.fargate CPU/memory on this runtime.
      databaseEngine: rds-mysql   # preview-friendly
      searchMode: disabled        # deferred on EKS

DIY stack name: project-env-aws-eks-autopilot.

What this stack provisions

Magento need AWS product
Network VPC, private/public/data subnets, NAT (natMode)
MySQL Aurora MySQL or RDS MySQL (preview)
Valkey ElastiCache Valkey
Compute EKS Auto Mode (web + cron Deployments, migrate Job, optional queue)
Ingress Kubernetes Service LoadBalancer (no CloudFront/WAF yet)

Deferred (same honesty as GCP experimental): OpenSearch, Amazon MQ, media/CDN, Synthetics, Magento candidate deploy orchestration, kube logs/exec.

Day-2 ports

Bootstrap, DIY state locks, and Secrets Manager reuse the certified AWS packages. HasOps Magento deploy steps and HasRuntimeObserve return ErrNotSupported until phase 3.

Architecture seam

Portable Magento ports stay in internal/platform. Runtime lives in internal/cloud/aws/eks; the StackModule is internal/cloud/aws/eksops. There is no shared Kubernetes package with GCP.

Verification

  • Unit/mock: go test ./internal/cloud/aws/eks/... ./internal/cloud/aws/eksops/...
  • Preview against a real account only when you intend to pay for EKS Auto Mode + RDS/ElastiCache; destroy on exit. Prefer Floci + mocks for day-to-day work.