From fe41cf6ea558fedaf63cb93d89ecced425f6e4e6 Mon Sep 17 00:00:00 2001 From: Devin Buhl Date: Wed, 5 Jul 2023 21:17:10 -0400 Subject: [PATCH] feat: move kubernetes dir into templates to support jinja2 across all files (#831) --- .github/renovate.json5 | 16 +++- README.md | 10 ++- Taskfile.yaml | 1 - ansible/playbooks/tasks/kubeconfig.yaml | 9 +-- template/configure.yaml | 81 ++----------------- template/defaults/{extras.yaml => main.yaml} | 0 template/defaults/templates.yaml | 44 ---------- template/tasks/ansible/main.yaml | 51 ++++++++++++ template/tasks/kubernetes/main.yaml | 58 +++++++++++++ template/tasks/sops/main.yaml | 13 +++ .../{verify_age.yaml => validation/age.yaml} | 0 .../{verify_cli.yaml => validation/cli.yaml} | 0 .../cloudflare.yaml} | 0 .../github.yaml} | 0 template/tasks/validation/main.yaml | 6 ++ .../{verify_net.yaml => validation/net.yaml} | 0 .../cert-manager/app/helmrelease.yaml.j2 | 0 .../cert-manager/app/kustomization.yaml.j2 | 0 .../cert-manager/app/prometheusrule.yaml.j2 | 42 +++++----- .../cert-manager/issuers/issuers.yaml.j2 | 0 .../issuers/kustomization.yaml.j2 | 0 .../cert-manager/issuers/secret.sops.yaml.j2} | 0 .../apps/cert-manager/cert-manager/ks.yaml.j2 | 0 .../apps/cert-manager/kustomization.yaml.j2 | 0 .../apps/cert-manager/namespace.yaml.j2 | 0 .../echo-server/app/helmrelease.yaml.j2 | 3 +- .../echo-server/app/kustomization.yaml.j2 | 0 .../apps/default/echo-server/ks.yaml.j2 | 0 .../default/hajimari/app/helmrelease.yaml.j2 | 0 .../hajimari/app/kustomization.yaml.j2 | 0 .../apps/default/hajimari/ks.yaml.j2 | 0 .../apps/default/kustomization.yaml.j2 | 0 .../kubernetes/apps/default/namespace.yaml.j2 | 0 .../apps/flux-system/addons/ks.yaml.j2 | 0 .../addons/webhooks/github/ingress.yaml.j2 | 0 .../webhooks/github/kustomization.yaml.j2 | 0 .../addons/webhooks/github/receiver.yaml.j2 | 0 .../webhooks/github/secret.sops.yaml.j2} | 0 .../addons/webhooks/kustomization.yaml.j2 | 0 .../apps/flux-system/kustomization.yaml.j2 | 0 .../apps/flux-system/namespace.yaml.j2 | 0 .../weave-gitops/app/helmrelease.yaml.j2 | 0 .../weave-gitops/app/kustomization.yaml.j2 | 0 .../weave-gitops/app/secret.sops.yaml.j2} | 0 .../apps/flux-system/weave-gitops/ks.yaml.j2 | 0 .../kube-system/cilium/app/cilium-l2.yaml.j2 | 2 +- .../cilium/app/helmrelease.yaml.j2 | 4 +- .../cilium/app/kustomization.yaml.j2 | 0 .../apps/kube-system/cilium/ks.yaml.j2 | 0 .../coredns/app/helmrelease.yaml.j2 | 2 +- .../coredns/app/kustomization.yaml.j2 | 0 .../apps/kube-system/coredns/ks.yaml.j2 | 0 .../apps/kube-system/kustomization.yaml.j2 | 0 .../app/helmrelease.yaml.j2 | 0 .../app/kustomization.yaml.j2 | 0 .../local-path-provisioner/ks.yaml.j2 | 0 .../metrics-server/app/helmrelease.yaml.j2 | 0 .../metrics-server/app/kustomization.yaml.j2 | 0 .../kube-system/metrics-server/ks.yaml.j2 | 0 .../apps/kube-system/namespace.yaml.j2 | 0 .../reloader/app/helmrelease.yaml.j2 | 0 .../reloader/app/kustomization.yaml.j2 | 0 .../apps/kube-system/reloader/ks.yaml.j2 | 0 .../grafana/app/helmrelease.yaml.j2 | 0 .../grafana/app/kustomization.yaml.j2 | 0 .../grafana/app/secret.sops.yaml.j2} | 0 .../apps/monitoring/grafana/ks.yaml.j2 | 0 .../app/helmrelease.yaml.j2} | 0 .../app/kustomization.yaml.j2 | 0 .../kube-prometheus-stack/ks.yaml.j2 | 0 .../app/helmrelease.yaml.j2 | 0 .../app/kustomization.yaml.j2 | 0 .../kubernetes-dashboard/app/rbac.yaml.j2 | 0 .../kubernetes-dashboard/ks.yaml.j2 | 0 .../apps/monitoring/kustomization.yaml.j2 | 0 .../apps/monitoring/namespace.yaml.j2 | 0 .../cloudflared/app/configs/config.yaml.j2 | 0 .../cloudflared/app/dnsendpoint.yaml.j2 | 0 .../cloudflared/app/helmrelease.yaml.j2 | 0 .../cloudflared/app/kustomization.yaml.j2 | 0 .../cloudflared/app/secret.sops.yaml.j2} | 0 .../apps/networking/cloudflared/ks.yaml.j2 | 0 .../external-dns/app/dnsendpoint-crd.yaml.j2 | 0 .../external-dns/app/helmrelease.yaml.j2 | 0 .../external-dns/app/kustomization.yaml.j2 | 0 .../external-dns/app/secret.sops.yaml.j2} | 0 .../apps/networking/external-dns/ks.yaml.j2 | 0 .../ingress-nginx/app/helmrelease.yaml.j2 | 2 +- .../ingress-nginx/app/kustomization.yaml.j2 | 0 .../certificates/kustomization.yaml.j2 | 0 .../certificates/production.yaml.j2 | 0 .../certificates/staging.yaml.j2 | 0 .../apps/networking/ingress-nginx/ks.yaml.j2 | 0 .../k8s-gateway/app/helmrelease.yaml.j2 | 2 +- .../k8s-gateway/app/kustomization.yaml.j2 | 0 .../apps/networking/k8s-gateway/ks.yaml.j2 | 0 .../apps/networking/kustomization.yaml.j2 | 0 .../apps/networking/namespace.yaml.j2 | 0 .../apps/system-upgrade/kustomization.yaml.j2 | 0 .../apps/system-upgrade/namespace.yaml.j2 | 0 .../app/kustomization.yaml.j2 | 0 .../system-upgrade-controller/ks.yaml.j2 | 0 .../plans/agent.yaml.j2 | 0 .../plans/kustomization.yaml.j2 | 0 .../plans/server.yaml.j2 | 0 .../bootstrap/kustomization.yaml.j2 | 0 .../kubernetes/cluster-settings.yaml.j2 | 15 ---- .../templates/kubernetes/flux/apps.yaml.j2 | 0 .../{ => flux/config}/cluster.yaml.j2 | 0 .../kubernetes/flux/config/flux.yaml.j2 | 0 .../flux/config/kustomization.yaml.j2 | 0 .../repositories/git/kustomization.yaml.j2 | 0 .../git/local-path-provisioner.yaml.j2 | 0 .../flux/repositories/helm/bitnami.yaml.j2 | 0 .../flux/repositories/helm/bjw-s.yaml.j2 | 0 .../flux/repositories/helm/cilium.yaml.j2 | 0 .../flux/repositories/helm/coredns.yaml.j2 | 0 .../repositories/helm/external-dns.yaml.j2 | 0 .../flux/repositories/helm/grafana.yaml.j2 | 0 .../flux/repositories/helm/hajimari.yaml.j2 | 0 .../repositories/helm/ingress-nginx.yaml.j2 | 0 .../flux/repositories/helm/jetstack.yaml.j2 | 0 .../repositories/helm/k8s-gateway.yaml.j2 | 0 .../helm/kubernetes-dashboard.yaml.j2 | 0 .../repositories/helm/kustomization.yaml.j2 | 0 .../repositories/helm/metrics-server.yaml.j2 | 0 .../helm/prometheus-community.yaml.j2 | 0 .../flux/repositories/helm/stakater.yaml.j2 | 0 .../repositories/helm/weave-gitops.yaml.j2 | 0 .../flux/repositories/kustomization.yaml.j2 | 0 .../flux/repositories/oci/.gitkeep | 0 .../vars}/cluster-secrets.sops.yaml.j2 | 0 .../flux/vars/cluster-settings.yaml.j2 | 8 ++ .../flux/vars/kustomization.yaml.j2 | 0 134 files changed, 192 insertions(+), 177 deletions(-) rename template/defaults/{extras.yaml => main.yaml} (100%) delete mode 100644 template/defaults/templates.yaml create mode 100644 template/tasks/ansible/main.yaml create mode 100644 template/tasks/kubernetes/main.yaml create mode 100644 template/tasks/sops/main.yaml rename template/tasks/{verify_age.yaml => validation/age.yaml} (100%) rename template/tasks/{verify_cli.yaml => validation/cli.yaml} (100%) rename template/tasks/{verify_cloudflare.yaml => validation/cloudflare.yaml} (100%) rename template/tasks/{verify_github.yaml => validation/github.yaml} (100%) create mode 100644 template/tasks/validation/main.yaml rename template/tasks/{verify_net.yaml => validation/net.yaml} (100%) rename kubernetes/apps/cert-manager/cert-manager/app/helmrelease.yaml => template/templates/kubernetes/apps/cert-manager/cert-manager/app/helmrelease.yaml.j2 (100%) rename kubernetes/apps/cert-manager/cert-manager/app/kustomization.yaml => template/templates/kubernetes/apps/cert-manager/cert-manager/app/kustomization.yaml.j2 (100%) rename kubernetes/apps/cert-manager/cert-manager/app/prometheusrule.yaml => template/templates/kubernetes/apps/cert-manager/cert-manager/app/prometheusrule.yaml.j2 (56%) rename kubernetes/apps/cert-manager/cert-manager/issuers/issuers.yaml => template/templates/kubernetes/apps/cert-manager/cert-manager/issuers/issuers.yaml.j2 (100%) rename kubernetes/apps/cert-manager/cert-manager/issuers/kustomization.yaml => template/templates/kubernetes/apps/cert-manager/cert-manager/issuers/kustomization.yaml.j2 (100%) rename template/templates/kubernetes/{cert-manager-secret.sops.yaml.j2 => apps/cert-manager/cert-manager/issuers/secret.sops.yaml.j2} (100%) rename kubernetes/apps/cert-manager/cert-manager/ks.yaml => template/templates/kubernetes/apps/cert-manager/cert-manager/ks.yaml.j2 (100%) rename kubernetes/apps/cert-manager/kustomization.yaml => template/templates/kubernetes/apps/cert-manager/kustomization.yaml.j2 (100%) rename kubernetes/apps/cert-manager/namespace.yaml => template/templates/kubernetes/apps/cert-manager/namespace.yaml.j2 (100%) rename kubernetes/apps/default/echo-server/app/helmrelease.yaml => template/templates/kubernetes/apps/default/echo-server/app/helmrelease.yaml.j2 (93%) rename kubernetes/apps/default/echo-server/app/kustomization.yaml => template/templates/kubernetes/apps/default/echo-server/app/kustomization.yaml.j2 (100%) rename kubernetes/apps/default/echo-server/ks.yaml => template/templates/kubernetes/apps/default/echo-server/ks.yaml.j2 (100%) rename kubernetes/apps/default/hajimari/app/helmrelease.yaml => template/templates/kubernetes/apps/default/hajimari/app/helmrelease.yaml.j2 (100%) rename kubernetes/apps/default/hajimari/app/kustomization.yaml => template/templates/kubernetes/apps/default/hajimari/app/kustomization.yaml.j2 (100%) rename kubernetes/apps/default/hajimari/ks.yaml => template/templates/kubernetes/apps/default/hajimari/ks.yaml.j2 (100%) rename kubernetes/apps/default/kustomization.yaml => template/templates/kubernetes/apps/default/kustomization.yaml.j2 (100%) rename kubernetes/apps/default/namespace.yaml => template/templates/kubernetes/apps/default/namespace.yaml.j2 (100%) rename kubernetes/apps/flux-system/addons/ks.yaml => template/templates/kubernetes/apps/flux-system/addons/ks.yaml.j2 (100%) rename kubernetes/apps/flux-system/addons/webhooks/github/ingress.yaml => template/templates/kubernetes/apps/flux-system/addons/webhooks/github/ingress.yaml.j2 (100%) rename kubernetes/apps/flux-system/addons/webhooks/github/kustomization.yaml => template/templates/kubernetes/apps/flux-system/addons/webhooks/github/kustomization.yaml.j2 (100%) rename kubernetes/apps/flux-system/addons/webhooks/github/receiver.yaml => template/templates/kubernetes/apps/flux-system/addons/webhooks/github/receiver.yaml.j2 (100%) rename template/templates/kubernetes/{github-webhook-token-secret.sops.yaml.j2 => apps/flux-system/addons/webhooks/github/secret.sops.yaml.j2} (100%) rename kubernetes/apps/flux-system/addons/webhooks/kustomization.yaml => template/templates/kubernetes/apps/flux-system/addons/webhooks/kustomization.yaml.j2 (100%) rename kubernetes/apps/flux-system/kustomization.yaml => template/templates/kubernetes/apps/flux-system/kustomization.yaml.j2 (100%) rename kubernetes/apps/flux-system/namespace.yaml => template/templates/kubernetes/apps/flux-system/namespace.yaml.j2 (100%) rename kubernetes/apps/flux-system/weave-gitops/app/helmrelease.yaml => template/templates/kubernetes/apps/flux-system/weave-gitops/app/helmrelease.yaml.j2 (100%) rename kubernetes/apps/flux-system/weave-gitops/app/kustomization.yaml => template/templates/kubernetes/apps/flux-system/weave-gitops/app/kustomization.yaml.j2 (100%) rename template/templates/kubernetes/{weave-gitops-secret.sops.yaml.j2 => apps/flux-system/weave-gitops/app/secret.sops.yaml.j2} (100%) rename kubernetes/apps/flux-system/weave-gitops/ks.yaml => template/templates/kubernetes/apps/flux-system/weave-gitops/ks.yaml.j2 (100%) rename kubernetes/apps/kube-system/cilium/app/cilium-l2.yaml => template/templates/kubernetes/apps/kube-system/cilium/app/cilium-l2.yaml.j2 (92%) rename kubernetes/apps/kube-system/cilium/app/helmrelease.yaml => template/templates/kubernetes/apps/kube-system/cilium/app/helmrelease.yaml.j2 (94%) rename kubernetes/apps/kube-system/cilium/app/kustomization.yaml => template/templates/kubernetes/apps/kube-system/cilium/app/kustomization.yaml.j2 (100%) rename kubernetes/apps/kube-system/cilium/ks.yaml => template/templates/kubernetes/apps/kube-system/cilium/ks.yaml.j2 (100%) rename kubernetes/apps/kube-system/coredns/app/helmrelease.yaml => template/templates/kubernetes/apps/kube-system/coredns/app/helmrelease.yaml.j2 (97%) rename kubernetes/apps/kube-system/coredns/app/kustomization.yaml => template/templates/kubernetes/apps/kube-system/coredns/app/kustomization.yaml.j2 (100%) rename kubernetes/apps/kube-system/coredns/ks.yaml => template/templates/kubernetes/apps/kube-system/coredns/ks.yaml.j2 (100%) rename kubernetes/apps/kube-system/kustomization.yaml => template/templates/kubernetes/apps/kube-system/kustomization.yaml.j2 (100%) rename kubernetes/apps/kube-system/local-path-provisioner/app/helmrelease.yaml => template/templates/kubernetes/apps/kube-system/local-path-provisioner/app/helmrelease.yaml.j2 (100%) rename kubernetes/apps/kube-system/local-path-provisioner/app/kustomization.yaml => template/templates/kubernetes/apps/kube-system/local-path-provisioner/app/kustomization.yaml.j2 (100%) rename kubernetes/apps/kube-system/local-path-provisioner/ks.yaml => template/templates/kubernetes/apps/kube-system/local-path-provisioner/ks.yaml.j2 (100%) rename kubernetes/apps/kube-system/metrics-server/app/helmrelease.yaml => template/templates/kubernetes/apps/kube-system/metrics-server/app/helmrelease.yaml.j2 (100%) rename kubernetes/apps/kube-system/metrics-server/app/kustomization.yaml => template/templates/kubernetes/apps/kube-system/metrics-server/app/kustomization.yaml.j2 (100%) rename kubernetes/apps/kube-system/metrics-server/ks.yaml => template/templates/kubernetes/apps/kube-system/metrics-server/ks.yaml.j2 (100%) rename kubernetes/apps/kube-system/namespace.yaml => template/templates/kubernetes/apps/kube-system/namespace.yaml.j2 (100%) rename kubernetes/apps/kube-system/reloader/app/helmrelease.yaml => template/templates/kubernetes/apps/kube-system/reloader/app/helmrelease.yaml.j2 (100%) rename kubernetes/apps/kube-system/reloader/app/kustomization.yaml => template/templates/kubernetes/apps/kube-system/reloader/app/kustomization.yaml.j2 (100%) rename kubernetes/apps/kube-system/reloader/ks.yaml => template/templates/kubernetes/apps/kube-system/reloader/ks.yaml.j2 (100%) rename kubernetes/apps/monitoring/grafana/app/helmrelease.yaml => template/templates/kubernetes/apps/monitoring/grafana/app/helmrelease.yaml.j2 (100%) rename kubernetes/apps/monitoring/grafana/app/kustomization.yaml => template/templates/kubernetes/apps/monitoring/grafana/app/kustomization.yaml.j2 (100%) rename template/templates/kubernetes/{grafana-admin-secret.sops.yaml.j2 => apps/monitoring/grafana/app/secret.sops.yaml.j2} (100%) rename kubernetes/apps/monitoring/grafana/ks.yaml => template/templates/kubernetes/apps/monitoring/grafana/ks.yaml.j2 (100%) rename template/templates/kubernetes/{kube-prometheus-stack-helmrelease.yaml.j2 => apps/monitoring/kube-prometheus-stack/app/helmrelease.yaml.j2} (100%) rename kubernetes/apps/monitoring/kube-prometheus-stack/app/kustomization.yaml => template/templates/kubernetes/apps/monitoring/kube-prometheus-stack/app/kustomization.yaml.j2 (100%) rename kubernetes/apps/monitoring/kube-prometheus-stack/ks.yaml => template/templates/kubernetes/apps/monitoring/kube-prometheus-stack/ks.yaml.j2 (100%) rename kubernetes/apps/monitoring/kubernetes-dashboard/app/helmrelease.yaml => template/templates/kubernetes/apps/monitoring/kubernetes-dashboard/app/helmrelease.yaml.j2 (100%) rename kubernetes/apps/monitoring/kubernetes-dashboard/app/kustomization.yaml => template/templates/kubernetes/apps/monitoring/kubernetes-dashboard/app/kustomization.yaml.j2 (100%) rename kubernetes/apps/monitoring/kubernetes-dashboard/app/rbac.yaml => template/templates/kubernetes/apps/monitoring/kubernetes-dashboard/app/rbac.yaml.j2 (100%) rename kubernetes/apps/monitoring/kubernetes-dashboard/ks.yaml => template/templates/kubernetes/apps/monitoring/kubernetes-dashboard/ks.yaml.j2 (100%) rename kubernetes/apps/monitoring/kustomization.yaml => template/templates/kubernetes/apps/monitoring/kustomization.yaml.j2 (100%) rename kubernetes/apps/monitoring/namespace.yaml => template/templates/kubernetes/apps/monitoring/namespace.yaml.j2 (100%) rename kubernetes/apps/networking/cloudflared/app/configs/config.yaml => template/templates/kubernetes/apps/networking/cloudflared/app/configs/config.yaml.j2 (100%) rename kubernetes/apps/networking/cloudflared/app/dnsendpoint.yaml => template/templates/kubernetes/apps/networking/cloudflared/app/dnsendpoint.yaml.j2 (100%) rename kubernetes/apps/networking/cloudflared/app/helmrelease.yaml => template/templates/kubernetes/apps/networking/cloudflared/app/helmrelease.yaml.j2 (100%) rename kubernetes/apps/networking/cloudflared/app/kustomization.yaml => template/templates/kubernetes/apps/networking/cloudflared/app/kustomization.yaml.j2 (100%) rename template/templates/kubernetes/{cloudflared-secret.sops.yaml.j2 => apps/networking/cloudflared/app/secret.sops.yaml.j2} (100%) rename kubernetes/apps/networking/cloudflared/ks.yaml => template/templates/kubernetes/apps/networking/cloudflared/ks.yaml.j2 (100%) rename kubernetes/apps/networking/external-dns/app/dnsendpoint-crd.yaml => template/templates/kubernetes/apps/networking/external-dns/app/dnsendpoint-crd.yaml.j2 (100%) rename kubernetes/apps/networking/external-dns/app/helmrelease.yaml => template/templates/kubernetes/apps/networking/external-dns/app/helmrelease.yaml.j2 (100%) rename kubernetes/apps/networking/external-dns/app/kustomization.yaml => template/templates/kubernetes/apps/networking/external-dns/app/kustomization.yaml.j2 (100%) rename template/templates/kubernetes/{external-dns-secret.sops.yaml.j2 => apps/networking/external-dns/app/secret.sops.yaml.j2} (100%) rename kubernetes/apps/networking/external-dns/ks.yaml => template/templates/kubernetes/apps/networking/external-dns/ks.yaml.j2 (100%) rename kubernetes/apps/networking/ingress-nginx/app/helmrelease.yaml => template/templates/kubernetes/apps/networking/ingress-nginx/app/helmrelease.yaml.j2 (95%) rename kubernetes/apps/networking/ingress-nginx/app/kustomization.yaml => template/templates/kubernetes/apps/networking/ingress-nginx/app/kustomization.yaml.j2 (100%) rename kubernetes/apps/networking/ingress-nginx/certificates/kustomization.yaml => template/templates/kubernetes/apps/networking/ingress-nginx/certificates/kustomization.yaml.j2 (100%) rename kubernetes/apps/networking/ingress-nginx/certificates/production.yaml => template/templates/kubernetes/apps/networking/ingress-nginx/certificates/production.yaml.j2 (100%) rename kubernetes/apps/networking/ingress-nginx/certificates/staging.yaml => template/templates/kubernetes/apps/networking/ingress-nginx/certificates/staging.yaml.j2 (100%) rename kubernetes/apps/networking/ingress-nginx/ks.yaml => template/templates/kubernetes/apps/networking/ingress-nginx/ks.yaml.j2 (100%) rename kubernetes/apps/networking/k8s-gateway/app/helmrelease.yaml => template/templates/kubernetes/apps/networking/k8s-gateway/app/helmrelease.yaml.j2 (91%) rename kubernetes/apps/networking/k8s-gateway/app/kustomization.yaml => template/templates/kubernetes/apps/networking/k8s-gateway/app/kustomization.yaml.j2 (100%) rename kubernetes/apps/networking/k8s-gateway/ks.yaml => template/templates/kubernetes/apps/networking/k8s-gateway/ks.yaml.j2 (100%) rename kubernetes/apps/networking/kustomization.yaml => template/templates/kubernetes/apps/networking/kustomization.yaml.j2 (100%) rename kubernetes/apps/networking/namespace.yaml => template/templates/kubernetes/apps/networking/namespace.yaml.j2 (100%) rename kubernetes/apps/system-upgrade/kustomization.yaml => template/templates/kubernetes/apps/system-upgrade/kustomization.yaml.j2 (100%) rename kubernetes/apps/system-upgrade/namespace.yaml => template/templates/kubernetes/apps/system-upgrade/namespace.yaml.j2 (100%) rename kubernetes/apps/system-upgrade/system-upgrade-controller/app/kustomization.yaml => template/templates/kubernetes/apps/system-upgrade/system-upgrade-controller/app/kustomization.yaml.j2 (100%) rename kubernetes/apps/system-upgrade/system-upgrade-controller/ks.yaml => template/templates/kubernetes/apps/system-upgrade/system-upgrade-controller/ks.yaml.j2 (100%) rename kubernetes/apps/system-upgrade/system-upgrade-controller/plans/agent.yaml => template/templates/kubernetes/apps/system-upgrade/system-upgrade-controller/plans/agent.yaml.j2 (100%) rename kubernetes/apps/system-upgrade/system-upgrade-controller/plans/kustomization.yaml => template/templates/kubernetes/apps/system-upgrade/system-upgrade-controller/plans/kustomization.yaml.j2 (100%) rename kubernetes/apps/system-upgrade/system-upgrade-controller/plans/server.yaml => template/templates/kubernetes/apps/system-upgrade/system-upgrade-controller/plans/server.yaml.j2 (100%) rename kubernetes/bootstrap/kustomization.yaml => template/templates/kubernetes/bootstrap/kustomization.yaml.j2 (100%) delete mode 100644 template/templates/kubernetes/cluster-settings.yaml.j2 rename kubernetes/flux/apps.yaml => template/templates/kubernetes/flux/apps.yaml.j2 (100%) rename template/templates/kubernetes/{ => flux/config}/cluster.yaml.j2 (100%) rename kubernetes/flux/config/flux.yaml => template/templates/kubernetes/flux/config/flux.yaml.j2 (100%) rename kubernetes/flux/config/kustomization.yaml => template/templates/kubernetes/flux/config/kustomization.yaml.j2 (100%) rename kubernetes/flux/repositories/git/kustomization.yaml => template/templates/kubernetes/flux/repositories/git/kustomization.yaml.j2 (100%) rename kubernetes/flux/repositories/git/local-path-provisioner.yaml => template/templates/kubernetes/flux/repositories/git/local-path-provisioner.yaml.j2 (100%) rename kubernetes/flux/repositories/helm/bitnami.yaml => template/templates/kubernetes/flux/repositories/helm/bitnami.yaml.j2 (100%) rename kubernetes/flux/repositories/helm/bjw-s.yaml => template/templates/kubernetes/flux/repositories/helm/bjw-s.yaml.j2 (100%) rename kubernetes/flux/repositories/helm/cilium.yaml => template/templates/kubernetes/flux/repositories/helm/cilium.yaml.j2 (100%) rename kubernetes/flux/repositories/helm/coredns.yaml => template/templates/kubernetes/flux/repositories/helm/coredns.yaml.j2 (100%) rename kubernetes/flux/repositories/helm/external-dns.yaml => template/templates/kubernetes/flux/repositories/helm/external-dns.yaml.j2 (100%) rename kubernetes/flux/repositories/helm/grafana.yaml => template/templates/kubernetes/flux/repositories/helm/grafana.yaml.j2 (100%) rename kubernetes/flux/repositories/helm/hajimari.yaml => template/templates/kubernetes/flux/repositories/helm/hajimari.yaml.j2 (100%) rename kubernetes/flux/repositories/helm/ingress-nginx.yaml => template/templates/kubernetes/flux/repositories/helm/ingress-nginx.yaml.j2 (100%) rename kubernetes/flux/repositories/helm/jetstack.yaml => template/templates/kubernetes/flux/repositories/helm/jetstack.yaml.j2 (100%) rename kubernetes/flux/repositories/helm/k8s-gateway.yaml => template/templates/kubernetes/flux/repositories/helm/k8s-gateway.yaml.j2 (100%) rename kubernetes/flux/repositories/helm/kubernetes-dashboard.yaml => template/templates/kubernetes/flux/repositories/helm/kubernetes-dashboard.yaml.j2 (100%) rename kubernetes/flux/repositories/helm/kustomization.yaml => template/templates/kubernetes/flux/repositories/helm/kustomization.yaml.j2 (100%) rename kubernetes/flux/repositories/helm/metrics-server.yaml => template/templates/kubernetes/flux/repositories/helm/metrics-server.yaml.j2 (100%) rename kubernetes/flux/repositories/helm/prometheus-community.yaml => template/templates/kubernetes/flux/repositories/helm/prometheus-community.yaml.j2 (100%) rename kubernetes/flux/repositories/helm/stakater.yaml => template/templates/kubernetes/flux/repositories/helm/stakater.yaml.j2 (100%) rename kubernetes/flux/repositories/helm/weave-gitops.yaml => template/templates/kubernetes/flux/repositories/helm/weave-gitops.yaml.j2 (100%) rename kubernetes/flux/repositories/kustomization.yaml => template/templates/kubernetes/flux/repositories/kustomization.yaml.j2 (100%) rename {kubernetes => template/templates/kubernetes}/flux/repositories/oci/.gitkeep (100%) rename template/templates/kubernetes/{ => flux/vars}/cluster-secrets.sops.yaml.j2 (100%) create mode 100644 template/templates/kubernetes/flux/vars/cluster-settings.yaml.j2 rename kubernetes/flux/vars/kustomization.yaml => template/templates/kubernetes/flux/vars/kustomization.yaml.j2 (100%) diff --git a/.github/renovate.json5 b/.github/renovate.json5 index a6b9e572..ea1b99c5 100644 --- a/.github/renovate.json5 +++ b/.github/renovate.json5 @@ -21,15 +21,22 @@ "rebaseWhen": "conflicted", "schedule": ["every saturday"], "flux": { - "fileMatch": ["kubernetes/.+\\.ya?ml$"] + "fileMatch": [ + "kubernetes/.+\\.ya?ml$", + "template/templates/kubernetes/.+\\.ya?ml.j2$" + ] }, "helm-values": { - "fileMatch": ["kubernetes/.+\\.ya?ml$"] + "fileMatch": [ + "kubernetes/.+\\.ya?ml$", + "template/templates/kubernetes/.+\\.ya?ml.j2$" + ] }, "kubernetes": { "fileMatch": [ "ansible/.+\\.ya?ml(\\.j2)?$", - "kubernetes/.+\\.ya?ml$" + "kubernetes/.+\\.ya?ml$", + "template/templates/kubernetes/.+\\.ya?ml.j2$" ] }, "regexManagers": [ @@ -37,7 +44,8 @@ "description": "Process various other dependencies", "fileMatch": [ "ansible/.+\\.ya?ml(\\.j2)?$", - "kubernetes/.+\\.ya?ml$" + "kubernetes/.+\\.ya?ml$", + "template/templates/kubernetes/.+\\.ya?ml.j2$" ], "matchStrings": [ "datasource=(?\\S+) depName=(?\\S+)( registryUrl=(?\\S+))?\n.*?\"(?.*)\"\n" diff --git a/README.md b/README.md index 930db922..7908ff37 100644 --- a/README.md +++ b/README.md @@ -138,7 +138,7 @@ Clone **your new repo** to you local workstation and `cd` into it. 1. Install the following CLI tools on your workstation, if you are **NOT** using [Homebrew](https://brew.sh/) on MacOS or Linux **ignore** steps 4 and 5. - - Required: [age](https://github.com/FiloSottile/age), [ansible](https://www.ansible.com), [flux](https://toolkit.fluxcd.io/), [cloudflared](https://github.com/cloudflare/cloudflared), [go-task](https://github.com/go-task/task), [direnv](https://github.com/direnv/direnv), [jq](https://stedolan.github.io/jq/), [kubectl](https://kubernetes.io/docs/tasks/tools/), [python-pip3](https://pypi.org/project/pip/), [sops v3](https://github.com/getsops/sops) + - Required: [age](https://github.com/FiloSottile/age), [ansible](https://www.ansible.com), [flux](https://toolkit.fluxcd.io/), [cloudflared](https://github.com/cloudflare/cloudflared), [go-task](https://github.com/go-task/task), [direnv](https://github.com/direnv/direnv), [kubectl](https://kubernetes.io/docs/tasks/tools/), [python-pip3](https://pypi.org/project/pip/), [sops](https://github.com/getsops/sops) - Recommended: [helm](https://helm.sh/), [kustomize](https://github.com/kubernetes-sigs/kustomize), [stern](https://github.com/stern/stern) @@ -239,7 +239,7 @@ In order to expose services to the internet you will need to create a [Cloudflar cp template/vars/config.sample.yaml template/vars/config.yaml ``` -2. Once done run the following command which will verify and generate the files needed to continue +2. Once done run the following command which will verify and generate all the files needed to continue. ```sh task configure @@ -314,8 +314,10 @@ In order to expose services to the internet you will need to create a [Cloudflar ```sh task cluster:nodes # NAME STATUS ROLES AGE VERSION - # k8s-0 Ready control-plane,master 4d20h v1.21.5+k3s1 - # k8s-1 Ready worker 4d20h v1.21.5+k3s1 + # k8s-0 Ready control-plane,etcd,master 1h v1.27.3+k3s1 + # k8s-1 Ready control-plane,etcd,master 1h v1.27.3+k3s1 + # k8s-2 Ready control-plane,etcd,master 1h v1.27.3+k3s1 + # k8s-3 Ready worker 1h v1.27.3+k3s1 ``` ### 🔹 GitOps with Flux diff --git a/Taskfile.yaml b/Taskfile.yaml index 9f5336c6..c9b635dc 100644 --- a/Taskfile.yaml +++ b/Taskfile.yaml @@ -33,7 +33,6 @@ tasks: fluxcd/tap/flux go-task/tap/go-task helm - jq kubernetes-cli kustomize sops diff --git a/ansible/playbooks/tasks/kubeconfig.yaml b/ansible/playbooks/tasks/kubeconfig.yaml index 2e3598a8..d05e27aa 100644 --- a/ansible/playbooks/tasks/kubeconfig.yaml +++ b/ansible/playbooks/tasks/kubeconfig.yaml @@ -1,11 +1,10 @@ --- -- name: Get absolute path to this Git repository - delegate_to: localhost - become: false - run_once: true - check_mode: false +- name: Get absolute path to this Git repository # noqa: command-instead-of-module ansible.builtin.command: git rev-parse --show-toplevel + changed_when: false + check_mode: false register: repository_path + failed_when: repository_path.rc != 0 - name: Copy kubeconfig to the project directory when: k3s_primary_control_node diff --git a/template/configure.yaml b/template/configure.yaml index 2003b023..cf85df98 100644 --- a/template/configure.yaml +++ b/template/configure.yaml @@ -3,82 +3,17 @@ hosts: localhost connection: local vars_files: + - defaults/main.yaml - vars/config.yaml - - defaults/templates.yaml - - defaults/extras.yaml tasks: - - name: Get absolute path to this Git repository # noqa: command-instead-of-module - ansible.builtin.command: git rev-parse --show-toplevel - changed_when: false - check_mode: false - register: repository_path - failed_when: repository_path.rc != 0 - - name: Verify configuration - ansible.builtin.include_tasks: tasks/verify_{{ task }}.yaml - loop: [age, cli, net, cloudflare, github] - loop_control: - loop_var: task + ansible.builtin.include_tasks: tasks/validation/main.yaml - - name: Ensure template directories exist - ansible.builtin.file: - path: "{{ repository_path.stdout }}/{{ item.dest | dirname }}" - state: directory - mode: "0755" - loop: "{{ templates }}" + - name: Template Sops configuration + ansible.builtin.include_tasks: tasks/sops/main.yaml - - name: Template out non-encrypted files - ansible.builtin.template: - src: "templates/{{ item.src }}" - dest: "{{ repository_path.stdout }}/{{ item.dest }}" - mode: "0755" - loop: "{{ templates | selectattr('encrypt', 'equalto', false) | list }}" + - name: Template Ansible configuration + ansible.builtin.include_tasks: tasks/ansible/main.yaml - # https://github.com/ansible-collections/community.sops/issues/153 - - name: Backup sops configuration file - ansible.builtin.copy: - src: "{{ repository_path.stdout }}/.sops.yaml" - dest: "{{ repository_path.stdout }}/.sops.yaml.orig" - mode: "0755" - - name: Remove sops configuration file - ansible.builtin.file: - path: "{{ repository_path.stdout }}/.sops.yaml" - state: absent - - - name: Template out encrypted files - community.sops.sops_encrypt: - path: "{{ repository_path.stdout }}/{{ item.dest }}" - encrypted_regex: ^(data|stringData)$ - age: ["{{ bootstrap_age_public_key }}"] - content_yaml: "{{ lookup('ansible.builtin.template', 'templates/' + item.src) | from_yaml }}" - mode: "0755" - force: true - loop: "{{ templates | selectattr('encrypt', 'equalto', true) | list }}" - - - name: Ensure Ansible inventory directory exists - ansible.builtin.file: - path: "{{ repository_path.stdout }}/ansible/inventory/host_vars" - state: directory - mode: "0755" - - - name: Template out node secrets - community.sops.sops_encrypt: - path: "{{ repository_path.stdout }}/ansible/inventory/host_vars/{{ item.name }}.sops.yaml" - age: ["{{ bootstrap_age_public_key }}"] - content_yaml: "{{ lookup('ansible.builtin.template', 'templates/ansible/node.sops.yaml.j2', template_vars=dict(password=item.password)) | from_yaml }}" - mode: "0755" - force: true - loop: "{{ bootstrap_hosts.master + bootstrap_hosts.worker | default([]) }}" - loop_control: - label: "{{ item.address }}" - - # https://github.com/ansible-collections/community.sops/issues/153 - - name: Restore sops configuration file - ansible.builtin.copy: - src: "{{ repository_path.stdout }}/.sops.yaml.orig" - dest: "{{ repository_path.stdout }}/.sops.yaml" - mode: "0755" - - name: Remove backup sops configuration file - ansible.builtin.file: - path: "{{ repository_path.stdout }}/.sops.yaml.orig" - state: absent + - name: Template Kubernetes configuration + ansible.builtin.include_tasks: tasks/kubernetes/main.yaml diff --git a/template/defaults/extras.yaml b/template/defaults/main.yaml similarity index 100% rename from template/defaults/extras.yaml rename to template/defaults/main.yaml diff --git a/template/defaults/templates.yaml b/template/defaults/templates.yaml deleted file mode 100644 index d50ea863..00000000 --- a/template/defaults/templates.yaml +++ /dev/null @@ -1,44 +0,0 @@ ---- -templates: - # Root - - src: .sops.yaml.j2 - dest: ./.sops.yaml - encrypt: false - # Ansible dir - - src: ansible/supplemental.yaml.j2 - dest: ./ansible/inventory/group_vars/kubernetes/supplemental.yaml - encrypt: false - - src: ansible/hosts.yaml.j2 - dest: ./ansible/inventory/hosts.yaml - encrypt: false - # Kubernetes dir - - src: kubernetes/kube-prometheus-stack-helmrelease.yaml.j2 - dest: ./kubernetes/apps/monitoring/kube-prometheus-stack/app/helmrelease.yaml - encrypt: false - - src: kubernetes/cert-manager-secret.sops.yaml.j2 - dest: ./kubernetes/apps/cert-manager/cert-manager/issuers/secret.sops.yaml - encrypt: true - - src: kubernetes/cloudflared-secret.sops.yaml.j2 - dest: ./kubernetes/apps/networking/cloudflared/app/secret.sops.yaml - encrypt: true - - src: kubernetes/cluster-secrets.sops.yaml.j2 - dest: ./kubernetes/flux/vars/cluster-secrets.sops.yaml - encrypt: true - - src: kubernetes/cluster-settings.yaml.j2 - dest: ./kubernetes/flux/vars/cluster-settings.yaml - encrypt: false - - src: kubernetes/cluster.yaml.j2 - dest: ./kubernetes/flux/config/cluster.yaml - encrypt: false - - src: kubernetes/external-dns-secret.sops.yaml.j2 - dest: ./kubernetes/apps/networking/external-dns/app/secret.sops.yaml - encrypt: true - - src: kubernetes/github-webhook-token-secret.sops.yaml.j2 - dest: ./kubernetes/apps/flux-system/addons/webhooks/github/secret.sops.yaml - encrypt: true - - src: kubernetes/grafana-admin-secret.sops.yaml.j2 - dest: ./kubernetes/apps/monitoring/grafana/app/secret.sops.yaml - encrypt: true - - src: kubernetes/weave-gitops-secret.sops.yaml.j2 - dest: ./kubernetes/apps/flux-system/weave-gitops/app/secret.sops.yaml - encrypt: true diff --git a/template/tasks/ansible/main.yaml b/template/tasks/ansible/main.yaml new file mode 100644 index 00000000..c74a0279 --- /dev/null +++ b/template/tasks/ansible/main.yaml @@ -0,0 +1,51 @@ +--- +- name: Get absolute path to this Git repository # noqa: command-instead-of-module + ansible.builtin.command: git rev-parse --show-toplevel + changed_when: false + check_mode: false + register: repository_path + failed_when: repository_path.rc != 0 + +- name: Template Ansible configuration + ansible.builtin.template: + src: "{{ item.src }}" + dest: "{{ repository_path.stdout }}/{{ item.dest }}" + mode: "0755" + loop: + - src: templates/ansible/supplemental.yaml.j2 + dest: ./ansible/inventory/group_vars/kubernetes/supplemental.yaml + - src: templates/ansible/hosts.yaml.j2 + dest: ./ansible/inventory/hosts.yaml + +# https://github.com/ansible-collections/community.sops/issues/153 +- name: Backup sops configuration file + ansible.builtin.copy: + src: "{{ repository_path.stdout }}/.sops.yaml" + dest: "{{ repository_path.stdout }}/.sops.yaml.orig" + mode: "0755" +- name: Remove sops configuration file + ansible.builtin.file: + path: "{{ repository_path.stdout }}/.sops.yaml" + state: absent + +- name: Template out node secrets + community.sops.sops_encrypt: + path: "{{ repository_path.stdout }}/ansible/inventory/host_vars/{{ item.name }}.sops.yaml" + age: ["{{ bootstrap_age_public_key }}"] + content_yaml: "{{ lookup('ansible.builtin.template', 'templates/ansible/node.sops.yaml.j2', template_vars=dict(password=item.password)) | from_yaml }}" + mode: "0755" + force: true + loop: "{{ bootstrap_hosts.master + bootstrap_hosts.worker | default([]) }}" + loop_control: + label: "{{ item.address }}" + +# https://github.com/ansible-collections/community.sops/issues/153 +- name: Restore sops configuration file + ansible.builtin.copy: + src: "{{ repository_path.stdout }}/.sops.yaml.orig" + dest: "{{ repository_path.stdout }}/.sops.yaml" + mode: "0755" +- name: Remove backup sops configuration file + ansible.builtin.file: + path: "{{ repository_path.stdout }}/.sops.yaml.orig" + state: absent diff --git a/template/tasks/kubernetes/main.yaml b/template/tasks/kubernetes/main.yaml new file mode 100644 index 00000000..368144a2 --- /dev/null +++ b/template/tasks/kubernetes/main.yaml @@ -0,0 +1,58 @@ +--- +- name: Get absolute path to this Git repository # noqa: command-instead-of-module + ansible.builtin.command: git rev-parse --show-toplevel + changed_when: false + check_mode: false + register: repository_path + failed_when: repository_path.rc != 0 + +- name: Ensure Kubernetes directories exist + ansible.builtin.file: + path: "{{ repository_path.stdout }}/kubernetes/{{ item.path }}" + state: directory + mode: "0755" + with_community.general.filetree: + - ../templates/kubernetes/ + when: item.state == 'directory' + +- name: Template Kubernetes unencrypted files + ansible.builtin.template: + src: "{{ item.src }}" + dest: "{{ repository_path.stdout }}/kubernetes/{{ item.path | replace('.j2', '') }}" + with_community.general.filetree: + - ../templates/kubernetes/ + when: item.state == 'file' and 'sops' not in item.path + +# https://github.com/ansible-collections/community.sops/issues/153 +- name: Backup sops configuration file + ansible.builtin.copy: + src: "{{ repository_path.stdout }}/.sops.yaml" + dest: "{{ repository_path.stdout }}/.sops.yaml.orig" + mode: "0755" +- name: Remove sops configuration file + ansible.builtin.file: + path: "{{ repository_path.stdout }}/.sops.yaml" + state: absent + +- name: Template Kubernetes unencrypted files + community.sops.sops_encrypt: + path: "{{ repository_path.stdout }}/kubernetes/{{ item.path | replace('.j2', '') }}" + encrypted_regex: ^(data|stringData)$ + age: ["{{ bootstrap_age_public_key }}"] + content_yaml: "{{ lookup('ansible.builtin.template', item.src) | from_yaml }}" + mode: "0755" + force: true + with_community.general.filetree: + - ../templates/kubernetes/ + when: item.state == 'file' and 'sops' in item.path + +# https://github.com/ansible-collections/community.sops/issues/153 +- name: Restore sops configuration file + ansible.builtin.copy: + src: "{{ repository_path.stdout }}/.sops.yaml.orig" + dest: "{{ repository_path.stdout }}/.sops.yaml" + mode: "0755" +- name: Remove backup sops configuration file + ansible.builtin.file: + path: "{{ repository_path.stdout }}/.sops.yaml.orig" + state: absent diff --git a/template/tasks/sops/main.yaml b/template/tasks/sops/main.yaml new file mode 100644 index 00000000..8be89a9d --- /dev/null +++ b/template/tasks/sops/main.yaml @@ -0,0 +1,13 @@ +--- +- name: Get absolute path to this Git repository # noqa: command-instead-of-module + ansible.builtin.command: git rev-parse --show-toplevel + changed_when: false + check_mode: false + register: repository_path + failed_when: repository_path.rc != 0 + +- name: Template out sops configuration file + ansible.builtin.template: + src: "templates/.sops.yaml.j2" + dest: "{{ repository_path.stdout }}/.sops.yaml" + mode: "0755" diff --git a/template/tasks/verify_age.yaml b/template/tasks/validation/age.yaml similarity index 100% rename from template/tasks/verify_age.yaml rename to template/tasks/validation/age.yaml diff --git a/template/tasks/verify_cli.yaml b/template/tasks/validation/cli.yaml similarity index 100% rename from template/tasks/verify_cli.yaml rename to template/tasks/validation/cli.yaml diff --git a/template/tasks/verify_cloudflare.yaml b/template/tasks/validation/cloudflare.yaml similarity index 100% rename from template/tasks/verify_cloudflare.yaml rename to template/tasks/validation/cloudflare.yaml diff --git a/template/tasks/verify_github.yaml b/template/tasks/validation/github.yaml similarity index 100% rename from template/tasks/verify_github.yaml rename to template/tasks/validation/github.yaml diff --git a/template/tasks/validation/main.yaml b/template/tasks/validation/main.yaml new file mode 100644 index 00000000..cd043985 --- /dev/null +++ b/template/tasks/validation/main.yaml @@ -0,0 +1,6 @@ +--- +- name: Verify configuration + ansible.builtin.include_tasks: "{{ task }}.yaml" + loop: [age, cli, net, cloudflare, github] + loop_control: + loop_var: task diff --git a/template/tasks/verify_net.yaml b/template/tasks/validation/net.yaml similarity index 100% rename from template/tasks/verify_net.yaml rename to template/tasks/validation/net.yaml diff --git a/kubernetes/apps/cert-manager/cert-manager/app/helmrelease.yaml b/template/templates/kubernetes/apps/cert-manager/cert-manager/app/helmrelease.yaml.j2 similarity index 100% rename from kubernetes/apps/cert-manager/cert-manager/app/helmrelease.yaml rename to template/templates/kubernetes/apps/cert-manager/cert-manager/app/helmrelease.yaml.j2 diff --git a/kubernetes/apps/cert-manager/cert-manager/app/kustomization.yaml b/template/templates/kubernetes/apps/cert-manager/cert-manager/app/kustomization.yaml.j2 similarity index 100% rename from kubernetes/apps/cert-manager/cert-manager/app/kustomization.yaml rename to template/templates/kubernetes/apps/cert-manager/cert-manager/app/kustomization.yaml.j2 diff --git a/kubernetes/apps/cert-manager/cert-manager/app/prometheusrule.yaml b/template/templates/kubernetes/apps/cert-manager/cert-manager/app/prometheusrule.yaml.j2 similarity index 56% rename from kubernetes/apps/cert-manager/cert-manager/app/prometheusrule.yaml rename to template/templates/kubernetes/apps/cert-manager/cert-manager/app/prometheusrule.yaml.j2 index 56314796..34eb6887 100644 --- a/kubernetes/apps/cert-manager/cert-manager/app/prometheusrule.yaml +++ b/template/templates/kubernetes/apps/cert-manager/cert-manager/app/prometheusrule.yaml.j2 @@ -1,3 +1,4 @@ +#jinja2: trim_blocks: True --- apiVersion: monitoring.coreos.com/v1 kind: PrometheusRule @@ -15,54 +16,47 @@ spec: labels: severity: critical annotations: - description: - "New certificates will not be able to be minted, and existing - ones can't be renewed until cert-manager is back." + description: > + New certificates will not be able to be minted, and existing ones can't be renewed until cert-manager is back. runbook_url: https://gitlab.com/uneeq-oss/cert-manager-mixin/-/blob/master/RUNBOOK.md#certmanagerabsent summary: "Cert Manager has dissapeared from Prometheus service discovery." - name: certificates rules: - alert: CertManagerCertExpirySoon expr: | - avg by (exported_namespace, namespace, name) ( - certmanager_certificate_expiration_timestamp_seconds - time()) - < (21 * 24 * 3600) + avg by (exported_namespace, namespace, name) (certmanager_certificate_expiration_timestamp_seconds - time()) < (21 * 24 * 3600) for: 15m labels: severity: warning annotations: - description: - "The domain that this cert covers will be unavailable after - {{ $value | humanizeDuration }}. Clients using endpoints that this cert - protects will start to fail in {{ $value | humanizeDuration }}." + description: > + The domain that this cert covers will be unavailable after + {% raw %}{{ $value | humanizeDuration }}{% endraw %}. Clients using endpoints that this cert + protects will start to fail in {% raw %}{{ $value | humanizeDuration }}{% endraw %}. runbook_url: https://gitlab.com/uneeq-oss/cert-manager-mixin/-/blob/master/RUNBOOK.md#certmanagercertexpirysoon - summary: - "The cert {{ $labels.name }} is {{ $value | humanizeDuration }} - from expiry, it should have renewed over a week ago." + summary: | + The cert {% raw %}{{ $labels.name }}{% endraw %} is {% raw %}{{ $value | humanizeDuration }}{% endraw %} from expiry, it should have renewed over a week ago. - alert: CertManagerCertNotReady expr: | - max by (name, exported_namespace, namespace, condition) ( - certmanager_certificate_ready_status{condition!="True"} == 1) + max by (name, exported_namespace, namespace, condition) (certmanager_certificate_ready_status{condition!="True"} == 1) for: 15m labels: severity: critical annotations: - description: - "This certificate has not been ready to serve traffic for at least + description: > + This certificate has not been ready to serve traffic for at least 10m. If the cert is being renewed or there is another valid cert, the ingress - controller _may_ be able to serve that instead." + controller _may_ be able to serve that instead. runbook_url: https://gitlab.com/uneeq-oss/cert-manager-mixin/-/blob/master/RUNBOOK.md#certmanagercertnotready - summary: "The cert {{ $labels.name }} is not ready to serve traffic." + summary: "The cert {% raw %}{{ $labels.name }}{% endraw %} is not ready to serve traffic." - alert: CertManagerHittingRateLimits expr: | - sum by (host) (rate(certmanager_http_acme_client_request_count{status="429"}[5m])) - > 0 + sum by (host) (rate(certmanager_http_acme_client_request_count{status="429"}[5m])) > 0 for: 15m labels: severity: critical annotations: - description: - "Depending on the rate limit, cert-manager may be unable to generate - certificates for up to a week." + description: > + Depending on the rate limit, cert-manager may be unable to generate certificates for up to a week. runbook_url: https://gitlab.com/uneeq-oss/cert-manager-mixin/-/blob/master/RUNBOOK.md#certmanagerhittingratelimits summary: "Cert manager hitting LetsEncrypt rate limits." diff --git a/kubernetes/apps/cert-manager/cert-manager/issuers/issuers.yaml b/template/templates/kubernetes/apps/cert-manager/cert-manager/issuers/issuers.yaml.j2 similarity index 100% rename from kubernetes/apps/cert-manager/cert-manager/issuers/issuers.yaml rename to template/templates/kubernetes/apps/cert-manager/cert-manager/issuers/issuers.yaml.j2 diff --git a/kubernetes/apps/cert-manager/cert-manager/issuers/kustomization.yaml b/template/templates/kubernetes/apps/cert-manager/cert-manager/issuers/kustomization.yaml.j2 similarity index 100% rename from kubernetes/apps/cert-manager/cert-manager/issuers/kustomization.yaml rename to template/templates/kubernetes/apps/cert-manager/cert-manager/issuers/kustomization.yaml.j2 diff --git a/template/templates/kubernetes/cert-manager-secret.sops.yaml.j2 b/template/templates/kubernetes/apps/cert-manager/cert-manager/issuers/secret.sops.yaml.j2 similarity index 100% rename from template/templates/kubernetes/cert-manager-secret.sops.yaml.j2 rename to template/templates/kubernetes/apps/cert-manager/cert-manager/issuers/secret.sops.yaml.j2 diff --git a/kubernetes/apps/cert-manager/cert-manager/ks.yaml b/template/templates/kubernetes/apps/cert-manager/cert-manager/ks.yaml.j2 similarity index 100% rename from kubernetes/apps/cert-manager/cert-manager/ks.yaml rename to template/templates/kubernetes/apps/cert-manager/cert-manager/ks.yaml.j2 diff --git a/kubernetes/apps/cert-manager/kustomization.yaml b/template/templates/kubernetes/apps/cert-manager/kustomization.yaml.j2 similarity index 100% rename from kubernetes/apps/cert-manager/kustomization.yaml rename to template/templates/kubernetes/apps/cert-manager/kustomization.yaml.j2 diff --git a/kubernetes/apps/cert-manager/namespace.yaml b/template/templates/kubernetes/apps/cert-manager/namespace.yaml.j2 similarity index 100% rename from kubernetes/apps/cert-manager/namespace.yaml rename to template/templates/kubernetes/apps/cert-manager/namespace.yaml.j2 diff --git a/kubernetes/apps/default/echo-server/app/helmrelease.yaml b/template/templates/kubernetes/apps/default/echo-server/app/helmrelease.yaml.j2 similarity index 93% rename from kubernetes/apps/default/echo-server/app/helmrelease.yaml rename to template/templates/kubernetes/apps/default/echo-server/app/helmrelease.yaml.j2 index 3860689b..ab36978d 100644 --- a/kubernetes/apps/default/echo-server/app/helmrelease.yaml +++ b/template/templates/kubernetes/apps/default/echo-server/app/helmrelease.yaml.j2 @@ -1,3 +1,4 @@ +#jinja2: trim_blocks: True --- apiVersion: helm.toolkit.fluxcd.io/v2beta1 kind: HelmRelease @@ -62,7 +63,7 @@ spec: external-dns.alpha.kubernetes.io/target: "ingress.${SECRET_DOMAIN}" hajimari.io/icon: video-input-antenna hosts: - - host: &host "{{ .Release.Name }}.${SECRET_DOMAIN}" + - host: &host "{% raw %}{{ .Release.Name }}{% endraw %}.${SECRET_DOMAIN}" paths: - path: / pathType: Prefix diff --git a/kubernetes/apps/default/echo-server/app/kustomization.yaml b/template/templates/kubernetes/apps/default/echo-server/app/kustomization.yaml.j2 similarity index 100% rename from kubernetes/apps/default/echo-server/app/kustomization.yaml rename to template/templates/kubernetes/apps/default/echo-server/app/kustomization.yaml.j2 diff --git a/kubernetes/apps/default/echo-server/ks.yaml b/template/templates/kubernetes/apps/default/echo-server/ks.yaml.j2 similarity index 100% rename from kubernetes/apps/default/echo-server/ks.yaml rename to template/templates/kubernetes/apps/default/echo-server/ks.yaml.j2 diff --git a/kubernetes/apps/default/hajimari/app/helmrelease.yaml b/template/templates/kubernetes/apps/default/hajimari/app/helmrelease.yaml.j2 similarity index 100% rename from kubernetes/apps/default/hajimari/app/helmrelease.yaml rename to template/templates/kubernetes/apps/default/hajimari/app/helmrelease.yaml.j2 diff --git a/kubernetes/apps/default/hajimari/app/kustomization.yaml b/template/templates/kubernetes/apps/default/hajimari/app/kustomization.yaml.j2 similarity index 100% rename from kubernetes/apps/default/hajimari/app/kustomization.yaml rename to template/templates/kubernetes/apps/default/hajimari/app/kustomization.yaml.j2 diff --git a/kubernetes/apps/default/hajimari/ks.yaml b/template/templates/kubernetes/apps/default/hajimari/ks.yaml.j2 similarity index 100% rename from kubernetes/apps/default/hajimari/ks.yaml rename to template/templates/kubernetes/apps/default/hajimari/ks.yaml.j2 diff --git a/kubernetes/apps/default/kustomization.yaml b/template/templates/kubernetes/apps/default/kustomization.yaml.j2 similarity index 100% rename from kubernetes/apps/default/kustomization.yaml rename to template/templates/kubernetes/apps/default/kustomization.yaml.j2 diff --git a/kubernetes/apps/default/namespace.yaml b/template/templates/kubernetes/apps/default/namespace.yaml.j2 similarity index 100% rename from kubernetes/apps/default/namespace.yaml rename to template/templates/kubernetes/apps/default/namespace.yaml.j2 diff --git a/kubernetes/apps/flux-system/addons/ks.yaml b/template/templates/kubernetes/apps/flux-system/addons/ks.yaml.j2 similarity index 100% rename from kubernetes/apps/flux-system/addons/ks.yaml rename to template/templates/kubernetes/apps/flux-system/addons/ks.yaml.j2 diff --git a/kubernetes/apps/flux-system/addons/webhooks/github/ingress.yaml b/template/templates/kubernetes/apps/flux-system/addons/webhooks/github/ingress.yaml.j2 similarity index 100% rename from kubernetes/apps/flux-system/addons/webhooks/github/ingress.yaml rename to template/templates/kubernetes/apps/flux-system/addons/webhooks/github/ingress.yaml.j2 diff --git a/kubernetes/apps/flux-system/addons/webhooks/github/kustomization.yaml b/template/templates/kubernetes/apps/flux-system/addons/webhooks/github/kustomization.yaml.j2 similarity index 100% rename from kubernetes/apps/flux-system/addons/webhooks/github/kustomization.yaml rename to template/templates/kubernetes/apps/flux-system/addons/webhooks/github/kustomization.yaml.j2 diff --git a/kubernetes/apps/flux-system/addons/webhooks/github/receiver.yaml b/template/templates/kubernetes/apps/flux-system/addons/webhooks/github/receiver.yaml.j2 similarity index 100% rename from kubernetes/apps/flux-system/addons/webhooks/github/receiver.yaml rename to template/templates/kubernetes/apps/flux-system/addons/webhooks/github/receiver.yaml.j2 diff --git a/template/templates/kubernetes/github-webhook-token-secret.sops.yaml.j2 b/template/templates/kubernetes/apps/flux-system/addons/webhooks/github/secret.sops.yaml.j2 similarity index 100% rename from template/templates/kubernetes/github-webhook-token-secret.sops.yaml.j2 rename to template/templates/kubernetes/apps/flux-system/addons/webhooks/github/secret.sops.yaml.j2 diff --git a/kubernetes/apps/flux-system/addons/webhooks/kustomization.yaml b/template/templates/kubernetes/apps/flux-system/addons/webhooks/kustomization.yaml.j2 similarity index 100% rename from kubernetes/apps/flux-system/addons/webhooks/kustomization.yaml rename to template/templates/kubernetes/apps/flux-system/addons/webhooks/kustomization.yaml.j2 diff --git a/kubernetes/apps/flux-system/kustomization.yaml b/template/templates/kubernetes/apps/flux-system/kustomization.yaml.j2 similarity index 100% rename from kubernetes/apps/flux-system/kustomization.yaml rename to template/templates/kubernetes/apps/flux-system/kustomization.yaml.j2 diff --git a/kubernetes/apps/flux-system/namespace.yaml b/template/templates/kubernetes/apps/flux-system/namespace.yaml.j2 similarity index 100% rename from kubernetes/apps/flux-system/namespace.yaml rename to template/templates/kubernetes/apps/flux-system/namespace.yaml.j2 diff --git a/kubernetes/apps/flux-system/weave-gitops/app/helmrelease.yaml b/template/templates/kubernetes/apps/flux-system/weave-gitops/app/helmrelease.yaml.j2 similarity index 100% rename from kubernetes/apps/flux-system/weave-gitops/app/helmrelease.yaml rename to template/templates/kubernetes/apps/flux-system/weave-gitops/app/helmrelease.yaml.j2 diff --git a/kubernetes/apps/flux-system/weave-gitops/app/kustomization.yaml b/template/templates/kubernetes/apps/flux-system/weave-gitops/app/kustomization.yaml.j2 similarity index 100% rename from kubernetes/apps/flux-system/weave-gitops/app/kustomization.yaml rename to template/templates/kubernetes/apps/flux-system/weave-gitops/app/kustomization.yaml.j2 diff --git a/template/templates/kubernetes/weave-gitops-secret.sops.yaml.j2 b/template/templates/kubernetes/apps/flux-system/weave-gitops/app/secret.sops.yaml.j2 similarity index 100% rename from template/templates/kubernetes/weave-gitops-secret.sops.yaml.j2 rename to template/templates/kubernetes/apps/flux-system/weave-gitops/app/secret.sops.yaml.j2 diff --git a/kubernetes/apps/flux-system/weave-gitops/ks.yaml b/template/templates/kubernetes/apps/flux-system/weave-gitops/ks.yaml.j2 similarity index 100% rename from kubernetes/apps/flux-system/weave-gitops/ks.yaml rename to template/templates/kubernetes/apps/flux-system/weave-gitops/ks.yaml.j2 diff --git a/kubernetes/apps/kube-system/cilium/app/cilium-l2.yaml b/template/templates/kubernetes/apps/kube-system/cilium/app/cilium-l2.yaml.j2 similarity index 92% rename from kubernetes/apps/kube-system/cilium/app/cilium-l2.yaml rename to template/templates/kubernetes/apps/kube-system/cilium/app/cilium-l2.yaml.j2 index e8eba26e..6a5cdbeb 100644 --- a/kubernetes/apps/kube-system/cilium/app/cilium-l2.yaml +++ b/template/templates/kubernetes/apps/kube-system/cilium/app/cilium-l2.yaml.j2 @@ -19,4 +19,4 @@ metadata: name: pool spec: cidrs: - - cidr: "${NODE_CIDR}" + - cidr: "{{ bootstrap_node_cidr }}" diff --git a/kubernetes/apps/kube-system/cilium/app/helmrelease.yaml b/template/templates/kubernetes/apps/kube-system/cilium/app/helmrelease.yaml.j2 similarity index 94% rename from kubernetes/apps/kube-system/cilium/app/helmrelease.yaml rename to template/templates/kubernetes/apps/kube-system/cilium/app/helmrelease.yaml.j2 index 271b4a6f..c5fdf4e8 100644 --- a/kubernetes/apps/kube-system/cilium/app/helmrelease.yaml +++ b/template/templates/kubernetes/apps/kube-system/cilium/app/helmrelease.yaml.j2 @@ -73,9 +73,9 @@ spec: - *host ipam: mode: kubernetes - k8sServiceHost: ${KUBE_VIP_ADDR} + k8sServiceHost: "{{ bootstrap_kube_vip_addr }}" k8sServicePort: 6443 - ipv4NativeRoutingCIDR: ${CLUSTER_CIDR} + ipv4NativeRoutingCIDR: "{{ bootstrap_cluster_cidr }}" kubeProxyReplacement: strict kubeProxyReplacementHealthzBindAddr: 0.0.0.0:10256 operator: diff --git a/kubernetes/apps/kube-system/cilium/app/kustomization.yaml b/template/templates/kubernetes/apps/kube-system/cilium/app/kustomization.yaml.j2 similarity index 100% rename from kubernetes/apps/kube-system/cilium/app/kustomization.yaml rename to template/templates/kubernetes/apps/kube-system/cilium/app/kustomization.yaml.j2 diff --git a/kubernetes/apps/kube-system/cilium/ks.yaml b/template/templates/kubernetes/apps/kube-system/cilium/ks.yaml.j2 similarity index 100% rename from kubernetes/apps/kube-system/cilium/ks.yaml rename to template/templates/kubernetes/apps/kube-system/cilium/ks.yaml.j2 diff --git a/kubernetes/apps/kube-system/coredns/app/helmrelease.yaml b/template/templates/kubernetes/apps/kube-system/coredns/app/helmrelease.yaml.j2 similarity index 97% rename from kubernetes/apps/kube-system/coredns/app/helmrelease.yaml rename to template/templates/kubernetes/apps/kube-system/coredns/app/helmrelease.yaml.j2 index 73a02d2e..978bb26a 100644 --- a/kubernetes/apps/kube-system/coredns/app/helmrelease.yaml +++ b/template/templates/kubernetes/apps/kube-system/coredns/app/helmrelease.yaml.j2 @@ -29,7 +29,7 @@ spec: fullnameOverride: coredns replicaCount: 1 service: - clusterIP: "${COREDNS_ADDR}" + clusterIP: "{{ bootstrap_coredns_addr }}" serviceAccount: create: true deployment: diff --git a/kubernetes/apps/kube-system/coredns/app/kustomization.yaml b/template/templates/kubernetes/apps/kube-system/coredns/app/kustomization.yaml.j2 similarity index 100% rename from kubernetes/apps/kube-system/coredns/app/kustomization.yaml rename to template/templates/kubernetes/apps/kube-system/coredns/app/kustomization.yaml.j2 diff --git a/kubernetes/apps/kube-system/coredns/ks.yaml b/template/templates/kubernetes/apps/kube-system/coredns/ks.yaml.j2 similarity index 100% rename from kubernetes/apps/kube-system/coredns/ks.yaml rename to template/templates/kubernetes/apps/kube-system/coredns/ks.yaml.j2 diff --git a/kubernetes/apps/kube-system/kustomization.yaml b/template/templates/kubernetes/apps/kube-system/kustomization.yaml.j2 similarity index 100% rename from kubernetes/apps/kube-system/kustomization.yaml rename to template/templates/kubernetes/apps/kube-system/kustomization.yaml.j2 diff --git a/kubernetes/apps/kube-system/local-path-provisioner/app/helmrelease.yaml b/template/templates/kubernetes/apps/kube-system/local-path-provisioner/app/helmrelease.yaml.j2 similarity index 100% rename from kubernetes/apps/kube-system/local-path-provisioner/app/helmrelease.yaml rename to template/templates/kubernetes/apps/kube-system/local-path-provisioner/app/helmrelease.yaml.j2 diff --git a/kubernetes/apps/kube-system/local-path-provisioner/app/kustomization.yaml b/template/templates/kubernetes/apps/kube-system/local-path-provisioner/app/kustomization.yaml.j2 similarity index 100% rename from kubernetes/apps/kube-system/local-path-provisioner/app/kustomization.yaml rename to template/templates/kubernetes/apps/kube-system/local-path-provisioner/app/kustomization.yaml.j2 diff --git a/kubernetes/apps/kube-system/local-path-provisioner/ks.yaml b/template/templates/kubernetes/apps/kube-system/local-path-provisioner/ks.yaml.j2 similarity index 100% rename from kubernetes/apps/kube-system/local-path-provisioner/ks.yaml rename to template/templates/kubernetes/apps/kube-system/local-path-provisioner/ks.yaml.j2 diff --git a/kubernetes/apps/kube-system/metrics-server/app/helmrelease.yaml b/template/templates/kubernetes/apps/kube-system/metrics-server/app/helmrelease.yaml.j2 similarity index 100% rename from kubernetes/apps/kube-system/metrics-server/app/helmrelease.yaml rename to template/templates/kubernetes/apps/kube-system/metrics-server/app/helmrelease.yaml.j2 diff --git a/kubernetes/apps/kube-system/metrics-server/app/kustomization.yaml b/template/templates/kubernetes/apps/kube-system/metrics-server/app/kustomization.yaml.j2 similarity index 100% rename from kubernetes/apps/kube-system/metrics-server/app/kustomization.yaml rename to template/templates/kubernetes/apps/kube-system/metrics-server/app/kustomization.yaml.j2 diff --git a/kubernetes/apps/kube-system/metrics-server/ks.yaml b/template/templates/kubernetes/apps/kube-system/metrics-server/ks.yaml.j2 similarity index 100% rename from kubernetes/apps/kube-system/metrics-server/ks.yaml rename to template/templates/kubernetes/apps/kube-system/metrics-server/ks.yaml.j2 diff --git a/kubernetes/apps/kube-system/namespace.yaml b/template/templates/kubernetes/apps/kube-system/namespace.yaml.j2 similarity index 100% rename from kubernetes/apps/kube-system/namespace.yaml rename to template/templates/kubernetes/apps/kube-system/namespace.yaml.j2 diff --git a/kubernetes/apps/kube-system/reloader/app/helmrelease.yaml b/template/templates/kubernetes/apps/kube-system/reloader/app/helmrelease.yaml.j2 similarity index 100% rename from kubernetes/apps/kube-system/reloader/app/helmrelease.yaml rename to template/templates/kubernetes/apps/kube-system/reloader/app/helmrelease.yaml.j2 diff --git a/kubernetes/apps/kube-system/reloader/app/kustomization.yaml b/template/templates/kubernetes/apps/kube-system/reloader/app/kustomization.yaml.j2 similarity index 100% rename from kubernetes/apps/kube-system/reloader/app/kustomization.yaml rename to template/templates/kubernetes/apps/kube-system/reloader/app/kustomization.yaml.j2 diff --git a/kubernetes/apps/kube-system/reloader/ks.yaml b/template/templates/kubernetes/apps/kube-system/reloader/ks.yaml.j2 similarity index 100% rename from kubernetes/apps/kube-system/reloader/ks.yaml rename to template/templates/kubernetes/apps/kube-system/reloader/ks.yaml.j2 diff --git a/kubernetes/apps/monitoring/grafana/app/helmrelease.yaml b/template/templates/kubernetes/apps/monitoring/grafana/app/helmrelease.yaml.j2 similarity index 100% rename from kubernetes/apps/monitoring/grafana/app/helmrelease.yaml rename to template/templates/kubernetes/apps/monitoring/grafana/app/helmrelease.yaml.j2 diff --git a/kubernetes/apps/monitoring/grafana/app/kustomization.yaml b/template/templates/kubernetes/apps/monitoring/grafana/app/kustomization.yaml.j2 similarity index 100% rename from kubernetes/apps/monitoring/grafana/app/kustomization.yaml rename to template/templates/kubernetes/apps/monitoring/grafana/app/kustomization.yaml.j2 diff --git a/template/templates/kubernetes/grafana-admin-secret.sops.yaml.j2 b/template/templates/kubernetes/apps/monitoring/grafana/app/secret.sops.yaml.j2 similarity index 100% rename from template/templates/kubernetes/grafana-admin-secret.sops.yaml.j2 rename to template/templates/kubernetes/apps/monitoring/grafana/app/secret.sops.yaml.j2 diff --git a/kubernetes/apps/monitoring/grafana/ks.yaml b/template/templates/kubernetes/apps/monitoring/grafana/ks.yaml.j2 similarity index 100% rename from kubernetes/apps/monitoring/grafana/ks.yaml rename to template/templates/kubernetes/apps/monitoring/grafana/ks.yaml.j2 diff --git a/template/templates/kubernetes/kube-prometheus-stack-helmrelease.yaml.j2 b/template/templates/kubernetes/apps/monitoring/kube-prometheus-stack/app/helmrelease.yaml.j2 similarity index 100% rename from template/templates/kubernetes/kube-prometheus-stack-helmrelease.yaml.j2 rename to template/templates/kubernetes/apps/monitoring/kube-prometheus-stack/app/helmrelease.yaml.j2 diff --git a/kubernetes/apps/monitoring/kube-prometheus-stack/app/kustomization.yaml b/template/templates/kubernetes/apps/monitoring/kube-prometheus-stack/app/kustomization.yaml.j2 similarity index 100% rename from kubernetes/apps/monitoring/kube-prometheus-stack/app/kustomization.yaml rename to template/templates/kubernetes/apps/monitoring/kube-prometheus-stack/app/kustomization.yaml.j2 diff --git a/kubernetes/apps/monitoring/kube-prometheus-stack/ks.yaml b/template/templates/kubernetes/apps/monitoring/kube-prometheus-stack/ks.yaml.j2 similarity index 100% rename from kubernetes/apps/monitoring/kube-prometheus-stack/ks.yaml rename to template/templates/kubernetes/apps/monitoring/kube-prometheus-stack/ks.yaml.j2 diff --git a/kubernetes/apps/monitoring/kubernetes-dashboard/app/helmrelease.yaml b/template/templates/kubernetes/apps/monitoring/kubernetes-dashboard/app/helmrelease.yaml.j2 similarity index 100% rename from kubernetes/apps/monitoring/kubernetes-dashboard/app/helmrelease.yaml rename to template/templates/kubernetes/apps/monitoring/kubernetes-dashboard/app/helmrelease.yaml.j2 diff --git a/kubernetes/apps/monitoring/kubernetes-dashboard/app/kustomization.yaml b/template/templates/kubernetes/apps/monitoring/kubernetes-dashboard/app/kustomization.yaml.j2 similarity index 100% rename from kubernetes/apps/monitoring/kubernetes-dashboard/app/kustomization.yaml rename to template/templates/kubernetes/apps/monitoring/kubernetes-dashboard/app/kustomization.yaml.j2 diff --git a/kubernetes/apps/monitoring/kubernetes-dashboard/app/rbac.yaml b/template/templates/kubernetes/apps/monitoring/kubernetes-dashboard/app/rbac.yaml.j2 similarity index 100% rename from kubernetes/apps/monitoring/kubernetes-dashboard/app/rbac.yaml rename to template/templates/kubernetes/apps/monitoring/kubernetes-dashboard/app/rbac.yaml.j2 diff --git a/kubernetes/apps/monitoring/kubernetes-dashboard/ks.yaml b/template/templates/kubernetes/apps/monitoring/kubernetes-dashboard/ks.yaml.j2 similarity index 100% rename from kubernetes/apps/monitoring/kubernetes-dashboard/ks.yaml rename to template/templates/kubernetes/apps/monitoring/kubernetes-dashboard/ks.yaml.j2 diff --git a/kubernetes/apps/monitoring/kustomization.yaml b/template/templates/kubernetes/apps/monitoring/kustomization.yaml.j2 similarity index 100% rename from kubernetes/apps/monitoring/kustomization.yaml rename to template/templates/kubernetes/apps/monitoring/kustomization.yaml.j2 diff --git a/kubernetes/apps/monitoring/namespace.yaml b/template/templates/kubernetes/apps/monitoring/namespace.yaml.j2 similarity index 100% rename from kubernetes/apps/monitoring/namespace.yaml rename to template/templates/kubernetes/apps/monitoring/namespace.yaml.j2 diff --git a/kubernetes/apps/networking/cloudflared/app/configs/config.yaml b/template/templates/kubernetes/apps/networking/cloudflared/app/configs/config.yaml.j2 similarity index 100% rename from kubernetes/apps/networking/cloudflared/app/configs/config.yaml rename to template/templates/kubernetes/apps/networking/cloudflared/app/configs/config.yaml.j2 diff --git a/kubernetes/apps/networking/cloudflared/app/dnsendpoint.yaml b/template/templates/kubernetes/apps/networking/cloudflared/app/dnsendpoint.yaml.j2 similarity index 100% rename from kubernetes/apps/networking/cloudflared/app/dnsendpoint.yaml rename to template/templates/kubernetes/apps/networking/cloudflared/app/dnsendpoint.yaml.j2 diff --git a/kubernetes/apps/networking/cloudflared/app/helmrelease.yaml b/template/templates/kubernetes/apps/networking/cloudflared/app/helmrelease.yaml.j2 similarity index 100% rename from kubernetes/apps/networking/cloudflared/app/helmrelease.yaml rename to template/templates/kubernetes/apps/networking/cloudflared/app/helmrelease.yaml.j2 diff --git a/kubernetes/apps/networking/cloudflared/app/kustomization.yaml b/template/templates/kubernetes/apps/networking/cloudflared/app/kustomization.yaml.j2 similarity index 100% rename from kubernetes/apps/networking/cloudflared/app/kustomization.yaml rename to template/templates/kubernetes/apps/networking/cloudflared/app/kustomization.yaml.j2 diff --git a/template/templates/kubernetes/cloudflared-secret.sops.yaml.j2 b/template/templates/kubernetes/apps/networking/cloudflared/app/secret.sops.yaml.j2 similarity index 100% rename from template/templates/kubernetes/cloudflared-secret.sops.yaml.j2 rename to template/templates/kubernetes/apps/networking/cloudflared/app/secret.sops.yaml.j2 diff --git a/kubernetes/apps/networking/cloudflared/ks.yaml b/template/templates/kubernetes/apps/networking/cloudflared/ks.yaml.j2 similarity index 100% rename from kubernetes/apps/networking/cloudflared/ks.yaml rename to template/templates/kubernetes/apps/networking/cloudflared/ks.yaml.j2 diff --git a/kubernetes/apps/networking/external-dns/app/dnsendpoint-crd.yaml b/template/templates/kubernetes/apps/networking/external-dns/app/dnsendpoint-crd.yaml.j2 similarity index 100% rename from kubernetes/apps/networking/external-dns/app/dnsendpoint-crd.yaml rename to template/templates/kubernetes/apps/networking/external-dns/app/dnsendpoint-crd.yaml.j2 diff --git a/kubernetes/apps/networking/external-dns/app/helmrelease.yaml b/template/templates/kubernetes/apps/networking/external-dns/app/helmrelease.yaml.j2 similarity index 100% rename from kubernetes/apps/networking/external-dns/app/helmrelease.yaml rename to template/templates/kubernetes/apps/networking/external-dns/app/helmrelease.yaml.j2 diff --git a/kubernetes/apps/networking/external-dns/app/kustomization.yaml b/template/templates/kubernetes/apps/networking/external-dns/app/kustomization.yaml.j2 similarity index 100% rename from kubernetes/apps/networking/external-dns/app/kustomization.yaml rename to template/templates/kubernetes/apps/networking/external-dns/app/kustomization.yaml.j2 diff --git a/template/templates/kubernetes/external-dns-secret.sops.yaml.j2 b/template/templates/kubernetes/apps/networking/external-dns/app/secret.sops.yaml.j2 similarity index 100% rename from template/templates/kubernetes/external-dns-secret.sops.yaml.j2 rename to template/templates/kubernetes/apps/networking/external-dns/app/secret.sops.yaml.j2 diff --git a/kubernetes/apps/networking/external-dns/ks.yaml b/template/templates/kubernetes/apps/networking/external-dns/ks.yaml.j2 similarity index 100% rename from kubernetes/apps/networking/external-dns/ks.yaml rename to template/templates/kubernetes/apps/networking/external-dns/ks.yaml.j2 diff --git a/kubernetes/apps/networking/ingress-nginx/app/helmrelease.yaml b/template/templates/kubernetes/apps/networking/ingress-nginx/app/helmrelease.yaml.j2 similarity index 95% rename from kubernetes/apps/networking/ingress-nginx/app/helmrelease.yaml rename to template/templates/kubernetes/apps/networking/ingress-nginx/app/helmrelease.yaml.j2 index dfde4edf..0a9d754e 100644 --- a/kubernetes/apps/networking/ingress-nginx/app/helmrelease.yaml +++ b/template/templates/kubernetes/apps/networking/ingress-nginx/app/helmrelease.yaml.j2 @@ -36,7 +36,7 @@ spec: service: annotations: external-dns.alpha.kubernetes.io/hostname: "ingress.${SECRET_DOMAIN}" - io.cilium/lb-ipam-ips: "${INGRESS_NGINX_ADDR}" + io.cilium/lb-ipam-ips: "{{ bootstrap_ingress_nginx_addr }}" externalTrafficPolicy: Cluster publishService: enabled: true diff --git a/kubernetes/apps/networking/ingress-nginx/app/kustomization.yaml b/template/templates/kubernetes/apps/networking/ingress-nginx/app/kustomization.yaml.j2 similarity index 100% rename from kubernetes/apps/networking/ingress-nginx/app/kustomization.yaml rename to template/templates/kubernetes/apps/networking/ingress-nginx/app/kustomization.yaml.j2 diff --git a/kubernetes/apps/networking/ingress-nginx/certificates/kustomization.yaml b/template/templates/kubernetes/apps/networking/ingress-nginx/certificates/kustomization.yaml.j2 similarity index 100% rename from kubernetes/apps/networking/ingress-nginx/certificates/kustomization.yaml rename to template/templates/kubernetes/apps/networking/ingress-nginx/certificates/kustomization.yaml.j2 diff --git a/kubernetes/apps/networking/ingress-nginx/certificates/production.yaml b/template/templates/kubernetes/apps/networking/ingress-nginx/certificates/production.yaml.j2 similarity index 100% rename from kubernetes/apps/networking/ingress-nginx/certificates/production.yaml rename to template/templates/kubernetes/apps/networking/ingress-nginx/certificates/production.yaml.j2 diff --git a/kubernetes/apps/networking/ingress-nginx/certificates/staging.yaml b/template/templates/kubernetes/apps/networking/ingress-nginx/certificates/staging.yaml.j2 similarity index 100% rename from kubernetes/apps/networking/ingress-nginx/certificates/staging.yaml rename to template/templates/kubernetes/apps/networking/ingress-nginx/certificates/staging.yaml.j2 diff --git a/kubernetes/apps/networking/ingress-nginx/ks.yaml b/template/templates/kubernetes/apps/networking/ingress-nginx/ks.yaml.j2 similarity index 100% rename from kubernetes/apps/networking/ingress-nginx/ks.yaml rename to template/templates/kubernetes/apps/networking/ingress-nginx/ks.yaml.j2 diff --git a/kubernetes/apps/networking/k8s-gateway/app/helmrelease.yaml b/template/templates/kubernetes/apps/networking/k8s-gateway/app/helmrelease.yaml.j2 similarity index 91% rename from kubernetes/apps/networking/k8s-gateway/app/helmrelease.yaml rename to template/templates/kubernetes/apps/networking/k8s-gateway/app/helmrelease.yaml.j2 index df6009c0..bc6b7eda 100644 --- a/kubernetes/apps/networking/k8s-gateway/app/helmrelease.yaml +++ b/template/templates/kubernetes/apps/networking/k8s-gateway/app/helmrelease.yaml.j2 @@ -33,5 +33,5 @@ spec: type: LoadBalancer port: 53 annotations: - io.cilium/lb-ipam-ips: "${K8S_GATEWAY_ADDR}" + io.cilium/lb-ipam-ips: "{{ bootstrap_k8s_gateway_addr }}" externalTrafficPolicy: Cluster diff --git a/kubernetes/apps/networking/k8s-gateway/app/kustomization.yaml b/template/templates/kubernetes/apps/networking/k8s-gateway/app/kustomization.yaml.j2 similarity index 100% rename from kubernetes/apps/networking/k8s-gateway/app/kustomization.yaml rename to template/templates/kubernetes/apps/networking/k8s-gateway/app/kustomization.yaml.j2 diff --git a/kubernetes/apps/networking/k8s-gateway/ks.yaml b/template/templates/kubernetes/apps/networking/k8s-gateway/ks.yaml.j2 similarity index 100% rename from kubernetes/apps/networking/k8s-gateway/ks.yaml rename to template/templates/kubernetes/apps/networking/k8s-gateway/ks.yaml.j2 diff --git a/kubernetes/apps/networking/kustomization.yaml b/template/templates/kubernetes/apps/networking/kustomization.yaml.j2 similarity index 100% rename from kubernetes/apps/networking/kustomization.yaml rename to template/templates/kubernetes/apps/networking/kustomization.yaml.j2 diff --git a/kubernetes/apps/networking/namespace.yaml b/template/templates/kubernetes/apps/networking/namespace.yaml.j2 similarity index 100% rename from kubernetes/apps/networking/namespace.yaml rename to template/templates/kubernetes/apps/networking/namespace.yaml.j2 diff --git a/kubernetes/apps/system-upgrade/kustomization.yaml b/template/templates/kubernetes/apps/system-upgrade/kustomization.yaml.j2 similarity index 100% rename from kubernetes/apps/system-upgrade/kustomization.yaml rename to template/templates/kubernetes/apps/system-upgrade/kustomization.yaml.j2 diff --git a/kubernetes/apps/system-upgrade/namespace.yaml b/template/templates/kubernetes/apps/system-upgrade/namespace.yaml.j2 similarity index 100% rename from kubernetes/apps/system-upgrade/namespace.yaml rename to template/templates/kubernetes/apps/system-upgrade/namespace.yaml.j2 diff --git a/kubernetes/apps/system-upgrade/system-upgrade-controller/app/kustomization.yaml b/template/templates/kubernetes/apps/system-upgrade/system-upgrade-controller/app/kustomization.yaml.j2 similarity index 100% rename from kubernetes/apps/system-upgrade/system-upgrade-controller/app/kustomization.yaml rename to template/templates/kubernetes/apps/system-upgrade/system-upgrade-controller/app/kustomization.yaml.j2 diff --git a/kubernetes/apps/system-upgrade/system-upgrade-controller/ks.yaml b/template/templates/kubernetes/apps/system-upgrade/system-upgrade-controller/ks.yaml.j2 similarity index 100% rename from kubernetes/apps/system-upgrade/system-upgrade-controller/ks.yaml rename to template/templates/kubernetes/apps/system-upgrade/system-upgrade-controller/ks.yaml.j2 diff --git a/kubernetes/apps/system-upgrade/system-upgrade-controller/plans/agent.yaml b/template/templates/kubernetes/apps/system-upgrade/system-upgrade-controller/plans/agent.yaml.j2 similarity index 100% rename from kubernetes/apps/system-upgrade/system-upgrade-controller/plans/agent.yaml rename to template/templates/kubernetes/apps/system-upgrade/system-upgrade-controller/plans/agent.yaml.j2 diff --git a/kubernetes/apps/system-upgrade/system-upgrade-controller/plans/kustomization.yaml b/template/templates/kubernetes/apps/system-upgrade/system-upgrade-controller/plans/kustomization.yaml.j2 similarity index 100% rename from kubernetes/apps/system-upgrade/system-upgrade-controller/plans/kustomization.yaml rename to template/templates/kubernetes/apps/system-upgrade/system-upgrade-controller/plans/kustomization.yaml.j2 diff --git a/kubernetes/apps/system-upgrade/system-upgrade-controller/plans/server.yaml b/template/templates/kubernetes/apps/system-upgrade/system-upgrade-controller/plans/server.yaml.j2 similarity index 100% rename from kubernetes/apps/system-upgrade/system-upgrade-controller/plans/server.yaml rename to template/templates/kubernetes/apps/system-upgrade/system-upgrade-controller/plans/server.yaml.j2 diff --git a/kubernetes/bootstrap/kustomization.yaml b/template/templates/kubernetes/bootstrap/kustomization.yaml.j2 similarity index 100% rename from kubernetes/bootstrap/kustomization.yaml rename to template/templates/kubernetes/bootstrap/kustomization.yaml.j2 diff --git a/template/templates/kubernetes/cluster-settings.yaml.j2 b/template/templates/kubernetes/cluster-settings.yaml.j2 deleted file mode 100644 index e3575c6b..00000000 --- a/template/templates/kubernetes/cluster-settings.yaml.j2 +++ /dev/null @@ -1,15 +0,0 @@ ---- -apiVersion: v1 -kind: ConfigMap -metadata: - name: cluster-settings - namespace: flux-system -data: - TIMEZONE: "{{ bootstrap_timezone }}" - COREDNS_ADDR: "{{ bootstrap_coredns_addr }}" - K8S_GATEWAY_ADDR: "{{ bootstrap_k8s_gateway_addr }}" - INGRESS_NGINX_ADDR: "{{ bootstrap_ingress_nginx_addr }}" - KUBE_VIP_ADDR: "{{ bootstrap_kube_vip_addr }}" - CLUSTER_CIDR: "{{ bootstrap_cluster_cidr }}" - SERVICE_CIDR: "{{ bootstrap_service_cidr }}" - NODE_CIDR: "{{ bootstrap_node_cidr }}" diff --git a/kubernetes/flux/apps.yaml b/template/templates/kubernetes/flux/apps.yaml.j2 similarity index 100% rename from kubernetes/flux/apps.yaml rename to template/templates/kubernetes/flux/apps.yaml.j2 diff --git a/template/templates/kubernetes/cluster.yaml.j2 b/template/templates/kubernetes/flux/config/cluster.yaml.j2 similarity index 100% rename from template/templates/kubernetes/cluster.yaml.j2 rename to template/templates/kubernetes/flux/config/cluster.yaml.j2 diff --git a/kubernetes/flux/config/flux.yaml b/template/templates/kubernetes/flux/config/flux.yaml.j2 similarity index 100% rename from kubernetes/flux/config/flux.yaml rename to template/templates/kubernetes/flux/config/flux.yaml.j2 diff --git a/kubernetes/flux/config/kustomization.yaml b/template/templates/kubernetes/flux/config/kustomization.yaml.j2 similarity index 100% rename from kubernetes/flux/config/kustomization.yaml rename to template/templates/kubernetes/flux/config/kustomization.yaml.j2 diff --git a/kubernetes/flux/repositories/git/kustomization.yaml b/template/templates/kubernetes/flux/repositories/git/kustomization.yaml.j2 similarity index 100% rename from kubernetes/flux/repositories/git/kustomization.yaml rename to template/templates/kubernetes/flux/repositories/git/kustomization.yaml.j2 diff --git a/kubernetes/flux/repositories/git/local-path-provisioner.yaml b/template/templates/kubernetes/flux/repositories/git/local-path-provisioner.yaml.j2 similarity index 100% rename from kubernetes/flux/repositories/git/local-path-provisioner.yaml rename to template/templates/kubernetes/flux/repositories/git/local-path-provisioner.yaml.j2 diff --git a/kubernetes/flux/repositories/helm/bitnami.yaml b/template/templates/kubernetes/flux/repositories/helm/bitnami.yaml.j2 similarity index 100% rename from kubernetes/flux/repositories/helm/bitnami.yaml rename to template/templates/kubernetes/flux/repositories/helm/bitnami.yaml.j2 diff --git a/kubernetes/flux/repositories/helm/bjw-s.yaml b/template/templates/kubernetes/flux/repositories/helm/bjw-s.yaml.j2 similarity index 100% rename from kubernetes/flux/repositories/helm/bjw-s.yaml rename to template/templates/kubernetes/flux/repositories/helm/bjw-s.yaml.j2 diff --git a/kubernetes/flux/repositories/helm/cilium.yaml b/template/templates/kubernetes/flux/repositories/helm/cilium.yaml.j2 similarity index 100% rename from kubernetes/flux/repositories/helm/cilium.yaml rename to template/templates/kubernetes/flux/repositories/helm/cilium.yaml.j2 diff --git a/kubernetes/flux/repositories/helm/coredns.yaml b/template/templates/kubernetes/flux/repositories/helm/coredns.yaml.j2 similarity index 100% rename from kubernetes/flux/repositories/helm/coredns.yaml rename to template/templates/kubernetes/flux/repositories/helm/coredns.yaml.j2 diff --git a/kubernetes/flux/repositories/helm/external-dns.yaml b/template/templates/kubernetes/flux/repositories/helm/external-dns.yaml.j2 similarity index 100% rename from kubernetes/flux/repositories/helm/external-dns.yaml rename to template/templates/kubernetes/flux/repositories/helm/external-dns.yaml.j2 diff --git a/kubernetes/flux/repositories/helm/grafana.yaml b/template/templates/kubernetes/flux/repositories/helm/grafana.yaml.j2 similarity index 100% rename from kubernetes/flux/repositories/helm/grafana.yaml rename to template/templates/kubernetes/flux/repositories/helm/grafana.yaml.j2 diff --git a/kubernetes/flux/repositories/helm/hajimari.yaml b/template/templates/kubernetes/flux/repositories/helm/hajimari.yaml.j2 similarity index 100% rename from kubernetes/flux/repositories/helm/hajimari.yaml rename to template/templates/kubernetes/flux/repositories/helm/hajimari.yaml.j2 diff --git a/kubernetes/flux/repositories/helm/ingress-nginx.yaml b/template/templates/kubernetes/flux/repositories/helm/ingress-nginx.yaml.j2 similarity index 100% rename from kubernetes/flux/repositories/helm/ingress-nginx.yaml rename to template/templates/kubernetes/flux/repositories/helm/ingress-nginx.yaml.j2 diff --git a/kubernetes/flux/repositories/helm/jetstack.yaml b/template/templates/kubernetes/flux/repositories/helm/jetstack.yaml.j2 similarity index 100% rename from kubernetes/flux/repositories/helm/jetstack.yaml rename to template/templates/kubernetes/flux/repositories/helm/jetstack.yaml.j2 diff --git a/kubernetes/flux/repositories/helm/k8s-gateway.yaml b/template/templates/kubernetes/flux/repositories/helm/k8s-gateway.yaml.j2 similarity index 100% rename from kubernetes/flux/repositories/helm/k8s-gateway.yaml rename to template/templates/kubernetes/flux/repositories/helm/k8s-gateway.yaml.j2 diff --git a/kubernetes/flux/repositories/helm/kubernetes-dashboard.yaml b/template/templates/kubernetes/flux/repositories/helm/kubernetes-dashboard.yaml.j2 similarity index 100% rename from kubernetes/flux/repositories/helm/kubernetes-dashboard.yaml rename to template/templates/kubernetes/flux/repositories/helm/kubernetes-dashboard.yaml.j2 diff --git a/kubernetes/flux/repositories/helm/kustomization.yaml b/template/templates/kubernetes/flux/repositories/helm/kustomization.yaml.j2 similarity index 100% rename from kubernetes/flux/repositories/helm/kustomization.yaml rename to template/templates/kubernetes/flux/repositories/helm/kustomization.yaml.j2 diff --git a/kubernetes/flux/repositories/helm/metrics-server.yaml b/template/templates/kubernetes/flux/repositories/helm/metrics-server.yaml.j2 similarity index 100% rename from kubernetes/flux/repositories/helm/metrics-server.yaml rename to template/templates/kubernetes/flux/repositories/helm/metrics-server.yaml.j2 diff --git a/kubernetes/flux/repositories/helm/prometheus-community.yaml b/template/templates/kubernetes/flux/repositories/helm/prometheus-community.yaml.j2 similarity index 100% rename from kubernetes/flux/repositories/helm/prometheus-community.yaml rename to template/templates/kubernetes/flux/repositories/helm/prometheus-community.yaml.j2 diff --git a/kubernetes/flux/repositories/helm/stakater.yaml b/template/templates/kubernetes/flux/repositories/helm/stakater.yaml.j2 similarity index 100% rename from kubernetes/flux/repositories/helm/stakater.yaml rename to template/templates/kubernetes/flux/repositories/helm/stakater.yaml.j2 diff --git a/kubernetes/flux/repositories/helm/weave-gitops.yaml b/template/templates/kubernetes/flux/repositories/helm/weave-gitops.yaml.j2 similarity index 100% rename from kubernetes/flux/repositories/helm/weave-gitops.yaml rename to template/templates/kubernetes/flux/repositories/helm/weave-gitops.yaml.j2 diff --git a/kubernetes/flux/repositories/kustomization.yaml b/template/templates/kubernetes/flux/repositories/kustomization.yaml.j2 similarity index 100% rename from kubernetes/flux/repositories/kustomization.yaml rename to template/templates/kubernetes/flux/repositories/kustomization.yaml.j2 diff --git a/kubernetes/flux/repositories/oci/.gitkeep b/template/templates/kubernetes/flux/repositories/oci/.gitkeep similarity index 100% rename from kubernetes/flux/repositories/oci/.gitkeep rename to template/templates/kubernetes/flux/repositories/oci/.gitkeep diff --git a/template/templates/kubernetes/cluster-secrets.sops.yaml.j2 b/template/templates/kubernetes/flux/vars/cluster-secrets.sops.yaml.j2 similarity index 100% rename from template/templates/kubernetes/cluster-secrets.sops.yaml.j2 rename to template/templates/kubernetes/flux/vars/cluster-secrets.sops.yaml.j2 diff --git a/template/templates/kubernetes/flux/vars/cluster-settings.yaml.j2 b/template/templates/kubernetes/flux/vars/cluster-settings.yaml.j2 new file mode 100644 index 00000000..ca76a0cf --- /dev/null +++ b/template/templates/kubernetes/flux/vars/cluster-settings.yaml.j2 @@ -0,0 +1,8 @@ +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: cluster-settings + namespace: flux-system +data: + TIMEZONE: "{{ bootstrap_timezone }}" diff --git a/kubernetes/flux/vars/kustomization.yaml b/template/templates/kubernetes/flux/vars/kustomization.yaml.j2 similarity index 100% rename from kubernetes/flux/vars/kustomization.yaml rename to template/templates/kubernetes/flux/vars/kustomization.yaml.j2