You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
nold 70c28be5fa Update docs 2 weeks ago
charts/heqet Feature: Project manifests/ & include value snippets 2 weeks ago
docs Update docs 2 weeks ago
examples/my-first-project Feature: Heqet v2 3 months ago
manifests Feature: Heqet v2 3 months ago
.drone.yml docs(update): Creation workflow unified readme/index page 7 months ago
.gitignore Add: Docs 7 months ago
.helmignore Feature: Heqet v2 3 months ago
README.md Update docs 2 weeks ago
mkdocs.yml Update mkdocs.yml 3 months ago

README.md

Heqet

Heqet (Egyptian ḥqt, also ḥqtyt "Heqtit") is an Egyptian goddess of fertility.

Heqet is my attempt to make Kubernetes GitOps Deployments as easy as possible. It reduces the need of redundant configuration by generating the required Kubernetes resource definitions for you. Heqet heavily relies on a Helm-Chart which will generate all ArgoCD-Applications, -Projects, Namespaces & more using Argo-CDs App-of-Apps-Pattern.

Keyfeatures

  • Easy Setup [Just requires a sane Kubernetes cluster + ArgoCD + PVC-StorageClass]
  • Easy / DRY application definition & configuration
  • Follows the GitOps principles
  • Deploy a whole application environment or cluster from a singe git-repo
  • Addons for simple generation of VaultSecret and NetworkPolicy resources
  • Include reuseable resources like value snippets & NetworkPolicies into your app

This project is still under active development. Feel free to try it out, give feedback, create an issue and contribute!

Overview

Heqet Overview

Components & Configuration

Core component is ArgoCD which will deploy Heqet & also your other apps! All you need is a git-repo & k8s cluster.

The heqet Helm-Chart will generate ArgoCD-Applications & -Projects, Namespaces and if required VaultSecrets, NetworkPolicies, Argo-CD Repositories and more.

The configuration is seperated in different files & directories:

  • projects/ - This directory contains all your Application/Project config
  • name-of-project/ - This directory name represents the name of our project
    • project.yaml - The most important config, containing all our applications of this project
    • values/ - Every app in our project can have it's own values.yaml here, named: name-of-app.yaml
      • name-of-app.yaml - Values file for the application "name-of-app"
    • manifests/ - Static yaml manifests for your app
  • resources/ - This directory contains all global config, like NetworkPolcies, Repos
    • manifests/ - Can be used for static YAML-Manifests
    • sippets/ - Value snippets for your apps

Installation

Installing heqet can't be simpler:

  1. Install Argo-CD on your cluster & set it up to your needs
  2. Configure manifests/heqet-apps.yaml to match your Setup
  3. kubectl apply -f manifests/heqet-apps.yaml
  4. Create your configuration in projects and resources folders

Example Configuration

Check out the hive-branch of this repository for the latest deployment configuration in my homelab environment.

Docs

Check out the full documentation: here