A Terraform template to set up a Complete Kubernetes Dev environment with base Monitoring and ArgoCD for GitOps and CICD
Don't forget to give a if you found this helpful
This project is a template to build and deploy a complete Kubernetes Dev Environment on Proxmox VE using Terraform. It autonomously sets up base Monitoring with Grafana and Prometheus as well as a GitOps CICD platform ArgoCD. Along with those configurations Metal LB is set up as a load balancer along with Nginx Ingress Controller as an Ingress controller.
- Language - Terraform + Bash
- Container Orchestrator - Kubernetes
- Container Runtime - ContainerD
- CICD + GitOps Platform - ArgoCD
- LoadBalancer - Metal LB
- Ingress - Nginx Ingress controller
- Monitoring - Prometheus + Grafana
- Clone or fork this repo
- Add your values to the
values.tfvarsfile - Update the configs and values for your environment in the
yamlfiles specificallymonitoring, metal-lb, apps and argocd
Once you updated all your configuration files for your environment run the following commands to build and deploy this container dev environment:
Terraform Plan & Terraform Apply - See Planned output of resources to deploy and apply to deploy the planned resources
terraform plan -var-file="values.tfvars"
terraform apply -var-file="values.tfvars"
Terraform Destroy - Destroy resources
terraform destroy -var-file="values.tfvars"
Once complete ensure that you add the DNS entries of the domain names you selected to your local DNS server so you can reach your applications via url in your web browser. Once your deployment completes succesful you can open the webui for Grafana depending on what domain you specified and use the username and password that you set in the values.tfvars file. For ArgoCD you can run the command below on your masternode or control plane to get your default password and use it along with admin to login to ArgoCD.
kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d
Created by @chaddyc - feel free to contact me!