Skip to main content
Use this page to onboard:
  • 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.
The cluster must reside in a VPC or VNet in a supported cloud. On-premises bare-metal clusters cannot be onboarded.
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 kubectl access 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 single avx-controller ClusterRole below covers both SmartGroup discovery and CRD-based DCF policy — there is no separate manifest for SmartGroup-only deployments. Apply this manifest:
Chart release 10.0.1 and later only: helm install ... --set serviceAccount.create=true creates the ServiceAccount and Secret for you. This flag does not exist on the 8.2.0 or 9.0.0 chart releases — on those releases, apply the manifest above regardless of whether you also install the helm chart. Either way, the chart’s own ClusterRoleBinding stays bound to a Kubernetes Group, not this ServiceAccount, so this page’s ClusterRole and ClusterRoleBinding are what bind the ServiceAccount for this onboarding path.
After applying:

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 as avx-kubeconfig.yaml, replacing the placeholders:
The kubeconfig must use inline 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

The cluster_details block tells the Controller about the cluster since it cannot discover the metadata from a cloud API (no managed cluster to query).

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:
Expect to see your cluster with status RUNNING.