├── .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 |
--------------------------------------------------------------------------------