schuldt.dev | IT with 💖 and 🚀 from Hamburg

k3s homelab cluster stack

Have you seen the perfect k8s cluster stack? May I suggest:

# cat helmfile.yaml
repositories:
  - name: bedag
    url: https://bedag.github.io/helm-charts/

  - name: external-dns
    url: https://kubernetes-sigs.github.io/external-dns/

  - name: metrics-server
    url: https://kubernetes-sigs.github.io/metrics-server/

  - name: metallb
    url: https://metallb.github.io/metallb

  - name: headlamp
    url: https://kubernetes-sigs.github.io/headlamp/

  - name: cnpg
    url: https://cloudnative-pg.github.io/charts

  - name: tailscale
    url: https://pkgs.tailscale.com/helmcharts

  - name: longhorn
    url: https://charts.longhorn.io

  - name: rancher-charts
    url: https://charts.rancher.io/


releases:
  - name: argocd
    namespace: argocd
    chart: oci://ghcr.io/argoproj/argo-helm/argo-cd
    createNamespace: true
    values:
      - argocd/values.yaml

  - name: cert-manager
    namespace: cert-manager
    chart: oci://quay.io/jetstack/charts/cert-manager
    createNamespace: true
    values:
      - cert-manager/cert-manager.values.yaml

  - name: cert-manager-issuers
    chart: bedag/raw
    namespace: cert-manager
    disableValidation: true
    values:
      - cert-manager/cert-manager-issuers.values.yaml.gotmpl
    needs:
      - cert-manager/cert-manager

  - name: cilium
    namespace: kube-system
    chart: oci://quay.io/cilium/charts/cilium
    values:
      - cilium/values.yaml.gotmpl

  - name: external-dns
    namespace: external-dns
    chart: external-dns/external-dns
    createNamespace: true
    values:
      - external-dns/external-dns.values.yaml.gotmpl

  - name: external-dns-secrets
    namespace: external-dns
    chart: bedag/raw
    values:
      - external-dns/external-dns-secrets.values.yaml.gotmpl
    needs:
      - external-dns/external-dns

  - name: haproxy-kubernetes-ingress
    namespace: haproxy-controller
    chart: oci://ghcr.io/haproxytech/helm-charts/kubernetes-ingress
    createNamespace: true
    values:
      - haproxy-kubernetes-ingress/haproxy-kubernetes-ingress.values.yaml.gotmpl
    needs:
      - kube-prometheus-stack/kube-prometheus-stack

  - name: haproxy-kubernetes-ingress-config
    namespace: haproxy-controller
    chart: bedag/raw
    values:
      - haproxy-kubernetes-ingress/haproxy-kubernetes-ingress-config.values.yaml
    needs:
      - haproxy-controller/haproxy-kubernetes-ingress

  - name: metrics-server
    namespace: kube-system
    chart: metrics-server/metrics-server
    values:
      - metrics-server/values.yaml
    needs:
      - kube-prometheus-stack/kube-prometheus-stack

  - name: metallb
    namespace: metallb-system
    chart: metallb/metallb
    createNamespace: true
    values:
      - metallb/metallb.values.yaml
    needs:
      - kube-prometheus-stack/kube-prometheus-stack

  - name: metallb-config
    namespace: metallb-system
    chart: bedag/raw
    values:
      - metallb/metallb-config.values.yaml
    needs:
      - metallb-system/metallb
      - kube-prometheus-stack/kube-prometheus-stack

  - name: kube-prometheus-stack
    namespace: kube-prometheus-stack
    chart: oci://ghcr.io/prometheus-community/charts/kube-prometheus-stack
    createNamespace: true
    values:
      - kube-prometheus-stack/kube-prometheus-stack.values.yaml

  - name: kube-prometheus-stack-grafana-dashboards
    namespace: kube-prometheus-stack
    chart: bedag/raw
    values:
      - kube-prometheus-stack/kube-prometheus-stack-grafana-dashboards.values.yaml.gotmpl
    needs:
      - kube-prometheus-stack/kube-prometheus-stack

  - name: headlamp
    namespace: headlamp
    chart: headlamp/headlamp
    createNamespace: true
    values:
      - headlamp/values.yaml

  - name: headlamp-rbac
    namespace: headlamp
    chart: bedag/raw
    values:
      - headlamp/headlamp-rbac.values.yaml.gotmpl
    needs:
      - headlamp/headlamp

  - name: cnpg
    namespace: cnpg-system
    chart: cnpg/cloudnative-pg
    createNamespace: true
    values:
      - cnpg/values.yaml
    needs:
      - kube-prometheus-stack/kube-prometheus-stack

  - name: cnpg-barman-plugin
    namespace: cnpg-system
    chart: cnpg/plugin-barman-cloud
    needs:
      - cnpg-system/cnpg

  - name: sealed-secrets
    namespace: sealed-secrets
    chart: oci://registry-1.docker.io/bitnamicharts/sealed-secrets
    createNamespace: true
    values:
      - sealed-secrets/values.yaml
    needs:
      - kube-prometheus-stack/kube-prometheus-stack

  - name: local-path-provisioner
    namespace: local-path-storage
    chart: git::https://github.com/rancher/local-path-provisioner.git@deploy/chart/local-path-provisioner
    createNamespace: true
    values:
      - local-path-provisioner/values.yaml

  - name: tailscale-operator
    namespace: tailscale
    chart: tailscale/tailscale-operator
    createNamespace: true
    values:
      - tailscale-operator/values.yaml.gotmpl

  - name: longhorn
    namespace: longhorn-system
    chart: longhorn/longhorn
    createNamespace: true
    values:
      - longhorn/values.yaml

  - name: system-upgrade-controller
    namespace: cattle-system
    chart: rancher-charts/system-upgrade-controller
    createNamespace: true

  - name: system-upgrade-controller-plan
    namespace: cattle-system
    chart: bedag/raw
    values:
      - system-upgrade-controller/values.yaml
    needs:
      - cattle-system/system-upgrade-controller

  - name: kured
    namespace: kured
    chart: oci://ghcr.io/kubereboot/charts/kured
    createNamespace: true
    values:
      - kured/values.yaml

<< Previous Post

|

Next Post >>

#Epic