On AWS (EKS)
Everything specific to AWS happens before the Helm install: a cluster, an ingress controller behind a load balancer, cert-manager, and a DNS record. Terraform for all of it is in verana-deploy-examples (VPC, EKS, EBS CSI with a gp3 storage class, ingress-nginx behind a Network Load Balancer, cert-manager, Route 53 record); its README states whether it has been verified. The steps below are the CLI path to the same result.
Steps
- Cluster. Create an EKS cluster with one managed node group of two small nodes (
t3.mediumis enough for a few agents) and the EBS CSI driver add-on, which provides thegp3storage class the agent volume uses. With eksctl:eksctl create cluster --name agents --region eu-west-1 --nodes 2 --node-type t3.mediumtheneksctl create addon --name aws-ebs-csi-driver --cluster agents. - Ingress controller. Install ingress-nginx with a Service of type
LoadBalancer; AWS provisions a Network Load Balancer. Read its DNS name from the Service. - DNS. In Route 53, create a CNAME (or alias)
agent.example.comto the load balancer name. - cert-manager. Install cert-manager and a
ClusterIssuerfor Let's Encrypt with the HTTP-01 solver on classnginx. - Storage class. Set
storage.storageClassName: gp3in your values. - Continue with Deploy on Kubernetes with Helm.
Notes
- Keep the admin API internal (the default). Your backend runs in the same cluster or VPC and reaches
agent.agents.svc:3000. - Secrets: store the mnemonic in AWS Secrets Manager and sync it with External Secrets Operator, or create the Kubernetes Secret from your pipeline.
- Cost: two small nodes and one NLB are the whole bill for a handful of agents.