Skip to content

GitOps-Driven deployment of Kubernetes clusters @~ (w/ArgoCD+Renovate). πŸš€

License

Notifications You must be signed in to change notification settings

chxmxii/kubegoros

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

KUBEGOROS

Simplifying the deployment of Kubernetes cluster at home in a GitOps fashion w/ArgoCD πŸš€


UNIX Like Systems What's this?

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.


UNIX Like Systems Architecture

arch

UNIX Like Systems Environment

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

UNIX Like Systems Features

  • πŸ“¦ 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.

UNIX Like Systems Prerequisites

Before getting started, ensure you have:

- Ansible >= 2.14
- Python  >= 3.6


UNIX Like Systems Installation

Follow these steps to install:

1. git clone https://github.com/chxmxii/kubegoros.git
2. task env:install 

UNIX Like Systems Project Strcuture

πŸ“ 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.

UNIX Like Systems Stack

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

UNIX Like Systems Usage

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

UNIX Like Systems Roadmap

  • Add support for Talos.
  • Cloudfalre integration.
  • Create smoke tests. ...

About

GitOps-Driven deployment of Kubernetes clusters @~ (w/ArgoCD+Renovate). πŸš€

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published