public

With my homelab, I want to: …

  • … deploy everything in a kubernetes cluster
  • … use gitlab for version control and CI/CD pipelines
  • … have gitlab running outside the kubernetes cluster
  • … have gitlab runners running inside the kubernetes cluster
  • … have one repository for the infrastructure
  • … have a single (main) domain, …
    • … with which everything can be accessed …
    • … that is from a public domain provider, so that I can have ssl certificates for https

for each application, I want to: …

  • … have a separate repository …
  • … where I have a main branch …
  • … where I create feature branches …
  • … where I want to implement new features
  • for each branch in the corresponding repository, I want to: …
    • … be able to create MRs for new features, in which a CI/CD pipeline runs …
    • … that triggers a new preview deployment for the new feature in kubernetes
  • for each deployment, I want to: …
    • … have a separate namespace
    • … have a separate separate subdomain (to) the main domain)

So that: …

  • … for every application and the corresponding main-branch, there is a main-namespace, such as: app1, app2
  • … for every main-namespace, there is a subdomain, such as: app1.homelab.lan, app2.homelab.lan, etc.
  • … for every application and every feature branch, there is a separate feature-namespace, such as: app1_feature1, app1_feature2, app2_feature1, etc.
  • … for every feature-namespace, there is a feature subdomain, such as: app1.feature1.homelab.lan, app1.feature2.homelab.lan, etc.