Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/chaddyc/terraform-proxmox-k8s-argocd-dev-platform

A Terraform template to set up a Complete Kubernetes Dev environment with base Monitoring and ArgoCD for GitOps and CICD
https://github.com/chaddyc/terraform-proxmox-k8s-argocd-dev-platform

argocd bash grafana kubernetes loki metallb nginx nginx-ingress prometheus proxmox proxmox-apis proxmox-ve shell terraform

Last synced: about 1 month ago
JSON representation

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

Awesome Lists containing this project

README

        

😎 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](https://img.shields.io/badge/Star-FFD700?style=flat-square&logo=ApacheSpark&logoColor=black) if you found this helpful

Stars Badge
Forks Badge
Pull Requests Badge
Issues Badge
GitHub contributors
![maintenance-status](https://img.shields.io/badge/maintenance-actively--developed-brightgreen.svg)
[![Project Status: Active – The project has reached a stable, usable state and is being actively developed.](https://www.repostatus.org/badges/latest/active.svg)](https://www.repostatus.org/#active)
License Badge

## Table of Contents
* [General Info](#general-information)
* [Technologies Used](#technologies-used)
* [Setup And Usage](#setup-and-usage)
* [Contact](#contact)

## 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](https://github.com/chaddyc) - feel free to contact me!