First steps with Constellation
The following steps guide you through the process of creating a cluster and deploying a sample app. This example assumes that you have successfully installed and set up Constellation, and have access to a cloud subscription.
If you don't have a cloud subscription, check out MiniConstellation, which lets you set up a local Constellation cluster using virtualization.
Create a cluster
-
Create the configuration file for your selected cloud provider.
- Azure
- GCP
- AWS
constellation config generate azureconstellation config generate gcpconstellation config generate awsThis creates the file
constellation-conf.yamlin your current working directory. -
Fill in your cloud provider specific information.
First you need to create an IAM configuration. The easiest way to do this is the following CLI command:
- Azure
- GCP
- AWS
constellation iam create azure --region=westus --resourceGroup=constellTest --servicePrincipal=spTestThis command creates IAM configuration on the Azure region
westuscreating a new resource groupconstellTestand a new service principalspTest.Note that CVMs are currently only supported in a few regions, check Azure's products available by region. These are:
westuseastusnortheuropewesteurope
constellation iam create gcp --projectID=yourproject-12345 --zone=europe-west3-a --serviceAccountID=constell-testThis command creates IAM configuration in the GCP project
yourproject-12345on the GCP zoneeurope-west3-acreating a new service accountconstell-test.Note that only regions offering CVMs of the
N2Dseries are supported. You can find a list of all regions in Google's documentation, which you can filter by machine typeN2D.constellation iam create aws --zone=eu-central-1a --prefix=constellTestThis command creates IAM configuration for the AWS zone
eu-central-1ausing the prefixconstellTestfor all named resources being created.Constellation OS images are currently replicated to the following regions:
eu-central-1us-east-2ap-south-1
If you require the OS image to be available in another region, let us know.
You can find a list of all regions in AWS's documentation.
Now, fill the output values of the command into the corresponding fields of the
constellation-conf.yamlfile.tipTo learn how to delete your IAM configuration and to get more detailed information on the IAM process and the VM types supported by Constellation, see the Configuration workflow.
-
Create the cluster with one control-plane node and two worker nodes.
constellation createuses options set inconstellation-conf.yaml.tipOn Azure, you may need to wait 15+ minutes at this point for role assignments to propagate.
constellation create --control-plane-nodes 1 --worker-nodes 2 -yThis should give the following output:
$ constellation create ...
Your Constellation cluster was created successfully. -
Initialize the cluster
constellation initThis should give the following output:
$ constellation init
Your Constellation master secret was successfully written to ./constellation-mastersecret.json
Initializing cluster ...
Your Constellation cluster was successfully initialized.
Constellation cluster identifier g6iMP5wRU1b7mpOz2WEISlIYSfdAhB0oNaOg6XEwKFY=
Kubernetes configuration constellation-admin.conf
You can now connect to your cluster by executing:
export KUBECONFIG="$PWD/constellation-admin.conf"The cluster's identifier will be different in your output. Keep
constellation-mastersecret.jsonsomewhere safe. This will allow you to recover your cluster in case of a disaster.infoDepending on your CSP and region,
constellation initmay take 10+ minutes to complete. -
Configure kubectl
export KUBECONFIG="$PWD/constellation-admin.conf"
Deploy a sample application
-
Deploy the emojivoto app
kubectl apply -k github.com/BuoyantIO/emojivoto/kustomize/deployment -
Expose the frontend service locally
kubectl wait --for=condition=available --timeout=60s -n emojivoto --all deployments
kubectl -n emojivoto port-forward svc/web-svc 8080:80 &
curl http://localhost:8080
kill %1
Terminate your cluster
constellation terminate
This should give the following output:
$ constellation terminate
You are about to terminate a Constellation cluster.
All of its associated resources will be DESTROYED.
This action is irreversible and ALL DATA WILL BE LOST.
Do you want to continue? [y/n]:
Confirm with y to terminate the cluster:
Terminating ...
Your Constellation cluster was terminated successfully.
Optionally, you can also delete your IAM resources.