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