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.tfvars
file - Update the configs and values for your environment in the
yaml
files 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!