State of the art multi-cluster GitOps repository for homelab use. Currently used with my bare metal Kubernetes clusters at home to host a bunch of useful open-source apps.
I'm using a self-hosted instance of Sidero Omni to manage and deploy my Kubernetes clusters.
You'll need the following:
- A static public IP address with a router able to forward ports
- A domain name with a DNS provider usable with ExternalDNS
- Any secret provider supported by External Secrets Operator. This repository uses
GitLab
as it's secrets provider - An API token of the DNS provider that will allow challenges to create certificates. This repository uses a
Cloudflare
token with the permissions: Zone - DNS - Edit, Zone - Zone - Read & Include - All Zones - Another API token of the same provider to manage DNS records. Using
Cloudflare
, the token should have the same permissions as above - A GitHub PAT to be used by
FluxCD
, with Read-Write permissions for Admnistration & Contents
Here is the following list of secrets you need to add in your external secrets provider of choice before starting the cluster:
Name | Description |
---|---|
dns_provider_challenge_token |
API token of your DNS management provider of your domain, used to generate the x.509 certificates |
dns_provider_management_token |
API token of your DNS management provider of your domain, used to manage your DNS records |
authentik_key |
Random string of atleast 50 caracters long (ex: openssl rand -base64 50 ) |
renovate_token |
Git token for the Renovate account |