Deploy a Kubernetes Cluster
AstroPulse supports two first-cluster paths:
- Provision a new cluster on AWS, GCP, or Azure.
- Register an existing cluster from any provider or on-premises environment.
Free accounts can provision 1 cluster and register 3 existing clusters. See pricing.
Before You Start
Make sure you have:
- Completed Set Up AstroPulse.
- Selected the correct organization with
astroctl whoami. - Access to the cloud account or Kubernetes cluster you want to use.
kubectlinstalled if you plan to verify the cluster directly.
Open /nova in the console or run astroctl nova, then ask Nova to create a plan for provisioning a new cluster or registering an existing one. Nova can help choose the right path and generate the starting YAML.
Option 1: Provision a New Cluster
Step 1: Connect your cloud account
Connect the cloud provider that will host the cluster:
# AWS EKS
astroctl cloud aws connect --account-id <aws-account-id> --region <region> --cluster-name <cluster-name>
# Google GKE
astroctl cloud gcp connect --project-id <project-id> --region <region> --cluster-name <cluster-name>
# Azure AKS
astroctl cloud azure connect --subscription-id <subscription-id> --resource-group <resource-group> --region <region> --cluster-name <cluster-name>
Provider-specific setup details:
Step 2: Generate cluster YAML
Open the AstroPulse Console, then go to Infrastructure > New Cluster.
The wizard walks you through provider, region, cluster name, Kubernetes version, node groups, machine type, and network settings. At the end, download or copy the generated cluster.yaml.
The console gives you valid provider-specific defaults and produces YAML you can keep in source control for repeatable cluster creation.
Step 3: Validate and apply
Validate the cluster configuration without creating resources:
astroctl infra kubernetes apply -f cluster.yaml --dry-run
Apply the configuration:
astroctl infra kubernetes apply -f cluster.yaml
The short alias also works:
astroctl infra k8s apply -f cluster.yaml
Step 4: Track progress
Stream real-time progress:
astroctl infra kubernetes progress stream <cluster-name>
Cluster provisioning usually takes several minutes. If you disconnect, run the same command again to catch up with the current operation.
Step 5: Verify the cluster
List clusters:
astroctl infra kubernetes get
Set your local Kubernetes context:
astroctl infra k8s set-context <cluster-name>
kubectl get nodes
Option 2: Register an Existing Cluster
If you already have a Kubernetes cluster, register it instead of provisioning a new one:
astroctl infra kubernetes register --cluster-name <cluster-name>
This installs a lightweight agent that creates a secure reverse tunnel back to AstroPulse. You can also dry-run the registration manifest:
astroctl infra kubernetes register --cluster-name <cluster-name> --dry-run
For split-team workflows and advanced options, see Bring Your Own Kubernetes Cluster.
Useful References
Next Step
Continue with Deploy an Application.