- Terraform (I was using
v0.11.14
) - Kubectl
- DigitalOcean token with write permissions
- Domain managed by DigitalOcean DNS service
Edit domain name in Terraform manifests
This example is using Let's Encrypt certificate so used domain name must be managed by DigitalOcean.
Create the base infrastructure:
cd terraform
export TF_VAR_do_token=<your DO token>
terraform init
terraform plan
terraform apply -auto-approve
Create kube config:
terraform output -json | jq -r '.kubeconfig.value' > kubeconfig.yaml
export KUBECONFIG=$(pwd)/kubeconfig.yaml
Create Kubernetes resources
cd ../kubernetes/traefik
kubectl apply -f traefik-prereqs.yaml
kubectl apply -f deployment.yaml
kubectl apply -f service.yaml
kubectl apply -f service-admin.yaml