Simplifying the deployment of Kubernetes cluster at home in a GitOps fashion w/ArgoCD ๐
A GitOps-based tool leveraging ArgoCD, Ansible and kubeadm for streamlined deployment of bare-metal Kubernetes clusters. Enables easy and declarative management for streamlined infrastructure oversight.
All of these are deployed via OpenTofu on top of Proxmox Virtual Environment v7.4-14.
Hostname | OS | Type |
---|---|---|
controlplane1 | CoreOS | VM |
controlplane2 | CoreOS | VM |
controlplane3 | CoreOS | VM |
workernode1 | CoreOS | VM |
workernode2 | CoreOS | VM |
workernode3 | CoreOS | VM |
halb01 | CentOS 7 | LXC |
halb02 | CentOS 7 | LXC |
- ๐ฆ Declarative deployment of production-ready bare-metal Kubernetes clusters.
- ๐ ๏ธ GitOps-based approach for managing Kubernetes apps.
- ๐ Streamlined provisioning and management of clusters.
- ๐ Simplified application deployment and configuration.
- ๐ง Customizable configurations for specific use cases.
Before getting started, ensure you have:
- Ansible >= 2.14
- Python >= 3.6
Follow these steps to install:
1. git clone https://github.com/chxmxii/kubegoros.git
2. task env:install
๐ kubegoros
โโโ ๐ kubernetes # Kubernetes directory
| โโโ ๐ adds-on # Adds-on applications
| โโโ ๐ apps # kubernetes applications
โโโ ๐ ansible # Ansible root directory.
| โโโ ๐ playbooks # Ansible playbooks.
| โโโ ๐ roles # Ansible roles.
| โโโ ๐ pre-setup # Responsible for getting the VMs ready for the flight.
| โโโ ๐ containerd # Installs and configure containerd.
| โโโ ๐ kubeadm # Install and configure kubernetes.
| โโโ ๐ gitops # Install, Configure and Bootstrap argoCD.
โโโ ๐ tests # Ansible tests.
โโโ ๐ .taskfiles # Taskfiles root directory.
โโโ ๐ ansible.yml # Tasks specific to cluster management with ansible
โโโ ๐ kyverno.yml # Tasks specific to enable or disable kyverno policies.
โโโ ๐ env.yml # Tasks related to environement setup.
Logo | Name | Description |
---|---|---|
Ansible | Automate bare metal provisioning and configuration | |
ArgoCD | GitOps tool built to deploy applications to Kubernetes | |
![]() |
cert-manager | Cloud native certificate management |
Calico | eBPF-based Networking, Observability and Security (CNI, LB, Network Policy, etc.) | |
Prometheus | Systems monitoring and alerting toolkit | |
Vector | High-performance observability data router | |
![]() |
Loki | Log aggregation system |
Vault | Secret management and data protection | |
Kyverno | Kubernetes Native Policy Management | |
Istio | Service mesh for connecting, securing, and managing microservices | |
KubeArmor | Kubernetes Native Runtime Security | |
MetalLB | Bare metal load-balancer for Kubernetes | |
NGINX Ingress Controller | Kubernetes Ingress Controller | |
Longhorn | Cloud native distributed block storage for Kubernetes | |
Velero | Backup and disaster recovery solution for Kubernetes clusters |
Once installed and configured, use taskfile to deploy and manage your Kubernetes cluster:
__ ___ __ __ __ __ __
|__/ | | |__) |__ / _` / \ |__) / \ /__`
| \ \__/ |__) |___ \__> \__/ | \ \__/ .__/
โ Usage:
task help -> Display this message
task env:prepare -> Prepare the environment for the project
task env:install -> Install project dependencies
task cluster:init -> Provision the Kubernetes cluster
task cluster:reset -> Reset the Kubernetes cluster
task cluster:upgrade -> Upgrade the Kubernetes cluster
task cluster:backup -> Create cluster Backup
task nodes:check -> Verify Cluster Nodes Connectivity
task nodes:list -> Display Ansible Inventory
task nodes:reboot -> Reboot Cluster nodes
task policy:enable -> Enable kyverno Policies
task policy:disable -> Disable kyverno Policies
- Add support for Talos.
- Cloudfalre integration.
- Create smoke tests. ...