- Self-managed clusters built with kops, kubeadm, k3s, Rancher, or similar tools, running in AWS, Azure, or GCP.
- Managed clusters (EKS / AKS / GKE) where you prefer to authenticate the Controller with a service-account kubeconfig instead of the cloud-account credentials.
For the standard managed-cluster paths (EKS, AKS, or GKE with cloud-account
credentials), see the per-provider onboarding pages:
Onboard EKS Clusters
,
Onboard AKS Clusters
, or
Onboard GKE Clusters
.
Prerequisites
Read Kubernetes Onboarding Prerequisites first. The cluster API server must be reachable from the Controller, SNAT must be disabled, and Resource Discovery must be enabled. In addition, for this onboarding path:- You must have
kubectlaccess to the cluster with permission to create ServiceAccounts, ClusterRoles, and ClusterRoleBindings. - You must be able to extract the cluster’s CA certificate and API endpoint to assemble a kubeconfig.
Step 1: Create a Service Account and ClusterRoleBinding
The Aviatrix Controller authenticates as a Kubernetes ServiceAccount and presents its bearer token. The singleavx-controller ClusterRole below covers
both SmartGroup discovery and
CRD-based DCF policy
— there is no separate manifest for SmartGroup-only deployments.
Apply this manifest:
Step 2: Assemble a kubeconfig
You need three values: the API server endpoint, the cluster’s base64-encoded CA certificate, and the bearer token from Step 1. Save asavx-kubeconfig.yaml, replacing the placeholders:
certificate-authority-data (not
certificate-authority) and inline token (not tokenFile or exec). The
Controller does not execute external binaries and does not read from the local
filesystem.
Step 3: Register the cluster
- Terraform
- CoPilot UI
cluster_details block tells the Controller about the cluster since it
cannot discover the metadata from a cloud API (no managed cluster to query).cluster_details argument reference
cluster_details argument reference
Verifying onboarding
After registering, check the Cloud Resources > Cloud Assets > Kubernetes Clusters tab. The cluster should transition to the green Yes status within roughly 30 seconds. From the controller pod:RUNNING.