Skip to content
/ k8s Public

Fully declarative Kubernetes configuration which includes multiple services and tooling

License

Notifications You must be signed in to change notification settings

kreatoo/k8s

Repository files navigation

kreat8s

Kreato's Kubernetes setup

Setup

Servers

(This is mostly taken from https://github.com/kreatoo/infra)

  • tulip

    • Cloud: OCI (Oracle Cloud Infrastructure)
    • Region: Frankfurt
    • OS: AlmaLinux
    • Kubernetes distro: Plain K8s
    • Role: Control-plane node
    • Machine: VM.Standard.A1.Flex (Ampere Altra) with 4 cores, 12GB RAM, 200GB storage
  • plato

    • Cloud: Hetzner Cloud
    • Region: Helsinki
    • OS: Ubuntu 24.04
    • Kubernetes distro: Plain K8s
    • Role: Agent node
    • Machine: CAX11 (Ampere Altra) with 2 cores, 4GB RAM, 40GB storage

Workload

graph TD;
    service-->tulip
    service-->plato
    tulip-->metallb
    plato-->metallb
Loading

Components

  • GitHub Actions - Deployment pipeline
  • ArgoCD - For GitOps, manages all the deployments (except itself and the CNI)
  • MetalLB - Load balancer, network policies
  • cert-manager - For managing certificates
  • Robusta - For alarms and monitoring
  • Traefik - Ingress controller
  • Nginx-kpkg - for hosting a kpkg repository
  • Nextcloud - For file sharing
  • Forgejo - For Git repositories

Installation

The setup assumes you already have Kubernetes installed with a CNI (Tested with Calico, should work in any), Helm and MetalLB.

This setup uses Kustomize to manage the manifests. To install the setup, clone the repo and run the following commands:

kubectl kustomize --enable-helm | kubectl apply -f -

Please keep in mind that Robusta is not included in the setup by default as you need to generate values for it. You can generate a config here and then put it in the robusta/ folder. After that, you can run the command below (or uncomment robusta/ in kustomization.yaml) to install Robusta:

kubectl apply -k robusta/

About

Fully declarative Kubernetes configuration which includes multiple services and tooling

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages