Corral is a CLI tool for creating and packaging reproducible development environments. Corral allows developers to manage multiple environments, called corrals, and provision them consistently using shared packages.
To install corral download the latest binary from the releases.
Before we can use corral we need to run the first time setup.
corral config
We also want to set a few global variables, digitalocean_token
and digitalocean_domain
. Any variables set with config will be passed to all corrals. This is useful for setting things like cloud credentials or ssh keys. You can always override these values when creating a new corral with the -v
flag.
corral config vars set digitalocean_token $MY_DO_TOKEN
corral config vars set digitalocean_domain $MY_DO_DOMAIN
First we need to create our corral.
corral create simple ghcr.io/rancherlabs/corral/k3s:latest
Once this command finishes we will have a Digitalocean droplet running k3s configured.
We can always check what corrals we have running by listing them.
corral list
Next lets connect to our cluster. We can get the Kubernetes configuration file from the corral's variables. The file is base64 encoded, so we will need to decode it before we can use it.
corral vars simple kubeconfig | base64 --decode > simple.yaml
kubectl --kubeconfig simple.yaml get nodes
Once we are done using the cluster we can delete it and clean up all the resources generated in Digitalocean.
corral delete simple
A corral is a collection of resources in a remote environment. Think of it as a way to track the environments you set up and how you set them up. Corrals are created from packages.
A corral package is a description of an environment. A package consists of one terraform module and filesystem overlay. The terraform module is used to provision cloud resources. Once the resources are created corral will upload the files in the overlay folder to any nodes generated by terraform and call the commands defined in the manifest.