This is part of the Hobby Kube project. Functionality of the modules is described in the guide.
Deploy a secure Kubernetes cluster on Scaleway or DigitalOcean using Terraform.
The following packages are required to be installed locally:
brew install terraform kubectl jq wireguard-tools
Modules are using ssh-agent for remote operations. Add your SSH key with ssh-add -K
if Terraform repeatedly fails to connect to remote hosts.
Export the following environment variables depending on the modules you're using.
export TF_VAR_scaleway_organization=<ACCESS_KEY>
export TF_VAR_scaleway_token=<TOKEN>
export TF_VAR_digitalocean_token=<token>
export TF_VAR_digitalocean_ssh_keys=<keys> # e.g. '["121671", "1714133"]'
export TF_VAR_domain=<domain> # e.g. example.org
export TF_VAR_cloudflare_email=<email>
export TF_VAR_cloudflare_token=<token>
export TF_VAR_domain=<domain> # e.g. example.org shall be already added to hosted zones.
export TF_VAR_aws_access_key=<ACCESS_KEY>
export TF_VAR_aws_secret_key=<SECRET_KEY>
export TF_VAR_aws_region=<region> # e.g. eu-west-1
# fetch the required modules
$ terraform init
# see what `terraform apply` will do
$ terraform plan
# execute it
$ terraform apply
Modules in this repository can be used independently:
module "kubernetes" {
source = "github.com/hobby-kube/provisioning/service/kubernetes"
}
After adding this to your plan, run terraform get
to fetch the module.