Skip to content

Bootstrap the Infrastructure for Kubernetes and OpenShift on Azure using Docker und Terraform

License

Notifications You must be signed in to change notification settings

ksandermann/formkube

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

58 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FormKube - Bootstrap the Infrastructure for Vanilla Kubernetes/OpenShift or deploy a fully managed AKS Kubernetes Cluster on Azure

License: GPL v3

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. :)

Prerequisites to Bootstrap a Platform

  1. Azure Credential Configuration
  2. Bootstrapping Prerequisites
  3. Creating the Terraform Remote State Azure Backend

Installation Guide

  1. Bootstrapping a Platform
  2. Post Installation Guide
  3. Destroying a Platform

Architecture Documentation

  1. Network Architecture
  2. Network Security Architecture
  3. DNS Configuration
  4. Understanding FormKube's Naming Conventions

Developer Documentation

  1. Development Mode
  2. ToDos
  3. Version History
  4. Considered Features for future releases

TL;DR

  1. Ensure Docker and Bash is installed and you are using a filesystem able to mount files into Ubuntu-based docker containers.

  2. Adjust sample inventory.

  3. 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
  4. 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

Authors

  1. ksandermann