Coder Social home page Coder Social logo

kubegoros's Introduction

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

kubegoros's People

Contributors

chxmxii avatar

Stargazers

Zeyad Abulaban avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.