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. ...