FormKube - Bootstrap the Infrastructure for Vanilla Kubernetes/OpenShift or deploy a fully managed AKS Kubernetes Cluster on Azure
FormKube allows you to bootstrap all the needed infrastructure components to deploy Kubernetes or OpenShift clusters on Azure. Additionally, FormKube allows you to bootstrap a fully managed and integrated AKS Cluster.
It's basically the infrastructure part of tectonic-installer for Azure, extended by various features such as multi-zone high-availability, scheduled backup and others. Click here for a full comparison.
FormKube is based on Terraform and Docker. It is basically the result of me teaching myself Terraform and Azure. :)
- Azure Credential Configuration
- Bootstrapping Prerequisites
- Creating the Terraform Remote State Azure Backend
- Network Architecture
- Network Security Architecture
- DNS Configuration
- Understanding FormKube's Naming Conventions
-
Ensure Docker and Bash is installed and you are using a filesystem able to mount files into Ubuntu-based docker containers.
-
Adjust sample inventory.
-
For the Azure provider, run the following in the repo's root dir:
export FORMKUBE_PROVIDER=azure export FORMKUBE_CLUSTER=mycluster.mydomain.com #has to be the name of the folder with your configuration inside the clusters dir export FORMKUBE_SUBSCRIPTION_ID=abcde-abcde-abcde-abcde export FORMKUBE_CLIENT_ID=abcde-abcde-abcde-abcde export FORMKUBE_CLIENT_SECRET=abcde-abcde-abcde-abcde export FORMKUBE_TENANT_ID=abcde-abcde-abcde-abcde bash ./scripts/create_backend.sh bash ./scripts/apply.sh
-
For the AKS provider, run the following in the repo's root dir:
export FORMKUBE_PROVIDER=aks export FORMKUBE_CLUSTER=mycluster.mydomain.com #has to be the name of the folder with your configuration inside the clusters dir export FORMKUBE_SUBSCRIPTION_ID=abcde-abcde-abcde-abcde export FORMKUBE_CLIENT_ID=abcde-abcde-abcde-abcde export FORMKUBE_CLIENT_SECRET=abcde-abcde-abcde-abcde export FORMKUBE_TENANT_ID=abcde-abcde-abcde-abcde export FORMKUBE_AKS_SERVICE_PRINCIPAL_CLIENT_ID=abcde-abcde-abcde-abcde export FORMKUBE_AKS_SERVICE_PRINCIPAL_CLIENT_SECRET=abcde-abcde-abcde-abcde export FORMKUBE_AAD_SERVER_APPLICATION_SECRET=CanBeChosenFreelyButNeverChanged #optional #export FORMKUBE_AAD_SERVER_APPLICATION_ID=abcde-abcde-abcde-abcde #export FORMKUBE_AAD_CLIENT_APPLICATION_ID=abcde-abcde-abcde-abcde bash ./scripts/create_backend.sh bash ./scripts/apply.sh