# Orchestration

Manage many containers and the infrastructure under them: Kubernetes, Terraform, CyVerse CACAO, and container registries.

## Kubernetes

* [Introduction to Kubernetes](https://unm-carc.github.io/container-camp/orchestration/kubernetes/) - Kubernetes concepts and terminology, connecting to an existing K3s cluster with kubectl, and launching pods, deployments, and the dashboard.
* [Deploying your own Kubernetes clusters](https://unm-carc.github.io/container-camp/orchestration/kubernetes-advanced/) - Deploy Zero to JupyterHub with Helm, and compare lightweight Kubernetes distributions such as minikube, MicroK8s, and K3s.

## Infrastructure as code

* [Introduction to Terraform](https://unm-carc.github.io/container-camp/orchestration/terraform/) - Install Terraform, create OpenStack application credentials and an SSH keypair, and init, apply, and destroy VMs on Jetstream2.
* [Advanced Terraform: managing Docker containers](https://unm-carc.github.io/container-camp/orchestration/terraform-advanced/) - Practice count, for_each, input validation, preconditions, and dynamic blocks by managing Docker containers with the Terraform Docker provider.

## CyVerse CACAO

* [CyVerse CACAO interface](https://unm-carc.github.io/container-camp/orchestration/cacao/) - Log in to CACAO on Jetstream2 with ACCESS, add a cloud credential and SSH key, and launch and open a VM deployment.
* [CACAO Terraform templates on the CLI](https://unm-carc.github.io/container-camp/orchestration/cacao-terraform/) - Install the CACAO CLI, log in with an ACCESS token, import a Terraform template from Git, and deploy it through the CACAO UI.

## Registries

* [Managing a private container registry](https://unm-carc.github.io/container-camp/orchestration/registry/) - Options for hosting your own container registry: the open-source Docker Registry server and Harbor, which CyVerse runs.
