├── .editorconfig ├── .envrc ├── .gitattributes ├── .github ├── CODEOWNERS ├── labeler.yaml ├── labels.yaml ├── renovate-bot.json5 ├── renovate.json5 ├── renovate │ ├── autoMerge.json5 │ ├── commitMessage.json5 │ ├── customDatasources.json5 │ ├── groups.json5 │ ├── labels.json5 │ └── semanticCommits.json5 ├── scripts │ └── kubeconform.sh └── workflows │ ├── flux-diff.yaml │ ├── helmrepository-sync.yaml │ ├── kubeconform.yaml │ ├── link-check.yaml │ ├── meta-labeler.yaml │ ├── meta-sync-labels.yaml │ ├── publish-schemas.yaml │ └── renovate.yaml ├── .gitignore ├── .lycheeignore ├── .sops.yaml ├── .taskfiles ├── AnsibleTasks.yaml ├── BrewTasks.yaml └── ClusterTasks.yaml ├── .vscode ├── extensions.json └── settings.json ├── LICENSE ├── README.md ├── Taskfile.yaml ├── _archive ├── appsmith │ ├── app │ │ ├── helmrelease.yaml │ │ ├── ingress.yaml │ │ ├── kustomization.yaml │ │ └── pvc.yaml │ └── ks.yaml ├── authelia │ ├── app │ │ ├── authelia.sops.yaml │ │ ├── helmrelease.yaml │ │ ├── ingress.yaml │ │ ├── kustomization.yaml │ │ ├── pvc.yaml │ │ ├── users-config.yaml │ │ └── users.yaml │ └── ks.yaml ├── baserow │ ├── app │ │ ├── helmrelease.yaml │ │ └── kustomization.yaml │ └── ks.yaml ├── bazarr │ ├── app │ │ ├── helmrelease.yaml │ │ ├── ingress.yaml │ │ ├── kustomization.yaml │ │ └── pvc.yaml │ └── ks.yaml ├── budibase │ ├── app │ │ ├── helmrelease.yaml │ │ ├── ingress.yaml │ │ ├── kustomization.yaml │ │ └── pvc.yaml │ └── ks.yaml ├── crew │ ├── app │ │ ├── helmrelease.yaml │ │ ├── helmrelease_backup.yaml │ │ └── kustomization.yaml │ └── ks.yaml ├── dataherald │ ├── app │ │ ├── helmrelease.yaml │ │ └── kustomization.yaml │ └── ks.yaml ├── delphi │ ├── app │ │ ├── helmrelease.yaml │ │ ├── helmrelease_backup.yaml │ │ └── kustomization.yaml │ └── ks.yaml ├── firefly │ ├── app │ │ ├── helmrelease.yaml │ │ ├── kustomization.yaml │ │ └── pvc.yaml │ └── ks.yaml ├── headlamp │ ├── app │ │ ├── helmrelease.yaml │ │ ├── kustomization.yaml │ │ └── rbac.yaml │ └── ks.yaml ├── home-assistant │ ├── app │ │ ├── helmrelease.yaml │ │ ├── ingress.yaml │ │ ├── kustomization.yaml │ │ └── pvc.yaml │ └── ks.yaml ├── hydra │ ├── app │ │ ├── helmrelease.yaml │ │ ├── ingress.yaml │ │ ├── kustomization.yaml │ │ └── pvc.yaml │ └── ks.yaml ├── invidious │ ├── app │ │ ├── helmrelease.yaml │ │ ├── inv.sops.yaml │ │ └── kustomization.yaml │ └── ks.yaml ├── jupyterhub │ ├── app │ │ ├── helmrelease.yaml │ │ ├── ingress.yaml │ │ ├── kustomization.yaml │ │ └── pvc.yaml │ └── ks.yaml ├── komodor │ ├── app │ │ ├── helmrelease.yaml │ │ ├── komodor.sops.yaml │ │ └── kustomization.yaml │ └── ks.yaml ├── kube-ops-view │ ├── app │ │ ├── helmrelease.yaml │ │ ├── kustomization.yaml │ │ └── rbac.yaml │ └── ks.yaml ├── kubernetes-schemas │ ├── app │ │ ├── helmrelease.yaml │ │ └── kustomization.yaml │ └── ks.yaml ├── lightdash │ ├── app │ │ ├── helmrelease.yaml │ │ └── kustomization.yaml │ └── ks.yaml ├── litellm │ ├── app │ │ ├── helmrelease.yaml │ │ ├── kustomization.yaml │ │ └── lightllm.sops.yaml │ └── ks.yaml ├── loki-stack │ ├── app │ │ ├── helmrelease.yaml │ │ ├── kustomization.yaml │ │ └── pvc.yaml │ └── ks.yaml ├── ollama │ ├── backend │ │ ├── helmrelease.yaml │ │ ├── helmrelease_old.yaml │ │ ├── kustomization.yaml │ │ └── pvc.yaml │ ├── ks.yaml │ └── ui │ │ ├── helmrelease.yaml │ │ ├── helmrelease_old.yaml │ │ └── kustomization.yaml ├── parseable │ ├── app │ │ ├── helmrelease.yaml │ │ ├── ingress.yaml │ │ ├── kustomization.yaml │ │ ├── parseable.sops.yaml │ │ └── parseable2.sops.yaml │ └── ks.yaml ├── plex │ ├── app │ │ ├── helmrelease.yaml │ │ ├── kustomization.yaml │ │ └── pvc-plex.yaml │ └── ks.yaml ├── porla │ ├── app │ │ ├── configs │ │ │ └── config.toml │ │ ├── helmrelease.yaml │ │ ├── ingress.yaml │ │ ├── kustomization.yaml │ │ ├── porla.sops.yaml │ │ └── pvc.yaml │ └── ks.yaml ├── postgresql │ └── app │ │ ├── backup-configmap.yaml │ │ ├── backup-cronjob.yaml │ │ ├── helmrelease.yaml │ │ ├── ingress.yaml │ │ ├── kustomization.yaml │ │ ├── pvc-postgres-backup.yaml │ │ └── pvc.yaml ├── postgresql16 │ ├── app │ │ ├── helmrelease.yaml │ │ ├── kustomization.yaml │ │ └── pvc.yaml │ └── ks.yaml ├── promlens │ ├── app │ │ ├── helmrelease.yaml │ │ ├── ingress.yaml │ │ └── kustomization.yaml │ └── ks.yaml ├── promtail │ ├── app │ │ ├── helmrelease.yaml │ │ └── kustomization.yaml │ └── ks.yaml ├── prowlarr │ ├── app │ │ ├── helmrelease.yaml │ │ ├── ingress.yaml │ │ ├── kustomization.yaml │ │ ├── prowlarr.sops.yaml │ │ └── pvc.yaml │ ├── ks.yaml │ └── tools │ │ ├── flaresolverr │ │ ├── helmrelease.yaml │ │ └── kustomization.yaml │ │ └── kustomization.yaml ├── qbittorrent │ ├── app │ │ ├── helmrelease.yaml │ │ ├── ingress.yaml │ │ ├── kustomization.yaml │ │ ├── pvc.yaml │ │ └── resources │ │ │ └── completed.sh │ └── ks.yaml ├── radarr │ ├── app │ │ ├── helmrelease.yaml │ │ ├── ingress.yaml │ │ ├── kustomization.yaml │ │ ├── pvc.yaml │ │ └── radarr.sops.yaml │ └── ks.yaml ├── redisinsight │ ├── app │ │ ├── helmrelease.yaml │ │ ├── ingress.yaml │ │ └── kustomization.yaml │ └── ks.yaml ├── rook-ceph │ ├── kustomization.yaml │ ├── namespace.yaml │ └── rook-ceph │ │ ├── app │ │ ├── helmrelease.yaml │ │ └── kustomization.yaml │ │ ├── cluster │ │ ├── helmrelease.yaml │ │ └── kustomization.yaml │ │ └── ks.yaml ├── sabnzbd │ ├── app │ │ ├── helmrelease.yaml │ │ ├── ingress.yaml │ │ └── kustomization.yaml │ └── ks.yaml ├── scrypted │ ├── app │ │ ├── helmrelease.yaml │ │ ├── kustomization.yaml │ │ └── pvc.yaml │ └── ks.yaml ├── sensei │ ├── app │ │ ├── helmrelease.yaml │ │ ├── kustomization.yaml │ │ └── sensei.sops.yaml │ └── ks.yaml ├── skooner │ ├── app │ │ ├── helmrelease.yaml │ │ ├── kustomization.yaml │ │ └── rbac.yaml │ └── ks.yaml ├── snapshot-controller │ ├── app │ │ ├── helmrelease.yaml │ │ └── kustomization.yaml │ └── ks.yaml ├── solr │ ├── app │ │ ├── helmrelease.yaml │ │ └── kustomization.yaml │ └── ks.yaml ├── sonarr │ ├── app │ │ ├── helmrelease.yaml │ │ ├── ingress.yaml │ │ ├── kustomization.yaml │ │ ├── pvc.yaml │ │ └── sonarr.sops.yaml │ └── ks.yaml ├── spark │ ├── spark-operator │ │ ├── app │ │ │ ├── files │ │ │ │ └── pi.py │ │ │ ├── helmrelease.yaml │ │ │ ├── kustomization.yaml │ │ │ ├── pi-configmap.yaml │ │ │ ├── rbac.yaml │ │ │ ├── spark-configmap.yaml │ │ │ ├── spark-py.yaml │ │ │ └── spark-test.yaml │ │ └── ks.yaml │ ├── spark │ │ ├── app │ │ │ ├── configs │ │ │ │ └── delta-configmap.yaml │ │ │ ├── delta-configmap.yaml │ │ │ ├── helmrelease.yaml │ │ │ ├── helmrelease_full.yaml │ │ │ ├── ingress.yaml │ │ │ ├── kustomization.yaml │ │ │ └── pvc.yaml │ │ └── ks.yaml │ └── stackable │ │ ├── app │ │ ├── helmrelease.yaml │ │ ├── kustomization.yaml │ │ ├── pi-configmap.yaml │ │ └── spark-py.yaml │ │ └── ks.yaml ├── streamlit │ ├── app │ │ ├── helmrelease.yaml │ │ └── kustomization.yaml │ └── ks.yaml ├── superset │ ├── app │ │ ├── helmrelease.yaml │ │ ├── ingress.yaml │ │ ├── kustomization.yaml │ │ ├── pvc.yaml │ │ └── superset.sops.yaml │ └── ks.yaml ├── tautulli │ ├── app │ │ ├── helmrelease.yaml │ │ └── kustomization.yaml │ └── ks.yaml ├── thanos │ ├── app │ │ ├── helmrelease.yaml │ │ ├── kustomization.yaml │ │ ├── resources │ │ │ └── cache.yaml │ │ └── thanos.sops.yaml │ └── ks.yaml ├── thanos_bitnami │ ├── app │ │ ├── helmrelease.yaml │ │ └── kustomization.yaml │ └── ks.yaml ├── tooljet │ ├── app │ │ ├── helmrelease.yaml │ │ ├── ingress.yaml │ │ ├── kustomization.yaml │ │ ├── pvc.yaml │ │ └── tooljet.sops.yaml │ └── ks.yaml ├── vector │ ├── app │ │ ├── agent │ │ │ ├── config │ │ │ │ └── vector.yaml │ │ │ ├── helmrelease.yaml │ │ │ ├── kustomization.yaml │ │ │ ├── patches │ │ │ │ └── kustomizeconfig.yaml │ │ │ └── rbac.yaml │ │ ├── aggregator │ │ │ ├── config │ │ │ │ └── vector.yaml │ │ │ ├── helmrelease.yaml │ │ │ ├── kustomization.yaml │ │ │ └── patches │ │ │ │ └── kustomizeconfig.yaml │ │ └── kustomization.yaml │ └── ks.yaml ├── vector_old │ ├── app │ │ ├── agent.yaml │ │ ├── aggregator.yaml │ │ ├── archiver.yaml │ │ ├── kustomization.yaml │ │ └── pvc.yaml │ └── ks.yaml ├── volsync │ ├── kustomization.yaml │ ├── namespace.yaml │ └── volsync │ │ ├── app │ │ ├── helmrelease.yaml │ │ ├── kustomization.yaml │ │ └── prometheusrule.yaml │ │ └── ks.yaml ├── website_old │ ├── app │ │ ├── helmrelease.yaml │ │ ├── ingress.yaml │ │ ├── kustomization.yaml │ │ └── pvc.yaml │ └── ks.yaml └── youtubedl │ ├── app │ ├── helmrelease.yaml │ ├── ingress.yaml │ ├── kustomization.yaml │ └── pvc.yaml │ └── ks.yaml ├── ansible ├── inventory │ ├── group_vars │ │ ├── kubernetes │ │ │ ├── main.yaml │ │ │ └── supplemental.yaml │ │ ├── master │ │ │ └── main.yaml │ │ └── worker │ │ │ └── main.yaml │ ├── host_vars │ │ ├── .gitkeep │ │ ├── aurora.sops.yaml │ │ ├── k8s-01.sops.yaml │ │ ├── k8s-02.sops.yaml │ │ ├── k8s-03.sops.yaml │ │ ├── k8s-04.sops.yaml │ │ ├── k8s-05.sops.yaml │ │ ├── k8s-06.sops.yaml │ │ ├── k8s-07.sops.yaml │ │ ├── k8s-08.sops.yaml │ │ ├── k8s-09.sops.yaml │ │ ├── k8s-10.sops.yaml │ │ └── nuc11.sops.yaml │ └── hosts.yaml └── playbooks │ ├── cluster-ceph-reset.yaml │ ├── cluster-installation.yaml │ ├── cluster-kube-vip.yaml │ ├── cluster-nuke.yaml │ ├── cluster-prepare.yaml │ ├── cluster-reboot.yaml │ ├── cluster-rollout-update.yaml │ ├── files │ ├── stale-containers.service │ └── stale-containers.timer │ ├── longhorn-drives.yaml │ ├── tasks │ ├── cilium.yaml │ ├── coredns.yaml │ ├── cruft.yaml │ ├── kubeconfig.yaml │ └── stale_containers.yaml │ └── templates │ ├── custom-cilium-helmchart.yaml.j2 │ ├── custom-cilium-l2.yaml.j2 │ ├── custom-coredns-helmchart.yaml.j2 │ └── kube-vip-static-pod.yaml.j2 ├── bootstrap ├── configure.yaml ├── tasks │ ├── addons │ │ ├── csi_driver_nfs.yaml │ │ ├── discord_template_notifier.yaml │ │ ├── grafana.yaml │ │ ├── hajimari.yaml │ │ ├── kube_prometheus_stack.yaml │ │ ├── kubernetes_dashboard.yaml │ │ ├── main.yaml │ │ ├── system_upgrade_controller.yaml │ │ └── weave_gitops.yaml │ ├── ansible │ │ └── main.yaml │ ├── kubernetes │ │ └── main.yaml │ ├── sops │ │ ├── disable.yaml │ │ ├── enable.yaml │ │ └── main.yaml │ └── validation │ │ ├── age.yaml │ │ ├── cli.yaml │ │ ├── cloudflare.yaml │ │ ├── github.yaml │ │ ├── main.yaml │ │ ├── net.yaml │ │ └── vars.yaml ├── templates │ ├── .sops.yaml.j2 │ ├── addons │ │ ├── csi-driver-nfs │ │ │ ├── app │ │ │ │ ├── helmrelease.yaml.j2 │ │ │ │ ├── kustomization.yaml.j2 │ │ │ │ └── storageclass.yaml.j2 │ │ │ └── ks.yaml.j2 │ │ ├── discord-template-notifier │ │ │ ├── app │ │ │ │ ├── helmrelease.yaml.j2 │ │ │ │ ├── kustomization.yaml.j2 │ │ │ │ └── secret.sops.yaml.j2 │ │ │ └── ks.yaml.j2 │ │ ├── grafana │ │ │ ├── app │ │ │ │ ├── helmrelease.yaml.j2 │ │ │ │ ├── kustomization.yaml.j2 │ │ │ │ └── secret.sops.yaml.j2 │ │ │ └── ks.yaml.j2 │ │ ├── hajimari │ │ │ ├── app │ │ │ │ ├── helmrelease.yaml.j2 │ │ │ │ └── kustomization.yaml.j2 │ │ │ └── ks.yaml.j2 │ │ ├── kube-prometheus-stack │ │ │ ├── app │ │ │ │ ├── helmrelease.yaml.j2 │ │ │ │ └── kustomization.yaml.j2 │ │ │ └── ks.yaml.j2 │ │ ├── kubernetes-dashboard │ │ │ ├── app │ │ │ │ ├── helmrelease.yaml.j2 │ │ │ │ ├── kustomization.yaml.j2 │ │ │ │ └── rbac.yaml.j2 │ │ │ └── ks.yaml.j2 │ │ ├── system-upgrade-controller │ │ │ ├── app │ │ │ │ └── kustomization.yaml.j2 │ │ │ ├── ks.yaml.j2 │ │ │ └── plans │ │ │ │ ├── agent.yaml.j2 │ │ │ │ ├── kustomization.yaml.j2 │ │ │ │ └── server.yaml.j2 │ │ └── weave-gitops │ │ │ ├── app │ │ │ ├── helmrelease.yaml.j2 │ │ │ ├── kustomization.yaml.j2 │ │ │ └── secret.sops.yaml.j2 │ │ │ └── ks.yaml.j2 │ ├── ansible │ │ ├── inventory │ │ │ ├── group_vars │ │ │ │ ├── kubernetes │ │ │ │ │ ├── main.yaml.j2 │ │ │ │ │ └── supplemental.yaml.j2 │ │ │ │ ├── master │ │ │ │ │ └── main.yaml.j2 │ │ │ │ └── worker │ │ │ │ │ └── main.yaml.j2 │ │ │ ├── host_vars │ │ │ │ └── .gitkeep.j2 │ │ │ └── hosts.yaml.j2 │ │ └── playbooks │ │ │ ├── cluster-installation.yaml.j2 │ │ │ ├── cluster-kube-vip.yaml.j2 │ │ │ ├── cluster-nuke.yaml.j2 │ │ │ ├── cluster-prepare.yaml.j2 │ │ │ ├── cluster-reboot.yaml.j2 │ │ │ ├── cluster-rollout-update.yaml.j2 │ │ │ ├── files │ │ │ ├── stale-containers.service.j2 │ │ │ └── stale-containers.timer.j2 │ │ │ ├── tasks │ │ │ ├── cilium.yaml.j2 │ │ │ ├── coredns.yaml.j2 │ │ │ ├── cruft.yaml.j2 │ │ │ ├── kubeconfig.yaml.j2 │ │ │ └── stale_containers.yaml.j2 │ │ │ └── templates │ │ │ ├── custom-cilium-helmchart.yaml.j2.j2 │ │ │ ├── custom-cilium-l2.yaml.j2.j2 │ │ │ ├── custom-coredns-helmchart.yaml.j2.j2 │ │ │ └── kube-vip-static-pod.yaml.j2.j2 │ ├── kubernetes │ │ ├── apps │ │ │ ├── cert-manager │ │ │ │ ├── cert-manager │ │ │ │ │ ├── app │ │ │ │ │ │ ├── helmrelease.yaml.j2 │ │ │ │ │ │ ├── kustomization.yaml.j2 │ │ │ │ │ │ └── prometheusrule.yaml.j2 │ │ │ │ │ ├── issuers │ │ │ │ │ │ ├── issuers.yaml.j2 │ │ │ │ │ │ ├── kustomization.yaml.j2 │ │ │ │ │ │ └── secret.sops.yaml.j2 │ │ │ │ │ └── ks.yaml.j2 │ │ │ │ ├── kustomization.yaml.j2 │ │ │ │ └── namespace.yaml.j2 │ │ │ ├── default │ │ │ │ ├── kustomization.yaml.j2 │ │ │ │ └── namespace.yaml.j2 │ │ │ ├── flux-system │ │ │ │ ├── addons │ │ │ │ │ ├── ks.yaml.j2 │ │ │ │ │ └── webhooks │ │ │ │ │ │ ├── github │ │ │ │ │ │ ├── ingress.yaml.j2 │ │ │ │ │ │ ├── kustomization.yaml.j2 │ │ │ │ │ │ ├── receiver.yaml.j2 │ │ │ │ │ │ └── secret.sops.yaml.j2 │ │ │ │ │ │ └── kustomization.yaml.j2 │ │ │ │ ├── kustomization.yaml.j2 │ │ │ │ └── namespace.yaml.j2 │ │ │ ├── kube-system │ │ │ │ ├── cilium │ │ │ │ │ ├── app │ │ │ │ │ │ ├── cilium-l2.yaml.j2 │ │ │ │ │ │ ├── helmrelease.yaml.j2 │ │ │ │ │ │ └── kustomization.yaml.j2 │ │ │ │ │ └── ks.yaml.j2 │ │ │ │ ├── coredns │ │ │ │ │ ├── app │ │ │ │ │ │ ├── helmrelease.yaml.j2 │ │ │ │ │ │ └── kustomization.yaml.j2 │ │ │ │ │ └── ks.yaml.j2 │ │ │ │ ├── kustomization.yaml.j2 │ │ │ │ ├── local-path-provisioner │ │ │ │ │ ├── app │ │ │ │ │ │ ├── helmrelease.yaml.j2 │ │ │ │ │ │ └── kustomization.yaml.j2 │ │ │ │ │ └── ks.yaml.j2 │ │ │ │ ├── metrics-server │ │ │ │ │ ├── app │ │ │ │ │ │ ├── helmrelease.yaml.j2 │ │ │ │ │ │ └── kustomization.yaml.j2 │ │ │ │ │ └── ks.yaml.j2 │ │ │ │ ├── namespace.yaml.j2 │ │ │ │ └── reloader │ │ │ │ │ ├── app │ │ │ │ │ ├── helmrelease.yaml.j2 │ │ │ │ │ └── kustomization.yaml.j2 │ │ │ │ │ └── ks.yaml.j2 │ │ │ ├── monitoring │ │ │ │ ├── kustomization.yaml.j2 │ │ │ │ └── namespace.yaml.j2 │ │ │ ├── networking │ │ │ │ ├── cloudflared │ │ │ │ │ ├── app │ │ │ │ │ │ ├── configs │ │ │ │ │ │ │ └── config.yaml.j2 │ │ │ │ │ │ ├── dnsendpoint.yaml.j2 │ │ │ │ │ │ ├── helmrelease.yaml.j2 │ │ │ │ │ │ ├── kustomization.yaml.j2 │ │ │ │ │ │ └── secret.sops.yaml.j2 │ │ │ │ │ └── ks.yaml.j2 │ │ │ │ ├── echo-server │ │ │ │ │ ├── app │ │ │ │ │ │ ├── helmrelease.yaml.j2 │ │ │ │ │ │ └── kustomization.yaml.j2 │ │ │ │ │ └── ks.yaml.j2 │ │ │ │ ├── external-dns │ │ │ │ │ ├── app │ │ │ │ │ │ ├── dnsendpoint-crd.yaml.j2 │ │ │ │ │ │ ├── helmrelease.yaml.j2 │ │ │ │ │ │ ├── kustomization.yaml.j2 │ │ │ │ │ │ └── secret.sops.yaml.j2 │ │ │ │ │ └── ks.yaml.j2 │ │ │ │ ├── k8s-gateway │ │ │ │ │ ├── app │ │ │ │ │ │ ├── helmrelease.yaml.j2 │ │ │ │ │ │ └── kustomization.yaml.j2 │ │ │ │ │ └── ks.yaml.j2 │ │ │ │ ├── kustomization.yaml.j2 │ │ │ │ ├── namespace.yaml.j2 │ │ │ │ └── nginx │ │ │ │ │ ├── certificates │ │ │ │ │ ├── kustomization.yaml.j2 │ │ │ │ │ ├── production.yaml.j2 │ │ │ │ │ └── staging.yaml.j2 │ │ │ │ │ ├── external │ │ │ │ │ ├── helmrelease.yaml.j2 │ │ │ │ │ └── kustomization.yaml.j2 │ │ │ │ │ ├── internal │ │ │ │ │ ├── helmrelease.yaml.j2 │ │ │ │ │ └── kustomization.yaml.j2 │ │ │ │ │ └── ks.yaml.j2 │ │ │ └── system-upgrade │ │ │ │ ├── kustomization.yaml.j2 │ │ │ │ └── namespace.yaml.j2 │ │ ├── bootstrap │ │ │ └── kustomization.yaml.j2 │ │ └── flux │ │ │ ├── apps.yaml.j2 │ │ │ ├── config │ │ │ ├── cluster.yaml.j2 │ │ │ ├── flux.yaml.j2 │ │ │ └── kustomization.yaml.j2 │ │ │ ├── repositories │ │ │ ├── git │ │ │ │ ├── kustomization.yaml.j2 │ │ │ │ └── local-path-provisioner.yaml.j2 │ │ │ ├── helm │ │ │ │ ├── bitnami.yaml.j2 │ │ │ │ ├── bjw-s.yaml.j2 │ │ │ │ ├── cilium.yaml.j2 │ │ │ │ ├── coredns.yaml.j2 │ │ │ │ ├── csi-driver-nfs.yaml.j2 │ │ │ │ ├── external-dns.yaml.j2 │ │ │ │ ├── grafana.yaml.j2 │ │ │ │ ├── hajimari.yaml.j2 │ │ │ │ ├── influxdata.yaml │ │ │ │ ├── ingress-nginx.yaml.j2 │ │ │ │ ├── jetstack.yaml.j2 │ │ │ │ ├── k8s-gateway.yaml.j2 │ │ │ │ ├── kubernetes-dashboard.yaml.j2 │ │ │ │ ├── kustomization.yaml.j2 │ │ │ │ ├── metrics-server.yaml.j2 │ │ │ │ ├── prometheus-community.yaml.j2 │ │ │ │ ├── stakater.yaml.j2 │ │ │ │ └── weave-gitops.yaml.j2 │ │ │ ├── kustomization.yaml.j2 │ │ │ └── oci │ │ │ │ └── .gitkeep │ │ │ └── vars │ │ │ ├── cluster-secrets-user.sops.yaml.j2 │ │ │ ├── cluster-secrets.sops.yaml.j2 │ │ │ ├── cluster-settings-user.yaml.j2 │ │ │ ├── cluster-settings.yaml.j2 │ │ │ └── kustomization.yaml.j2 │ └── node.sops.yaml.j2 └── vars │ └── .gitignore ├── kubernetes ├── apps │ ├── actions-runner-system │ │ ├── actions-runner-controller │ │ │ ├── app │ │ │ │ ├── actions.sops.yaml │ │ │ │ ├── helmrelease.yaml │ │ │ │ └── kustomization.yaml │ │ │ ├── ks.yaml │ │ │ └── runners │ │ │ │ ├── helmrelease.yaml │ │ │ │ ├── kustomization.yaml │ │ │ │ └── rbac.yaml │ │ ├── kustomization.yaml │ │ └── namespace.yaml │ ├── cert-manager │ │ ├── cert-manager │ │ │ ├── app │ │ │ │ ├── helmrelease.yaml │ │ │ │ ├── kustomization.yaml │ │ │ │ └── prometheusrule.yaml │ │ │ ├── issuers │ │ │ │ ├── issuers.yaml │ │ │ │ ├── kustomization.yaml │ │ │ │ └── secret.sops.yaml │ │ │ └── ks.yaml │ │ ├── certificates │ │ │ ├── app │ │ │ │ ├── kustomization.yaml │ │ │ │ ├── production.yaml │ │ │ │ └── staging.yaml │ │ │ └── ks.yaml │ │ ├── kustomization.yaml │ │ └── namespace.yaml │ ├── database │ │ ├── cloudnative-pg │ │ │ ├── app │ │ │ │ ├── cloudnativepg.sops.yaml │ │ │ │ ├── helmrelease.yaml │ │ │ │ └── kustomization.yaml │ │ │ ├── cluster │ │ │ │ ├── backup.yaml │ │ │ │ ├── helmrelease.yaml │ │ │ │ ├── kustomization.yaml │ │ │ │ ├── pvc.yaml │ │ │ │ ├── scheduled-backup.yaml │ │ │ │ └── service.yaml │ │ │ └── ks.yaml │ │ ├── couchdb │ │ │ ├── app │ │ │ │ ├── config │ │ │ │ │ └── config.ini │ │ │ │ ├── couchdb.sops.yaml │ │ │ │ ├── helmrelease.yaml │ │ │ │ ├── kustomization.yaml │ │ │ │ └── pvc.yaml │ │ │ └── ks.yaml │ │ ├── dragonfly │ │ │ ├── app │ │ │ │ ├── helmrelease.yaml │ │ │ │ ├── kustomization.yaml │ │ │ │ └── rbac.yaml │ │ │ ├── cluster │ │ │ │ ├── cluster.yaml │ │ │ │ ├── kustomization.yaml │ │ │ │ └── podmonitor.yaml │ │ │ └── ks.yaml │ │ ├── influxdb │ │ │ ├── app │ │ │ │ ├── helmrelease.yaml │ │ │ │ ├── ingress.yaml │ │ │ │ ├── kustomization.yaml │ │ │ │ └── pvc.yaml │ │ │ └── ks.yaml │ │ ├── kustomization.yaml │ │ ├── mongodb │ │ │ ├── app │ │ │ │ ├── helmrelease.yaml │ │ │ │ ├── kustomization.yaml │ │ │ │ └── pvc.yaml │ │ │ └── ks.yaml │ │ ├── namespace.yaml │ │ ├── pgadmin │ │ │ ├── app │ │ │ │ ├── helmrelease.yaml │ │ │ │ ├── ingress.yaml │ │ │ │ ├── kustomization.yaml │ │ │ │ └── pvc.yaml │ │ │ └── ks.yaml │ │ └── redis │ │ │ ├── app │ │ │ ├── helmrelease.yaml │ │ │ ├── kustomization.yaml │ │ │ ├── pvc-longhorn.yaml │ │ │ └── pvc.yaml │ │ │ └── ks.yaml │ ├── default │ │ ├── actual │ │ │ ├── app │ │ │ │ ├── helmrelease.yaml │ │ │ │ ├── kustomization.yaml │ │ │ │ ├── pvc-actual.yaml │ │ │ │ └── pvc.yaml │ │ │ └── ks.yaml │ │ ├── authelia │ │ │ ├── app │ │ │ │ ├── authelia.sops.yaml │ │ │ │ ├── config │ │ │ │ │ └── configuration.yaml │ │ │ │ ├── helmrelease.yaml │ │ │ │ └── kustomization.yaml │ │ │ └── ks.yaml │ │ ├── frigate │ │ │ ├── app │ │ │ │ ├── config │ │ │ │ │ └── config.yml │ │ │ │ ├── helmrelease.yaml │ │ │ │ ├── kustomization.yaml │ │ │ │ ├── nfs-claim.yaml │ │ │ │ └── pvc.yaml │ │ │ └── ks.yaml │ │ ├── hajimari │ │ │ ├── app │ │ │ │ ├── helmrelease.yaml │ │ │ │ └── kustomization.yaml │ │ │ └── ks.yaml │ │ ├── homepage │ │ │ ├── app │ │ │ │ ├── configmap.yaml │ │ │ │ ├── helmrelease.yaml │ │ │ │ ├── homepage.sops.yaml │ │ │ │ ├── kustomization.yaml │ │ │ │ └── rbac.yaml │ │ │ └── ks.yaml │ │ ├── kustomization.yaml │ │ ├── lldap │ │ │ ├── app │ │ │ │ ├── helmrelease.yaml │ │ │ │ ├── kustomization.yaml │ │ │ │ └── lldap.sops.yaml │ │ │ └── ks.yaml │ │ ├── mosquitto │ │ │ ├── app │ │ │ │ ├── config │ │ │ │ │ └── mosquitto.conf │ │ │ │ ├── helmrelease.yaml │ │ │ │ ├── kustomization.yaml │ │ │ │ ├── mqtt.sops.yaml │ │ │ │ ├── patches │ │ │ │ │ └── kustomizeconfig.yaml │ │ │ │ └── pvc.yaml │ │ │ └── ks.yaml │ │ ├── n8n │ │ │ ├── app │ │ │ │ ├── helmrelease.yaml │ │ │ │ ├── ingress.yaml │ │ │ │ ├── kustomization.yaml │ │ │ │ └── pvc.yaml │ │ │ └── ks.yaml │ │ ├── namespace.yaml │ │ ├── omni │ │ │ ├── app │ │ │ │ ├── helmrelease.yaml │ │ │ │ ├── kustomization.yaml │ │ │ │ └── omni.sops.yaml │ │ │ └── ks.yaml │ │ ├── troddit │ │ │ ├── app │ │ │ │ ├── helmrelease.yaml │ │ │ │ ├── ingress.yaml │ │ │ │ ├── kustomization.yaml │ │ │ │ └── troddit.sops.yaml │ │ │ └── ks.yaml │ │ ├── website │ │ │ ├── app │ │ │ │ ├── helmrelease.yaml │ │ │ │ └── kustomization.yaml │ │ │ └── ks.yaml │ │ └── whoami │ │ │ ├── app │ │ │ ├── helmrelease.yaml │ │ │ └── kustomization.yaml │ │ │ └── ks.yaml │ ├── flux-system │ │ ├── addons │ │ │ ├── app │ │ │ │ ├── kustomization.yaml │ │ │ │ ├── monitoring │ │ │ │ │ ├── kustomization.yaml │ │ │ │ │ ├── podmonitor.yaml │ │ │ │ │ └── prometheusrule.yaml │ │ │ │ ├── notifications │ │ │ │ │ ├── alert-manager │ │ │ │ │ │ ├── kustomization.yaml │ │ │ │ │ │ └── notification.yaml │ │ │ │ │ ├── github │ │ │ │ │ │ ├── kustomization.yaml │ │ │ │ │ │ └── notification.yaml │ │ │ │ │ └── kustomization.yaml │ │ │ │ └── webhooks │ │ │ │ │ ├── github │ │ │ │ │ ├── ingress.yaml │ │ │ │ │ ├── kustomization.yaml │ │ │ │ │ ├── receiver.yaml │ │ │ │ │ └── secret.sops.yaml │ │ │ │ │ └── kustomization.yaml │ │ │ └── ks.yaml │ │ ├── kustomization.yaml │ │ ├── namespace.yaml │ │ └── weave-gitops │ │ │ ├── app │ │ │ ├── helmrelease.yaml │ │ │ ├── kustomization.yaml │ │ │ └── secret.sops.yaml │ │ │ └── ks.yaml │ ├── kube-system │ │ ├── cilium │ │ │ ├── app │ │ │ │ ├── cilium-l2.yaml │ │ │ │ ├── helmrelease.yaml │ │ │ │ └── kustomization.yaml │ │ │ └── ks.yaml │ │ ├── coredns │ │ │ ├── app │ │ │ │ ├── helmrelease.yaml │ │ │ │ └── kustomization.yaml │ │ │ └── ks.yaml │ │ ├── csi-driver-nfs │ │ │ ├── app │ │ │ │ ├── helmrelease.yaml │ │ │ │ ├── kustomization.yaml │ │ │ │ └── storageclass.yaml │ │ │ └── ks.yaml │ │ ├── intel-device-plugin │ │ │ ├── app │ │ │ │ ├── helmrelease.yaml │ │ │ │ └── kustomization.yaml │ │ │ ├── gpu │ │ │ │ ├── helmrelease.yaml │ │ │ │ └── kustomization.yaml │ │ │ └── ks.yaml │ │ ├── kustomization.yaml │ │ ├── local-path-provisioner │ │ │ ├── app │ │ │ │ ├── helmrelease.yaml │ │ │ │ └── kustomization.yaml │ │ │ └── ks.yaml │ │ ├── metrics-server │ │ │ ├── app │ │ │ │ ├── helmrelease.yaml │ │ │ │ └── kustomization.yaml │ │ │ └── ks.yaml │ │ ├── minio │ │ │ ├── app │ │ │ │ ├── helmrelease.yaml │ │ │ │ ├── kustomization.yaml │ │ │ │ ├── pvc.yaml │ │ │ │ └── secret.sops.yaml │ │ │ └── ks.yaml │ │ ├── namespace.yaml │ │ ├── node-feature-discovery │ │ │ ├── app │ │ │ │ ├── helmrelease.yaml │ │ │ │ └── kustomization.yaml │ │ │ ├── ks.yaml │ │ │ └── rules │ │ │ │ ├── google-coral-device.yaml │ │ │ │ ├── kustomization.yaml │ │ │ │ └── nvidia.yaml │ │ ├── nvidia-device-plugin │ │ │ ├── app │ │ │ │ ├── helmrelease.yaml │ │ │ │ ├── kustomization.yaml │ │ │ │ └── runtimeclass.yaml │ │ │ └── ks.yaml │ │ └── reloader │ │ │ ├── app │ │ │ ├── helmrelease.yaml │ │ │ └── kustomization.yaml │ │ │ └── ks.yaml │ ├── longhorn-system │ │ ├── kustomization.yaml │ │ ├── longhorn │ │ │ ├── app │ │ │ │ ├── helmrelease.yaml │ │ │ │ ├── kustomization.yaml │ │ │ │ ├── longhorn.sops.yaml │ │ │ │ └── service-monitor.yaml │ │ │ ├── ks.yaml │ │ │ └── recurring-jobs │ │ │ │ ├── backup-weekly.yaml │ │ │ │ ├── kustomization.yaml │ │ │ │ └── snapshot-daily.yaml │ │ └── namespace.yaml │ ├── media │ │ ├── kustomization.yaml │ │ └── namespace.yaml │ ├── monitoring │ │ ├── alertmanager │ │ │ ├── app │ │ │ │ ├── config │ │ │ │ │ └── alertmanager.yml │ │ │ │ ├── helmrelease.yaml │ │ │ │ └── kustomization.yaml │ │ │ └── ks.yaml │ │ ├── blackbox-exporter │ │ │ ├── app │ │ │ │ ├── dashboard │ │ │ │ │ ├── icmp.json │ │ │ │ │ └── kustomization.yaml │ │ │ │ ├── helmrelease.yaml │ │ │ │ └── kustomization.yaml │ │ │ └── ks.yaml │ │ ├── gatus │ │ │ ├── app │ │ │ │ ├── config │ │ │ │ │ └── config.yaml │ │ │ │ ├── gatus.sops.yaml │ │ │ │ ├── helmrelease.yaml │ │ │ │ ├── kustomization.yaml │ │ │ │ └── rbac.yaml │ │ │ └── ks.yaml │ │ ├── grafana │ │ │ ├── app │ │ │ │ ├── dashboard │ │ │ │ │ ├── ingress-logs.json │ │ │ │ │ ├── iotawatt.json │ │ │ │ │ ├── kustomization.yaml │ │ │ │ │ ├── sensei.json │ │ │ │ │ ├── smartctl-exporter.json │ │ │ │ │ └── temperatures.json │ │ │ │ ├── helmrelease.yaml │ │ │ │ ├── kustomization.yaml │ │ │ │ └── secret.sops.yaml │ │ │ └── ks.yaml │ │ ├── karma │ │ │ ├── app │ │ │ │ ├── helmrelease.yaml │ │ │ │ └── kustomization.yaml │ │ │ └── ks.yaml │ │ ├── kromgo │ │ │ ├── app │ │ │ │ ├── config │ │ │ │ │ └── config.yaml │ │ │ │ ├── helmrelease.yaml │ │ │ │ └── kustomization.yaml │ │ │ └── ks.yaml │ │ ├── kube-prometheus-stack │ │ │ ├── app │ │ │ │ ├── config │ │ │ │ │ └── alertmanager.yaml │ │ │ │ ├── helmrelease.yaml │ │ │ │ ├── kustomization.yaml │ │ │ │ └── scrapeconfigs │ │ │ │ │ ├── kustomization.yaml │ │ │ │ │ └── node-exporter.yaml │ │ │ └── ks.yaml │ │ ├── kube-state-metrics │ │ │ ├── app │ │ │ │ ├── helmrelease.yaml │ │ │ │ └── kustomization.yaml │ │ │ └── ks.yaml │ │ ├── kubernetes-dashboard │ │ │ ├── app │ │ │ │ ├── helmrelease.yaml │ │ │ │ ├── kustomization.yaml │ │ │ │ └── rbac.yaml │ │ │ └── ks.yaml │ │ ├── kustomization.yaml │ │ ├── loki │ │ │ ├── app │ │ │ │ ├── helmrelease.yaml │ │ │ │ ├── kustomization.yaml │ │ │ │ ├── loki.sops.yaml │ │ │ │ └── rules │ │ │ │ │ └── loki-alerting-rules.yaml │ │ │ └── ks.yaml │ │ ├── namespace.yaml │ │ └── smartctl-exporter │ │ │ ├── app │ │ │ ├── helmrelease.yaml │ │ │ ├── kustomization.yaml │ │ │ └── prometheusrule.yaml │ │ │ └── ks.yaml │ ├── networking │ │ ├── cloudflared │ │ │ ├── app │ │ │ │ ├── configs │ │ │ │ │ └── config.yaml │ │ │ │ ├── dnsendpoint.yaml │ │ │ │ ├── helmrelease.yaml │ │ │ │ ├── kustomization.yaml │ │ │ │ └── secret.sops.yaml │ │ │ └── ks.yaml │ │ ├── echo-server │ │ │ ├── app │ │ │ │ ├── helmrelease.yaml │ │ │ │ └── kustomization.yaml │ │ │ └── ks.yaml │ │ ├── external-dns │ │ │ ├── app │ │ │ │ ├── dnsendpoint-crd.yaml │ │ │ │ ├── helmrelease.yaml │ │ │ │ ├── kustomization.yaml │ │ │ │ └── secret.sops.yaml │ │ │ └── ks.yaml │ │ ├── k8s-gateway │ │ │ ├── app │ │ │ │ ├── helmrelease.yaml │ │ │ │ └── kustomization.yaml │ │ │ └── ks.yaml │ │ ├── kustomization.yaml │ │ ├── namespace.yaml │ │ └── nginx │ │ │ ├── external │ │ │ ├── helmrelease.yaml │ │ │ └── kustomization.yaml │ │ │ ├── internal │ │ │ ├── diskstation.yaml │ │ │ ├── helmrelease.yaml │ │ │ ├── kustomization.yaml │ │ │ ├── plex.yaml │ │ │ └── proxmox.yaml │ │ │ └── ks.yaml │ ├── spark │ │ ├── aim │ │ │ ├── app │ │ │ │ ├── Dockerfile │ │ │ │ ├── Dockerfile_server │ │ │ │ ├── helmrelease.yaml │ │ │ │ ├── kustomization.yaml │ │ │ │ └── pvc.yaml │ │ │ └── ks.yaml │ │ ├── kustomization.yaml │ │ ├── mlflow │ │ │ ├── app │ │ │ │ ├── Dockerfile │ │ │ │ ├── helmrelease.yaml │ │ │ │ ├── kustomization.yaml │ │ │ │ └── pvc.yaml │ │ │ └── ks.yaml │ │ ├── namespace.yaml │ │ └── sparknova │ │ │ ├── app │ │ │ ├── configs │ │ │ │ ├── core-site-configmap.yaml │ │ │ │ └── hive-postgres-configmap.yaml │ │ │ ├── helmrelease.yaml │ │ │ ├── ingress.yaml │ │ │ ├── kustomization.yaml │ │ │ ├── kyuubi-configmap.yaml │ │ │ ├── rbac.yaml │ │ │ └── spark-configmap.yaml │ │ │ └── ks.yaml │ └── system-upgrade │ │ ├── kustomization.yaml │ │ ├── namespace.yaml │ │ └── system-upgrade-controller │ │ ├── app │ │ ├── helmrelease.yaml │ │ ├── kustomization.yaml │ │ └── rbac.yaml │ │ ├── ks.yaml │ │ └── plans │ │ ├── agent.yaml │ │ ├── kustomization.yaml │ │ └── server.yaml ├── bootstrap │ └── kustomization.yaml └── flux │ ├── apps.yaml │ ├── config │ ├── cluster.yaml │ ├── flux.yaml │ └── kustomization.yaml │ ├── repositories │ ├── git │ │ ├── kustomization.yaml │ │ └── local-path-provisioner.yaml │ ├── helm │ │ ├── actions-runner-controller-charts.yaml │ │ ├── appsmith.yaml │ │ ├── authelia.yaml │ │ ├── backube.yaml │ │ ├── bitnami.yaml │ │ ├── bjw-s.yaml │ │ ├── cilium.yaml │ │ ├── cloudnative-pg.yaml │ │ ├── coredns.yaml │ │ ├── couchdb.yaml │ │ ├── csi-driver-nfs.yaml │ │ ├── democratic-csi.yaml │ │ ├── external-dns.yaml │ │ ├── grafana.yaml │ │ ├── hajimari.yaml │ │ ├── headlamp.yaml │ │ ├── influxdata.yaml │ │ ├── ingress-nginx.yaml │ │ ├── intel.yaml │ │ ├── jetstack.yaml │ │ ├── jupyterhub.yaml │ │ ├── k8s-gateway.yaml │ │ ├── kubernetes-dashboard.yaml │ │ ├── kustomization.yaml │ │ ├── longhorn.yaml │ │ ├── metrics-server.yaml │ │ ├── node-feature-discovery.yaml │ │ ├── nvidia.yaml │ │ ├── parseable.yaml │ │ ├── piraeus.yaml │ │ ├── prometheus-community.yaml │ │ ├── runix.yaml │ │ ├── spark-operator.yaml │ │ ├── stakater.yaml │ │ ├── stevehipwell.yaml │ │ ├── superset.yaml │ │ ├── tooljet.yaml │ │ ├── tyzbit.yaml │ │ ├── vector.yaml │ │ └── weave-gitops.yaml │ ├── kustomization.yaml │ └── oci │ │ └── .gitkeep │ └── vars │ ├── cluster-secrets-user.sops.yaml │ ├── cluster-secrets.sops.yaml │ ├── cluster-settings-user.yaml │ ├── cluster-settings.yaml │ └── kustomization.yaml ├── requirements.txt ├── requirements.yaml └── utils ├── dnsutils.yaml ├── longhorn-uninstall.yaml └── template.sops.yaml /.editorconfig: -------------------------------------------------------------------------------- 1 | # editorconfig.org 2 | root = true 3 | 4 | [*] 5 | indent_style = space 6 | indent_size = 2 7 | end_of_line = lf 8 | charset = utf-8 9 | trim_trailing_whitespace = true 10 | insert_final_newline = true 11 | 12 | [Makefile] 13 | indent_style = space 14 | indent_size = 4 15 | 16 | [*.{bash,sh}] 17 | indent_style = space 18 | indent_size = 4 19 | -------------------------------------------------------------------------------- /.envrc: -------------------------------------------------------------------------------- 1 | #shellcheck disable=SC2148,SC2155 2 | export KUBECONFIG="$(expand_path ./kubeconfig)" 3 | export SOPS_AGE_KEY_FILE="$(expand_path ./age.key)" 4 | # ansible 5 | PATH_add "$(expand_path ./.venv/bin)" 6 | export VIRTUAL_ENV="$(expand_path ./.venv)" 7 | export ANSIBLE_COLLECTIONS_PATH=$(expand_path ./.venv/galaxy) 8 | export ANSIBLE_ROLES_PATH=$(expand_path ./.venv/galaxy/ansible_roles) 9 | export ANSIBLE_VARS_ENABLED="host_group_vars,community.sops.sops" 10 | export K8S_AUTH_KUBECONFIG="$(expand_path ./kubeconfig)" 11 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | * text=auto eol=lf 2 | *.yaml.j2 linguist-language=YAML 3 | *.sops.* diff=sopsdiffer 4 | *.sops.toml linguist-language=JSON 5 | -------------------------------------------------------------------------------- /.github/CODEOWNERS: -------------------------------------------------------------------------------- 1 | # Ref: https://docs.github.com/en/github/creating-cloning-and-archiving-repositories/about-code-owners 2 | * @clarknova99 3 | -------------------------------------------------------------------------------- /.github/labeler.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | area/ansible: 3 | - changed-files: 4 | - any-glob-to-any-file: ansible/**/* 5 | area/github: 6 | - changed-files: 7 | - any-glob-to-any-file: .github/**/* 8 | area/kubernetes: 9 | - changed-files: 10 | - any-glob-to-any-file: kubernetes/**/* 11 | -------------------------------------------------------------------------------- /.github/renovate-bot.json5: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://docs.renovatebot.com/renovate-schema.json", 3 | "username": "clarknova99-bot", 4 | "gitAuthor": "clarknova99-bot <8675309+clarknova99-bot@users.noreply.github.com>" 5 | } 6 | -------------------------------------------------------------------------------- /.github/renovate/commitMessage.json5: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://docs.renovatebot.com/renovate-schema.json", 3 | "commitMessageTopic": "{{depName}}", 4 | "commitMessageExtra": "to {{newVersion}}", 5 | "commitMessageSuffix": "", 6 | "packageRules": [ 7 | { 8 | "matchDatasources": ["helm"], 9 | "commitMessageTopic": "chart {{depName}}" 10 | }, 11 | { 12 | "matchDatasources": ["docker"], 13 | "commitMessageTopic": "image {{depName}}" 14 | } 15 | ] 16 | } 17 | -------------------------------------------------------------------------------- /.github/renovate/customDatasources.json5: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://docs.renovatebot.com/renovate-schema.json", 3 | "customDatasources": { 4 | "grafana-dashboards": { 5 | "defaultRegistryUrlTemplate": "https://grafana.com/api/dashboards/{{packageName}}", 6 | "format": "json", 7 | "transformTemplates": [ 8 | "{\"releases\":[{\"version\": $string(revision)}]}" 9 | ] 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /.github/renovate/groups.json5: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://docs.renovatebot.com/renovate-schema.json", 3 | "packageRules": [ 4 | { 5 | "description": "Flux Group", 6 | "groupName": "Flux", 7 | "matchPackagePatterns": ["flux"], 8 | "matchDatasources": ["docker", "github-tags"], 9 | "versioning": "semver", 10 | "group": { 11 | "commitMessageTopic": "{{{groupName}}} group" 12 | }, 13 | "separateMinorPatch": true 14 | } 15 | ] 16 | } 17 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Trash 2 | .DS_Store 3 | Thumbs.db 4 | # k8s 5 | kubeconfig 6 | .decrypted~*.yaml 7 | .config.env 8 | *.agekey 9 | *.pub 10 | *.key 11 | .pytest_cache 12 | # Ansible 13 | .venv* 14 | *.sql 15 | test 16 | -------------------------------------------------------------------------------- /.lycheeignore: -------------------------------------------------------------------------------- 1 | https://dash.cloudflare.com/profile/api-tokens 2 | https://www.mend.io/free-developer-tools/renovate/ 3 | -------------------------------------------------------------------------------- /.sops.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | creation_rules: 3 | - path_regex: kubernetes/.*\.sops\.ya?ml 4 | encrypted_regex: "^(data|stringData)$" 5 | key_groups: 6 | - age: 7 | - "age14q9x9ftcpqfw2kmhmlfzpx5g2wmn7tdnq34uhh4x0r2h6qfmm5dqk07z2e" 8 | - path_regex: ansible/.*\.sops\.ya?ml 9 | key_groups: 10 | - age: 11 | - "age14q9x9ftcpqfw2kmhmlfzpx5g2wmn7tdnq34uhh4x0r2h6qfmm5dqk07z2e" 12 | -------------------------------------------------------------------------------- /.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | "recommendations": [ 3 | "albert.TabOut", 4 | "britesnow.vscode-toggle-quotes", 5 | "fcrespo82.markdown-table-formatter", 6 | "mikestead.dotenv", 7 | "mitchdenny.ecdc", 8 | "redhat.ansible", 9 | "signageos.signageos-vscode-sops", 10 | "will-stone.in-any-case", 11 | "EditorConfig.editorconfig", 12 | "PKief.material-icon-theme", 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /_archive/appsmith/app/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1beta1.json 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | namespace: default 6 | resources: 7 | - ./helmrelease.yaml 8 | - ./ingress.yaml 9 | - ./pvc.yaml 10 | -------------------------------------------------------------------------------- /_archive/appsmith/ks.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: kustomize.toolkit.fluxcd.io/v1 3 | kind: Kustomization 4 | metadata: 5 | name: cluster-apps-appsmith 6 | namespace: flux-system 7 | spec: 8 | path: ./kubernetes/apps/default/appsmith/app 9 | prune: true 10 | sourceRef: 11 | kind: GitRepository 12 | name: home-kubernetes 13 | wait: false 14 | interval: 30m 15 | retryInterval: 1m 16 | timeout: 1m 17 | -------------------------------------------------------------------------------- /_archive/authelia/app/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: kustomize.config.k8s.io/v1beta1 3 | kind: Kustomization 4 | namespace: networking 5 | resources: 6 | - ./helmrelease.yaml 7 | - ./authelia.sops.yaml 8 | - ./pvc.yaml 9 | # - users.yaml 10 | - ./ingress.yaml 11 | configMapGenerator: 12 | - name: authelia-config-users 13 | files: 14 | - ./users-config.yaml 15 | generatorOptions: 16 | disableNameSuffixHash: true 17 | -------------------------------------------------------------------------------- /_archive/authelia/app/users-config.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | users: 3 | "${SECRET_AUTHELIA_DISPLAY_NAME}": 4 | displayname: "${SECRET_AUTHELIA_DISPLAY_NAME}" 5 | password: "${SECRET_AUTHELIA_PASSWORD}" 6 | email: ${SECRET_AUTHELIA_EMAIL} 7 | groups: 8 | - admins 9 | - dev 10 | -------------------------------------------------------------------------------- /_archive/authelia/app/users.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | kind: ConfigMap 3 | apiVersion: v1 4 | metadata: 5 | name: authelia-config-users 6 | namespace: networking 7 | data: 8 | users_database.yml: | 9 | --- 10 | users: 11 | ${SECRET_AUTHELIA_DISPLAY_NAME}: 12 | displayname: "${SECRET_AUTHELIA_DISPLAY_NAME}" 13 | password: "${SECRET_AUTHELIA_PASSWORD}" 14 | email: ${SECRET_AUTHELIA_EMAIL} 15 | groups: 16 | - admins 17 | - dev 18 | -------------------------------------------------------------------------------- /_archive/authelia/ks.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: kustomize.toolkit.fluxcd.io/v1 3 | kind: Kustomization 4 | metadata: 5 | name: cluster-apps-authelia 6 | namespace: flux-system 7 | spec: 8 | path: ./kubernetes/apps/networking/authelia/app 9 | prune: true 10 | sourceRef: 11 | kind: GitRepository 12 | name: home-kubernetes 13 | wait: false 14 | interval: 30m 15 | retryInterval: 1m 16 | timeout: 5m 17 | -------------------------------------------------------------------------------- /_archive/baserow/app/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1beta1.json 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | namespace: default 6 | resources: 7 | - ./helmrelease.yaml 8 | 9 | -------------------------------------------------------------------------------- /_archive/baserow/ks.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: kustomize.toolkit.fluxcd.io/v1 3 | kind: Kustomization 4 | metadata: 5 | name: cluster-apps-baserow 6 | namespace: flux-system 7 | spec: 8 | path: ./kubernetes/apps/default/baserow/app 9 | prune: true 10 | sourceRef: 11 | kind: GitRepository 12 | name: home-kubernetes 13 | wait: false 14 | interval: 30m 15 | retryInterval: 1m 16 | timeout: 1m 17 | -------------------------------------------------------------------------------- /_archive/bazarr/app/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1beta1.json 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | namespace: media 6 | resources: 7 | - ./helmrelease.yaml 8 | # - ./ingress.yaml 9 | # - ./pvc.yaml 10 | -------------------------------------------------------------------------------- /_archive/bazarr/ks.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1.json 3 | apiVersion: kustomize.toolkit.fluxcd.io/v1 4 | kind: Kustomization 5 | metadata: 6 | name: cluster-apps-bazarr 7 | namespace: flux-system 8 | spec: 9 | path: ./kubernetes/apps/media/bazarr/app 10 | prune: true 11 | sourceRef: 12 | kind: GitRepository 13 | name: home-kubernetes 14 | wait: false 15 | interval: 30m 16 | retryInterval: 1m 17 | timeout: 5m 18 | -------------------------------------------------------------------------------- /_archive/budibase/app/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: kustomize.config.k8s.io/v1beta1 3 | kind: Kustomization 4 | namespace: default 5 | resources: 6 | - ./helmrelease.yaml 7 | - ./pvc.yaml 8 | -------------------------------------------------------------------------------- /_archive/budibase/ks.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: kustomize.toolkit.fluxcd.io/v1 3 | kind: Kustomization 4 | metadata: 5 | name: cluster-apps-budibase 6 | namespace: flux-system 7 | spec: 8 | path: ./kubernetes/apps/default/budibase/app 9 | prune: true 10 | sourceRef: 11 | kind: GitRepository 12 | name: home-kubernetes 13 | wait: false 14 | interval: 30m 15 | retryInterval: 1m 16 | timeout: 1m 17 | -------------------------------------------------------------------------------- /_archive/crew/app/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1beta1.json 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | namespace: default 6 | resources: 7 | - ./helmrelease.yaml 8 | -------------------------------------------------------------------------------- /_archive/crew/ks.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1.json 3 | apiVersion: kustomize.toolkit.fluxcd.io/v1 4 | kind: Kustomization 5 | metadata: 6 | name: crew 7 | namespace: flux-system 8 | spec: 9 | path: ./kubernetes/apps/default/crew/app 10 | prune: true 11 | sourceRef: 12 | kind: GitRepository 13 | name: home-kubernetes 14 | wait: false 15 | interval: 30m 16 | retryInterval: 1m 17 | timeout: 1m 18 | -------------------------------------------------------------------------------- /_archive/dataherald/app/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1beta1.json 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | namespace: default 6 | resources: 7 | - ./helmrelease.yaml 8 | -------------------------------------------------------------------------------- /_archive/dataherald/ks.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1.json 3 | apiVersion: kustomize.toolkit.fluxcd.io/v1 4 | kind: Kustomization 5 | metadata: 6 | name: cluster-apps-dataherald 7 | namespace: flux-system 8 | spec: 9 | path: ./kubernetes/apps/default/dataherald/app 10 | prune: true 11 | sourceRef: 12 | kind: GitRepository 13 | name: home-kubernetes 14 | wait: false 15 | interval: 30m 16 | retryInterval: 1m 17 | timeout: 1m 18 | -------------------------------------------------------------------------------- /_archive/delphi/app/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1beta1.json 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | namespace: default 6 | resources: 7 | - ./helmrelease.yaml 8 | -------------------------------------------------------------------------------- /_archive/delphi/ks.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1.json 3 | apiVersion: kustomize.toolkit.fluxcd.io/v1 4 | kind: Kustomization 5 | metadata: 6 | name: cluster-apps-delphi 7 | namespace: flux-system 8 | spec: 9 | path: ./kubernetes/apps/default/delphi/app 10 | prune: true 11 | sourceRef: 12 | kind: GitRepository 13 | name: home-kubernetes 14 | wait: false 15 | interval: 30m 16 | retryInterval: 1m 17 | timeout: 1m 18 | -------------------------------------------------------------------------------- /_archive/firefly/app/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1beta1.json 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | namespace: default 6 | resources: 7 | - ./pvc.yaml 8 | - ./helmrelease.yaml 9 | -------------------------------------------------------------------------------- /_archive/firefly/ks.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1.json 3 | apiVersion: kustomize.toolkit.fluxcd.io/v1 4 | kind: Kustomization 5 | metadata: 6 | name: &app cluster-apps-firefly 7 | namespace: flux-system 8 | spec: 9 | targetNamespace: default 10 | path: ./kubernetes/apps/default/firefly/app 11 | prune: true 12 | sourceRef: 13 | kind: GitRepository 14 | name: home-kubernetes 15 | wait: false 16 | interval: 30m 17 | retryInterval: 1m 18 | timeout: 1m 19 | -------------------------------------------------------------------------------- /_archive/headlamp/app/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1beta1.json 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | namespace: monitoring 6 | resources: 7 | - ./rbac.yaml 8 | - ./helmrelease.yaml 9 | -------------------------------------------------------------------------------- /_archive/home-assistant/app/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1beta1.json 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | namespace: default 6 | resources: 7 | - ./helmrelease.yaml 8 | # - ./ingress.yaml 9 | # - ./pvc.yaml 10 | -------------------------------------------------------------------------------- /_archive/home-assistant/ks.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1.json 3 | apiVersion: kustomize.toolkit.fluxcd.io/v1 4 | kind: Kustomization 5 | metadata: 6 | name: cluster-apps-home-assistant 7 | namespace: flux-system 8 | spec: 9 | path: ./kubernetes/apps/default/home-assistant/app 10 | prune: true 11 | sourceRef: 12 | kind: GitRepository 13 | name: home-kubernetes 14 | wait: false 15 | interval: 30m 16 | retryInterval: 1m 17 | timeout: 1m 18 | -------------------------------------------------------------------------------- /_archive/hydra/app/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1beta1.json 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | namespace: media 6 | resources: 7 | - ./helmrelease.yaml 8 | # - ./ingress.yaml 9 | # - ./pvc.yaml 10 | -------------------------------------------------------------------------------- /_archive/hydra/ks.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1.json 3 | apiVersion: kustomize.toolkit.fluxcd.io/v1 4 | kind: Kustomization 5 | metadata: 6 | name: cluster-apps-hydra 7 | namespace: flux-system 8 | spec: 9 | path: ./kubernetes/apps/media/hydra/app 10 | prune: true 11 | sourceRef: 12 | kind: GitRepository 13 | name: home-kubernetes 14 | wait: false 15 | interval: 30m 16 | retryInterval: 1m 17 | timeout: 5m 18 | -------------------------------------------------------------------------------- /_archive/invidious/app/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://json.schemastore.org/kustomization 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | namespace: media 6 | resources: 7 | - ./inv.sops.yaml 8 | - ./helmrelease.yaml 9 | 10 | -------------------------------------------------------------------------------- /_archive/invidious/ks.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1.json 3 | apiVersion: kustomize.toolkit.fluxcd.io/v1 4 | kind: Kustomization 5 | metadata: 6 | name: cluster-apps-invidious 7 | namespace: flux-system 8 | spec: 9 | targetNamespace: media 10 | path: ./kubernetes/apps/media/invidious/app 11 | prune: true 12 | sourceRef: 13 | kind: GitRepository 14 | name: home-kubernetes 15 | wait: false 16 | interval: 30m 17 | retryInterval: 1m 18 | timeout: 5m 19 | -------------------------------------------------------------------------------- /_archive/jupyterhub/app/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1beta1.json 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | namespace: default 6 | resources: 7 | - ./helmrelease.yaml 8 | #- ./pvc.yaml 9 | -------------------------------------------------------------------------------- /_archive/jupyterhub/ks.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1.json 3 | apiVersion: kustomize.toolkit.fluxcd.io/v1 4 | kind: Kustomization 5 | metadata: 6 | name: cluster-apps-jupyterhub 7 | namespace: flux-system 8 | spec: 9 | path: ./kubernetes/apps/default/jupyterhub/app 10 | prune: true 11 | sourceRef: 12 | kind: GitRepository 13 | name: home-kubernetes 14 | wait: false 15 | interval: 30m 16 | retryInterval: 1m 17 | timeout: 1m 18 | -------------------------------------------------------------------------------- /_archive/komodor/app/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: kustomize.config.k8s.io/v1beta1 3 | kind: Kustomization 4 | namespace: monitoring 5 | resources: 6 | - ./helmrelease.yaml 7 | -------------------------------------------------------------------------------- /_archive/komodor/ks.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: kustomize.toolkit.fluxcd.io/v1 3 | kind: Kustomization 4 | metadata: 5 | name: cluster-apps-komodor 6 | namespace: flux-system 7 | spec: 8 | path: ./kubernetes/apps/monitoring/komodor/app 9 | prune: true 10 | sourceRef: 11 | kind: GitRepository 12 | name: home-kubernetes 13 | wait: false 14 | interval: 30m 15 | retryInterval: 1m 16 | timeout: 5m 17 | -------------------------------------------------------------------------------- /_archive/kube-ops-view/app/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1beta1.json 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | namespace: monitoring 6 | resources: 7 | - ./rbac.yaml 8 | - ./helmrelease.yaml 9 | -------------------------------------------------------------------------------- /_archive/kube-ops-view/ks.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1.json 3 | apiVersion: kustomize.toolkit.fluxcd.io/v1 4 | kind: Kustomization 5 | metadata: 6 | name: cluster-apps-kube-ops-view 7 | namespace: flux-system 8 | spec: 9 | path: ./kubernetes/apps/monitoring/kube-ops-view/app 10 | prune: true 11 | sourceRef: 12 | kind: GitRepository 13 | name: home-kubernetes 14 | wait: false 15 | interval: 30m 16 | retryInterval: 1m 17 | timeout: 5m 18 | -------------------------------------------------------------------------------- /_archive/kubernetes-schemas/app/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://json.schemastore.org/kustomization 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | namespace: default 6 | resources: 7 | - ./helmrelease.yaml 8 | 9 | -------------------------------------------------------------------------------- /_archive/kubernetes-schemas/ks.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1.json 3 | apiVersion: kustomize.toolkit.fluxcd.io/v1 4 | kind: Kustomization 5 | metadata: 6 | name: cluster-apps-kubernetes-schemas 7 | namespace: flux-system 8 | spec: 9 | path: ./kubernetes/apps/default/kubernetes-schemas/app 10 | prune: true 11 | sourceRef: 12 | kind: GitRepository 13 | name: home-kubernetes 14 | wait: false 15 | interval: 30m 16 | retryInterval: 1m 17 | timeout: 5m 18 | -------------------------------------------------------------------------------- /_archive/lightdash/app/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1beta1.json 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | namespace: default 6 | resources: 7 | - ./helmrelease.yaml 8 | -------------------------------------------------------------------------------- /_archive/lightdash/ks.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1.json 3 | apiVersion: kustomize.toolkit.fluxcd.io/v1 4 | kind: Kustomization 5 | metadata: 6 | name: cluster-apps-lightdash 7 | namespace: flux-system 8 | spec: 9 | path: ./kubernetes/apps/default/lightdash/app 10 | prune: true 11 | sourceRef: 12 | kind: GitRepository 13 | name: home-kubernetes 14 | wait: false 15 | interval: 30m 16 | retryInterval: 1m 17 | timeout: 1m 18 | -------------------------------------------------------------------------------- /_archive/litellm/app/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1beta1.json 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | namespace: default 6 | resources: 7 | - lightllm.sops.yaml 8 | - helmrelease.yaml 9 | -------------------------------------------------------------------------------- /_archive/litellm/ks.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1.json 3 | apiVersion: kustomize.toolkit.fluxcd.io/v1 4 | kind: Kustomization 5 | metadata: 6 | name: &appname lightllm 7 | namespace: flux-system 8 | spec: 9 | targetNamespace: default 10 | commonMetadata: 11 | labels: 12 | app.kubernetes.io/name: *appname 13 | interval: 10m 14 | path: "./kubernetes/apps/default/litellm/app" 15 | prune: true 16 | sourceRef: 17 | kind: GitRepository 18 | name: home-kubernetes 19 | wait: false 20 | -------------------------------------------------------------------------------- /_archive/loki-stack/app/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: kustomize.config.k8s.io/v1beta1 3 | kind: Kustomization 4 | namespace: monitoring 5 | resources: 6 | - ./helmrelease.yaml 7 | - ./pvc.yaml 8 | -------------------------------------------------------------------------------- /_archive/loki-stack/ks.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: kustomize.toolkit.fluxcd.io/v1 3 | kind: Kustomization 4 | metadata: 5 | name: cluster-apps-loki-stack 6 | namespace: flux-system 7 | spec: 8 | path: ./kubernetes/apps/monitoring/loki-stack/app 9 | prune: true 10 | sourceRef: 11 | kind: GitRepository 12 | name: home-kubernetes 13 | wait: false 14 | interval: 30m 15 | retryInterval: 1m 16 | timeout: 5m 17 | -------------------------------------------------------------------------------- /_archive/ollama/backend/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1beta1.json 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | namespace: default 6 | resources: 7 | - helmrelease.yaml 8 | #- pvc.yaml 9 | -------------------------------------------------------------------------------- /_archive/ollama/ui/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1beta1.json 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | namespace: default 6 | resources: 7 | - helmrelease.yaml 8 | -------------------------------------------------------------------------------- /_archive/parseable/app/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1beta1.json 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | namespace: monitoring 6 | resources: 7 | - ./helmrelease.yaml 8 | - ./ingress.yaml 9 | - ./parseable.sops.yaml 10 | -------------------------------------------------------------------------------- /_archive/parseable/ks.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1.json 3 | apiVersion: kustomize.toolkit.fluxcd.io/v1 4 | kind: Kustomization 5 | metadata: 6 | name: cluster-apps-parseable 7 | namespace: flux-system 8 | spec: 9 | path: ./kubernetes/apps/monitoring/parseable/app 10 | prune: true 11 | sourceRef: 12 | kind: GitRepository 13 | name: home-kubernetes 14 | wait: false 15 | interval: 30m 16 | retryInterval: 1m 17 | timeout: 1m 18 | -------------------------------------------------------------------------------- /_archive/plex/app/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1beta1.json 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | namespace: media 6 | resources: 7 | - ./helmrelease.yaml 8 | - ./pvc-plex.yaml 9 | -------------------------------------------------------------------------------- /_archive/plex/ks.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1.json 3 | apiVersion: kustomize.toolkit.fluxcd.io/v1 4 | kind: Kustomization 5 | metadata: 6 | name: cluster-apps-plex 7 | namespace: flux-system 8 | spec: 9 | path: ./kubernetes/apps/media/plex/app 10 | prune: true 11 | sourceRef: 12 | kind: GitRepository 13 | name: home-kubernetes 14 | wait: false 15 | interval: 30m 16 | retryInterval: 1m 17 | timeout: 5m 18 | -------------------------------------------------------------------------------- /_archive/porla/app/configs/config.toml: -------------------------------------------------------------------------------- 1 | listen_interfaces = [ 2 | ["0.0.0.0", 13370], 3 | 4 | ] 5 | [plugins] 6 | allow_git = true 7 | 8 | [presets.default] 9 | category = "default" 10 | download_limit = -1 11 | upload_limit = -1 12 | max_connections = 100 13 | max_uploads = 25 14 | save_path = "/downloads" 15 | storage_mode = "allocate" 16 | -------------------------------------------------------------------------------- /_archive/porla/app/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: kustomize.config.k8s.io/v1beta1 3 | kind: Kustomization 4 | namespace: media 5 | resources: 6 | - ./helmrelease.yaml 7 | - ./ingress.yaml 8 | - ./pvc.yaml 9 | configMapGenerator: 10 | - name: porla-configmap 11 | files: 12 | - config.toml=./configs/config.toml 13 | generatorOptions: 14 | disableNameSuffixHash: true 15 | -------------------------------------------------------------------------------- /_archive/porla/ks.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: kustomize.toolkit.fluxcd.io/v1 3 | kind: Kustomization 4 | metadata: 5 | name: cluster-apps-porla 6 | namespace: flux-system 7 | spec: 8 | path: ./kubernetes/apps/media/porla/app 9 | prune: true 10 | sourceRef: 11 | kind: GitRepository 12 | name: home-kubernetes 13 | wait: false 14 | interval: 30m 15 | retryInterval: 1m 16 | timeout: 5m 17 | -------------------------------------------------------------------------------- /_archive/postgresql/app/ingress.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: networking.k8s.io/v1 3 | kind: Ingress 4 | metadata: 5 | name: postgresql 6 | namespace: database 7 | annotations: 8 | hajimari.io/enable: "true" 9 | spec: 10 | ingressClassName: internal 11 | rules: 12 | - host: "postgresql.${SECRET_DOMAIN}" 13 | http: 14 | paths: 15 | - path: / 16 | pathType: Prefix 17 | backend: 18 | service: 19 | name: postgresql 20 | port: 21 | number: 5342 22 | tls: 23 | - hosts: 24 | - "postgresql.${SECRET_DOMAIN}" 25 | 26 | -------------------------------------------------------------------------------- /_archive/postgresql/app/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: kustomize.config.k8s.io/v1beta1 3 | kind: Kustomization 4 | namespace: database 5 | resources: 6 | - ./pvc.yaml 7 | - ./pvc-postgres-backup.yaml 8 | - ./backup-configmap.yaml 9 | - ./backup-cronjob.yaml 10 | - ./helmrelease.yaml 11 | - ./ingress.yaml 12 | -------------------------------------------------------------------------------- /_archive/postgresql16/app/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: kustomize.config.k8s.io/v1beta1 3 | kind: Kustomization 4 | namespace: database 5 | resources: 6 | - ./pvc.yaml 7 | - ./helmrelease.yaml 8 | -------------------------------------------------------------------------------- /_archive/postgresql16/ks.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: kustomize.toolkit.fluxcd.io/v1 3 | kind: Kustomization 4 | metadata: 5 | name: cluster-apps-postgresql16 6 | namespace: flux-system 7 | spec: 8 | path: ./kubernetes/apps/database/postgresql16/app 9 | prune: true 10 | sourceRef: 11 | kind: GitRepository 12 | name: home-kubernetes 13 | wait: false 14 | interval: 30m 15 | retryInterval: 1m 16 | timeout: 1m 17 | -------------------------------------------------------------------------------- /_archive/promlens/app/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: kustomize.config.k8s.io/v1beta1 3 | kind: Kustomization 4 | namespace: monitoring 5 | resources: 6 | - ./helmrelease.yaml 7 | - ./ingress.yaml 8 | -------------------------------------------------------------------------------- /_archive/promlens/ks.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: kustomize.toolkit.fluxcd.io/v1 3 | kind: Kustomization 4 | metadata: 5 | name: cluster-apps-promlens 6 | namespace: flux-system 7 | spec: 8 | path: ./kubernetes/apps/monitoring/promlens/app 9 | prune: true 10 | sourceRef: 11 | kind: GitRepository 12 | name: home-kubernetes 13 | wait: false 14 | interval: 30m 15 | retryInterval: 1m 16 | timeout: 5m 17 | -------------------------------------------------------------------------------- /_archive/promtail/app/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: kustomize.config.k8s.io/v1beta1 3 | kind: Kustomization 4 | namespace: monitoring 5 | resources: 6 | - ./helmrelease.yaml 7 | 8 | -------------------------------------------------------------------------------- /_archive/promtail/ks.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: kustomize.toolkit.fluxcd.io/v1 3 | kind: Kustomization 4 | metadata: 5 | name: cluster-apps-promtail 6 | namespace: flux-system 7 | spec: 8 | path: ./kubernetes/apps/monitoring/promtail/app 9 | prune: true 10 | sourceRef: 11 | kind: GitRepository 12 | name: home-kubernetes 13 | wait: false 14 | interval: 30m 15 | retryInterval: 1m 16 | timeout: 5m 17 | -------------------------------------------------------------------------------- /_archive/prowlarr/app/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1beta1.json 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | namespace: media 6 | resources: 7 | - ./helmrelease.yaml 8 | - ./prowlarr.sops.yaml 9 | # - ./ingress.yaml 10 | # - ./pvc.yaml 11 | -------------------------------------------------------------------------------- /_archive/prowlarr/tools/flaresolverr/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1beta1.json 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | namespace: media 6 | resources: 7 | - ./helmrelease.yaml 8 | -------------------------------------------------------------------------------- /_archive/prowlarr/tools/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1beta1.json 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | namespace: media 6 | resources: 7 | - ./flaresolverr 8 | -------------------------------------------------------------------------------- /_archive/qbittorrent/app/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1beta1.json 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | namespace: media 6 | resources: 7 | - ./helmrelease.yaml 8 | #- ./ingress.yaml 9 | #- ./pvc.yaml 10 | -------------------------------------------------------------------------------- /_archive/radarr/app/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1beta1.json 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | namespace: media 6 | resources: 7 | - ./helmrelease.yaml 8 | - ./radarr.sops.yaml 9 | # - ./ingress.yaml 10 | # - ./pvc.yaml 11 | -------------------------------------------------------------------------------- /_archive/radarr/ks.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1.json 3 | apiVersion: kustomize.toolkit.fluxcd.io/v1 4 | kind: Kustomization 5 | metadata: 6 | name: cluster-apps-radarr 7 | namespace: flux-system 8 | spec: 9 | path: ./kubernetes/apps/media/radarr/app 10 | prune: true 11 | sourceRef: 12 | kind: GitRepository 13 | name: home-kubernetes 14 | wait: false 15 | interval: 30m 16 | retryInterval: 1m 17 | timeout: 5m 18 | -------------------------------------------------------------------------------- /_archive/redisinsight/app/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1beta1.json 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | namespace: database 6 | resources: 7 | - ./helmrelease.yaml 8 | - ./ingress.yaml 9 | -------------------------------------------------------------------------------- /_archive/redisinsight/ks.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1.json 3 | apiVersion: kustomize.toolkit.fluxcd.io/v1 4 | kind: Kustomization 5 | metadata: 6 | name: cluster-apps-redisinsight 7 | namespace: flux-system 8 | spec: 9 | dependsOn: 10 | - name: cluster-apps-redis 11 | path: ./kubernetes/apps/database/redisinsight/app 12 | prune: true 13 | sourceRef: 14 | kind: GitRepository 15 | name: home-kubernetes 16 | wait: false 17 | interval: 30m 18 | retryInterval: 1m 19 | timeout: 1m 20 | -------------------------------------------------------------------------------- /_archive/rook-ceph/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://json.schemastore.org/kustomization 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | resources: 6 | - ./namespace.yaml 7 | #- ./rook-ceph/ks.yaml 8 | -------------------------------------------------------------------------------- /_archive/rook-ceph/namespace.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: v1 3 | kind: Namespace 4 | metadata: 5 | name: rook-ceph 6 | labels: 7 | kustomize.toolkit.fluxcd.io/prune: disabled 8 | -------------------------------------------------------------------------------- /_archive/rook-ceph/rook-ceph/app/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://json.schemastore.org/kustomization 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | namespace: rook-ceph 6 | resources: 7 | - ./helmrelease.yaml 8 | -------------------------------------------------------------------------------- /_archive/rook-ceph/rook-ceph/cluster/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://json.schemastore.org/kustomization 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | namespace: rook-ceph 6 | resources: 7 | - ./helmrelease.yaml 8 | -------------------------------------------------------------------------------- /_archive/sabnzbd/app/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1beta1.json 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | namespace: media 6 | resources: 7 | # - ./pvc.yaml 8 | # - ./pvc-downloads.yaml 9 | # - ./pvc-movies.yaml 10 | # - ./pvc-tv.yaml 11 | - ./helmrelease.yaml 12 | - ./ingress.yaml 13 | -------------------------------------------------------------------------------- /_archive/sabnzbd/ks.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1.json 3 | apiVersion: kustomize.toolkit.fluxcd.io/v1 4 | kind: Kustomization 5 | metadata: 6 | name: cluster-apps-sabnzbd 7 | namespace: flux-system 8 | spec: 9 | path: ./kubernetes/apps/media/sabnzbd/app 10 | prune: true 11 | sourceRef: 12 | kind: GitRepository 13 | name: home-kubernetes 14 | wait: false 15 | interval: 30m 16 | retryInterval: 1m 17 | timeout: 5m 18 | -------------------------------------------------------------------------------- /_archive/scrypted/app/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1beta1.json 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | namespace: default 6 | resources: 7 | - ./helmrelease.yaml 8 | - ./pvc.yaml 9 | 10 | -------------------------------------------------------------------------------- /_archive/scrypted/ks.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: kustomize.toolkit.fluxcd.io/v1 3 | kind: Kustomization 4 | metadata: 5 | name: cluster-apps-scrypted 6 | namespace: flux-system 7 | spec: 8 | path: ./kubernetes/apps/default/scrypted/app 9 | prune: true 10 | sourceRef: 11 | kind: GitRepository 12 | name: home-kubernetes 13 | wait: false 14 | interval: 30m 15 | retryInterval: 1m 16 | timeout: 5m 17 | -------------------------------------------------------------------------------- /_archive/sensei/app/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1beta1.json 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | namespace: default 6 | resources: 7 | - ./sensei.sops.yaml 8 | - ./helmrelease.yaml 9 | -------------------------------------------------------------------------------- /_archive/sensei/ks.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1.json 3 | apiVersion: kustomize.toolkit.fluxcd.io/v1 4 | kind: Kustomization 5 | metadata: 6 | name: sensei 7 | namespace: flux-system 8 | spec: 9 | path: ./kubernetes/apps/default/sensei/app 10 | prune: true 11 | sourceRef: 12 | kind: GitRepository 13 | name: home-kubernetes 14 | wait: false 15 | interval: 30m 16 | retryInterval: 1m 17 | timeout: 1m 18 | -------------------------------------------------------------------------------- /_archive/skooner/app/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1beta1.json 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | namespace: monitoring 6 | resources: 7 | - ./rbac.yaml 8 | - ./helmrelease.yaml 9 | -------------------------------------------------------------------------------- /_archive/skooner/ks.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1.json 3 | apiVersion: kustomize.toolkit.fluxcd.io/v1 4 | kind: Kustomization 5 | metadata: 6 | name: cluster-apps-skooner 7 | namespace: flux-system 8 | spec: 9 | path: ./kubernetes/apps/monitoring/skooner/app 10 | prune: true 11 | sourceRef: 12 | kind: GitRepository 13 | name: home-kubernetes 14 | wait: false 15 | interval: 30m 16 | retryInterval: 1m 17 | timeout: 5m 18 | -------------------------------------------------------------------------------- /_archive/snapshot-controller/app/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://json.schemastore.org/kustomization 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | resources: 6 | - ./helmrelease.yaml 7 | -------------------------------------------------------------------------------- /_archive/snapshot-controller/ks.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: kustomize.toolkit.fluxcd.io/v1 3 | kind: Kustomization 4 | metadata: 5 | name: cluster-apps-snapshot-controller 6 | namespace: flux-system 7 | spec: 8 | path: ./kubernetes/apps/kube-system/snapshot-controller/app 9 | prune: true 10 | sourceRef: 11 | kind: GitRepository 12 | name: home-kubernetes 13 | wait: false 14 | interval: 30m 15 | retryInterval: 1m 16 | timeout: 5m 17 | -------------------------------------------------------------------------------- /_archive/solr/app/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1beta1.json 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | namespace: default 6 | resources: 7 | - ./helmrelease.yaml 8 | -------------------------------------------------------------------------------- /_archive/solr/ks.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1.json 3 | apiVersion: kustomize.toolkit.fluxcd.io/v1 4 | kind: Kustomization 5 | metadata: 6 | name: cluster-apps-solr 7 | namespace: flux-system 8 | spec: 9 | path: ./kubernetes/apps/default/solr/app 10 | prune: true 11 | sourceRef: 12 | kind: GitRepository 13 | name: home-kubernetes 14 | wait: false 15 | interval: 30m 16 | retryInterval: 1m 17 | timeout: 1m 18 | -------------------------------------------------------------------------------- /_archive/sonarr/app/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1beta1.json 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | namespace: media 6 | resources: 7 | - ./helmrelease.yaml 8 | - ./sonarr.sops.yaml 9 | # - ./ingress.yaml 10 | # - ./pvc.yaml 11 | -------------------------------------------------------------------------------- /_archive/sonarr/ks.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1.json 3 | apiVersion: kustomize.toolkit.fluxcd.io/v1 4 | kind: Kustomization 5 | metadata: 6 | name: cluster-apps-sonarr 7 | namespace: flux-system 8 | spec: 9 | path: ./kubernetes/apps/media/sonarr/app 10 | prune: true 11 | sourceRef: 12 | kind: GitRepository 13 | name: home-kubernetes 14 | wait: false 15 | interval: 30m 16 | retryInterval: 1m 17 | timeout: 5m 18 | -------------------------------------------------------------------------------- /_archive/spark/spark-operator/app/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1beta1.json 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | namespace: default 6 | resources: 7 | - ./helmrelease.yaml 8 | - ./pi-configmap.yaml 9 | #- ./spark-py.yaml 10 | - ./rbac.yaml 11 | 12 | 13 | -------------------------------------------------------------------------------- /_archive/spark/spark-operator/app/rbac.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: v1 3 | kind: ServiceAccount 4 | metadata: 5 | name: spark 6 | namespace: default 7 | --- 8 | apiVersion: rbac.authorization.k8s.io/v1 9 | kind: ClusterRoleBinding 10 | metadata: 11 | name: spark-role 12 | roleRef: 13 | apiGroup: rbac.authorization.k8s.io 14 | kind: ClusterRole 15 | name: edit 16 | subjects: 17 | - kind: ServiceAccount 18 | name: spark 19 | namespace: default 20 | -------------------------------------------------------------------------------- /_archive/spark/spark-operator/ks.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1.json 3 | apiVersion: kustomize.toolkit.fluxcd.io/v1 4 | kind: Kustomization 5 | metadata: 6 | name: cluster-apps-spark-operator 7 | namespace: flux-system 8 | spec: 9 | path: ./kubernetes/apps/default/spark-operator 10 | prune: true 11 | sourceRef: 12 | kind: GitRepository 13 | name: home-kubernetes 14 | wait: false 15 | interval: 30m 16 | retryInterval: 1m 17 | timeout: 5m 18 | -------------------------------------------------------------------------------- /_archive/spark/spark/app/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1beta1.json 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | namespace: default 6 | resources: 7 | - ./helmrelease.yaml 8 | - ./delta-configmap.yaml 9 | - ./ingress.yaml 10 | 11 | -------------------------------------------------------------------------------- /_archive/spark/spark/ks.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1.json 3 | apiVersion: kustomize.toolkit.fluxcd.io/v1 4 | kind: Kustomization 5 | metadata: 6 | name: cluster-apps-spark 7 | namespace: flux-system 8 | spec: 9 | path: ./kubernetes/apps/default/spark/app 10 | prune: true 11 | sourceRef: 12 | kind: GitRepository 13 | name: home-kubernetes 14 | wait: false 15 | interval: 30m 16 | retryInterval: 1m 17 | timeout: 1m 18 | -------------------------------------------------------------------------------- /_archive/spark/stackable/app/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1beta1.json 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | namespace: default 6 | resources: 7 | - ./helmrelease.yaml 8 | - ./pi-configmap.yaml 9 | - ./spark-py.yaml 10 | -------------------------------------------------------------------------------- /_archive/spark/stackable/ks.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1.json 3 | apiVersion: kustomize.toolkit.fluxcd.io/v1 4 | kind: Kustomization 5 | metadata: 6 | name: cluster-apps-stackable 7 | namespace: flux-system 8 | spec: 9 | path: ./kubernetes/apps/default/stackable 10 | prune: true 11 | sourceRef: 12 | kind: GitRepository 13 | name: home-kubernetes 14 | wait: false 15 | interval: 30m 16 | retryInterval: 1m 17 | timeout: 5m 18 | -------------------------------------------------------------------------------- /_archive/streamlit/app/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1beta1.json 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | namespace: default 6 | resources: 7 | - ./helmrelease.yaml 8 | -------------------------------------------------------------------------------- /_archive/streamlit/ks.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1.json 3 | apiVersion: kustomize.toolkit.fluxcd.io/v1 4 | kind: Kustomization 5 | metadata: 6 | name: cluster-apps-streamlit 7 | namespace: flux-system 8 | spec: 9 | path: ./kubernetes/apps/default/streamlit/app 10 | prune: true 11 | sourceRef: 12 | kind: GitRepository 13 | name: home-kubernetes 14 | wait: false 15 | interval: 30m 16 | retryInterval: 1m 17 | timeout: 1m 18 | -------------------------------------------------------------------------------- /_archive/superset/app/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: kustomize.config.k8s.io/v1beta1 3 | kind: Kustomization 4 | namespace: default 5 | resources: 6 | - ./helmrelease.yaml 7 | - ./ingress.yaml 8 | - ./pvc.yaml 9 | -------------------------------------------------------------------------------- /_archive/superset/ks.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: kustomize.toolkit.fluxcd.io/v1 3 | kind: Kustomization 4 | metadata: 5 | name: cluster-apps-superset 6 | namespace: flux-system 7 | spec: 8 | path: ./kubernetes/apps/default/superset/app 9 | prune: true 10 | sourceRef: 11 | kind: GitRepository 12 | name: home-kubernetes 13 | wait: false 14 | interval: 30m 15 | retryInterval: 1m 16 | timeout: 1m 17 | -------------------------------------------------------------------------------- /_archive/tautulli/app/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://json.schemastore.org/kustomization 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | namespace: media 6 | resources: 7 | - ./helmrelease.yaml 8 | 9 | -------------------------------------------------------------------------------- /_archive/tautulli/ks.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1.json 3 | apiVersion: kustomize.toolkit.fluxcd.io/v1 4 | kind: Kustomization 5 | metadata: 6 | name: cluster-apps-tautulli 7 | namespace: flux-system 8 | spec: 9 | path: ./kubernetes/apps/media/tautulli/app 10 | prune: true 11 | sourceRef: 12 | kind: GitRepository 13 | name: home-kubernetes 14 | wait: false 15 | interval: 30m 16 | retryInterval: 1m 17 | timeout: 5m 18 | -------------------------------------------------------------------------------- /_archive/thanos/app/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://json.schemastore.org/kustomization 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | resources: 6 | - ./helmrelease.yaml 7 | - ./thanos.sops.yaml 8 | configMapGenerator: 9 | - name: thanos-cache-configmap 10 | files: 11 | - cache.yaml=./resources/cache.yaml 12 | generatorOptions: 13 | disableNameSuffixHash: true 14 | -------------------------------------------------------------------------------- /_archive/thanos/app/resources/cache.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | type: REDIS 3 | config: 4 | addr: dragonfly.database.svc.cluster.local:6379 5 | db: 1 6 | -------------------------------------------------------------------------------- /_archive/thanos_bitnami/app/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1beta1.json 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | namespace: monitoring 6 | resources: 7 | - ./helmrelease.yaml 8 | - ./thanos.sops.yaml 9 | -------------------------------------------------------------------------------- /_archive/thanos_bitnami/ks.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1.json 3 | apiVersion: kustomize.toolkit.fluxcd.io/v1 4 | kind: Kustomization 5 | metadata: 6 | name: cluster-apps-thanos 7 | namespace: flux-system 8 | spec: 9 | path: ./kubernetes/apps/monitoring/thanos/app 10 | prune: true 11 | sourceRef: 12 | kind: GitRepository 13 | name: home-kubernetes 14 | wait: false 15 | interval: 30m 16 | retryInterval: 1m 17 | timeout: 15m 18 | -------------------------------------------------------------------------------- /_archive/tooljet/app/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: kustomize.config.k8s.io/v1beta1 3 | kind: Kustomization 4 | namespace: default 5 | resources: 6 | - ./helmrelease.yaml 7 | - ./ingress.yaml 8 | - ./pvc.yaml 9 | - ./tooljet.sops.yaml 10 | -------------------------------------------------------------------------------- /_archive/tooljet/ks.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: kustomize.toolkit.fluxcd.io/v1 3 | kind: Kustomization 4 | metadata: 5 | name: cluster-apps-tooljet 6 | namespace: flux-system 7 | spec: 8 | path: ./kubernetes/apps/default/tooljet/app 9 | prune: true 10 | sourceRef: 11 | kind: GitRepository 12 | name: home-kubernetes 13 | wait: false 14 | interval: 30m 15 | retryInterval: 1m 16 | timeout: 1m 17 | -------------------------------------------------------------------------------- /_archive/vector/app/agent/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://json.schemastore.org/kustomization 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | namespace: monitoring 6 | resources: 7 | - ./helmrelease.yaml 8 | - ./rbac.yaml 9 | configMapGenerator: 10 | - name: vector-agent-configmap 11 | files: 12 | - vector.yaml=./config/vector.yaml 13 | configurations: 14 | - ./patches/kustomizeconfig.yaml 15 | -------------------------------------------------------------------------------- /_archive/vector/app/agent/patches/kustomizeconfig.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | nameReference: 3 | - kind: ConfigMap 4 | version: v1 5 | fieldSpecs: 6 | - path: spec/values/persistence/config/name 7 | kind: HelmRelease 8 | -------------------------------------------------------------------------------- /_archive/vector/app/aggregator/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://json.schemastore.org/kustomization 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | namespace: monitoring 6 | resources: 7 | - ./helmrelease.yaml 8 | configMapGenerator: 9 | - name: vector-aggregator-configmap 10 | files: 11 | - vector.yaml=./config/vector.yaml 12 | # configurations: 13 | # - ./patches/kustomizeconfig.yaml 14 | generatorOptions: 15 | disableNameSuffixHash: true 16 | -------------------------------------------------------------------------------- /_archive/vector/app/aggregator/patches/kustomizeconfig.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | nameReference: 3 | - kind: ConfigMap 4 | version: v1 5 | fieldSpecs: 6 | - path: spec/values/persistence/config/name 7 | kind: HelmRelease 8 | -------------------------------------------------------------------------------- /_archive/vector/app/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://json.schemastore.org/kustomization 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | namespace: monitoring 6 | resources: 7 | - ./agent 8 | - ./aggregator 9 | -------------------------------------------------------------------------------- /_archive/vector/ks.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1.json 3 | apiVersion: kustomize.toolkit.fluxcd.io/v1 4 | kind: Kustomization 5 | metadata: 6 | name: vector 7 | namespace: flux-system 8 | spec: 9 | path: ./kubernetes/apps/monitoring/vector/app 10 | prune: true 11 | sourceRef: 12 | kind: GitRepository 13 | name: home-kubernetes 14 | wait: false 15 | interval: 30m 16 | retryInterval: 1m 17 | timeout: 15m 18 | -------------------------------------------------------------------------------- /_archive/vector_old/app/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: kustomize.config.k8s.io/v1beta1 3 | kind: Kustomization 4 | namespace: monitoring 5 | resources: 6 | - ./agent.yaml 7 | - ./aggregator.yaml 8 | - ./archiver.yaml 9 | - ./pvc.yaml 10 | -------------------------------------------------------------------------------- /_archive/vector_old/ks.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: kustomize.toolkit.fluxcd.io/v1 3 | kind: Kustomization 4 | metadata: 5 | name: cluster-apps-vector 6 | namespace: flux-system 7 | spec: 8 | path: ./kubernetes/apps/monitoring/vector/app 9 | prune: true 10 | sourceRef: 11 | kind: GitRepository 12 | name: home-kubernetes 13 | wait: false 14 | interval: 30m 15 | retryInterval: 1m 16 | timeout: 5m 17 | -------------------------------------------------------------------------------- /_archive/volsync/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://json.schemastore.org/kustomization 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | resources: 6 | # Pre Flux-Kustomizations 7 | - ./namespace.yaml 8 | # Flux-Kustomizations 9 | # - ./volsync/ks.yaml 10 | -------------------------------------------------------------------------------- /_archive/volsync/namespace.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: v1 3 | kind: Namespace 4 | metadata: 5 | name: volsync 6 | labels: 7 | kustomize.toolkit.fluxcd.io/prune: disabled 8 | -------------------------------------------------------------------------------- /_archive/volsync/volsync/app/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://json.schemastore.org/kustomization 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | namespace: volsync 6 | resources: 7 | - ./helmrelease.yaml 8 | - ./prometheusrule.yaml 9 | -------------------------------------------------------------------------------- /_archive/volsync/volsync/ks.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: kustomize.toolkit.fluxcd.io/v1 3 | kind: Kustomization 4 | metadata: 5 | name: cluster-apps-volsync 6 | namespace: flux-system 7 | spec: 8 | path: ./kubernetes/apps/volsync/volsync/app 9 | prune: true 10 | sourceRef: 11 | kind: GitRepository 12 | name: home-kubernetes 13 | wait: false 14 | interval: 30m 15 | retryInterval: 1m 16 | timeout: 5m 17 | -------------------------------------------------------------------------------- /_archive/website_old/app/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: kustomize.config.k8s.io/v1beta1 3 | kind: Kustomization 4 | namespace: default 5 | resources: 6 | - ./helmrelease.yaml 7 | - ./pvc.yaml 8 | - ./ingress.yaml 9 | 10 | -------------------------------------------------------------------------------- /_archive/website_old/ks.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1.json 3 | apiVersion: kustomize.toolkit.fluxcd.io/v1 4 | kind: Kustomization 5 | metadata: 6 | name: cluster-apps-website 7 | namespace: flux-system 8 | spec: 9 | path: ./kubernetes/apps/default/website/app 10 | prune: true 11 | sourceRef: 12 | kind: GitRepository 13 | name: home-kubernetes 14 | wait: false 15 | interval: 30m 16 | retryInterval: 1m 17 | timeout: 1m 18 | -------------------------------------------------------------------------------- /_archive/youtubedl/app/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1beta1.json 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | namespace: media 6 | resources: 7 | - ./helmrelease.yaml 8 | # - ./ingress.yaml 9 | # - ./pvc.yaml 10 | -------------------------------------------------------------------------------- /_archive/youtubedl/ks.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1.json 3 | apiVersion: kustomize.toolkit.fluxcd.io/v1 4 | kind: Kustomization 5 | metadata: 6 | name: cluster-apps-youtubedl 7 | namespace: flux-system 8 | spec: 9 | path: ./kubernetes/apps/media/youtubedl/app 10 | prune: true 11 | sourceRef: 12 | kind: GitRepository 13 | name: home-kubernetes 14 | wait: false 15 | interval: 30m 16 | retryInterval: 1m 17 | timeout: 5m 18 | -------------------------------------------------------------------------------- /ansible/inventory/group_vars/kubernetes/supplemental.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | timezone: "America/New_York" 3 | github_username: "clarknova99" 4 | coredns_addr: "10.43.0.10" 5 | kube_vip_addr: "192.168.2.2" 6 | cluster_cidr: "10.42.0.0/16" 7 | service_cidr: "10.43.0.0/16" 8 | node_cidr: "192.168.2.0/24" 9 | -------------------------------------------------------------------------------- /ansible/inventory/group_vars/worker/main.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # https://rancher.com/docs/k3s/latest/en/installation/install-options/agent-config/ 3 | # https://github.com/PyratLabs/ansible-role-k3s 4 | 5 | k3s_control_node: false 6 | k3s_agent: 7 | node-ip: "{{ ansible_host }}" 8 | -------------------------------------------------------------------------------- /ansible/inventory/host_vars/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clarknova99/home-cluster/c84859ab0e0ab72c0b303b9c021dd29c8dfdb064/ansible/inventory/host_vars/.gitkeep -------------------------------------------------------------------------------- /ansible/playbooks/cluster-reboot.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Reboot 3 | hosts: all 4 | become: true 5 | gather_facts: true 6 | any_errors_fatal: true 7 | pre_tasks: 8 | - name: Pausing for 5 seconds... 9 | ansible.builtin.pause: 10 | seconds: 5 11 | tasks: 12 | - name: Reboot 13 | ansible.builtin.reboot: 14 | msg: Rebooting nodes 15 | reboot_timeout: 3600 16 | -------------------------------------------------------------------------------- /ansible/playbooks/files/stale-containers.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=Stale containers 3 | 4 | [Service] 5 | Type=oneshot 6 | ExecStart=/usr/local/bin/k3s crictl rmi --prune 7 | -------------------------------------------------------------------------------- /ansible/playbooks/files/stale-containers.timer: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=Stale containers 3 | 4 | [Timer] 5 | OnCalendar=weekly 6 | AccuracySec=1h 7 | Persistent=true 8 | RandomizedDelaySec=6000 9 | 10 | [Install] 11 | WantedBy=timers.target 12 | -------------------------------------------------------------------------------- /bootstrap/tasks/sops/disable.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # https://github.com/ansible-collections/community.sops/issues/153 3 | - name: Rename Sops configuration file 4 | ansible.builtin.copy: 5 | src: "{{ repository_path }}/.sops.yaml" 6 | dest: "{{ repository_path }}/.sops.yaml.orig" 7 | mode: "0644" 8 | 9 | - name: Remove Sops configuration file 10 | ansible.builtin.file: 11 | path: "{{ repository_path }}/.sops.yaml" 12 | state: absent 13 | -------------------------------------------------------------------------------- /bootstrap/tasks/sops/enable.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # https://github.com/ansible-collections/community.sops/issues/153 3 | - name: Restore Sops configuration file 4 | ansible.builtin.copy: 5 | src: "{{ repository_path }}/.sops.yaml.orig" 6 | dest: "{{ repository_path }}/.sops.yaml" 7 | mode: "0644" 8 | 9 | - name: Remove backed up Sops configuration file 10 | ansible.builtin.file: 11 | path: "{{ repository_path }}/.sops.yaml.orig" 12 | state: absent 13 | -------------------------------------------------------------------------------- /bootstrap/tasks/sops/main.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Template Sops configuration file 3 | ansible.builtin.template: 4 | src: "templates/.sops.yaml.j2" 5 | dest: "{{ repository_path }}/.sops.yaml" 6 | mode: "0644" 7 | -------------------------------------------------------------------------------- /bootstrap/tasks/validation/cli.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Check for required CLI tools 3 | ansible.builtin.shell: | 4 | command -v {{ item }} >/dev/null 2>&1 5 | loop: [age, cloudflared, flux, sops] 6 | changed_when: false 7 | check_mode: false 8 | register: result 9 | failed_when: result.rc != 0 and result.rc != 127 10 | -------------------------------------------------------------------------------- /bootstrap/tasks/validation/main.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Verify configuration 3 | ansible.builtin.include_tasks: "{{ task }}.yaml" 4 | loop: [vars, age, cli, net, cloudflare, github] 5 | loop_control: 6 | loop_var: task 7 | -------------------------------------------------------------------------------- /bootstrap/templates/.sops.yaml.j2: -------------------------------------------------------------------------------- 1 | --- 2 | creation_rules: 3 | - path_regex: kubernetes/.*\.sops\.ya?ml 4 | encrypted_regex: "^(data|stringData)$" 5 | key_groups: 6 | - age: 7 | - "{{ bootstrap_age_public_key }}" 8 | - path_regex: ansible/.*\.sops\.ya?ml 9 | key_groups: 10 | - age: 11 | - "{{ bootstrap_age_public_key }}" 12 | -------------------------------------------------------------------------------- /bootstrap/templates/addons/csi-driver-nfs/app/kustomization.yaml.j2: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: kustomize.config.k8s.io/v1beta1 3 | kind: Kustomization 4 | namespace: kube-system 5 | resources: 6 | - ./helmrelease.yaml 7 | - ./storageclass.yaml 8 | -------------------------------------------------------------------------------- /bootstrap/templates/addons/csi-driver-nfs/app/storageclass.yaml.j2: -------------------------------------------------------------------------------- 1 | #jinja2: trim_blocks: True, lstrip_blocks: True 2 | {% for item in csi_driver_nfs.storage_class %} 3 | --- 4 | apiVersion: storage.k8s.io/v1 5 | kind: StorageClass 6 | metadata: 7 | name: {{ item.name }} 8 | provisioner: nfs.csi.k8s.io 9 | parameters: 10 | server: {{ item.server }} 11 | share: {{ item.share }} 12 | reclaimPolicy: Delete 13 | volumeBindingMode: Immediate 14 | mountOptions: ["hard", "noatime"] 15 | {% endfor %} 16 | -------------------------------------------------------------------------------- /bootstrap/templates/addons/csi-driver-nfs/ks.yaml.j2: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: kustomize.toolkit.fluxcd.io/v1 3 | kind: Kustomization 4 | metadata: 5 | name: cluster-apps-csi-driver-nfs 6 | namespace: flux-system 7 | spec: 8 | path: ./kubernetes/apps/kube-system/csi-driver-nfs/app 9 | prune: true 10 | sourceRef: 11 | kind: GitRepository 12 | name: home-kubernetes 13 | wait: true 14 | interval: 30m 15 | retryInterval: 1m 16 | timeout: 5m 17 | -------------------------------------------------------------------------------- /bootstrap/templates/addons/discord-template-notifier/app/kustomization.yaml.j2: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: kustomize.config.k8s.io/v1beta1 3 | kind: Kustomization 4 | namespace: default 5 | resources: 6 | - ./secret.sops.yaml 7 | - ./helmrelease.yaml 8 | -------------------------------------------------------------------------------- /bootstrap/templates/addons/discord-template-notifier/app/secret.sops.yaml.j2: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: v1 3 | kind: Secret 4 | metadata: 5 | name: discord-template-notifier-secret 6 | namespace: default 7 | type: Opaque 8 | stringData: 9 | config.toml: |- 10 | [feeds.github-template] 11 | url = "https://github.com/onedr0p/flux-cluster-template/commits/main/.atom" 12 | interval = "10m" 13 | retry_limit = 5 14 | sink.type = "discord" 15 | sink.url = "{{ discord_template_notifier.webhook_url }}" 16 | -------------------------------------------------------------------------------- /bootstrap/templates/addons/discord-template-notifier/ks.yaml.j2: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: kustomize.toolkit.fluxcd.io/v1 3 | kind: Kustomization 4 | metadata: 5 | name: cluster-apps-discord-template-notifier 6 | namespace: flux-system 7 | spec: 8 | path: ./kubernetes/apps/default/discord-template-notifier/app 9 | prune: true 10 | sourceRef: 11 | kind: GitRepository 12 | name: home-kubernetes 13 | wait: false 14 | interval: 30m 15 | retryInterval: 1m 16 | timeout: 5m 17 | -------------------------------------------------------------------------------- /bootstrap/templates/addons/grafana/app/kustomization.yaml.j2: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: kustomize.config.k8s.io/v1beta1 3 | kind: Kustomization 4 | namespace: monitoring 5 | resources: 6 | - ./secret.sops.yaml 7 | - ./helmrelease.yaml 8 | -------------------------------------------------------------------------------- /bootstrap/templates/addons/grafana/app/secret.sops.yaml.j2: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: v1 3 | kind: Secret 4 | metadata: 5 | name: grafana-admin-secret 6 | namespace: monitoring 7 | stringData: 8 | admin-user: admin 9 | admin-password: "{{ grafana.password }}" 10 | -------------------------------------------------------------------------------- /bootstrap/templates/addons/grafana/ks.yaml.j2: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: kustomize.toolkit.fluxcd.io/v1 3 | kind: Kustomization 4 | metadata: 5 | name: cluster-apps-grafana 6 | namespace: flux-system 7 | spec: 8 | path: ./kubernetes/apps/monitoring/grafana/app 9 | prune: true 10 | sourceRef: 11 | kind: GitRepository 12 | name: home-kubernetes 13 | wait: false 14 | interval: 30m 15 | retryInterval: 1m 16 | timeout: 5m 17 | -------------------------------------------------------------------------------- /bootstrap/templates/addons/hajimari/app/kustomization.yaml.j2: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: kustomize.config.k8s.io/v1beta1 3 | kind: Kustomization 4 | namespace: default 5 | resources: 6 | - ./helmrelease.yaml 7 | -------------------------------------------------------------------------------- /bootstrap/templates/addons/hajimari/ks.yaml.j2: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: kustomize.toolkit.fluxcd.io/v1 3 | kind: Kustomization 4 | metadata: 5 | name: cluster-apps-hajimari 6 | namespace: flux-system 7 | spec: 8 | path: ./kubernetes/apps/default/hajimari/app 9 | prune: true 10 | sourceRef: 11 | kind: GitRepository 12 | name: home-kubernetes 13 | wait: false 14 | interval: 30m 15 | retryInterval: 1m 16 | timeout: 5m 17 | -------------------------------------------------------------------------------- /bootstrap/templates/addons/kube-prometheus-stack/app/kustomization.yaml.j2: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: kustomize.config.k8s.io/v1beta1 3 | kind: Kustomization 4 | namespace: monitoring 5 | resources: 6 | - ./helmrelease.yaml 7 | -------------------------------------------------------------------------------- /bootstrap/templates/addons/kube-prometheus-stack/ks.yaml.j2: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: kustomize.toolkit.fluxcd.io/v1 3 | kind: Kustomization 4 | metadata: 5 | name: cluster-apps-kube-prometheus-stack 6 | namespace: flux-system 7 | spec: 8 | path: ./kubernetes/apps/monitoring/kube-prometheus-stack/app 9 | prune: true 10 | sourceRef: 11 | kind: GitRepository 12 | name: home-kubernetes 13 | wait: false 14 | interval: 30m 15 | retryInterval: 1m 16 | timeout: 5m 17 | -------------------------------------------------------------------------------- /bootstrap/templates/addons/kubernetes-dashboard/app/kustomization.yaml.j2: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: kustomize.config.k8s.io/v1beta1 3 | kind: Kustomization 4 | namespace: monitoring 5 | resources: 6 | - ./rbac.yaml 7 | - ./helmrelease.yaml 8 | -------------------------------------------------------------------------------- /bootstrap/templates/addons/kubernetes-dashboard/ks.yaml.j2: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: kustomize.toolkit.fluxcd.io/v1 3 | kind: Kustomization 4 | metadata: 5 | name: cluster-apps-kubernetes-dashboard 6 | namespace: flux-system 7 | spec: 8 | dependsOn: 9 | - name: cluster-apps-cert-manager 10 | - name: cluster-apps-metrics-server 11 | path: ./kubernetes/apps/monitoring/kubernetes-dashboard/app 12 | prune: true 13 | sourceRef: 14 | kind: GitRepository 15 | name: home-kubernetes 16 | wait: false 17 | interval: 30m 18 | retryInterval: 1m 19 | timeout: 5m 20 | -------------------------------------------------------------------------------- /bootstrap/templates/addons/system-upgrade-controller/plans/agent.yaml.j2: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: upgrade.cattle.io/v1 3 | kind: Plan 4 | metadata: 5 | name: agent 6 | namespace: system-upgrade 7 | spec: 8 | # renovate: datasource=github-releases depName=k3s-io/k3s 9 | version: "v1.29.2+k3s1" 10 | serviceAccountName: system-upgrade 11 | concurrency: 1 12 | nodeSelector: 13 | matchExpressions: 14 | - {key: node-role.kubernetes.io/control-plane, operator: DoesNotExist} 15 | prepare: 16 | image: rancher/k3s-upgrade 17 | args: ["prepare", "server"] 18 | upgrade: 19 | image: rancher/k3s-upgrade 20 | -------------------------------------------------------------------------------- /bootstrap/templates/addons/system-upgrade-controller/plans/kustomization.yaml.j2: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: kustomize.config.k8s.io/v1beta1 3 | kind: Kustomization 4 | resources: 5 | - ./server.yaml 6 | - ./agent.yaml 7 | -------------------------------------------------------------------------------- /bootstrap/templates/addons/weave-gitops/app/kustomization.yaml.j2: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: kustomize.config.k8s.io/v1beta1 3 | kind: Kustomization 4 | namespace: flux-system 5 | resources: 6 | - ./secret.sops.yaml 7 | - ./helmrelease.yaml 8 | -------------------------------------------------------------------------------- /bootstrap/templates/addons/weave-gitops/app/secret.sops.yaml.j2: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: v1 3 | kind: Secret 4 | metadata: 5 | name: cluster-user-auth 6 | namespace: flux-system 7 | type: Opaque 8 | stringData: 9 | username: admin 10 | password: "{{ weave_gitops.password | password_hash('bcrypt', rounds=10) }}" 11 | -------------------------------------------------------------------------------- /bootstrap/templates/addons/weave-gitops/ks.yaml.j2: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: kustomize.toolkit.fluxcd.io/v1 3 | kind: Kustomization 4 | metadata: 5 | name: cluster-apps-weave-gitops 6 | namespace: flux-system 7 | spec: 8 | path: ./kubernetes/apps/flux-system/weave-gitops/app 9 | prune: true 10 | sourceRef: 11 | kind: GitRepository 12 | name: home-kubernetes 13 | wait: false 14 | interval: 30m 15 | retryInterval: 1m 16 | timeout: 5m 17 | -------------------------------------------------------------------------------- /bootstrap/templates/ansible/inventory/group_vars/worker/main.yaml.j2: -------------------------------------------------------------------------------- 1 | #jinja2: trim_blocks: True, lstrip_blocks: True 2 | --- 3 | # https://rancher.com/docs/k3s/latest/en/installation/install-options/agent-config/ 4 | # https://github.com/PyratLabs/ansible-role-k3s 5 | 6 | k3s_control_node: false 7 | k3s_agent: 8 | {% if bootstrap_ipv6_enabled | default(false) %} 9 | node-ip: "{% raw %}{{ ansible_host }},{{ ansible_default_ipv6.address }}{% endraw %}" 10 | {% else %} 11 | node-ip: "{% raw %}{{ ansible_host }}{% endraw %}" 12 | {% endif %} 13 | -------------------------------------------------------------------------------- /bootstrap/templates/ansible/inventory/host_vars/.gitkeep.j2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clarknova99/home-cluster/c84859ab0e0ab72c0b303b9c021dd29c8dfdb064/bootstrap/templates/ansible/inventory/host_vars/.gitkeep.j2 -------------------------------------------------------------------------------- /bootstrap/templates/ansible/playbooks/cluster-reboot.yaml.j2: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Reboot 3 | hosts: all 4 | become: true 5 | gather_facts: true 6 | any_errors_fatal: true 7 | pre_tasks: 8 | - name: Pausing for 5 seconds... 9 | ansible.builtin.pause: 10 | seconds: 5 11 | tasks: 12 | - name: Reboot 13 | ansible.builtin.reboot: 14 | msg: Rebooting nodes 15 | reboot_timeout: 3600 16 | -------------------------------------------------------------------------------- /bootstrap/templates/ansible/playbooks/files/stale-containers.service.j2: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=Stale containers 3 | 4 | [Service] 5 | Type=oneshot 6 | ExecStart=/usr/local/bin/k3s crictl rmi --prune 7 | -------------------------------------------------------------------------------- /bootstrap/templates/ansible/playbooks/files/stale-containers.timer.j2: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=Stale containers 3 | 4 | [Timer] 5 | OnCalendar=weekly 6 | AccuracySec=1h 7 | Persistent=true 8 | RandomizedDelaySec=6000 9 | 10 | [Install] 11 | WantedBy=timers.target 12 | -------------------------------------------------------------------------------- /bootstrap/templates/kubernetes/apps/cert-manager/cert-manager/app/kustomization.yaml.j2: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: kustomize.config.k8s.io/v1beta1 3 | kind: Kustomization 4 | namespace: cert-manager 5 | resources: 6 | - ./helmrelease.yaml 7 | - ./prometheusrule.yaml 8 | -------------------------------------------------------------------------------- /bootstrap/templates/kubernetes/apps/cert-manager/cert-manager/issuers/kustomization.yaml.j2: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: kustomize.config.k8s.io/v1beta1 3 | kind: Kustomization 4 | resources: 5 | - ./secret.sops.yaml 6 | - ./issuers.yaml 7 | -------------------------------------------------------------------------------- /bootstrap/templates/kubernetes/apps/cert-manager/cert-manager/issuers/secret.sops.yaml.j2: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: v1 3 | kind: Secret 4 | metadata: 5 | name: cert-manager-secret 6 | namespace: cert-manager 7 | stringData: 8 | api-token: "{{ bootstrap_cloudflare_token }}" 9 | -------------------------------------------------------------------------------- /bootstrap/templates/kubernetes/apps/cert-manager/kustomization.yaml.j2: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: kustomize.config.k8s.io/v1beta1 3 | kind: Kustomization 4 | resources: 5 | - ./namespace.yaml 6 | - ./cert-manager/ks.yaml 7 | -------------------------------------------------------------------------------- /bootstrap/templates/kubernetes/apps/cert-manager/namespace.yaml.j2: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: v1 3 | kind: Namespace 4 | metadata: 5 | name: cert-manager 6 | labels: 7 | kustomize.toolkit.fluxcd.io/prune: disabled 8 | -------------------------------------------------------------------------------- /bootstrap/templates/kubernetes/apps/default/kustomization.yaml.j2: -------------------------------------------------------------------------------- 1 | #jinja2: trim_blocks: True, lstrip_blocks: True 2 | --- 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | resources: 6 | - ./namespace.yaml 7 | {% if hajimari.enabled | default(false) %} 8 | - ./hajimari/ks.yaml 9 | {% endif %} 10 | {% if discord_template_notifier.enabled | default(false) %} 11 | - ./discord-template-notifier/ks.yaml 12 | {% endif %} 13 | -------------------------------------------------------------------------------- /bootstrap/templates/kubernetes/apps/default/namespace.yaml.j2: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: v1 3 | kind: Namespace 4 | metadata: 5 | name: default 6 | labels: 7 | kustomize.toolkit.fluxcd.io/prune: disabled 8 | -------------------------------------------------------------------------------- /bootstrap/templates/kubernetes/apps/flux-system/addons/ks.yaml.j2: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: kustomize.toolkit.fluxcd.io/v1 3 | kind: Kustomization 4 | metadata: 5 | name: cluster-apps-flux-webhooks 6 | namespace: flux-system 7 | spec: 8 | path: ./kubernetes/apps/flux-system/addons/webhooks 9 | prune: true 10 | sourceRef: 11 | kind: GitRepository 12 | name: home-kubernetes 13 | wait: true 14 | interval: 30m 15 | retryInterval: 1m 16 | timeout: 5m 17 | -------------------------------------------------------------------------------- /bootstrap/templates/kubernetes/apps/flux-system/addons/webhooks/github/kustomization.yaml.j2: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: kustomize.config.k8s.io/v1beta1 3 | kind: Kustomization 4 | resources: 5 | - ./secret.sops.yaml 6 | - ./ingress.yaml 7 | - ./receiver.yaml 8 | -------------------------------------------------------------------------------- /bootstrap/templates/kubernetes/apps/flux-system/addons/webhooks/github/secret.sops.yaml.j2: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: v1 3 | kind: Secret 4 | metadata: 5 | name: github-webhook-token-secret 6 | namespace: flux-system 7 | stringData: 8 | token: "{{ bootstrap_flux_github_webhook_token }}" 9 | -------------------------------------------------------------------------------- /bootstrap/templates/kubernetes/apps/flux-system/addons/webhooks/kustomization.yaml.j2: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: kustomize.config.k8s.io/v1beta1 3 | kind: Kustomization 4 | resources: 5 | - ./github 6 | -------------------------------------------------------------------------------- /bootstrap/templates/kubernetes/apps/flux-system/kustomization.yaml.j2: -------------------------------------------------------------------------------- 1 | #jinja2: trim_blocks: True, lstrip_blocks: True 2 | --- 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | resources: 6 | - ./namespace.yaml 7 | - ./addons/ks.yaml 8 | {% if weave_gitops.enabled | default(false) %} 9 | - ./weave-gitops/ks.yaml 10 | {% endif %} 11 | -------------------------------------------------------------------------------- /bootstrap/templates/kubernetes/apps/flux-system/namespace.yaml.j2: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: v1 3 | kind: Namespace 4 | metadata: 5 | name: flux-system 6 | labels: 7 | kustomize.toolkit.fluxcd.io/prune: disabled 8 | -------------------------------------------------------------------------------- /bootstrap/templates/kubernetes/apps/kube-system/cilium/app/kustomization.yaml.j2: -------------------------------------------------------------------------------- 1 | #jinja2: trim_blocks: True, lstrip_blocks: True 2 | --- 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | namespace: kube-system 6 | resources: 7 | {% if not bootstrap_ipv6_enabled | default(false) %} 8 | - ./cilium-l2.yaml 9 | {% endif %} 10 | - ./helmrelease.yaml 11 | -------------------------------------------------------------------------------- /bootstrap/templates/kubernetes/apps/kube-system/cilium/ks.yaml.j2: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: kustomize.toolkit.fluxcd.io/v1 3 | kind: Kustomization 4 | metadata: 5 | name: cluster-apps-cilium 6 | namespace: flux-system 7 | spec: 8 | path: ./kubernetes/apps/kube-system/cilium/app 9 | prune: false # never should be deleted 10 | sourceRef: 11 | kind: GitRepository 12 | name: home-kubernetes 13 | wait: false 14 | interval: 30m 15 | retryInterval: 1m 16 | timeout: 5m 17 | -------------------------------------------------------------------------------- /bootstrap/templates/kubernetes/apps/kube-system/coredns/app/kustomization.yaml.j2: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: kustomize.config.k8s.io/v1beta1 3 | kind: Kustomization 4 | namespace: kube-system 5 | resources: 6 | - ./helmrelease.yaml 7 | -------------------------------------------------------------------------------- /bootstrap/templates/kubernetes/apps/kube-system/coredns/ks.yaml.j2: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: kustomize.toolkit.fluxcd.io/v1 3 | kind: Kustomization 4 | metadata: 5 | name: cluster-apps-coredns 6 | namespace: flux-system 7 | spec: 8 | path: ./kubernetes/apps/kube-system/coredns/app 9 | prune: false # never should be deleted 10 | sourceRef: 11 | kind: GitRepository 12 | name: home-kubernetes 13 | wait: false 14 | interval: 30m 15 | retryInterval: 1m 16 | timeout: 5m 17 | -------------------------------------------------------------------------------- /bootstrap/templates/kubernetes/apps/kube-system/kustomization.yaml.j2: -------------------------------------------------------------------------------- 1 | #jinja2: trim_blocks: True, lstrip_blocks: True 2 | --- 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | resources: 6 | - ./namespace.yaml 7 | - ./cilium/ks.yaml 8 | - ./coredns/ks.yaml 9 | - ./local-path-provisioner/ks.yaml 10 | - ./metrics-server/ks.yaml 11 | - ./reloader/ks.yaml 12 | {% if csi_driver_nfs.enabled | default(false) %} 13 | - ./csi-driver-nfs/ks.yaml 14 | {% endif %} 15 | -------------------------------------------------------------------------------- /bootstrap/templates/kubernetes/apps/kube-system/local-path-provisioner/app/kustomization.yaml.j2: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: kustomize.config.k8s.io/v1beta1 3 | kind: Kustomization 4 | namespace: kube-system 5 | resources: 6 | - ./helmrelease.yaml 7 | -------------------------------------------------------------------------------- /bootstrap/templates/kubernetes/apps/kube-system/local-path-provisioner/ks.yaml.j2: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: kustomize.toolkit.fluxcd.io/v1 3 | kind: Kustomization 4 | metadata: 5 | name: cluster-apps-local-path-provisioner 6 | namespace: flux-system 7 | labels: 8 | substitution.flux.home.arpa/disabled: "true" 9 | spec: 10 | path: ./kubernetes/apps/kube-system/local-path-provisioner/app 11 | prune: true 12 | sourceRef: 13 | kind: GitRepository 14 | name: home-kubernetes 15 | wait: false 16 | interval: 30m 17 | retryInterval: 1m 18 | timeout: 5m 19 | -------------------------------------------------------------------------------- /bootstrap/templates/kubernetes/apps/kube-system/metrics-server/app/kustomization.yaml.j2: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: kustomize.config.k8s.io/v1beta1 3 | kind: Kustomization 4 | namespace: kube-system 5 | resources: 6 | - ./helmrelease.yaml 7 | -------------------------------------------------------------------------------- /bootstrap/templates/kubernetes/apps/kube-system/metrics-server/ks.yaml.j2: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: kustomize.toolkit.fluxcd.io/v1 3 | kind: Kustomization 4 | metadata: 5 | name: cluster-apps-metrics-server 6 | namespace: flux-system 7 | spec: 8 | path: ./kubernetes/apps/kube-system/metrics-server/app 9 | prune: true 10 | sourceRef: 11 | kind: GitRepository 12 | name: home-kubernetes 13 | wait: false 14 | interval: 30m 15 | retryInterval: 1m 16 | timeout: 5m 17 | -------------------------------------------------------------------------------- /bootstrap/templates/kubernetes/apps/kube-system/namespace.yaml.j2: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: v1 3 | kind: Namespace 4 | metadata: 5 | name: kube-system 6 | labels: 7 | kustomize.toolkit.fluxcd.io/prune: disabled 8 | -------------------------------------------------------------------------------- /bootstrap/templates/kubernetes/apps/kube-system/reloader/app/kustomization.yaml.j2: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: kustomize.config.k8s.io/v1beta1 3 | kind: Kustomization 4 | namespace: kube-system 5 | resources: 6 | - ./helmrelease.yaml 7 | -------------------------------------------------------------------------------- /bootstrap/templates/kubernetes/apps/kube-system/reloader/ks.yaml.j2: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: kustomize.toolkit.fluxcd.io/v1 3 | kind: Kustomization 4 | metadata: 5 | name: cluster-apps-reloader 6 | namespace: flux-system 7 | spec: 8 | path: ./kubernetes/apps/kube-system/reloader/app 9 | prune: true 10 | sourceRef: 11 | kind: GitRepository 12 | name: home-kubernetes 13 | wait: false 14 | interval: 30m 15 | retryInterval: 1m 16 | timeout: 5m 17 | -------------------------------------------------------------------------------- /bootstrap/templates/kubernetes/apps/monitoring/kustomization.yaml.j2: -------------------------------------------------------------------------------- 1 | #jinja2: trim_blocks: True, lstrip_blocks: True 2 | --- 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | resources: 6 | - ./namespace.yaml 7 | {% if grafana.enabled | default(false) %} 8 | - ./grafana/ks.yaml 9 | {% endif %} 10 | {% if kube_prometheus_stack.enabled | default(false) %} 11 | - ./kube-prometheus-stack/ks.yaml 12 | {% endif %} 13 | {% if kubernetes_dashboard.enabled | default(false) %} 14 | - ./kubernetes-dashboard/ks.yaml 15 | {% endif %} 16 | -------------------------------------------------------------------------------- /bootstrap/templates/kubernetes/apps/monitoring/namespace.yaml.j2: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: v1 3 | kind: Namespace 4 | metadata: 5 | name: monitoring 6 | labels: 7 | kustomize.toolkit.fluxcd.io/prune: disabled 8 | -------------------------------------------------------------------------------- /bootstrap/templates/kubernetes/apps/networking/cloudflared/app/dnsendpoint.yaml.j2: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: externaldns.k8s.io/v1alpha1 3 | kind: DNSEndpoint 4 | metadata: 5 | name: cloudflared 6 | namespace: networking 7 | spec: 8 | endpoints: 9 | - dnsName: "external.${SECRET_DOMAIN}" 10 | recordType: CNAME 11 | targets: ["${SECRET_CLOUDFLARE_TUNNEL_ID}.cfargotunnel.com"] 12 | -------------------------------------------------------------------------------- /bootstrap/templates/kubernetes/apps/networking/cloudflared/app/kustomization.yaml.j2: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: kustomize.config.k8s.io/v1beta1 3 | kind: Kustomization 4 | namespace: networking 5 | resources: 6 | - ./dnsendpoint.yaml 7 | - ./secret.sops.yaml 8 | - ./helmrelease.yaml 9 | configMapGenerator: 10 | - name: cloudflared-configmap 11 | files: 12 | - ./configs/config.yaml 13 | generatorOptions: 14 | disableNameSuffixHash: true 15 | -------------------------------------------------------------------------------- /bootstrap/templates/kubernetes/apps/networking/cloudflared/app/secret.sops.yaml.j2: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: v1 3 | kind: Secret 4 | metadata: 5 | name: cloudflared-secret 6 | namespace: networking 7 | stringData: 8 | TUNNEL_ID: "{{ bootstrap_cloudflare_tunnel_id }}" 9 | credentials.json: | 10 | { 11 | "AccountTag": "{{ bootstrap_cloudflare_account_tag }}", 12 | "TunnelSecret": "{{ bootstrap_cloudflare_tunnel_secret }}", 13 | "TunnelID": "{{ bootstrap_cloudflare_tunnel_id }}" 14 | } 15 | -------------------------------------------------------------------------------- /bootstrap/templates/kubernetes/apps/networking/cloudflared/ks.yaml.j2: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: kustomize.toolkit.fluxcd.io/v1 3 | kind: Kustomization 4 | metadata: 5 | name: cluster-apps-cloudflared 6 | namespace: flux-system 7 | spec: 8 | dependsOn: 9 | - name: cluster-apps-external-dns 10 | path: ./kubernetes/apps/networking/cloudflared/app 11 | prune: true 12 | sourceRef: 13 | kind: GitRepository 14 | name: home-kubernetes 15 | wait: false 16 | interval: 30m 17 | retryInterval: 1m 18 | timeout: 5m 19 | -------------------------------------------------------------------------------- /bootstrap/templates/kubernetes/apps/networking/echo-server/app/kustomization.yaml.j2: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: kustomize.config.k8s.io/v1beta1 3 | kind: Kustomization 4 | namespace: networking 5 | resources: 6 | - ./helmrelease.yaml 7 | -------------------------------------------------------------------------------- /bootstrap/templates/kubernetes/apps/networking/echo-server/ks.yaml.j2: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: kustomize.toolkit.fluxcd.io/v1 3 | kind: Kustomization 4 | metadata: 5 | name: cluster-apps-echo-server 6 | namespace: flux-system 7 | spec: 8 | path: ./kubernetes/apps/networking/echo-server/app 9 | prune: true 10 | sourceRef: 11 | kind: GitRepository 12 | name: home-kubernetes 13 | wait: false 14 | interval: 30m 15 | retryInterval: 1m 16 | timeout: 5m 17 | -------------------------------------------------------------------------------- /bootstrap/templates/kubernetes/apps/networking/external-dns/app/kustomization.yaml.j2: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: kustomize.config.k8s.io/v1beta1 3 | kind: Kustomization 4 | namespace: networking 5 | resources: 6 | - ./dnsendpoint-crd.yaml 7 | - ./secret.sops.yaml 8 | - ./helmrelease.yaml 9 | -------------------------------------------------------------------------------- /bootstrap/templates/kubernetes/apps/networking/external-dns/app/secret.sops.yaml.j2: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: v1 3 | kind: Secret 4 | metadata: 5 | name: external-dns-secret 6 | namespace: networking 7 | stringData: 8 | api-token: "{{ bootstrap_cloudflare_token }}" 9 | -------------------------------------------------------------------------------- /bootstrap/templates/kubernetes/apps/networking/external-dns/ks.yaml.j2: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: kustomize.toolkit.fluxcd.io/v1 3 | kind: Kustomization 4 | metadata: 5 | name: cluster-apps-external-dns 6 | namespace: flux-system 7 | spec: 8 | path: ./kubernetes/apps/networking/external-dns/app 9 | prune: true 10 | sourceRef: 11 | kind: GitRepository 12 | name: home-kubernetes 13 | wait: true 14 | interval: 30m 15 | retryInterval: 1m 16 | timeout: 5m 17 | -------------------------------------------------------------------------------- /bootstrap/templates/kubernetes/apps/networking/k8s-gateway/app/kustomization.yaml.j2: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: kustomize.config.k8s.io/v1beta1 3 | kind: Kustomization 4 | namespace: networking 5 | resources: 6 | - ./helmrelease.yaml 7 | -------------------------------------------------------------------------------- /bootstrap/templates/kubernetes/apps/networking/k8s-gateway/ks.yaml.j2: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: kustomize.toolkit.fluxcd.io/v1 3 | kind: Kustomization 4 | metadata: 5 | name: cluster-apps-k8s-gateway 6 | namespace: flux-system 7 | spec: 8 | path: ./kubernetes/apps/networking/k8s-gateway/app 9 | prune: true 10 | sourceRef: 11 | kind: GitRepository 12 | name: home-kubernetes 13 | wait: false 14 | interval: 30m 15 | retryInterval: 1m 16 | timeout: 5m 17 | -------------------------------------------------------------------------------- /bootstrap/templates/kubernetes/apps/networking/kustomization.yaml.j2: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: kustomize.config.k8s.io/v1beta1 3 | kind: Kustomization 4 | resources: 5 | - ./namespace.yaml 6 | - ./cloudflared/ks.yaml 7 | - ./echo-server/ks.yaml 8 | - ./external-dns/ks.yaml 9 | - ./k8s-gateway/ks.yaml 10 | - ./nginx/ks.yaml 11 | -------------------------------------------------------------------------------- /bootstrap/templates/kubernetes/apps/networking/namespace.yaml.j2: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: v1 3 | kind: Namespace 4 | metadata: 5 | name: networking 6 | labels: 7 | kustomize.toolkit.fluxcd.io/prune: disabled 8 | -------------------------------------------------------------------------------- /bootstrap/templates/kubernetes/apps/networking/nginx/certificates/kustomization.yaml.j2: -------------------------------------------------------------------------------- 1 | #jinja2: trim_blocks: True, lstrip_blocks: True 2 | --- 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | resources: 6 | - ./staging.yaml 7 | {% if bootstrap_acme_production_enabled | default(false) %} 8 | - ./production.yaml 9 | {% endif %} 10 | -------------------------------------------------------------------------------- /bootstrap/templates/kubernetes/apps/networking/nginx/external/kustomization.yaml.j2: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: kustomize.config.k8s.io/v1beta1 3 | kind: Kustomization 4 | namespace: networking 5 | resources: 6 | - ./helmrelease.yaml 7 | -------------------------------------------------------------------------------- /bootstrap/templates/kubernetes/apps/networking/nginx/internal/kustomization.yaml.j2: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: kustomize.config.k8s.io/v1beta1 3 | kind: Kustomization 4 | namespace: networking 5 | resources: 6 | - ./helmrelease.yaml 7 | -------------------------------------------------------------------------------- /bootstrap/templates/kubernetes/apps/system-upgrade/kustomization.yaml.j2: -------------------------------------------------------------------------------- 1 | #jinja2: trim_blocks: True, lstrip_blocks: True 2 | --- 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | resources: 6 | - ./namespace.yaml 7 | {% if system_upgrade_controller.enabled | default(false) %} 8 | - ./system-upgrade-controller/ks.yaml 9 | {% endif %} 10 | -------------------------------------------------------------------------------- /bootstrap/templates/kubernetes/apps/system-upgrade/namespace.yaml.j2: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: v1 3 | kind: Namespace 4 | metadata: 5 | name: system-upgrade 6 | labels: 7 | kustomize.toolkit.fluxcd.io/prune: disabled 8 | -------------------------------------------------------------------------------- /bootstrap/templates/kubernetes/flux/config/kustomization.yaml.j2: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: kustomize.config.k8s.io/v1beta1 3 | kind: Kustomization 4 | resources: 5 | - ./flux.yaml 6 | - ./cluster.yaml 7 | -------------------------------------------------------------------------------- /bootstrap/templates/kubernetes/flux/repositories/git/kustomization.yaml.j2: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: kustomize.config.k8s.io/v1beta1 3 | kind: Kustomization 4 | resources: 5 | - ./local-path-provisioner.yaml 6 | -------------------------------------------------------------------------------- /bootstrap/templates/kubernetes/flux/repositories/git/local-path-provisioner.yaml.j2: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: source.toolkit.fluxcd.io/v1 3 | kind: GitRepository 4 | metadata: 5 | name: local-path-provisioner 6 | namespace: flux-system 7 | spec: 8 | interval: 30m 9 | url: https://github.com/rancher/local-path-provisioner 10 | ref: 11 | tag: v0.0.26 12 | ignore: | 13 | # exclude all 14 | /* 15 | # include kubernetes directory 16 | !/deploy/chart/local-path-provisioner 17 | -------------------------------------------------------------------------------- /bootstrap/templates/kubernetes/flux/repositories/helm/bitnami.yaml.j2: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: source.toolkit.fluxcd.io/v1beta2 3 | kind: HelmRepository 4 | metadata: 5 | name: bitnami 6 | namespace: flux-system 7 | spec: 8 | type: oci 9 | interval: 5m 10 | url: oci://registry-1.docker.io/bitnamicharts 11 | -------------------------------------------------------------------------------- /bootstrap/templates/kubernetes/flux/repositories/helm/bjw-s.yaml.j2: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: source.toolkit.fluxcd.io/v1beta2 3 | kind: HelmRepository 4 | metadata: 5 | name: bjw-s 6 | namespace: flux-system 7 | spec: 8 | type: oci 9 | interval: 5m 10 | url: oci://ghcr.io/bjw-s/helm 11 | -------------------------------------------------------------------------------- /bootstrap/templates/kubernetes/flux/repositories/helm/cilium.yaml.j2: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: source.toolkit.fluxcd.io/v1beta2 3 | kind: HelmRepository 4 | metadata: 5 | name: cilium 6 | namespace: flux-system 7 | spec: 8 | interval: 1h 9 | url: https://helm.cilium.io 10 | -------------------------------------------------------------------------------- /bootstrap/templates/kubernetes/flux/repositories/helm/coredns.yaml.j2: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: source.toolkit.fluxcd.io/v1beta2 3 | kind: HelmRepository 4 | metadata: 5 | name: coredns 6 | namespace: flux-system 7 | spec: 8 | interval: 1h 9 | url: https://coredns.github.io/helm 10 | -------------------------------------------------------------------------------- /bootstrap/templates/kubernetes/flux/repositories/helm/csi-driver-nfs.yaml.j2: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: source.toolkit.fluxcd.io/v1beta2 3 | kind: HelmRepository 4 | metadata: 5 | name: csi-driver-nfs 6 | namespace: flux-system 7 | spec: 8 | interval: 1h 9 | url: https://raw.githubusercontent.com/kubernetes-csi/csi-driver-nfs/master/charts 10 | -------------------------------------------------------------------------------- /bootstrap/templates/kubernetes/flux/repositories/helm/external-dns.yaml.j2: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: source.toolkit.fluxcd.io/v1beta2 3 | kind: HelmRepository 4 | metadata: 5 | name: external-dns 6 | namespace: flux-system 7 | spec: 8 | interval: 1h 9 | url: https://kubernetes-sigs.github.io/external-dns 10 | -------------------------------------------------------------------------------- /bootstrap/templates/kubernetes/flux/repositories/helm/grafana.yaml.j2: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: source.toolkit.fluxcd.io/v1beta2 3 | kind: HelmRepository 4 | metadata: 5 | name: grafana 6 | namespace: flux-system 7 | spec: 8 | interval: 1h 9 | url: https://grafana.github.io/helm-charts 10 | -------------------------------------------------------------------------------- /bootstrap/templates/kubernetes/flux/repositories/helm/hajimari.yaml.j2: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: source.toolkit.fluxcd.io/v1beta2 3 | kind: HelmRepository 4 | metadata: 5 | name: hajimari 6 | namespace: flux-system 7 | spec: 8 | interval: 1h 9 | url: https://hajimari.io 10 | -------------------------------------------------------------------------------- /bootstrap/templates/kubernetes/flux/repositories/helm/influxdata.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: source.toolkit.fluxcd.io/v1beta2 3 | kind: HelmRepository 4 | metadata: 5 | name: influxdata 6 | namespace: flux-system 7 | spec: 8 | interval: 30m 9 | url: https://helm.influxdata.com 10 | timeout: 3m 11 | -------------------------------------------------------------------------------- /bootstrap/templates/kubernetes/flux/repositories/helm/ingress-nginx.yaml.j2: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: source.toolkit.fluxcd.io/v1beta2 3 | kind: HelmRepository 4 | metadata: 5 | name: ingress-nginx 6 | namespace: flux-system 7 | spec: 8 | interval: 1h 9 | url: https://kubernetes.github.io/ingress-nginx 10 | -------------------------------------------------------------------------------- /bootstrap/templates/kubernetes/flux/repositories/helm/jetstack.yaml.j2: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: source.toolkit.fluxcd.io/v1beta2 3 | kind: HelmRepository 4 | metadata: 5 | name: jetstack 6 | namespace: flux-system 7 | spec: 8 | interval: 1h 9 | url: https://charts.jetstack.io/ 10 | -------------------------------------------------------------------------------- /bootstrap/templates/kubernetes/flux/repositories/helm/k8s-gateway.yaml.j2: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: source.toolkit.fluxcd.io/v1beta2 3 | kind: HelmRepository 4 | metadata: 5 | name: k8s-gateway 6 | namespace: flux-system 7 | spec: 8 | interval: 1h 9 | url: https://ori-edge.github.io/k8s_gateway/ 10 | -------------------------------------------------------------------------------- /bootstrap/templates/kubernetes/flux/repositories/helm/kubernetes-dashboard.yaml.j2: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: source.toolkit.fluxcd.io/v1beta2 3 | kind: HelmRepository 4 | metadata: 5 | name: kubernetes-dashboard 6 | namespace: flux-system 7 | spec: 8 | interval: 1h 9 | url: https://kubernetes.github.io/dashboard/ 10 | -------------------------------------------------------------------------------- /bootstrap/templates/kubernetes/flux/repositories/helm/kustomization.yaml.j2: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: kustomize.config.k8s.io/v1beta1 3 | kind: Kustomization 4 | resources: 5 | - ./bitnami.yaml 6 | - ./bjw-s.yaml 7 | - ./cilium.yaml 8 | - ./coredns.yaml 9 | - ./csi-driver-nfs.yaml 10 | - ./external-dns.yaml 11 | - ./grafana.yaml 12 | - ./hajimari.yaml 13 | - ./influxdata.yaml 14 | - ./ingress-nginx.yaml 15 | - ./jetstack.yaml 16 | - ./k8s-gateway.yaml 17 | - ./kubernetes-dashboard.yaml 18 | - ./metrics-server.yaml 19 | - ./prometheus-community.yaml 20 | - ./stakater.yaml 21 | - ./weave-gitops.yaml 22 | -------------------------------------------------------------------------------- /bootstrap/templates/kubernetes/flux/repositories/helm/metrics-server.yaml.j2: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: source.toolkit.fluxcd.io/v1beta2 3 | kind: HelmRepository 4 | metadata: 5 | name: metrics-server 6 | namespace: flux-system 7 | spec: 8 | interval: 1h 9 | url: https://kubernetes-sigs.github.io/metrics-server 10 | -------------------------------------------------------------------------------- /bootstrap/templates/kubernetes/flux/repositories/helm/prometheus-community.yaml.j2: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: source.toolkit.fluxcd.io/v1beta2 3 | kind: HelmRepository 4 | metadata: 5 | name: prometheus-community 6 | namespace: flux-system 7 | spec: 8 | type: oci 9 | interval: 5m 10 | url: oci://ghcr.io/prometheus-community/charts 11 | -------------------------------------------------------------------------------- /bootstrap/templates/kubernetes/flux/repositories/helm/stakater.yaml.j2: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: source.toolkit.fluxcd.io/v1beta2 3 | kind: HelmRepository 4 | metadata: 5 | name: stakater 6 | namespace: flux-system 7 | spec: 8 | interval: 1h 9 | url: https://stakater.github.io/stakater-charts 10 | -------------------------------------------------------------------------------- /bootstrap/templates/kubernetes/flux/repositories/helm/weave-gitops.yaml.j2: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: source.toolkit.fluxcd.io/v1beta2 3 | kind: HelmRepository 4 | metadata: 5 | name: weave-gitops 6 | namespace: flux-system 7 | spec: 8 | type: oci 9 | interval: 5m 10 | url: oci://ghcr.io/weaveworks/charts 11 | -------------------------------------------------------------------------------- /bootstrap/templates/kubernetes/flux/repositories/kustomization.yaml.j2: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: kustomize.config.k8s.io/v1beta1 3 | kind: Kustomization 4 | resources: 5 | - ./git 6 | - ./helm 7 | # - ./oci 8 | -------------------------------------------------------------------------------- /bootstrap/templates/kubernetes/flux/repositories/oci/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clarknova99/home-cluster/c84859ab0e0ab72c0b303b9c021dd29c8dfdb064/bootstrap/templates/kubernetes/flux/repositories/oci/.gitkeep -------------------------------------------------------------------------------- /bootstrap/templates/kubernetes/flux/vars/cluster-secrets-user.sops.yaml.j2: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: v1 3 | kind: Secret 4 | metadata: 5 | name: cluster-secrets-user 6 | namespace: flux-system 7 | stringData: 8 | SECRET_PLACEHOLDER: "secret-value" 9 | SECRET_MAXMIND_LICENSE_KEY: "{{ bootstrap_maxmind_license_key }}" 10 | SECRET_POSTGRES_USERNAME: "{{ bootstrap_postgres_username }}" 11 | SECRET_POSTGRES_PASSWORD: "{{ bootstrap_postgres_password }}" 12 | -------------------------------------------------------------------------------- /bootstrap/templates/kubernetes/flux/vars/cluster-secrets.sops.yaml.j2: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: v1 3 | kind: Secret 4 | metadata: 5 | name: cluster-secrets 6 | namespace: flux-system 7 | stringData: 8 | SECRET_DOMAIN: "{{ bootstrap_cloudflare_domain }}" 9 | SECRET_DOMAIN2: "{{ bootstrap_cloudflare_domain2 }}" 10 | SECRET_ACME_EMAIL: "{{ bootstrap_acme_email }}" 11 | SECRET_CLOUDFLARE_TUNNEL_ID: "{{ bootstrap_cloudflare_tunnel_id }}" 12 | SECRET_MINIO_SECRET_KEY: "{{ bootstrap_minio_secret_key }}" 13 | SECRET_MINIO_ACCESS_KEY: "{{ bootstrap_minio_access_key }}" 14 | -------------------------------------------------------------------------------- /bootstrap/templates/kubernetes/flux/vars/cluster-settings-user.yaml.j2: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: v1 3 | kind: ConfigMap 4 | metadata: 5 | name: cluster-settings-user 6 | namespace: flux-system 7 | data: 8 | SETTINGS_PLACEHOLDER: "settings-value" 9 | -------------------------------------------------------------------------------- /bootstrap/templates/kubernetes/flux/vars/kustomization.yaml.j2: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | resources: 4 | - ./cluster-settings.yaml 5 | - ./cluster-settings-user.yaml 6 | - ./cluster-secrets.sops.yaml 7 | - ./cluster-secrets-user.sops.yaml 8 | -------------------------------------------------------------------------------- /bootstrap/templates/node.sops.yaml.j2: -------------------------------------------------------------------------------- 1 | --- 2 | ansible_become_pass: "{{ password }}" 3 | -------------------------------------------------------------------------------- /bootstrap/vars/.gitignore: -------------------------------------------------------------------------------- 1 | addons.yaml 2 | config.yaml 3 | -------------------------------------------------------------------------------- /kubernetes/apps/actions-runner-system/actions-runner-controller/app/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://json.schemastore.org/kustomization 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | resources: 6 | - ./helmrelease.yaml 7 | - ./actions.sops.yaml 8 | -------------------------------------------------------------------------------- /kubernetes/apps/actions-runner-system/actions-runner-controller/runners/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://json.schemastore.org/kustomization 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | resources: 6 | - ./helmrelease.yaml 7 | - ./rbac.yaml 8 | -------------------------------------------------------------------------------- /kubernetes/apps/actions-runner-system/actions-runner-controller/runners/rbac.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: v1 3 | kind: ServiceAccount 4 | metadata: 5 | name: home-ops-runner 6 | --- 7 | apiVersion: rbac.authorization.k8s.io/v1 8 | kind: ClusterRoleBinding 9 | metadata: 10 | name: home-ops-runner 11 | roleRef: 12 | apiGroup: rbac.authorization.k8s.io 13 | kind: ClusterRole 14 | name: cluster-admin 15 | subjects: 16 | - kind: ServiceAccount 17 | name: home-ops-runner 18 | namespace: actions-runner-system 19 | -------------------------------------------------------------------------------- /kubernetes/apps/actions-runner-system/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1beta1.json 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | resources: 6 | - ./namespace.yaml 7 | - ./actions-runner-controller/ks.yaml 8 | -------------------------------------------------------------------------------- /kubernetes/apps/actions-runner-system/namespace.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: v1 3 | kind: Namespace 4 | metadata: 5 | name: actions-runner-system 6 | labels: 7 | kustomize.toolkit.fluxcd.io/prune: disabled 8 | -------------------------------------------------------------------------------- /kubernetes/apps/cert-manager/cert-manager/app/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1beta1.json 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | namespace: cert-manager 6 | resources: 7 | - ./helmrelease.yaml 8 | - ./prometheusrule.yaml 9 | -------------------------------------------------------------------------------- /kubernetes/apps/cert-manager/cert-manager/issuers/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1beta1.json 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | resources: 6 | - ./secret.sops.yaml 7 | - ./issuers.yaml 8 | -------------------------------------------------------------------------------- /kubernetes/apps/cert-manager/certificates/app/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1beta1.json 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | resources: 6 | - ./staging.yaml 7 | - ./production.yaml 8 | -------------------------------------------------------------------------------- /kubernetes/apps/cert-manager/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1beta1.json 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | resources: 6 | - ./namespace.yaml 7 | - ./cert-manager/ks.yaml 8 | - ./certificates/ks.yaml 9 | -------------------------------------------------------------------------------- /kubernetes/apps/cert-manager/namespace.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: v1 3 | kind: Namespace 4 | metadata: 5 | name: cert-manager 6 | labels: 7 | kustomize.toolkit.fluxcd.io/prune: disabled 8 | -------------------------------------------------------------------------------- /kubernetes/apps/database/cloudnative-pg/app/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1beta1.json 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | namespace: database 6 | resources: 7 | - ./helmrelease.yaml 8 | - ./cloudnativepg.sops.yaml 9 | 10 | -------------------------------------------------------------------------------- /kubernetes/apps/database/cloudnative-pg/cluster/backup.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: postgresql.cnpg.io/v1 2 | kind: Backup 3 | metadata: 4 | name: cloudnative-pg-cluster-backup 5 | namespace: database 6 | spec: 7 | cluster: 8 | name: cloudnative-pg-cluster 9 | # kubectl -f kubernetes/apps/database/cloudnative-pg/cluster/backup.yaml apply 10 | -------------------------------------------------------------------------------- /kubernetes/apps/database/cloudnative-pg/cluster/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1beta1.json 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | namespace: database 6 | resources: 7 | - ./helmrelease.yaml 8 | - ./scheduled-backup.yaml 9 | - ./service.yaml 10 | # - ./pvc.yaml 11 | -------------------------------------------------------------------------------- /kubernetes/apps/database/cloudnative-pg/cluster/scheduled-backup.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: postgresql.cnpg.io/v1 2 | kind: ScheduledBackup 3 | metadata: 4 | name: postgres 5 | namespace: database 6 | spec: 7 | schedule: "@daily" 8 | immediate: true 9 | backupOwnerReference: self 10 | cluster: 11 | name: cloudnative-pg-cluster 12 | -------------------------------------------------------------------------------- /kubernetes/apps/database/cloudnative-pg/cluster/service.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: v1 3 | kind: Service 4 | metadata: 5 | name: cloudnative-pg-cluster 6 | namespace: database 7 | annotations: 8 | io.cilium/lb-ipam-ips: 192.168.2.45 9 | spec: 10 | type: LoadBalancer 11 | externalTrafficPolicy: Cluster 12 | ports: 13 | - name: postgres 14 | port: 5432 15 | protocol: TCP 16 | targetPort: 5432 17 | selector: 18 | #postgresql: postgres 19 | cnpg.io/cluster: cloudnative-pg-cluster 20 | role: primary 21 | -------------------------------------------------------------------------------- /kubernetes/apps/database/couchdb/app/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1beta1.json 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | namespace: database 6 | resources: 7 | - ./helmrelease.yaml 8 | configMapGenerator: 9 | - name: couchdb-configmap 10 | namespace: database 11 | files: 12 | - config/config.ini 13 | generatorOptions: 14 | disableNameSuffixHash: true 15 | annotations: 16 | kustomize.toolkit.fluxcd.io/substitute: disabled 17 | -------------------------------------------------------------------------------- /kubernetes/apps/database/couchdb/ks.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1.json 3 | apiVersion: kustomize.toolkit.fluxcd.io/v1 4 | kind: Kustomization 5 | metadata: 6 | name: cluster-apps-couchdb 7 | namespace: flux-system 8 | spec: 9 | path: ./kubernetes/apps/database/couchdb/app 10 | prune: true 11 | sourceRef: 12 | kind: GitRepository 13 | name: home-kubernetes 14 | wait: false 15 | interval: 30m 16 | retryInterval: 1m 17 | timeout: 1m 18 | -------------------------------------------------------------------------------- /kubernetes/apps/database/dragonfly/app/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://json.schemastore.org/kustomization 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | resources: 6 | # renovate: datasource=github-releases depName=dragonflydb/dragonfly-operator 7 | - https://raw.githubusercontent.com/dragonflydb/dragonfly-operator/v1.1.2/manifests/crd.yaml 8 | - ./helmrelease.yaml 9 | - ./rbac.yaml 10 | -------------------------------------------------------------------------------- /kubernetes/apps/database/dragonfly/cluster/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://json.schemastore.org/kustomization 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | resources: 6 | - ./cluster.yaml 7 | - ./podmonitor.yaml 8 | -------------------------------------------------------------------------------- /kubernetes/apps/database/dragonfly/cluster/podmonitor.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://kubernetes-schemas.pages.dev/monitoring.coreos.com/podmonitor_v1.json 3 | apiVersion: monitoring.coreos.com/v1 4 | kind: PodMonitor 5 | metadata: 6 | name: dragonfly 7 | spec: 8 | selector: 9 | matchLabels: 10 | app: dragonfly 11 | podTargetLabels: ["app"] 12 | podMetricsEndpoints: 13 | - port: admin 14 | -------------------------------------------------------------------------------- /kubernetes/apps/database/influxdb/app/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1beta1.json 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | namespace: database 6 | resources: 7 | - ./helmrelease.yaml 8 | - ./ingress.yaml 9 | - ./pvc.yaml 10 | -------------------------------------------------------------------------------- /kubernetes/apps/database/influxdb/ks.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1.json 3 | apiVersion: kustomize.toolkit.fluxcd.io/v1 4 | kind: Kustomization 5 | metadata: 6 | name: cluster-apps-influxdb 7 | namespace: flux-system 8 | spec: 9 | path: ./kubernetes/apps/database/influxdb/app 10 | prune: true 11 | sourceRef: 12 | kind: GitRepository 13 | name: home-kubernetes 14 | wait: false 15 | interval: 30m 16 | retryInterval: 1m 17 | timeout: 5m 18 | -------------------------------------------------------------------------------- /kubernetes/apps/database/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1beta1.json 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | resources: 6 | - ./namespace.yaml 7 | - ./cloudnative-pg/ks.yaml 8 | # - ./couchdb/ks.yaml 9 | - ./dragonfly/ks.yaml 10 | #- ./influxdb/ks.yaml 11 | # - ./mongodb/ks.yaml 12 | # - ./pgadmin/ks.yaml 13 | # - ./redis/ks.yaml 14 | 15 | -------------------------------------------------------------------------------- /kubernetes/apps/database/mongodb/app/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1beta1.json 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | namespace: database 6 | resources: 7 | - ./helmrelease.yaml 8 | - ./pvc.yaml 9 | -------------------------------------------------------------------------------- /kubernetes/apps/database/mongodb/ks.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1.json 3 | apiVersion: kustomize.toolkit.fluxcd.io/v1 4 | kind: Kustomization 5 | metadata: 6 | name: cluster-apps-mongodb 7 | namespace: flux-system 8 | spec: 9 | path: ./kubernetes/apps/database/mongodb/app 10 | prune: true 11 | sourceRef: 12 | kind: GitRepository 13 | name: home-kubernetes 14 | wait: false 15 | interval: 30m 16 | retryInterval: 1m 17 | timeout: 1m 18 | -------------------------------------------------------------------------------- /kubernetes/apps/database/namespace.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: v1 3 | kind: Namespace 4 | metadata: 5 | name: database 6 | labels: 7 | kustomize.toolkit.fluxcd.io/prune: disabled 8 | -------------------------------------------------------------------------------- /kubernetes/apps/database/pgadmin/app/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1beta1.json 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | namespace: database 6 | resources: 7 | - ./pvc.yaml 8 | - ./helmrelease.yaml 9 | - ./ingress.yaml 10 | -------------------------------------------------------------------------------- /kubernetes/apps/database/pgadmin/ks.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1.json 3 | apiVersion: kustomize.toolkit.fluxcd.io/v1 4 | kind: Kustomization 5 | metadata: 6 | name: cluster-apps-pgadmin 7 | namespace: flux-system 8 | spec: 9 | path: ./kubernetes/apps/database/pgadmin/app 10 | prune: true 11 | sourceRef: 12 | kind: GitRepository 13 | name: home-kubernetes 14 | wait: false 15 | interval: 30m 16 | retryInterval: 1m 17 | timeout: 1m 18 | -------------------------------------------------------------------------------- /kubernetes/apps/database/redis/app/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1beta1.json 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | namespace: database 6 | resources: 7 | - ./helmrelease.yaml 8 | - ./pvc-longhorn.yaml 9 | -------------------------------------------------------------------------------- /kubernetes/apps/database/redis/app/pvc-longhorn.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | kind: PersistentVolumeClaim 3 | apiVersion: v1 4 | metadata: 5 | name: pvc-longhorn-redis 6 | namespace: databases 7 | spec: 8 | accessModes: 9 | - ReadWriteOnce 10 | storageClassName: longhorn 11 | resources: 12 | requests: 13 | storage: 5Gi 14 | -------------------------------------------------------------------------------- /kubernetes/apps/database/redis/ks.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1.json 3 | apiVersion: kustomize.toolkit.fluxcd.io/v1 4 | kind: Kustomization 5 | metadata: 6 | name: cluster-apps-redis 7 | namespace: flux-system 8 | spec: 9 | path: ./kubernetes/apps/database/redis/app 10 | prune: true 11 | sourceRef: 12 | kind: GitRepository 13 | name: home-kubernetes 14 | wait: false 15 | interval: 30m 16 | retryInterval: 1m 17 | timeout: 1m 18 | -------------------------------------------------------------------------------- /kubernetes/apps/default/actual/app/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1beta1.json 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | namespace: default 6 | resources: 7 | - ./pvc-actual.yaml 8 | - ./helmrelease.yaml 9 | -------------------------------------------------------------------------------- /kubernetes/apps/default/actual/app/pvc-actual.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: v1 3 | kind: PersistentVolumeClaim 4 | metadata: 5 | name: actual 6 | spec: 7 | accessModes: ["ReadWriteMany"] 8 | resources: 9 | requests: 10 | storage: 1Gi 11 | storageClassName: longhorn 12 | -------------------------------------------------------------------------------- /kubernetes/apps/default/actual/ks.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1.json 3 | apiVersion: kustomize.toolkit.fluxcd.io/v1 4 | kind: Kustomization 5 | metadata: 6 | name: &app cluster-apps-actual 7 | namespace: flux-system 8 | spec: 9 | targetNamespace: default 10 | path: ./kubernetes/apps/default/actual/app 11 | prune: true 12 | sourceRef: 13 | kind: GitRepository 14 | name: home-kubernetes 15 | wait: false 16 | interval: 30m 17 | retryInterval: 1m 18 | timeout: 1m 19 | -------------------------------------------------------------------------------- /kubernetes/apps/default/authelia/app/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1beta1.json 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | namespace: default 6 | resources: 7 | - ./helmrelease.yaml 8 | configMapGenerator: 9 | - name: authelia-configmap 10 | files: 11 | - configuration.yaml=./config/configuration.yaml 12 | generatorOptions: 13 | disableNameSuffixHash: true 14 | # annotations: 15 | # kustomize.toolkit.fluxcd.io/substitute: disabled 16 | -------------------------------------------------------------------------------- /kubernetes/apps/default/authelia/ks.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: kustomize.toolkit.fluxcd.io/v1 3 | kind: Kustomization 4 | metadata: 5 | name: cluster-apps-authelia 6 | namespace: flux-system 7 | spec: 8 | dependsOn: 9 | - name: cluster-apps-cloudnative-pg-cluster 10 | path: ./kubernetes/apps/default/authelia/app 11 | prune: true 12 | sourceRef: 13 | kind: GitRepository 14 | name: home-kubernetes 15 | wait: false 16 | interval: 30m 17 | retryInterval: 1m 18 | timeout: 5m 19 | -------------------------------------------------------------------------------- /kubernetes/apps/default/frigate/app/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1beta1.json 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | namespace: default 6 | resources: 7 | # - ./pvc.yaml 8 | - ./helmrelease.yaml 9 | configMapGenerator: 10 | - name: frigate-configmap 11 | files: 12 | - config.yml=./config/config.yml 13 | generatorOptions: 14 | disableNameSuffixHash: true 15 | # annotations: 16 | # kustomize.toolkit.fluxcd.io/substitute: disabled 17 | -------------------------------------------------------------------------------- /kubernetes/apps/default/frigate/ks.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: kustomize.toolkit.fluxcd.io/v1 3 | kind: Kustomization 4 | metadata: 5 | name: cluster-apps-frigate 6 | namespace: flux-system 7 | spec: 8 | path: ./kubernetes/apps/default/frigate/app 9 | prune: true 10 | sourceRef: 11 | kind: GitRepository 12 | name: home-kubernetes 13 | wait: false 14 | interval: 30m 15 | retryInterval: 1m 16 | timeout: 5m 17 | 18 | -------------------------------------------------------------------------------- /kubernetes/apps/default/hajimari/app/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1beta1.json 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | namespace: default 6 | resources: 7 | - ./helmrelease.yaml 8 | 9 | -------------------------------------------------------------------------------- /kubernetes/apps/default/hajimari/ks.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: kustomize.toolkit.fluxcd.io/v1 3 | kind: Kustomization 4 | metadata: 5 | name: cluster-apps-hajimari 6 | namespace: flux-system 7 | spec: 8 | path: ./kubernetes/apps/default/hajimari/app 9 | prune: true 10 | sourceRef: 11 | kind: GitRepository 12 | name: home-kubernetes 13 | wait: false 14 | interval: 30m 15 | retryInterval: 1m 16 | timeout: 5m 17 | -------------------------------------------------------------------------------- /kubernetes/apps/default/homepage/app/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1beta1.json 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | namespace: default 6 | resources: 7 | - ./configmap.yaml 8 | - ./helmrelease.yaml 9 | - ./homepage.sops.yaml 10 | - ./rbac.yaml 11 | -------------------------------------------------------------------------------- /kubernetes/apps/default/homepage/ks.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1.json 3 | apiVersion: kustomize.toolkit.fluxcd.io/v1 4 | kind: Kustomization 5 | metadata: 6 | name: cluster-apps-homepage 7 | namespace: flux-system 8 | spec: 9 | path: ./kubernetes/apps/default/homepage/app 10 | prune: true 11 | sourceRef: 12 | kind: GitRepository 13 | name: home-kubernetes 14 | wait: false 15 | interval: 30m 16 | retryInterval: 1m 17 | timeout: 1m 18 | -------------------------------------------------------------------------------- /kubernetes/apps/default/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1beta1.json 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | resources: 6 | - ./namespace.yaml 7 | # - ./actual/ks.yaml 8 | - ./authelia/ks.yaml 9 | - ./hajimari/ks.yaml 10 | - ./lldap/ks.yaml 11 | # # #- ./omni/ks.yaml 12 | # #- ./n8n/ks.yaml 13 | - ./website/ks.yaml 14 | # # - ./whoami/ks.yaml 15 | -------------------------------------------------------------------------------- /kubernetes/apps/default/lldap/app/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://json.schemastore.org/kustomization 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | namespace: default 6 | resources: 7 | - ./helmrelease.yaml 8 | - ./lldap.sops.yaml 9 | 10 | -------------------------------------------------------------------------------- /kubernetes/apps/default/lldap/ks.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: kustomize.toolkit.fluxcd.io/v1 3 | kind: Kustomization 4 | metadata: 5 | name: cluster-apps-lldap 6 | namespace: flux-system 7 | spec: 8 | dependsOn: 9 | - name: cluster-apps-cloudnative-pg-cluster 10 | path: ./kubernetes/apps/default/lldap/app 11 | prune: true 12 | sourceRef: 13 | kind: GitRepository 14 | name: home-kubernetes 15 | wait: false 16 | interval: 30m 17 | retryInterval: 1m 18 | timeout: 5m 19 | -------------------------------------------------------------------------------- /kubernetes/apps/default/mosquitto/app/config/mosquitto.conf: -------------------------------------------------------------------------------- 1 | per_listener_settings false 2 | listener 1883 3 | allow_anonymous false 4 | persistence true 5 | persistence_location /data 6 | autosave_interval 1800 7 | connection_messages false 8 | autosave_interval 60 9 | password_file /mosquitto/external_config/mosquitto_pwd 10 | -------------------------------------------------------------------------------- /kubernetes/apps/default/mosquitto/app/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://json.schemastore.org/kustomization 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | resources: 6 | - ./pvc.yaml 7 | - ./mqtt.sops.yaml 8 | - ./helmrelease.yaml 9 | configMapGenerator: 10 | - name: mosquitto-configmap 11 | files: 12 | - mosquitto.conf=./config/mosquitto.conf 13 | configurations: 14 | - ./patches/kustomizeconfig.yaml 15 | -------------------------------------------------------------------------------- /kubernetes/apps/default/mosquitto/app/patches/kustomizeconfig.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | nameReference: 3 | - kind: ConfigMap 4 | version: v1 5 | fieldSpecs: 6 | - path: spec/values/persistence/config-file/name 7 | kind: HelmRelease 8 | -------------------------------------------------------------------------------- /kubernetes/apps/default/mosquitto/app/pvc.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: v1 3 | kind: PersistentVolumeClaim 4 | metadata: 5 | name: mosquitto 6 | spec: 7 | accessModes: ["ReadWriteMany"] 8 | resources: 9 | requests: 10 | storage: 1Gi 11 | storageClassName: longhorn 12 | -------------------------------------------------------------------------------- /kubernetes/apps/default/mosquitto/ks.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1beta2.json 3 | apiVersion: kustomize.toolkit.fluxcd.io/v1 4 | kind: Kustomization 5 | metadata: 6 | name: mosquitto 7 | namespace: flux-system 8 | spec: 9 | targetNamespace: default 10 | path: ./kubernetes/apps/default/mosquitto/app 11 | prune: true 12 | sourceRef: 13 | kind: GitRepository 14 | name: home-kubernetes 15 | wait: false 16 | interval: 30m 17 | retryInterval: 1m 18 | timeout: 5m 19 | -------------------------------------------------------------------------------- /kubernetes/apps/default/n8n/app/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1beta1.json 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | namespace: default 6 | resources: 7 | - ./helmrelease.yaml 8 | # - ./ingress.yaml 9 | # - ./pvc.yaml 10 | -------------------------------------------------------------------------------- /kubernetes/apps/default/n8n/ks.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: kustomize.toolkit.fluxcd.io/v1 3 | kind: Kustomization 4 | metadata: 5 | name: cluster-apps-n8n 6 | namespace: flux-system 7 | spec: 8 | path: ./kubernetes/apps/default/n8n/app 9 | prune: true 10 | sourceRef: 11 | kind: GitRepository 12 | name: home-kubernetes 13 | wait: false 14 | interval: 30m 15 | retryInterval: 1m 16 | timeout: 1m 17 | -------------------------------------------------------------------------------- /kubernetes/apps/default/namespace.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: v1 3 | kind: Namespace 4 | metadata: 5 | name: default 6 | labels: 7 | kustomize.toolkit.fluxcd.io/prune: disabled 8 | -------------------------------------------------------------------------------- /kubernetes/apps/default/omni/app/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1beta1.json 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | namespace: default 6 | resources: 7 | - ./omni.sops.yaml 8 | - ./helmrelease.yaml 9 | -------------------------------------------------------------------------------- /kubernetes/apps/default/omni/ks.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1.json 3 | apiVersion: kustomize.toolkit.fluxcd.io/v1 4 | kind: Kustomization 5 | metadata: 6 | name: cluster-apps-omni 7 | namespace: flux-system 8 | spec: 9 | path: ./kubernetes/apps/default/omni/app 10 | prune: true 11 | sourceRef: 12 | kind: GitRepository 13 | name: home-kubernetes 14 | wait: false 15 | interval: 30m 16 | retryInterval: 1m 17 | timeout: 1m 18 | -------------------------------------------------------------------------------- /kubernetes/apps/default/troddit/app/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1beta1.json 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | namespace: default 6 | resources: 7 | - ./helmrelease.yaml 8 | - ./troddit.sops.yaml 9 | -------------------------------------------------------------------------------- /kubernetes/apps/default/troddit/ks.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: kustomize.toolkit.fluxcd.io/v1 3 | kind: Kustomization 4 | metadata: 5 | name: cluster-apps-troddit 6 | namespace: flux-system 7 | spec: 8 | path: ./kubernetes/apps/default/troddit/app 9 | prune: true 10 | sourceRef: 11 | kind: GitRepository 12 | name: home-kubernetes 13 | wait: false 14 | interval: 30m 15 | retryInterval: 1m 16 | timeout: 1m 17 | -------------------------------------------------------------------------------- /kubernetes/apps/default/website/app/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1beta1.json 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | namespace: default 6 | resources: 7 | - ./helmrelease.yaml 8 | -------------------------------------------------------------------------------- /kubernetes/apps/default/website/ks.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1.json 3 | apiVersion: kustomize.toolkit.fluxcd.io/v1 4 | kind: Kustomization 5 | metadata: 6 | name: website 7 | namespace: flux-system 8 | spec: 9 | path: ./kubernetes/apps/default/website/app 10 | prune: true 11 | sourceRef: 12 | kind: GitRepository 13 | name: home-kubernetes 14 | wait: false 15 | interval: 30m 16 | retryInterval: 1m 17 | timeout: 1m 18 | -------------------------------------------------------------------------------- /kubernetes/apps/default/whoami/app/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1beta1.json 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | namespace: default 6 | resources: 7 | - ./helmrelease.yaml 8 | # - ./ingress.yaml 9 | -------------------------------------------------------------------------------- /kubernetes/apps/default/whoami/ks.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1.json 3 | apiVersion: kustomize.toolkit.fluxcd.io/v1 4 | kind: Kustomization 5 | metadata: 6 | name: cluster-apps-whoami 7 | namespace: flux-system 8 | spec: 9 | path: ./kubernetes/apps/default/whoami/app 10 | prune: true 11 | sourceRef: 12 | kind: GitRepository 13 | name: home-kubernetes 14 | wait: false 15 | interval: 30m 16 | retryInterval: 1m 17 | timeout: 1m 18 | -------------------------------------------------------------------------------- /kubernetes/apps/flux-system/addons/app/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1beta1.json 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | namespace: flux-system 6 | resources: 7 | - ./monitoring 8 | - ./notifications 9 | - ./webhooks 10 | -------------------------------------------------------------------------------- /kubernetes/apps/flux-system/addons/app/monitoring/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1beta1.json 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | namespace: flux-system 6 | resources: 7 | - ./podmonitor.yaml 8 | - ./prometheusrule.yaml 9 | -------------------------------------------------------------------------------- /kubernetes/apps/flux-system/addons/app/notifications/alert-manager/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1beta1.json 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | resources: 6 | - ./notification.yaml 7 | -------------------------------------------------------------------------------- /kubernetes/apps/flux-system/addons/app/notifications/github/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1beta2.json 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | resources: 6 | - ./notification.yaml 7 | -------------------------------------------------------------------------------- /kubernetes/apps/flux-system/addons/app/notifications/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1beta1.json 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | resources: 6 | - ./alert-manager 7 | - ./github 8 | -------------------------------------------------------------------------------- /kubernetes/apps/flux-system/addons/app/webhooks/github/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1beta2.json 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | resources: 6 | - ./secret.sops.yaml 7 | - ./ingress.yaml 8 | - ./receiver.yaml 9 | -------------------------------------------------------------------------------- /kubernetes/apps/flux-system/addons/app/webhooks/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1beta2.json 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | resources: 6 | - ./github 7 | -------------------------------------------------------------------------------- /kubernetes/apps/flux-system/addons/ks.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1.json 3 | apiVersion: kustomize.toolkit.fluxcd.io/v1 4 | kind: Kustomization 5 | metadata: 6 | name: cluster-apps-flux-webhooks 7 | namespace: flux-system 8 | spec: 9 | path: ./kubernetes/apps/flux-system/addons/app 10 | prune: true 11 | sourceRef: 12 | kind: GitRepository 13 | name: home-kubernetes 14 | wait: true 15 | interval: 30m 16 | retryInterval: 1m 17 | timeout: 5m 18 | -------------------------------------------------------------------------------- /kubernetes/apps/flux-system/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1beta1.json 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | resources: 6 | - ./namespace.yaml 7 | - ./addons/ks.yaml 8 | - ./weave-gitops/ks.yaml 9 | -------------------------------------------------------------------------------- /kubernetes/apps/flux-system/namespace.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: v1 3 | kind: Namespace 4 | metadata: 5 | name: flux-system 6 | labels: 7 | kustomize.toolkit.fluxcd.io/prune: disabled 8 | -------------------------------------------------------------------------------- /kubernetes/apps/flux-system/weave-gitops/app/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1beta1.json 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | namespace: flux-system 6 | resources: 7 | - ./secret.sops.yaml 8 | - ./helmrelease.yaml 9 | -------------------------------------------------------------------------------- /kubernetes/apps/flux-system/weave-gitops/ks.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1.json 3 | apiVersion: kustomize.toolkit.fluxcd.io/v1 4 | kind: Kustomization 5 | metadata: 6 | name: cluster-apps-weave-gitops 7 | namespace: flux-system 8 | spec: 9 | path: ./kubernetes/apps/flux-system/weave-gitops/app 10 | prune: true 11 | sourceRef: 12 | kind: GitRepository 13 | name: home-kubernetes 14 | wait: false 15 | interval: 30m 16 | retryInterval: 1m 17 | timeout: 5m 18 | -------------------------------------------------------------------------------- /kubernetes/apps/kube-system/cilium/app/cilium-l2.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # https://docs.cilium.io/en/latest/network/l2-announcements 3 | apiVersion: cilium.io/v2alpha1 4 | kind: CiliumL2AnnouncementPolicy 5 | metadata: 6 | name: policy 7 | spec: 8 | loadBalancerIPs: true 9 | # NOTE: This might need to be set if you have more than one active NIC on your nodes 10 | # interfaces: 11 | # - ^eno[0-9]+ 12 | nodeSelector: 13 | matchLabels: 14 | kubernetes.io/os: linux 15 | --- 16 | apiVersion: cilium.io/v2alpha1 17 | kind: CiliumLoadBalancerIPPool 18 | metadata: 19 | name: pool 20 | spec: 21 | cidrs: 22 | - cidr: "${NODE_CIDR}" 23 | -------------------------------------------------------------------------------- /kubernetes/apps/kube-system/cilium/app/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: kustomize.config.k8s.io/v1beta1 3 | kind: Kustomization 4 | namespace: kube-system 5 | resources: 6 | - ./cilium-l2.yaml 7 | - ./helmrelease.yaml 8 | -------------------------------------------------------------------------------- /kubernetes/apps/kube-system/cilium/ks.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: kustomize.toolkit.fluxcd.io/v1 3 | kind: Kustomization 4 | metadata: 5 | name: cluster-apps-cilium 6 | namespace: flux-system 7 | spec: 8 | path: ./kubernetes/apps/kube-system/cilium/app 9 | prune: false # never should be deleted 10 | sourceRef: 11 | kind: GitRepository 12 | name: home-kubernetes 13 | wait: false 14 | interval: 30m 15 | retryInterval: 1m 16 | timeout: 5m 17 | -------------------------------------------------------------------------------- /kubernetes/apps/kube-system/coredns/app/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: kustomize.config.k8s.io/v1beta1 3 | kind: Kustomization 4 | namespace: kube-system 5 | resources: 6 | - ./helmrelease.yaml 7 | -------------------------------------------------------------------------------- /kubernetes/apps/kube-system/coredns/ks.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: kustomize.toolkit.fluxcd.io/v1 3 | kind: Kustomization 4 | metadata: 5 | name: cluster-apps-coredns 6 | namespace: flux-system 7 | spec: 8 | path: ./kubernetes/apps/kube-system/coredns/app 9 | prune: false # never should be deleted 10 | sourceRef: 11 | kind: GitRepository 12 | name: home-kubernetes 13 | wait: false 14 | interval: 30m 15 | retryInterval: 1m 16 | timeout: 5m 17 | -------------------------------------------------------------------------------- /kubernetes/apps/kube-system/csi-driver-nfs/app/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: kustomize.config.k8s.io/v1beta1 3 | kind: Kustomization 4 | namespace: kube-system 5 | resources: 6 | - ./helmrelease.yaml 7 | - ./storageclass.yaml 8 | -------------------------------------------------------------------------------- /kubernetes/apps/kube-system/csi-driver-nfs/app/storageclass.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: storage.k8s.io/v1 3 | kind: StorageClass 4 | metadata: 5 | name: network-storage 6 | provisioner: nfs.csi.k8s.io 7 | parameters: 8 | server: 192.168.1.2 9 | share: /volume1/network-storage 10 | reclaimPolicy: Delete 11 | volumeBindingMode: Immediate 12 | mountOptions: ["hard", "noatime"] 13 | -------------------------------------------------------------------------------- /kubernetes/apps/kube-system/csi-driver-nfs/ks.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: kustomize.toolkit.fluxcd.io/v1 3 | kind: Kustomization 4 | metadata: 5 | name: cluster-apps-csi-driver-nfs 6 | namespace: flux-system 7 | spec: 8 | path: ./kubernetes/apps/kube-system/csi-driver-nfs/app 9 | prune: true 10 | sourceRef: 11 | kind: GitRepository 12 | name: home-kubernetes 13 | wait: true 14 | interval: 30m 15 | retryInterval: 1m 16 | timeout: 5m 17 | -------------------------------------------------------------------------------- /kubernetes/apps/kube-system/intel-device-plugin/app/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://json.schemastore.org/kustomization 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | namespace: kube-system 6 | resources: 7 | - ./helmrelease.yaml 8 | -------------------------------------------------------------------------------- /kubernetes/apps/kube-system/intel-device-plugin/gpu/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://json.schemastore.org/kustomization 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | namespace: kube-system 6 | resources: 7 | - ./helmrelease.yaml 8 | -------------------------------------------------------------------------------- /kubernetes/apps/kube-system/local-path-provisioner/app/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1beta1.json 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | namespace: kube-system 6 | resources: 7 | - ./helmrelease.yaml 8 | -------------------------------------------------------------------------------- /kubernetes/apps/kube-system/local-path-provisioner/ks.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1.json 3 | apiVersion: kustomize.toolkit.fluxcd.io/v1 4 | kind: Kustomization 5 | metadata: 6 | name: cluster-apps-local-path-provisioner 7 | namespace: flux-system 8 | spec: 9 | path: ./kubernetes/apps/kube-system/local-path-provisioner/app 10 | prune: true 11 | sourceRef: 12 | kind: GitRepository 13 | name: home-kubernetes 14 | wait: false 15 | interval: 30m 16 | retryInterval: 1m 17 | timeout: 5m 18 | -------------------------------------------------------------------------------- /kubernetes/apps/kube-system/metrics-server/app/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: kustomize.config.k8s.io/v1beta1 3 | kind: Kustomization 4 | namespace: kube-system 5 | resources: 6 | - ./helmrelease.yaml 7 | -------------------------------------------------------------------------------- /kubernetes/apps/kube-system/metrics-server/ks.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: kustomize.toolkit.fluxcd.io/v1 3 | kind: Kustomization 4 | metadata: 5 | name: cluster-apps-metrics-server 6 | namespace: flux-system 7 | spec: 8 | path: ./kubernetes/apps/kube-system/metrics-server/app 9 | prune: true 10 | sourceRef: 11 | kind: GitRepository 12 | name: home-kubernetes 13 | wait: false 14 | interval: 30m 15 | retryInterval: 1m 16 | timeout: 5m 17 | -------------------------------------------------------------------------------- /kubernetes/apps/kube-system/minio/app/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1beta1.json 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | namespace: kube-system 6 | resources: 7 | - ./secret.sops.yaml 8 | - ./helmrelease.yaml 9 | #- ./pvc.yaml 10 | -------------------------------------------------------------------------------- /kubernetes/apps/kube-system/namespace.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: v1 3 | kind: Namespace 4 | metadata: 5 | name: kube-system 6 | labels: 7 | kustomize.toolkit.fluxcd.io/prune: disabled 8 | -------------------------------------------------------------------------------- /kubernetes/apps/kube-system/node-feature-discovery/app/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://json.schemastore.org/kustomization 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | namespace: kube-system 6 | resources: 7 | - ./helmrelease.yaml 8 | -------------------------------------------------------------------------------- /kubernetes/apps/kube-system/node-feature-discovery/rules/google-coral-device.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://kubernetes-schemas.devbu.io/nfd.k8s-sigs.io/nodefeaturerule_v1alpha1.json 3 | apiVersion: nfd.k8s-sigs.io/v1alpha1 4 | kind: NodeFeatureRule 5 | metadata: 6 | name: google-coral-device 7 | spec: 8 | rules: 9 | - # Google Coral USB Accelerator 10 | name: google.coral 11 | labels: 12 | google.feature.node.kubernetes.io/coral: "true" 13 | matchFeatures: 14 | - feature: usb.device 15 | matchExpressions: 16 | vendor: { op: In, value: ["1a6e", "18d1"] } 17 | -------------------------------------------------------------------------------- /kubernetes/apps/kube-system/node-feature-discovery/rules/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1beta1.json 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | resources: 6 | - ./google-coral-device.yaml 7 | - ./nvidia.yaml 8 | -------------------------------------------------------------------------------- /kubernetes/apps/kube-system/node-feature-discovery/rules/nvidia.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: nfd.k8s-sigs.io/v1alpha1 3 | kind: NodeFeatureRule 4 | metadata: 5 | name: nvidia-gpu 6 | spec: 7 | rules: 8 | - name: nvidia.gpu 9 | labels: 10 | nvidia.feature.node.kubernetes.io/gpu: "true" 11 | matchFeatures: 12 | - feature: pci.device 13 | matchExpressions: 14 | vendor: { op: In, value: ["10de"] } 15 | # device: { op: In, value: ["1e87", "1b81"] } 16 | -------------------------------------------------------------------------------- /kubernetes/apps/kube-system/nvidia-device-plugin/app/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1beta1.json 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | namespace: kube-system 6 | resources: 7 | - ./helmrelease.yaml 8 | - ./runtimeclass.yaml 9 | -------------------------------------------------------------------------------- /kubernetes/apps/kube-system/nvidia-device-plugin/app/runtimeclass.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: node.k8s.io/v1 3 | kind: RuntimeClass 4 | metadata: 5 | name: nvidia 6 | handler: nvidia 7 | -------------------------------------------------------------------------------- /kubernetes/apps/kube-system/nvidia-device-plugin/ks.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: kustomize.toolkit.fluxcd.io/v1 3 | kind: Kustomization 4 | metadata: 5 | name: cluster-apps-nvidia-device-plugin 6 | namespace: flux-system 7 | spec: 8 | path: ./kubernetes/apps/kube-system/nvidia-device-plugin/app 9 | prune: true 10 | sourceRef: 11 | kind: GitRepository 12 | name: home-kubernetes 13 | wait: true 14 | interval: 30m 15 | retryInterval: 1m 16 | timeout: 5m 17 | 18 | -------------------------------------------------------------------------------- /kubernetes/apps/kube-system/reloader/app/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: kustomize.config.k8s.io/v1beta1 3 | kind: Kustomization 4 | namespace: kube-system 5 | resources: 6 | - ./helmrelease.yaml 7 | -------------------------------------------------------------------------------- /kubernetes/apps/kube-system/reloader/ks.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: kustomize.toolkit.fluxcd.io/v1 3 | kind: Kustomization 4 | metadata: 5 | name: cluster-apps-reloader 6 | namespace: flux-system 7 | spec: 8 | path: ./kubernetes/apps/kube-system/reloader/app 9 | prune: true 10 | sourceRef: 11 | kind: GitRepository 12 | name: home-kubernetes 13 | wait: false 14 | interval: 30m 15 | retryInterval: 1m 16 | timeout: 5m 17 | -------------------------------------------------------------------------------- /kubernetes/apps/longhorn-system/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: kustomize.config.k8s.io/v1beta1 3 | kind: Kustomization 4 | resources: 5 | - ./namespace.yaml 6 | - ./longhorn/ks.yaml 7 | #- ./longhorn-recurring-jobs/ks.yaml 8 | -------------------------------------------------------------------------------- /kubernetes/apps/longhorn-system/longhorn/app/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1beta1.json 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | namespace: longhorn-system 6 | resources: 7 | - ./helmrelease.yaml 8 | - ./longhorn.sops.yaml 9 | - ./service-monitor.yaml 10 | -------------------------------------------------------------------------------- /kubernetes/apps/longhorn-system/longhorn/app/service-monitor.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: monitoring.coreos.com/v1 2 | kind: ServiceMonitor 3 | metadata: 4 | name: longhorn-prometheus-servicemonitor 5 | namespace: longhorn-system 6 | labels: 7 | name: longhorn-prometheus-servicemonitor 8 | spec: 9 | selector: 10 | matchLabels: 11 | app: longhorn-manager 12 | namespaceSelector: 13 | matchNames: 14 | - longhorn-system 15 | endpoints: 16 | - port: manager 17 | -------------------------------------------------------------------------------- /kubernetes/apps/longhorn-system/longhorn/recurring-jobs/backup-weekly.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: longhorn.io/v1beta1 3 | kind: RecurringJob 4 | metadata: 5 | name: backup-daily 6 | namespace: storage 7 | spec: 8 | cron: "20 4 * * 0" 9 | task: "backup" 10 | groups: 11 | - backup 12 | retain: 8 13 | concurrency: 1 14 | -------------------------------------------------------------------------------- /kubernetes/apps/longhorn-system/longhorn/recurring-jobs/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1beta1.json 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | namespace: longhorn-system 6 | resources: 7 | - ./backup-weekly.yaml 8 | - ./snapshot-daily.yaml 9 | -------------------------------------------------------------------------------- /kubernetes/apps/longhorn-system/longhorn/recurring-jobs/snapshot-daily.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: longhorn.io/v1beta1 3 | kind: RecurringJob 4 | metadata: 5 | name: snapshot 6 | namespace: storage 7 | spec: 8 | cron: "20 3 * * *" 9 | task: "snapshot" 10 | groups: 11 | - backup 12 | retain: 7 13 | concurrency: 1 14 | -------------------------------------------------------------------------------- /kubernetes/apps/longhorn-system/namespace.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: v1 3 | kind: Namespace 4 | metadata: 5 | name: longhorn-system 6 | labels: 7 | kustomize.toolkit.fluxcd.io/prune: disabled 8 | -------------------------------------------------------------------------------- /kubernetes/apps/media/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1beta1.json 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | resources: 6 | - ./namespace.yaml 7 | #- ./bazarr/ks.yaml 8 | #- ./hydra/ks.yaml 9 | #- ./invidious/ks.yaml 10 | #- ./prowlarr/ks.yaml 11 | #- ./qbittorrent/ks.yaml 12 | # - ./plex/ks.yaml 13 | #- ./radarr/ks.yaml 14 | #- ./sabnzbd/ks.yaml 15 | #- ./sonarr/ks.yaml 16 | # - ./tautulli/ks.yaml 17 | #- ./youtubedl/ks.yaml 18 | -------------------------------------------------------------------------------- /kubernetes/apps/media/namespace.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: v1 3 | kind: Namespace 4 | metadata: 5 | name: media 6 | labels: 7 | kustomize.toolkit.fluxcd.io/prune: disabled 8 | -------------------------------------------------------------------------------- /kubernetes/apps/monitoring/alertmanager/app/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1beta1.json 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | namespace: monitoring 6 | resources: 7 | - ./helmrelease.yaml 8 | configMapGenerator: 9 | - name: alertmanager-configmap 10 | files: 11 | - config/alertmanager.yml 12 | generatorOptions: 13 | disableNameSuffixHash: true 14 | # annotations: 15 | # kustomize.toolkit.fluxcd.io/substitute: disabled 16 | -------------------------------------------------------------------------------- /kubernetes/apps/monitoring/alertmanager/ks.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1.json 3 | apiVersion: kustomize.toolkit.fluxcd.io/v1 4 | kind: Kustomization 5 | metadata: 6 | name: cluster-apps-alertmanager 7 | namespace: flux-system 8 | spec: 9 | path: ./kubernetes/apps/monitoring/alertmanager/app 10 | prune: true 11 | sourceRef: 12 | kind: GitRepository 13 | name: home-kubernetes 14 | wait: false 15 | interval: 30m 16 | retryInterval: 1m 17 | timeout: 5m 18 | 19 | -------------------------------------------------------------------------------- /kubernetes/apps/monitoring/blackbox-exporter/app/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1beta1.json 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | namespace: monitoring 6 | resources: 7 | - ./helmrelease.yaml 8 | - ./dashboard 9 | -------------------------------------------------------------------------------- /kubernetes/apps/monitoring/blackbox-exporter/ks.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1.json 3 | apiVersion: kustomize.toolkit.fluxcd.io/v1 4 | kind: Kustomization 5 | metadata: 6 | name: cluster-apps-blackbox-exporter 7 | namespace: flux-system 8 | spec: 9 | path: ./kubernetes/apps/monitoring/blackbox-exporter/app 10 | prune: true 11 | sourceRef: 12 | kind: GitRepository 13 | name: home-kubernetes 14 | wait: false 15 | interval: 30m 16 | retryInterval: 1m 17 | timeout: 5m 18 | -------------------------------------------------------------------------------- /kubernetes/apps/monitoring/gatus/app/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://json.schemastore.org/kustomization 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | namespace: monitoring 6 | resources: 7 | - ./gatus.sops.yaml 8 | - ./rbac.yaml 9 | - ./helmrelease.yaml 10 | configMapGenerator: 11 | - name: gatus-configmap 12 | files: 13 | - ./config/config.yaml 14 | generatorOptions: 15 | disableNameSuffixHash: true 16 | # annotations: 17 | # kustomize.toolkit.fluxcd.io/substitute: disabled 18 | -------------------------------------------------------------------------------- /kubernetes/apps/monitoring/gatus/ks.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1.json 3 | apiVersion: kustomize.toolkit.fluxcd.io/v1 4 | kind: Kustomization 5 | metadata: 6 | name: cluster-apps-gatus 7 | namespace: flux-system 8 | spec: 9 | dependsOn: 10 | - name: cluster-apps-cloudnative-pg-cluster 11 | path: ./kubernetes/apps/monitoring/gatus/app 12 | prune: true 13 | sourceRef: 14 | kind: GitRepository 15 | name: home-kubernetes 16 | wait: false 17 | interval: 30m 18 | retryInterval: 1m 19 | timeout: 5m 20 | -------------------------------------------------------------------------------- /kubernetes/apps/monitoring/grafana/app/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1beta1.json 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | namespace: monitoring 6 | resources: 7 | - ./secret.sops.yaml 8 | - ./helmrelease.yaml 9 | - ./dashboard 10 | -------------------------------------------------------------------------------- /kubernetes/apps/monitoring/grafana/ks.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1.json 3 | apiVersion: kustomize.toolkit.fluxcd.io/v1 4 | kind: Kustomization 5 | metadata: 6 | name: cluster-apps-grafana 7 | namespace: flux-system 8 | spec: 9 | path: ./kubernetes/apps/monitoring/grafana/app 10 | prune: true 11 | sourceRef: 12 | kind: GitRepository 13 | name: home-kubernetes 14 | wait: false 15 | interval: 30m 16 | retryInterval: 1m 17 | timeout: 5m 18 | -------------------------------------------------------------------------------- /kubernetes/apps/monitoring/karma/app/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1beta1.json 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | namespace: monitoring 6 | resources: 7 | - ./helmrelease.yaml 8 | -------------------------------------------------------------------------------- /kubernetes/apps/monitoring/kromgo/app/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1beta1.json 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | resources: 6 | - ./helmrelease.yaml 7 | configMapGenerator: 8 | - name: kromgo-configmap 9 | files: 10 | - config/config.yaml 11 | generatorOptions: 12 | disableNameSuffixHash: true 13 | annotations: 14 | kustomize.toolkit.fluxcd.io/substitute: disabled 15 | -------------------------------------------------------------------------------- /kubernetes/apps/monitoring/kube-prometheus-stack/app/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1beta1.json 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | namespace: monitoring 6 | resources: 7 | - ./helmrelease.yaml 8 | - ./scrapeconfigs 9 | # configMapGenerator: 10 | # - name: alertmanager-config-tpl 11 | # files: 12 | # - alertmanager.yaml=./config/alertmanager.yaml 13 | # generatorOptions: 14 | # disableNameSuffixHash: true 15 | -------------------------------------------------------------------------------- /kubernetes/apps/monitoring/kube-prometheus-stack/app/scrapeconfigs/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: kustomize.config.k8s.io/v1beta1 3 | kind: Kustomization 4 | namespace: monitoring 5 | resources: 6 | - ./node-exporter.yaml 7 | -------------------------------------------------------------------------------- /kubernetes/apps/monitoring/kube-prometheus-stack/app/scrapeconfigs/node-exporter.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: monitoring.coreos.com/v1alpha1 3 | kind: ScrapeConfig 4 | metadata: 5 | name: node-exporter 6 | namespace: monitoring 7 | spec: 8 | staticConfigs: 9 | - targets: 10 | - 192.168.1.2:9100 11 | metricsPath: /metrics 12 | -------------------------------------------------------------------------------- /kubernetes/apps/monitoring/kube-prometheus-stack/ks.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1.json 3 | apiVersion: kustomize.toolkit.fluxcd.io/v1 4 | kind: Kustomization 5 | metadata: 6 | name: cluster-apps-kube-prometheus-stack 7 | namespace: flux-system 8 | spec: 9 | path: ./kubernetes/apps/monitoring/kube-prometheus-stack/app 10 | prune: true 11 | sourceRef: 12 | kind: GitRepository 13 | name: home-kubernetes 14 | wait: false 15 | interval: 30m 16 | retryInterval: 1m 17 | timeout: 5m 18 | -------------------------------------------------------------------------------- /kubernetes/apps/monitoring/kube-state-metrics/app/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://json.schemastore.org/kustomization 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | namespace: monitoring 6 | resources: 7 | - ./helmrelease.yaml 8 | -------------------------------------------------------------------------------- /kubernetes/apps/monitoring/kube-state-metrics/ks.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: kustomize.toolkit.fluxcd.io/v1 3 | kind: Kustomization 4 | metadata: 5 | name: cluster-apps-kube-state-metrics 6 | namespace: flux-system 7 | spec: 8 | path: ./kubernetes/apps/monitoring/kube-state-metrics/app 9 | prune: true 10 | sourceRef: 11 | kind: GitRepository 12 | name: home-kubernetes 13 | wait: false 14 | interval: 30m 15 | retryInterval: 1m 16 | timeout: 5m 17 | -------------------------------------------------------------------------------- /kubernetes/apps/monitoring/kubernetes-dashboard/app/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1beta1.json 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | namespace: monitoring 6 | resources: 7 | - ./rbac.yaml 8 | - ./helmrelease.yaml 9 | -------------------------------------------------------------------------------- /kubernetes/apps/monitoring/loki/app/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1beta1.json 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | namespace: monitoring 6 | resources: 7 | - ./helmrelease.yaml 8 | - ./loki.sops.yaml 9 | configMapGenerator: 10 | - name: loki-alerting-rules 11 | files: 12 | - loki-alerting-rules.yaml=./rules/loki-alerting-rules.yaml 13 | generatorOptions: 14 | disableNameSuffixHash: true 15 | -------------------------------------------------------------------------------- /kubernetes/apps/monitoring/loki/ks.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1.json 3 | apiVersion: kustomize.toolkit.fluxcd.io/v1 4 | kind: Kustomization 5 | metadata: 6 | name: cluster-apps-loki 7 | namespace: flux-system 8 | spec: 9 | targetNamespace: monitoring 10 | path: ./kubernetes/apps/monitoring/loki/app 11 | prune: true 12 | sourceRef: 13 | kind: GitRepository 14 | name: home-kubernetes 15 | wait: false 16 | interval: 30m 17 | retryInterval: 1m 18 | timeout: 5m 19 | -------------------------------------------------------------------------------- /kubernetes/apps/monitoring/namespace.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: v1 3 | kind: Namespace 4 | metadata: 5 | name: monitoring 6 | labels: 7 | kustomize.toolkit.fluxcd.io/prune: disabled 8 | -------------------------------------------------------------------------------- /kubernetes/apps/monitoring/smartctl-exporter/app/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1beta1.json 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | namespace: monitoring 6 | resources: 7 | - ./helmrelease.yaml 8 | - ./prometheusrule.yaml 9 | -------------------------------------------------------------------------------- /kubernetes/apps/monitoring/smartctl-exporter/ks.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1.json 3 | apiVersion: kustomize.toolkit.fluxcd.io/v1 4 | kind: Kustomization 5 | metadata: 6 | name: cluster-apps-smartctl-exporter 7 | namespace: flux-system 8 | spec: 9 | path: ./kubernetes/apps/monitoring/smartctl-exporter/app 10 | prune: true 11 | sourceRef: 12 | kind: GitRepository 13 | name: home-kubernetes 14 | wait: false 15 | interval: 30m 16 | retryInterval: 1m 17 | timeout: 5m 18 | -------------------------------------------------------------------------------- /kubernetes/apps/networking/cloudflared/app/dnsendpoint.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: externaldns.k8s.io/v1alpha1 3 | kind: DNSEndpoint 4 | metadata: 5 | name: cloudflared 6 | namespace: networking 7 | spec: 8 | endpoints: 9 | - dnsName: "external.${SECRET_DOMAIN}" 10 | recordType: CNAME 11 | targets: ["${SECRET_CLOUDFLARE_TUNNEL_ID}.cfargotunnel.com"] 12 | -------------------------------------------------------------------------------- /kubernetes/apps/networking/cloudflared/app/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1beta1.json 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | namespace: networking 6 | resources: 7 | - ./dnsendpoint.yaml 8 | - ./secret.sops.yaml 9 | - ./helmrelease.yaml 10 | configMapGenerator: 11 | - name: cloudflared-configmap 12 | files: 13 | - ./configs/config.yaml 14 | generatorOptions: 15 | disableNameSuffixHash: true 16 | -------------------------------------------------------------------------------- /kubernetes/apps/networking/echo-server/app/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1beta1.json 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | namespace: networking 6 | resources: 7 | - ./helmrelease.yaml 8 | commonLabels: 9 | app.kubernetes.io/name: echo-server 10 | app.kubernetes.io/instance: echo-server 11 | -------------------------------------------------------------------------------- /kubernetes/apps/networking/echo-server/ks.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1.json 3 | apiVersion: kustomize.toolkit.fluxcd.io/v1 4 | kind: Kustomization 5 | metadata: 6 | name: cluster-apps-echo-server 7 | namespace: flux-system 8 | spec: 9 | path: ./kubernetes/apps/networking/echo-server/app 10 | prune: true 11 | sourceRef: 12 | kind: GitRepository 13 | name: home-kubernetes 14 | wait: false 15 | interval: 30m 16 | retryInterval: 1m 17 | timeout: 5m 18 | -------------------------------------------------------------------------------- /kubernetes/apps/networking/external-dns/app/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1beta1.json 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | namespace: networking 6 | resources: 7 | - ./dnsendpoint-crd.yaml 8 | - ./secret.sops.yaml 9 | - ./helmrelease.yaml 10 | -------------------------------------------------------------------------------- /kubernetes/apps/networking/external-dns/ks.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1.json 3 | apiVersion: kustomize.toolkit.fluxcd.io/v1 4 | kind: Kustomization 5 | metadata: 6 | name: cluster-apps-external-dns 7 | namespace: flux-system 8 | spec: 9 | path: ./kubernetes/apps/networking/external-dns/app 10 | prune: true 11 | sourceRef: 12 | kind: GitRepository 13 | name: home-kubernetes 14 | wait: false 15 | interval: 30m 16 | retryInterval: 1m 17 | timeout: 5m 18 | -------------------------------------------------------------------------------- /kubernetes/apps/networking/k8s-gateway/app/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1beta1.json 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | namespace: networking 6 | resources: 7 | - ./helmrelease.yaml 8 | -------------------------------------------------------------------------------- /kubernetes/apps/networking/k8s-gateway/ks.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1.json 3 | apiVersion: kustomize.toolkit.fluxcd.io/v1 4 | kind: Kustomization 5 | metadata: 6 | name: cluster-apps-k8s-gateway 7 | namespace: flux-system 8 | spec: 9 | path: ./kubernetes/apps/networking/k8s-gateway/app 10 | prune: true 11 | sourceRef: 12 | kind: GitRepository 13 | name: home-kubernetes 14 | wait: false 15 | interval: 30m 16 | retryInterval: 1m 17 | timeout: 5m 18 | -------------------------------------------------------------------------------- /kubernetes/apps/networking/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1beta1.json 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | resources: 6 | - ./namespace.yaml 7 | - ./cloudflared/ks.yaml 8 | # - ./echo-server/ks.yaml 9 | - ./external-dns/ks.yaml 10 | - ./k8s-gateway/ks.yaml 11 | - ./nginx/ks.yaml 12 | -------------------------------------------------------------------------------- /kubernetes/apps/networking/namespace.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: v1 3 | kind: Namespace 4 | metadata: 5 | name: networking 6 | labels: 7 | kustomize.toolkit.fluxcd.io/prune: disabled 8 | -------------------------------------------------------------------------------- /kubernetes/apps/networking/nginx/external/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1beta1.json 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | namespace: networking 6 | resources: 7 | - ./helmrelease.yaml 8 | -------------------------------------------------------------------------------- /kubernetes/apps/networking/nginx/internal/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1beta1.json 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | namespace: networking 6 | resources: 7 | - ./helmrelease.yaml 8 | # - ./diskstation.yaml 9 | # - ./plex.yaml 10 | #- ./proxmox.yaml 11 | -------------------------------------------------------------------------------- /kubernetes/apps/spark/aim/app/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1beta1.json 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | namespace: spark 6 | resources: 7 | - ./helmrelease.yaml 8 | - ./pvc.yaml 9 | -------------------------------------------------------------------------------- /kubernetes/apps/spark/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1beta1.json 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | resources: 6 | - ./namespace.yaml 7 | #- ./sparknova/ks.yaml 8 | #- ./mlflow/ks.yaml 9 | #- ./aim/ks.yaml 10 | -------------------------------------------------------------------------------- /kubernetes/apps/spark/mlflow/app/Dockerfile: -------------------------------------------------------------------------------- 1 | #docker buildx build --push --platform linux/arm64,linux/amd64 --tag clarknova9/mlflow:2.11.0 . 2 | FROM ghcr.io/mlflow/mlflow:v2.13.2 3 | 4 | RUN apt-get -y update && \ 5 | apt-get -y install python3-dev default-libmysqlclient-dev build-essential pkg-config && \ 6 | pip install --upgrade pip && \ 7 | pip install mysqlclient && \ 8 | pip install psycopg2-binary 9 | 10 | CMD ["bash"] 11 | -------------------------------------------------------------------------------- /kubernetes/apps/spark/mlflow/app/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1beta1.json 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | namespace: spark 6 | resources: 7 | - ./helmrelease.yaml 8 | - ./pvc.yaml 9 | -------------------------------------------------------------------------------- /kubernetes/apps/spark/namespace.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: v1 3 | kind: Namespace 4 | metadata: 5 | name: spark 6 | labels: 7 | kustomize.toolkit.fluxcd.io/prune: disabled 8 | -------------------------------------------------------------------------------- /kubernetes/apps/spark/sparknova/app/configs/core-site-configmap.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: ConfigMap 3 | metadata: 4 | name: spark-config 5 | data: 6 | core-site.xml: | 7 | 8 | hadoop.proxyuser.spark.hosts 9 | * 10 | 11 | 12 | hadoop.proxyuser.spark.groups 13 | * 14 | 15 | -------------------------------------------------------------------------------- /kubernetes/apps/spark/sparknova/app/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1beta1.json 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | namespace: spark 6 | resources: 7 | - ./helmrelease.yaml 8 | - ./rbac.yaml 9 | - ./spark-configmap.yaml 10 | - ./kyuubi-configmap.yaml 11 | -------------------------------------------------------------------------------- /kubernetes/apps/spark/sparknova/ks.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1.json 3 | apiVersion: kustomize.toolkit.fluxcd.io/v1 4 | kind: Kustomization 5 | metadata: 6 | name: cluster-apps-sparknova 7 | namespace: flux-system 8 | spec: 9 | path: ./kubernetes/apps/spark/sparknova/app 10 | prune: true 11 | sourceRef: 12 | kind: GitRepository 13 | name: home-kubernetes 14 | wait: false 15 | interval: 30m 16 | retryInterval: 1m 17 | timeout: 1m 18 | -------------------------------------------------------------------------------- /kubernetes/apps/system-upgrade/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1beta1.json 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | resources: 6 | - ./namespace.yaml 7 | - ./system-upgrade-controller/ks.yaml 8 | -------------------------------------------------------------------------------- /kubernetes/apps/system-upgrade/namespace.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: v1 3 | kind: Namespace 4 | metadata: 5 | name: system-upgrade 6 | labels: 7 | kustomize.toolkit.fluxcd.io/prune: disabled 8 | -------------------------------------------------------------------------------- /kubernetes/apps/system-upgrade/system-upgrade-controller/app/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1beta1.json 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | resources: 6 | # renovate: datasource=github-releases depName=rancher/system-upgrade-controller 7 | - https://github.com/rancher/system-upgrade-controller/releases/download/v0.13.4/crd.yaml 8 | - helmrelease.yaml 9 | - rbac.yaml 10 | -------------------------------------------------------------------------------- /kubernetes/apps/system-upgrade/system-upgrade-controller/app/rbac.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: rbac.authorization.k8s.io/v1 3 | kind: ClusterRoleBinding 4 | metadata: 5 | name: system-upgrade 6 | roleRef: 7 | apiGroup: rbac.authorization.k8s.io 8 | kind: ClusterRole 9 | name: cluster-admin 10 | subjects: 11 | - kind: ServiceAccount 12 | name: system-upgrade 13 | namespace: system-upgrade 14 | -------------------------------------------------------------------------------- /kubernetes/apps/system-upgrade/system-upgrade-controller/plans/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1beta1.json 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | resources: 6 | - ./server.yaml 7 | - ./agent.yaml 8 | -------------------------------------------------------------------------------- /kubernetes/flux/config/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1beta1.json 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | resources: 6 | - ./flux.yaml 7 | - ./cluster.yaml 8 | -------------------------------------------------------------------------------- /kubernetes/flux/repositories/git/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1beta1.json 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | resources: 6 | - ./local-path-provisioner.yaml 7 | -------------------------------------------------------------------------------- /kubernetes/flux/repositories/git/local-path-provisioner.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: source.toolkit.fluxcd.io/v1 3 | kind: GitRepository 4 | metadata: 5 | name: local-path-provisioner 6 | namespace: flux-system 7 | spec: 8 | interval: 30m 9 | url: https://github.com/rancher/local-path-provisioner 10 | ref: 11 | tag: v0.0.27 12 | ignore: | 13 | # exclude all 14 | /* 15 | # include kubernetes directory 16 | !/deploy/chart/local-path-provisioner 17 | -------------------------------------------------------------------------------- /kubernetes/flux/repositories/helm/actions-runner-controller-charts.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/helmrepository-source-v1beta2.json 3 | apiVersion: source.toolkit.fluxcd.io/v1 4 | kind: HelmRepository 5 | metadata: 6 | name: actions-runner-controller 7 | namespace: flux-system 8 | spec: 9 | type: oci 10 | interval: 1h 11 | url: oci://ghcr.io/actions/actions-runner-controller-charts 12 | -------------------------------------------------------------------------------- /kubernetes/flux/repositories/helm/appsmith.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: source.toolkit.fluxcd.io/v1 3 | kind: HelmRepository 4 | metadata: 5 | name: appsmith 6 | namespace: flux-system 7 | spec: 8 | interval: 10m0s 9 | url: http://helm.appsmith.com 10 | -------------------------------------------------------------------------------- /kubernetes/flux/repositories/helm/authelia.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: source.toolkit.fluxcd.io/v1 3 | kind: HelmRepository 4 | metadata: 5 | name: authelia 6 | namespace: flux-system 7 | spec: 8 | interval: 10m0s 9 | url: https://charts.authelia.com 10 | -------------------------------------------------------------------------------- /kubernetes/flux/repositories/helm/backube.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: source.toolkit.fluxcd.io/v1 3 | kind: HelmRepository 4 | metadata: 5 | name: backube 6 | namespace: flux-system 7 | spec: 8 | interval: 2h 9 | url: https://backube.github.io/helm-charts/ 10 | -------------------------------------------------------------------------------- /kubernetes/flux/repositories/helm/bitnami.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: source.toolkit.fluxcd.io/v1 3 | kind: HelmRepository 4 | metadata: 5 | name: bitnami 6 | namespace: flux-system 7 | spec: 8 | type: oci 9 | interval: 5m 10 | url: oci://registry-1.docker.io/bitnamicharts 11 | -------------------------------------------------------------------------------- /kubernetes/flux/repositories/helm/bjw-s.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/helmrepository-source-v1beta2.json 3 | apiVersion: source.toolkit.fluxcd.io/v1 4 | kind: HelmRepository 5 | metadata: 6 | name: bjw-s 7 | namespace: flux-system 8 | spec: 9 | type: oci 10 | interval: 5m 11 | url: oci://ghcr.io/bjw-s/helm 12 | -------------------------------------------------------------------------------- /kubernetes/flux/repositories/helm/cilium.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: source.toolkit.fluxcd.io/v1 3 | kind: HelmRepository 4 | metadata: 5 | name: cilium 6 | namespace: flux-system 7 | spec: 8 | interval: 1h 9 | url: https://helm.cilium.io 10 | -------------------------------------------------------------------------------- /kubernetes/flux/repositories/helm/cloudnative-pg.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: source.toolkit.fluxcd.io/v1 3 | kind: HelmRepository 4 | metadata: 5 | name: cloudnative-pg 6 | namespace: flux-system 7 | spec: 8 | interval: 2h 9 | url: https://cloudnative-pg.github.io/charts 10 | -------------------------------------------------------------------------------- /kubernetes/flux/repositories/helm/coredns.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: source.toolkit.fluxcd.io/v1 3 | kind: HelmRepository 4 | metadata: 5 | name: coredns 6 | namespace: flux-system 7 | spec: 8 | interval: 1h 9 | url: https://coredns.github.io/helm 10 | -------------------------------------------------------------------------------- /kubernetes/flux/repositories/helm/couchdb.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: source.toolkit.fluxcd.io/v1 3 | kind: HelmRepository 4 | metadata: 5 | name: couchdb 6 | namespace: flux-system 7 | spec: 8 | interval: 10m0s 9 | url: https://apache.github.io/couchdb-helm 10 | -------------------------------------------------------------------------------- /kubernetes/flux/repositories/helm/csi-driver-nfs.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: source.toolkit.fluxcd.io/v1 3 | kind: HelmRepository 4 | metadata: 5 | name: csi-driver-nfs 6 | namespace: flux-system 7 | spec: 8 | interval: 1h 9 | url: https://raw.githubusercontent.com/kubernetes-csi/csi-driver-nfs/master/charts 10 | -------------------------------------------------------------------------------- /kubernetes/flux/repositories/helm/democratic-csi.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: source.toolkit.fluxcd.io/v1 3 | kind: HelmRepository 4 | metadata: 5 | name: democratic-csi 6 | namespace: flux-system 7 | spec: 8 | interval: 1h 9 | url: https://democratic-csi.github.io/charts/ 10 | -------------------------------------------------------------------------------- /kubernetes/flux/repositories/helm/external-dns.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: source.toolkit.fluxcd.io/v1 3 | kind: HelmRepository 4 | metadata: 5 | name: external-dns 6 | namespace: flux-system 7 | spec: 8 | interval: 1h 9 | url: https://kubernetes-sigs.github.io/external-dns 10 | -------------------------------------------------------------------------------- /kubernetes/flux/repositories/helm/grafana.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: source.toolkit.fluxcd.io/v1 3 | kind: HelmRepository 4 | metadata: 5 | name: grafana 6 | namespace: flux-system 7 | spec: 8 | interval: 1h 9 | url: https://grafana.github.io/helm-charts 10 | -------------------------------------------------------------------------------- /kubernetes/flux/repositories/helm/hajimari.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: source.toolkit.fluxcd.io/v1 3 | kind: HelmRepository 4 | metadata: 5 | name: hajimari 6 | namespace: flux-system 7 | spec: 8 | interval: 1h 9 | url: https://hajimari.io 10 | -------------------------------------------------------------------------------- /kubernetes/flux/repositories/helm/headlamp.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/helmrepository-source-v1beta2.json 3 | apiVersion: source.toolkit.fluxcd.io/v1 4 | kind: HelmRepository 5 | metadata: 6 | name: headlamp 7 | namespace: flux-system 8 | spec: 9 | interval: 2h 10 | url: https://headlamp-k8s.github.io/headlamp/ 11 | -------------------------------------------------------------------------------- /kubernetes/flux/repositories/helm/influxdata.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: source.toolkit.fluxcd.io/v1 3 | kind: HelmRepository 4 | metadata: 5 | name: influxdata 6 | namespace: flux-system 7 | spec: 8 | interval: 30m 9 | url: https://helm.influxdata.com 10 | timeout: 3m 11 | -------------------------------------------------------------------------------- /kubernetes/flux/repositories/helm/ingress-nginx.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: source.toolkit.fluxcd.io/v1 3 | kind: HelmRepository 4 | metadata: 5 | name: ingress-nginx 6 | namespace: flux-system 7 | spec: 8 | interval: 1h 9 | url: https://kubernetes.github.io/ingress-nginx 10 | -------------------------------------------------------------------------------- /kubernetes/flux/repositories/helm/intel.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: source.toolkit.fluxcd.io/v1 3 | kind: HelmRepository 4 | metadata: 5 | name: intel 6 | namespace: flux-system 7 | spec: 8 | interval: 2h 9 | url: https://intel.github.io/helm-charts 10 | -------------------------------------------------------------------------------- /kubernetes/flux/repositories/helm/jetstack.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: source.toolkit.fluxcd.io/v1 3 | kind: HelmRepository 4 | metadata: 5 | name: jetstack 6 | namespace: flux-system 7 | spec: 8 | interval: 1h 9 | url: https://charts.jetstack.io/ 10 | -------------------------------------------------------------------------------- /kubernetes/flux/repositories/helm/jupyterhub.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: source.toolkit.fluxcd.io/v1 3 | kind: HelmRepository 4 | metadata: 5 | name: jupyterhub 6 | namespace: flux-system 7 | spec: 8 | interval: 1h 9 | url: https://jupyterhub.github.io/helm-chart/ 10 | -------------------------------------------------------------------------------- /kubernetes/flux/repositories/helm/k8s-gateway.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: source.toolkit.fluxcd.io/v1 3 | kind: HelmRepository 4 | metadata: 5 | name: k8s-gateway 6 | namespace: flux-system 7 | spec: 8 | interval: 1h 9 | url: https://ori-edge.github.io/k8s_gateway/ 10 | -------------------------------------------------------------------------------- /kubernetes/flux/repositories/helm/kubernetes-dashboard.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/helmrepository-source-v1beta2.json 3 | apiVersion: source.toolkit.fluxcd.io/v1 4 | kind: HelmRepository 5 | metadata: 6 | name: kubernetes-dashboard 7 | namespace: flux-system 8 | spec: 9 | interval: 1h 10 | url: https://kubernetes.github.io/dashboard/ 11 | -------------------------------------------------------------------------------- /kubernetes/flux/repositories/helm/longhorn.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: source.toolkit.fluxcd.io/v1 3 | kind: HelmRepository 4 | metadata: 5 | name: longhorn 6 | namespace: flux-system 7 | spec: 8 | interval: 2h 9 | url: https://charts.longhorn.io 10 | -------------------------------------------------------------------------------- /kubernetes/flux/repositories/helm/metrics-server.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: source.toolkit.fluxcd.io/v1 3 | kind: HelmRepository 4 | metadata: 5 | name: metrics-server 6 | namespace: flux-system 7 | spec: 8 | interval: 1h 9 | url: https://kubernetes-sigs.github.io/metrics-server 10 | -------------------------------------------------------------------------------- /kubernetes/flux/repositories/helm/node-feature-discovery.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: source.toolkit.fluxcd.io/v1 3 | kind: HelmRepository 4 | metadata: 5 | name: node-feature-discovery 6 | namespace: flux-system 7 | spec: 8 | interval: 2h 9 | url: https://kubernetes-sigs.github.io/node-feature-discovery/charts 10 | -------------------------------------------------------------------------------- /kubernetes/flux/repositories/helm/nvidia.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: source.toolkit.fluxcd.io/v1 3 | kind: HelmRepository 4 | metadata: 5 | name: nvidia-charts 6 | namespace: flux-system 7 | spec: 8 | interval: 2h 9 | url: https://nvidia.github.io/k8s-device-plugin 10 | -------------------------------------------------------------------------------- /kubernetes/flux/repositories/helm/parseable.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: source.toolkit.fluxcd.io/v1 3 | kind: HelmRepository 4 | metadata: 5 | name: parseable 6 | namespace: flux-system 7 | spec: 8 | interval: 2h 9 | url: https://charts.parseable.com 10 | -------------------------------------------------------------------------------- /kubernetes/flux/repositories/helm/piraeus.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: source.toolkit.fluxcd.io/v1 3 | kind: HelmRepository 4 | metadata: 5 | name: piraeus 6 | namespace: flux-system 7 | spec: 8 | interval: 2h 9 | url: https://piraeus.io/helm-charts/ 10 | -------------------------------------------------------------------------------- /kubernetes/flux/repositories/helm/prometheus-community.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: source.toolkit.fluxcd.io/v1 3 | kind: HelmRepository 4 | metadata: 5 | name: prometheus-community 6 | namespace: flux-system 7 | spec: 8 | type: oci 9 | interval: 5m 10 | url: oci://ghcr.io/prometheus-community/charts 11 | -------------------------------------------------------------------------------- /kubernetes/flux/repositories/helm/runix.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: source.toolkit.fluxcd.io/v1 3 | kind: HelmRepository 4 | metadata: 5 | name: runix 6 | namespace: flux-system 7 | spec: 8 | interval: 10h 9 | url: https://helm.runix.net 10 | -------------------------------------------------------------------------------- /kubernetes/flux/repositories/helm/spark-operator.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: source.toolkit.fluxcd.io/v1 3 | kind: HelmRepository 4 | metadata: 5 | name: spark-operator 6 | namespace: flux-system 7 | spec: 8 | interval: 1h 9 | url: https://googlecloudplatform.github.io/spark-on-k8s-operator 10 | -------------------------------------------------------------------------------- /kubernetes/flux/repositories/helm/stakater.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: source.toolkit.fluxcd.io/v1 3 | kind: HelmRepository 4 | metadata: 5 | name: stakater 6 | namespace: flux-system 7 | spec: 8 | interval: 1h 9 | url: https://stakater.github.io/stakater-charts 10 | -------------------------------------------------------------------------------- /kubernetes/flux/repositories/helm/stevehipwell.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://kubernetes-schemas.pages.dev/source.toolkit.fluxcd.io/helmrepository_v1beta2.json 3 | apiVersion: source.toolkit.fluxcd.io/v1 4 | kind: HelmRepository 5 | metadata: 6 | name: stevehipwell 7 | namespace: flux-system 8 | spec: 9 | type: oci 10 | interval: 5m 11 | url: oci://ghcr.io/stevehipwell/helm-charts 12 | -------------------------------------------------------------------------------- /kubernetes/flux/repositories/helm/superset.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: source.toolkit.fluxcd.io/v1 3 | kind: HelmRepository 4 | metadata: 5 | name: superset 6 | namespace: flux-system 7 | spec: 8 | interval: 1h 9 | url: https://apache.github.io/superset 10 | -------------------------------------------------------------------------------- /kubernetes/flux/repositories/helm/tooljet.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: source.toolkit.fluxcd.io/v1 3 | kind: HelmRepository 4 | metadata: 5 | name: tooljet 6 | namespace: flux-system 7 | spec: 8 | interval: 10m0s 9 | url: https://tooljet.github.io/helm-charts 10 | -------------------------------------------------------------------------------- /kubernetes/flux/repositories/helm/tyzbit.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: source.toolkit.fluxcd.io/v1 2 | kind: HelmRepository 3 | metadata: 4 | name: tyzbit 5 | namespace: flux-system 6 | spec: 7 | interval: 10m 8 | timeout: 1m0s 9 | url: https://tyzbit.github.io/helm-charts/ 10 | -------------------------------------------------------------------------------- /kubernetes/flux/repositories/helm/vector.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: source.toolkit.fluxcd.io/v1 3 | kind: HelmRepository 4 | metadata: 5 | name: vector 6 | namespace: flux-system 7 | spec: 8 | interval: 30m 9 | url: https://helm.vector.dev 10 | -------------------------------------------------------------------------------- /kubernetes/flux/repositories/helm/weave-gitops.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: source.toolkit.fluxcd.io/v1 3 | kind: HelmRepository 4 | metadata: 5 | name: weave-gitops 6 | namespace: flux-system 7 | spec: 8 | type: oci 9 | interval: 5m 10 | url: oci://ghcr.io/weaveworks/charts 11 | -------------------------------------------------------------------------------- /kubernetes/flux/repositories/kustomization.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1beta1.json 3 | apiVersion: kustomize.config.k8s.io/v1beta1 4 | kind: Kustomization 5 | resources: 6 | - ./git 7 | - ./helm 8 | # - ./oci 9 | -------------------------------------------------------------------------------- /kubernetes/flux/repositories/oci/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clarknova99/home-cluster/c84859ab0e0ab72c0b303b9c021dd29c8dfdb064/kubernetes/flux/repositories/oci/.gitkeep -------------------------------------------------------------------------------- /kubernetes/flux/vars/cluster-settings-user.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: v1 3 | kind: ConfigMap 4 | metadata: 5 | name: cluster-settings-user 6 | namespace: flux-system 7 | data: 8 | SVC_LOKI_ADDR: 192.168.2.46 9 | SVC_SYSLOG_ADDR: 192.168.2.44 10 | SVC_FRIGATE_ADDR: 192.168.2.75 11 | -------------------------------------------------------------------------------- /kubernetes/flux/vars/cluster-settings.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: v1 3 | kind: ConfigMap 4 | metadata: 5 | name: cluster-settings 6 | namespace: flux-system 7 | data: 8 | TIMEZONE: "America/New_York" 9 | COREDNS_ADDR: "10.43.0.10" 10 | KUBE_VIP_ADDR: "192.168.2.2" 11 | CLUSTER_CIDR: "10.42.0.0/16" 12 | SERVICE_CIDR: "10.43.0.0/16" 13 | NODE_CIDR: "192.168.2.0/24" 14 | -------------------------------------------------------------------------------- /kubernetes/flux/vars/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | resources: 4 | - ./cluster-settings.yaml 5 | - ./cluster-settings-user.yaml 6 | - ./cluster-secrets.sops.yaml 7 | - ./cluster-secrets-user.sops.yaml 8 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | ansible==11.3.0 2 | ansible-lint==25.1.3 3 | bcrypt==4.3.0 4 | jmespath==1.0.1 5 | netaddr==1.3.0 6 | openshift==0.13.2 7 | passlib==1.7.4 8 | -------------------------------------------------------------------------------- /requirements.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | collections: 3 | - name: ansible.posix 4 | version: 2.0.0 5 | - name: ansible.utils 6 | version: 4.1.0 7 | - name: community.general 8 | version: 10.4.0 9 | - name: community.sops 10 | version: 2.0.3 11 | - name: kubernetes.core 12 | version: 4.0.0 13 | roles: 14 | - name: xanmanning.k3s 15 | version: v3.4.4 16 | -------------------------------------------------------------------------------- /utils/dnsutils.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: v1 3 | kind: Pod 4 | metadata: 5 | name: dnsutils 6 | namespace: default 7 | spec: 8 | containers: 9 | - name: dnsutils 10 | image: registry.k8s.io/e2e-test-images/jessie-dnsutils:1.3 11 | command: 12 | - sleep 13 | - "infinity" 14 | imagePullPolicy: IfNotPresent 15 | restartPolicy: Always 16 | ... 17 | -------------------------------------------------------------------------------- /utils/template.sops.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Secret 3 | metadata: 4 | name: template-secret 5 | namespace: default 6 | ## sops --encrypt --in-place ./kubernetes/apps/default/lldap/app/lldap.sops.yaml 7 | ## sops --decrypt ./kubernetes/apps/default/lldap/app/lldap.sops.yaml | kubectl apply -f - 8 | stringData: 9 | SECRET_KEY: TODO 10 | SECRET_KEY2: TODO 11 | --------------------------------------------------------------------------------