Skip to content

A Terraform template to set up a Complete Kubernetes Dev environment with base Monitoring and ArgoCD for GitOps and CICD

License

Notifications You must be signed in to change notification settings

chaddyc/terraform-proxmox-k8s-argocd-dev-platform

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

😎 Kubernetes Dev Platform With Terraform

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 Stars if you found this helpful

Stars Badge Forks Badge Pull Requests Badge Issues Badge GitHub contributors maintenance-status Project Status: Active – The project has reached a stable, usable state and is being actively developed. License Badge

Table of Contents

General Information

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.

Technologies Used

  • Language - Terraform + Bash
  • Container Orchestrator - Kubernetes
  • Container Runtime - ContainerD
  • CICD + GitOps Platform - ArgoCD
  • LoadBalancer - Metal LB
  • Ingress - Nginx Ingress controller
  • Monitoring - Prometheus + Grafana

Setup And Usage

  • 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 specifically monitoring, 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

Contact

Created by @chaddyc - feel free to contact me!