rvn-eks-cluster to use Kubernetes with Ravion. rvn-eks-web, rvn-eks-worker, rvn-eks-chart, and rvn-eks-addons can deploy to an EKS cluster you already run. Instead of picking a Ravion cluster in the Cluster field, enter the cluster’s details yourself.
Ravion doesn’t manage the lifecycle of a cluster you connect this way. Control plane version upgrades and managed node groups stay with whoever manages the cluster today. To hand those over to Ravion, either create a new cluster with
rvn-eks-cluster, or import the existing cluster into an rvn-eks-cluster module’s Terraform state. Importing adopts the cluster without recreating it, and you then select that module in the Cluster field instead of following this guide.Prerequisites
An IAM role with an EKS access entry
The Ravion deploy runner and Terraform assume an IAM role to get a token for the cluster’s Kubernetes API.rvn-eks-cluster creates this role for clusters it manages. For a cluster you bring, create it yourself:
- Create an IAM role in the cluster’s AWS account.
rvn-eks-clusternames it<cluster-name>-ravion-runnerand trusts the account, limited with anaws:PrincipalArncondition to the Ravion runner roles (arn:aws:iam::<account-id>:role/rvn-ci/rvn-ci-*). - Give the role
eks:DescribeClusteron the cluster. Getting a cluster token needs no other IAM permissions. - Add an EKS access entry for the role, and associate
AmazonEKSClusterAdminPolicywith cluster scope. The cluster’s authentication mode must allow access entries (APIorAPI_AND_CONFIG_MAP).
The EKS Pod Identity Agent
The add-ons and the IAM roles of web services and workers get AWS credentials through EKS Pod Identity.rvn-eks-cluster installs the eks-pod-identity-agent add-on. On a cluster you bring, check that it’s installed, and install it if it isn’t:
Networking for a private API endpoint
The deploy runner runs inside your AWS account. If the cluster’s API endpoint is private:- Choose a Terraform execution environment in the cluster’s VPC.
- Create a security group for the runner, and allow HTTPS (port 443) from it to the cluster security group. Enter it as the Ravion Runner security group ID.
Enter the cluster’s details
When you add anrvn-eks-web, rvn-eks-worker, rvn-eks-chart, or rvn-eks-addons module, open the Cluster field and choose Enter values manually. Then fill in:
You can get the endpoint and CA data with:
rvn-eks-web also requires an EKS add-ons reference, which supplies the shared load balancer listeners. Set up rvn-eks-addons on the cluster first, then select it. In rvn-eks-worker, the add-ons reference is optional.
rvn-eks-addons asks for the cluster name, runner role, and runner security group, plus these fields:
- Cluster security group ID: used by Karpenter nodes and shared load balancers. Required when the default NodePool or any shared load balancer is enabled.
- Node subnet IDs: where the default Karpenter NodePool launches nodes. Internal shared load balancers use them too.
- Public subnet IDs: for internet-facing shared load balancers.
Operate the cluster with add-ons
Addrvn-eks-addons to an existing cluster to install Karpenter, External Secrets, KEDA, cert-manager, the AWS Load Balancer Controller, and logs, metrics, and traces.
If the cluster already has a gp3 StorageClass that rvn-eks-addons doesn’t manage, turn off Default gp3 storage class. Otherwise the installation fails.
Leave Ravion EKS Management on to register the cluster with Ravion and install the Operator agent. The agent reports workloads, pods, Kubernetes events, and crash logs to the dashboard, and runs in-cluster deploys.
After that, you deploy to the cluster the same way as to a cluster created with rvn-eks-cluster. See Deploy.