feat!: Update Flux ks names and add volsync and snapshot-controller (#1036)

This commit is contained in:
Devin Buhl authored and GitHub committed 2023-11-23 17:49:40 -05:00
1 parent fc3c7b56af
commit 84574b2f64
89 files changed
+325 -91

No files matched your search

+1 -1
View File
@@ -26,7 +26,7 @@ This template implements Flux in a way that promotes legibility and ease of use
Before we get started everything below must be taken into consideration, you must... Before we get started everything below must be taken into consideration, you must...
- [ ] have some experience with 3 of the following: Git/SCM, containers, networking or programming. - [ ] have some experience with 3 of the following: Git/SCM, containers, networking or scripting.
- [ ] bring a **positive attitude** and be ready to learn and fail a lot. _The more you fail, the more you can learn from._ - [ ] bring a **positive attitude** and be ready to learn and fail a lot. _The more you fail, the more you can learn from._
- [ ] run the cluster on bare metal machines or VMs within your home network — **this is NOT designed for cloud environments**. - [ ] run the cluster on bare metal machines or VMs within your home network — **this is NOT designed for cloud environments**.
- [ ] have Debian 12 freshly installed on 1 or more AMD64/ARM64 bare metal machines or VMs. Each machine will be either a **control node** or a **worker node** in your cluster. - [ ] have Debian 12 freshly installed on 1 or more AMD64/ARM64 bare metal machines or VMs. Each machine will be either a **control node** or a **worker node** in your cluster.
@@ -3,7 +3,6 @@ apiVersion: helm.toolkit.fluxcd.io/v2beta1
kind: HelmRelease kind: HelmRelease
metadata: metadata:
name: csi-driver-nfs name: csi-driver-nfs
namespace: kube-system
spec: spec:
interval: 30m interval: 30m
chart: chart:
@@ -1,7 +1,6 @@
--- ---
apiVersion: kustomize.config.k8s.io/v1beta1 apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization kind: Kustomization
namespace: kube-system
resources: resources:
- ./helmrelease.yaml - ./helmrelease.yaml
- ./storageclass.yaml - ./storageclass.yaml
@@ -2,9 +2,13 @@
apiVersion: kustomize.toolkit.fluxcd.io/v1 apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization kind: Kustomization
metadata: metadata:
name: cluster-apps-csi-driver-nfs name: &app csi-driver-nfs
namespace: flux-system namespace: flux-system
spec: spec:
targetNamespace: kube-system
commonMetadata:
labels:
app.kubernetes.io/name: *app
path: ./kubernetes/apps/kube-system/csi-driver-nfs/app path: ./kubernetes/apps/kube-system/csi-driver-nfs/app
prune: true prune: true
sourceRef: sourceRef:
@@ -3,7 +3,6 @@ apiVersion: helm.toolkit.fluxcd.io/v2beta1
kind: HelmRelease kind: HelmRelease
metadata: metadata:
name: discord-template-notifier name: discord-template-notifier
namespace: default
spec: spec:
interval: 15m interval: 15m
chart: chart:
@@ -1,7 +1,6 @@
--- ---
apiVersion: kustomize.config.k8s.io/v1beta1 apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization kind: Kustomization
namespace: default
resources: resources:
- ./secret.sops.yaml - ./secret.sops.yaml
- ./helmrelease.yaml - ./helmrelease.yaml
@@ -3,7 +3,6 @@ apiVersion: v1
kind: Secret kind: Secret
metadata: metadata:
name: discord-template-notifier-secret name: discord-template-notifier-secret
namespace: default
type: Opaque type: Opaque
stringData: stringData:
config.toml: |- config.toml: |-
@@ -2,9 +2,13 @@
apiVersion: kustomize.toolkit.fluxcd.io/v1 apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization kind: Kustomization
metadata: metadata:
name: cluster-apps-discord-template-notifier name: &app discord-template-notifier
namespace: flux-system namespace: flux-system
spec: spec:
targetNamespace: default
commonMetadata:
labels:
app.kubernetes.io/name: *app
path: ./kubernetes/apps/default/discord-template-notifier/app path: ./kubernetes/apps/default/discord-template-notifier/app
prune: true prune: true
sourceRef: sourceRef:
@@ -3,7 +3,6 @@ apiVersion: helm.toolkit.fluxcd.io/v2beta1
kind: HelmRelease kind: HelmRelease
metadata: metadata:
name: grafana name: grafana
namespace: monitoring
spec: spec:
interval: 30m interval: 30m
chart: chart:
@@ -1,7 +1,6 @@
--- ---
apiVersion: kustomize.config.k8s.io/v1beta1 apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization kind: Kustomization
namespace: monitoring
resources: resources:
- ./secret.sops.yaml - ./secret.sops.yaml
- ./helmrelease.yaml - ./helmrelease.yaml
@@ -3,7 +3,6 @@ apiVersion: v1
kind: Secret kind: Secret
metadata: metadata:
name: grafana-admin-secret name: grafana-admin-secret
namespace: monitoring
stringData: stringData:
admin-user: admin admin-user: admin
admin-password: "{{ grafana.password }}" admin-password: "{{ grafana.password }}"
@@ -2,9 +2,13 @@
apiVersion: kustomize.toolkit.fluxcd.io/v1 apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization kind: Kustomization
metadata: metadata:
name: cluster-apps-grafana name: &app grafana
namespace: flux-system namespace: flux-system
spec: spec:
targetNamespace: monitoring
commonMetadata:
labels:
app.kubernetes.io/name: *app
path: ./kubernetes/apps/monitoring/grafana/app path: ./kubernetes/apps/monitoring/grafana/app
prune: true prune: true
sourceRef: sourceRef:
@@ -3,7 +3,6 @@ apiVersion: helm.toolkit.fluxcd.io/v2beta1
kind: HelmRelease kind: HelmRelease
metadata: metadata:
name: hajimari name: hajimari
namespace: default
spec: spec:
interval: 30m interval: 30m
chart: chart:
@@ -1,6 +1,5 @@
--- ---
apiVersion: kustomize.config.k8s.io/v1beta1 apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization kind: Kustomization
namespace: default
resources: resources:
- ./helmrelease.yaml - ./helmrelease.yaml
@@ -2,9 +2,13 @@
apiVersion: kustomize.toolkit.fluxcd.io/v1 apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization kind: Kustomization
metadata: metadata:
name: cluster-apps-hajimari name: &app hajimari
namespace: flux-system namespace: flux-system
spec: spec:
targetNamespace: default
commonMetadata:
labels:
app.kubernetes.io/name: *app
path: ./kubernetes/apps/default/hajimari/app path: ./kubernetes/apps/default/hajimari/app
prune: true prune: true
sourceRef: sourceRef:
@@ -3,7 +3,6 @@ apiVersion: helm.toolkit.fluxcd.io/v2beta1
kind: HelmRelease kind: HelmRelease
metadata: metadata:
name: kube-prometheus-stack name: kube-prometheus-stack
namespace: monitoring
spec: spec:
interval: 30m interval: 30m
timeout: 15m timeout: 15m
@@ -4,7 +4,6 @@ apiVersion: v1
kind: ConfigMap kind: ConfigMap
metadata: metadata:
name: kube-prometheus-stack-values name: kube-prometheus-stack-values
namespace: monitoring
data: data:
values.yaml: | values.yaml: |
crds: crds:
@@ -1,7 +1,6 @@
--- ---
apiVersion: kustomize.config.k8s.io/v1beta1 apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization kind: Kustomization
namespace: monitoring
resources: resources:
- ./helmvalues.yaml - ./helmvalues.yaml
- ./helmrelease.yaml - ./helmrelease.yaml
@@ -2,9 +2,13 @@
apiVersion: kustomize.toolkit.fluxcd.io/v1 apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization kind: Kustomization
metadata: metadata:
name: cluster-apps-kube-prometheus-stack name: &app kube-prometheus-stack
namespace: flux-system namespace: flux-system
spec: spec:
targetNamespace: monitoring
commonMetadata:
labels:
app.kubernetes.io/name: *app
path: ./kubernetes/apps/monitoring/kube-prometheus-stack/app path: ./kubernetes/apps/monitoring/kube-prometheus-stack/app
prune: true prune: true
sourceRef: sourceRef:
@@ -3,7 +3,6 @@ apiVersion: helm.toolkit.fluxcd.io/v2beta1
kind: HelmRelease kind: HelmRelease
metadata: metadata:
name: kubernetes-dashboard name: kubernetes-dashboard
namespace: monitoring
spec: spec:
interval: 30m interval: 30m
chart: chart:
@@ -1,7 +1,6 @@
--- ---
apiVersion: kustomize.config.k8s.io/v1beta1 apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization kind: Kustomization
namespace: monitoring
resources: resources:
- ./rbac.yaml - ./rbac.yaml
- ./helmrelease.yaml - ./helmrelease.yaml
@@ -5,7 +5,6 @@ apiVersion: v1
kind: ServiceAccount kind: ServiceAccount
metadata: metadata:
name: kubernetes-dashboard name: kubernetes-dashboard
namespace: monitoring
labels: labels:
app.kubernetes.io/managed-by: Helm app.kubernetes.io/managed-by: Helm
annotations: annotations:
@@ -19,7 +18,6 @@ kind: Secret
type: kubernetes.io/service-account-token type: kubernetes.io/service-account-token
metadata: metadata:
name: kubernetes-dashboard name: kubernetes-dashboard
namespace: monitoring
labels: labels:
app.kubernetes.io/managed-by: Helm app.kubernetes.io/managed-by: Helm
annotations: annotations:
@@ -2,12 +2,16 @@
apiVersion: kustomize.toolkit.fluxcd.io/v1 apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization kind: Kustomization
metadata: metadata:
name: cluster-apps-kubernetes-dashboard name: &app kubernetes-dashboard
namespace: flux-system namespace: flux-system
spec: spec:
targetNamespace: monitoring
commonMetadata:
labels:
app.kubernetes.io/name: *app
dependsOn: dependsOn:
- name: cluster-apps-cert-manager - name: cert-manager
- name: cluster-apps-metrics-server - name: metrics-server
path: ./kubernetes/apps/monitoring/kubernetes-dashboard/app path: ./kubernetes/apps/monitoring/kubernetes-dashboard/app
prune: true prune: true
sourceRef: sourceRef:
@@ -2,9 +2,13 @@
apiVersion: kustomize.toolkit.fluxcd.io/v1 apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization kind: Kustomization
metadata: metadata:
name: cluster-apps-system-upgrade-controller name: &app system-upgrade-controller
namespace: flux-system namespace: flux-system
spec: spec:
targetNamespace: system-upgrade
commonMetadata:
labels:
app.kubernetes.io/name: *app
path: ./kubernetes/apps/system-upgrade/system-upgrade-controller/app path: ./kubernetes/apps/system-upgrade/system-upgrade-controller/app
prune: true prune: true
sourceRef: sourceRef:
@@ -18,11 +22,15 @@ spec:
apiVersion: kustomize.toolkit.fluxcd.io/v1 apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization kind: Kustomization
metadata: metadata:
name: cluster-apps-system-upgrade-controller-plans name: &app system-upgrade-controller-plans
namespace: flux-system namespace: flux-system
spec: spec:
targetNamespace: system-upgrade
commonMetadata:
labels:
app.kubernetes.io/name: *app
dependsOn: dependsOn:
- name: cluster-apps-system-upgrade-controller - name: system-upgrade-controller
path: ./kubernetes/apps/system-upgrade/system-upgrade-controller/plans path: ./kubernetes/apps/system-upgrade/system-upgrade-controller/plans
prune: true prune: true
sourceRef: sourceRef:
@@ -3,7 +3,6 @@ apiVersion: upgrade.cattle.io/v1
kind: Plan kind: Plan
metadata: metadata:
name: agent name: agent
namespace: system-upgrade
spec: spec:
# renovate: datasource=github-releases depName=k3s-io/k3s # renovate: datasource=github-releases depName=k3s-io/k3s
version: "v1.28.3+k3s1" version: "v1.28.3+k3s1"
@@ -3,7 +3,6 @@ apiVersion: upgrade.cattle.io/v1
kind: Plan kind: Plan
metadata: metadata:
name: server name: server
namespace: system-upgrade
spec: spec:
# renovate: datasource=github-releases depName=k3s-io/k3s # renovate: datasource=github-releases depName=k3s-io/k3s
version: "v1.28.3+k3s1" version: "v1.28.3+k3s1"
@@ -3,7 +3,6 @@ apiVersion: helm.toolkit.fluxcd.io/v2beta1
kind: HelmRelease kind: HelmRelease
metadata: metadata:
name: weave-gitops name: weave-gitops
namespace: flux-system
spec: spec:
interval: 30m interval: 30m
chart: chart:
@@ -1,7 +1,6 @@
--- ---
apiVersion: kustomize.config.k8s.io/v1beta1 apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization kind: Kustomization
namespace: flux-system
resources: resources:
- ./secret.sops.yaml - ./secret.sops.yaml
- ./helmrelease.yaml - ./helmrelease.yaml
@@ -3,7 +3,6 @@ apiVersion: v1
kind: Secret kind: Secret
metadata: metadata:
name: cluster-user-auth name: cluster-user-auth
namespace: flux-system
type: Opaque type: Opaque
stringData: stringData:
username: admin username: admin
@@ -2,9 +2,13 @@
apiVersion: kustomize.toolkit.fluxcd.io/v1 apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization kind: Kustomization
metadata: metadata:
name: cluster-apps-weave-gitops name: &app weave-gitops
namespace: flux-system namespace: flux-system
spec: spec:
targetNamespace: flux-system
commonMetadata:
labels:
app.kubernetes.io/name: *app
path: ./kubernetes/apps/flux-system/weave-gitops/app path: ./kubernetes/apps/flux-system/weave-gitops/app
prune: true prune: true
sourceRef: sourceRef:
@@ -3,7 +3,6 @@ apiVersion: helm.toolkit.fluxcd.io/v2beta1
kind: HelmRelease kind: HelmRelease
metadata: metadata:
name: cert-manager name: cert-manager
namespace: cert-manager
spec: spec:
interval: 30m interval: 30m
chart: chart:
@@ -1,7 +1,6 @@
--- ---
apiVersion: kustomize.config.k8s.io/v1beta1 apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization kind: Kustomization
namespace: cert-manager
resources: resources:
- ./helmrelease.yaml - ./helmrelease.yaml
- ./prometheusrule.yaml - ./prometheusrule.yaml
@@ -4,7 +4,6 @@ apiVersion: monitoring.coreos.com/v1
kind: PrometheusRule kind: PrometheusRule
metadata: metadata:
name: cert-manager.rules name: cert-manager.rules
namespace: cert-manager
spec: spec:
groups: groups:
- name: cert-manager - name: cert-manager
@@ -3,6 +3,5 @@ apiVersion: v1
kind: Secret kind: Secret
metadata: metadata:
name: cert-manager-secret name: cert-manager-secret
namespace: cert-manager
stringData: stringData:
api-token: "{{ bootstrap_cloudflare_token }}" api-token: "{{ bootstrap_cloudflare_token }}"
@@ -2,9 +2,13 @@
apiVersion: kustomize.toolkit.fluxcd.io/v1 apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization kind: Kustomization
metadata: metadata:
name: cluster-apps-cert-manager name: &app cert-manager
namespace: flux-system namespace: flux-system
spec: spec:
targetNamespace: cert-manager
commonMetadata:
labels:
app.kubernetes.io/name: *app
path: ./kubernetes/apps/cert-manager/cert-manager/app path: ./kubernetes/apps/cert-manager/cert-manager/app
prune: true prune: true
sourceRef: sourceRef:
@@ -18,11 +22,15 @@ spec:
apiVersion: kustomize.toolkit.fluxcd.io/v1 apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization kind: Kustomization
metadata: metadata:
name: cluster-apps-cert-manager-issuers name: &app cert-manager-issuers
namespace: flux-system namespace: flux-system
spec: spec:
targetNamespace: cert-manager
commonMetadata:
labels:
app.kubernetes.io/name: *app
dependsOn: dependsOn:
- name: cluster-apps-cert-manager - name: cert-manager
path: ./kubernetes/apps/cert-manager/cert-manager/issuers path: ./kubernetes/apps/cert-manager/cert-manager/issuers
prune: true prune: true
sourceRef: sourceRef:
@@ -2,9 +2,13 @@
apiVersion: kustomize.toolkit.fluxcd.io/v1 apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization kind: Kustomization
metadata: metadata:
name: cluster-apps-flux-webhooks name: &app flux-webhooks
namespace: flux-system namespace: flux-system
spec: spec:
targetNamespace: flux-system
commonMetadata:
labels:
app.kubernetes.io/name: *app
path: ./kubernetes/apps/flux-system/addons/webhooks path: ./kubernetes/apps/flux-system/addons/webhooks
prune: true prune: true
sourceRef: sourceRef:
@@ -3,7 +3,6 @@ apiVersion: networking.k8s.io/v1
kind: Ingress kind: Ingress
metadata: metadata:
name: flux-webhook name: flux-webhook
namespace: flux-system
annotations: annotations:
external-dns.alpha.kubernetes.io/target: "external.${SECRET_DOMAIN}" external-dns.alpha.kubernetes.io/target: "external.${SECRET_DOMAIN}"
hajimari.io/enable: "false" hajimari.io/enable: "false"
@@ -3,7 +3,6 @@ apiVersion: notification.toolkit.fluxcd.io/v1
kind: Receiver kind: Receiver
metadata: metadata:
name: github-receiver name: github-receiver
namespace: flux-system
spec: spec:
type: github type: github
events: events:
@@ -3,6 +3,5 @@ apiVersion: v1
kind: Secret kind: Secret
metadata: metadata:
name: github-webhook-token-secret name: github-webhook-token-secret
namespace: flux-system
stringData: stringData:
token: "{{ bootstrap_flux_github_webhook_token }}" token: "{{ bootstrap_flux_github_webhook_token }}"
@@ -3,7 +3,6 @@ apiVersion: helm.toolkit.fluxcd.io/v2beta1
kind: HelmRelease kind: HelmRelease
metadata: metadata:
name: cilium name: cilium
namespace: kube-system
spec: spec:
interval: 30m interval: 30m
chart: chart:
@@ -4,7 +4,6 @@ apiVersion: v1
kind: ConfigMap kind: ConfigMap
metadata: metadata:
name: cilium-values name: cilium-values
namespace: kube-system
data: data:
values.yaml: | values.yaml: |
autoDirectNodeRoutes: true autoDirectNodeRoutes: true
@@ -2,7 +2,6 @@
--- ---
apiVersion: kustomize.config.k8s.io/v1beta1 apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization kind: Kustomization
namespace: kube-system
resources: resources:
{% if not bootstrap_ipv6_enabled | default(false) %} {% if not bootstrap_ipv6_enabled | default(false) %}
- ./cilium-l2.yaml - ./cilium-l2.yaml
@@ -2,9 +2,13 @@
apiVersion: kustomize.toolkit.fluxcd.io/v1 apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization kind: Kustomization
metadata: metadata:
name: cluster-apps-cilium name: &app cilium
namespace: flux-system namespace: flux-system
spec: spec:
targetNamespace: kube-system
commonMetadata:
labels:
app.kubernetes.io/name: *app
path: ./kubernetes/apps/kube-system/cilium/app path: ./kubernetes/apps/kube-system/cilium/app
prune: false # never should be deleted prune: false # never should be deleted
sourceRef: sourceRef:
@@ -4,7 +4,6 @@ apiVersion: helm.toolkit.fluxcd.io/v2beta1
kind: HelmRelease kind: HelmRelease
metadata: metadata:
name: coredns name: coredns
namespace: kube-system
spec: spec:
interval: 30m interval: 30m
chart: chart:
@@ -1,6 +1,5 @@
--- ---
apiVersion: kustomize.config.k8s.io/v1beta1 apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization kind: Kustomization
namespace: kube-system
resources: resources:
- ./helmrelease.yaml - ./helmrelease.yaml
@@ -2,9 +2,13 @@
apiVersion: kustomize.toolkit.fluxcd.io/v1 apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization kind: Kustomization
metadata: metadata:
name: cluster-apps-coredns name: &app coredns
namespace: flux-system namespace: flux-system
spec: spec:
targetNamespace: kube-system
commonMetadata:
labels:
app.kubernetes.io/name: *app
path: ./kubernetes/apps/kube-system/coredns/app path: ./kubernetes/apps/kube-system/coredns/app
prune: false # never should be deleted prune: false # never should be deleted
sourceRef: sourceRef:
@@ -9,6 +9,7 @@ resources:
- ./local-path-provisioner/ks.yaml - ./local-path-provisioner/ks.yaml
- ./metrics-server/ks.yaml - ./metrics-server/ks.yaml
- ./reloader/ks.yaml - ./reloader/ks.yaml
- ./snapshot-controller/ks.yaml
{% if csi_driver_nfs.enabled | default(false) %} {% if csi_driver_nfs.enabled | default(false) %}
- ./csi-driver-nfs/ks.yaml - ./csi-driver-nfs/ks.yaml
{% endif %} {% endif %}
@@ -3,7 +3,6 @@ apiVersion: helm.toolkit.fluxcd.io/v2beta1
kind: HelmRelease kind: HelmRelease
metadata: metadata:
name: local-path-provisioner name: local-path-provisioner
namespace: kube-system
spec: spec:
interval: 30m interval: 30m
chart: chart:
@@ -1,6 +1,5 @@
--- ---
apiVersion: kustomize.config.k8s.io/v1beta1 apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization kind: Kustomization
namespace: kube-system
resources: resources:
- ./helmrelease.yaml - ./helmrelease.yaml
@@ -2,11 +2,15 @@
apiVersion: kustomize.toolkit.fluxcd.io/v1 apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization kind: Kustomization
metadata: metadata:
name: cluster-apps-local-path-provisioner name: &app local-path-provisioner
namespace: flux-system namespace: flux-system
labels: labels:
substitution.flux.home.arpa/disabled: "true" substitution.flux.home.arpa/disabled: "true"
spec: spec:
targetNamespace: kube-system
commonMetadata:
labels:
app.kubernetes.io/name: *app
path: ./kubernetes/apps/kube-system/local-path-provisioner/app path: ./kubernetes/apps/kube-system/local-path-provisioner/app
prune: true prune: true
sourceRef: sourceRef:
@@ -3,7 +3,6 @@ apiVersion: helm.toolkit.fluxcd.io/v2beta1
kind: HelmRelease kind: HelmRelease
metadata: metadata:
name: metrics-server name: metrics-server
namespace: kube-system
spec: spec:
interval: 30m interval: 30m
chart: chart:
@@ -1,6 +1,5 @@
--- ---
apiVersion: kustomize.config.k8s.io/v1beta1 apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization kind: Kustomization
namespace: kube-system
resources: resources:
- ./helmrelease.yaml - ./helmrelease.yaml
@@ -2,9 +2,13 @@
apiVersion: kustomize.toolkit.fluxcd.io/v1 apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization kind: Kustomization
metadata: metadata:
name: cluster-apps-metrics-server name: &app metrics-server
namespace: flux-system namespace: flux-system
spec: spec:
targetNamespace: kube-system
commonMetadata:
labels:
app.kubernetes.io/name: *app
path: ./kubernetes/apps/kube-system/metrics-server/app path: ./kubernetes/apps/kube-system/metrics-server/app
prune: true prune: true
sourceRef: sourceRef:
@@ -1,6 +1,5 @@
--- ---
apiVersion: kustomize.config.k8s.io/v1beta1 apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization kind: Kustomization
namespace: kube-system
resources: resources:
- ./helmrelease.yaml - ./helmrelease.yaml
@@ -2,9 +2,13 @@
apiVersion: kustomize.toolkit.fluxcd.io/v1 apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization kind: Kustomization
metadata: metadata:
name: cluster-apps-reloader name: &app reloader
namespace: flux-system namespace: flux-system
spec: spec:
targetNamespace: kube-system
commonMetadata:
labels:
app.kubernetes.io/name: *app
path: ./kubernetes/apps/kube-system/reloader/app path: ./kubernetes/apps/kube-system/reloader/app
prune: true prune: true
sourceRef: sourceRef:
@@ -0,0 +1,33 @@
---
apiVersion: helm.toolkit.fluxcd.io/v2beta1
kind: HelmRelease
metadata:
name: snapshot-controller
spec:
interval: 30m
chart:
spec:
chart: snapshot-controller
version: 2.0.2
sourceRef:
kind: HelmRepository
name: piraeus
namespace: flux-system
maxHistory: 2
install:
crds: CreateReplace
remediation:
retries: 3
upgrade:
cleanupOnFail: true
crds: CreateReplace
remediation:
retries: 3
uninstall:
keepHistory: false
values:
controller:
serviceMonitor:
create: true
webhook:
enabled: false
@@ -0,0 +1,6 @@
---
# yaml-language-server: $schema=https://json.schemastore.org/kustomization
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ./helmrelease.yaml
@@ -0,0 +1,20 @@
---
apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
name: &app snapshot-controller
namespace: flux-system
spec:
targetNamespace: kube-system
commonMetadata:
labels:
app.kubernetes.io/name: *app
path: ./kubernetes/apps/kube-system/snapshot-controller/app
prune: true
sourceRef:
kind: GitRepository
name: home-kubernetes
wait: false
interval: 30m
retryInterval: 1m
timeout: 5m
@@ -3,7 +3,6 @@ apiVersion: externaldns.k8s.io/v1alpha1
kind: DNSEndpoint kind: DNSEndpoint
metadata: metadata:
name: cloudflared name: cloudflared
namespace: networking
spec: spec:
endpoints: endpoints:
- dnsName: "external.${SECRET_DOMAIN}" - dnsName: "external.${SECRET_DOMAIN}"
@@ -3,7 +3,6 @@ apiVersion: helm.toolkit.fluxcd.io/v2beta1
kind: HelmRelease kind: HelmRelease
metadata: metadata:
name: cloudflared name: cloudflared
namespace: networking
spec: spec:
interval: 30m interval: 30m
chart: chart:
@@ -1,7 +1,6 @@
--- ---
apiVersion: kustomize.config.k8s.io/v1beta1 apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization kind: Kustomization
namespace: networking
resources: resources:
- ./dnsendpoint.yaml - ./dnsendpoint.yaml
- ./secret.sops.yaml - ./secret.sops.yaml
@@ -3,7 +3,6 @@ apiVersion: v1
kind: Secret kind: Secret
metadata: metadata:
name: cloudflared-secret name: cloudflared-secret
namespace: networking
stringData: stringData:
TUNNEL_ID: "{{ bootstrap_cloudflare_tunnel_id }}" TUNNEL_ID: "{{ bootstrap_cloudflare_tunnel_id }}"
credentials.json: | credentials.json: |
@@ -2,11 +2,15 @@
apiVersion: kustomize.toolkit.fluxcd.io/v1 apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization kind: Kustomization
metadata: metadata:
name: cluster-apps-cloudflared name: &app cloudflared
namespace: flux-system namespace: flux-system
spec: spec:
targetNamespace: networking
commonMetadata:
labels:
app.kubernetes.io/name: *app
dependsOn: dependsOn:
- name: cluster-apps-external-dns - name: external-dns
path: ./kubernetes/apps/networking/cloudflared/app path: ./kubernetes/apps/networking/cloudflared/app
prune: true prune: true
sourceRef: sourceRef:
@@ -4,7 +4,6 @@ apiVersion: helm.toolkit.fluxcd.io/v2beta1
kind: HelmRelease kind: HelmRelease
metadata: metadata:
name: echo-server name: echo-server
namespace: networking
spec: spec:
interval: 30m interval: 30m
chart: chart:
@@ -1,6 +1,5 @@
--- ---
apiVersion: kustomize.config.k8s.io/v1beta1 apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization kind: Kustomization
namespace: networking
resources: resources:
- ./helmrelease.yaml - ./helmrelease.yaml
@@ -2,9 +2,13 @@
apiVersion: kustomize.toolkit.fluxcd.io/v1 apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization kind: Kustomization
metadata: metadata:
name: cluster-apps-echo-server name: &app echo-server
namespace: flux-system namespace: flux-system
spec: spec:
targetNamespace: networking
commonMetadata:
labels:
app.kubernetes.io/name: *app
path: ./kubernetes/apps/networking/echo-server/app path: ./kubernetes/apps/networking/echo-server/app
prune: true prune: true
sourceRef: sourceRef:
@@ -3,7 +3,6 @@ apiVersion: helm.toolkit.fluxcd.io/v2beta1
kind: HelmRelease kind: HelmRelease
metadata: metadata:
name: &app external-dns name: &app external-dns
namespace: networking
spec: spec:
interval: 30m interval: 30m
chart: chart:
@@ -1,7 +1,6 @@
--- ---
apiVersion: kustomize.config.k8s.io/v1beta1 apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization kind: Kustomization
namespace: networking
resources: resources:
- ./dnsendpoint-crd.yaml - ./dnsendpoint-crd.yaml
- ./secret.sops.yaml - ./secret.sops.yaml
@@ -3,6 +3,5 @@ apiVersion: v1
kind: Secret kind: Secret
metadata: metadata:
name: external-dns-secret name: external-dns-secret
namespace: networking
stringData: stringData:
api-token: "{{ bootstrap_cloudflare_token }}" api-token: "{{ bootstrap_cloudflare_token }}"
@@ -2,9 +2,13 @@
apiVersion: kustomize.toolkit.fluxcd.io/v1 apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization kind: Kustomization
metadata: metadata:
name: cluster-apps-external-dns name: &app external-dns
namespace: flux-system namespace: flux-system
spec: spec:
targetNamespace: networking
commonMetadata:
labels:
app.kubernetes.io/name: *app
path: ./kubernetes/apps/networking/external-dns/app path: ./kubernetes/apps/networking/external-dns/app
prune: true prune: true
sourceRef: sourceRef:
@@ -3,7 +3,6 @@ apiVersion: helm.toolkit.fluxcd.io/v2beta1
kind: HelmRelease kind: HelmRelease
metadata: metadata:
name: k8s-gateway name: k8s-gateway
namespace: networking
spec: spec:
interval: 30m interval: 30m
chart: chart:
@@ -1,6 +1,5 @@
--- ---
apiVersion: kustomize.config.k8s.io/v1beta1 apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization kind: Kustomization
namespace: networking
resources: resources:
- ./helmrelease.yaml - ./helmrelease.yaml
@@ -2,9 +2,13 @@
apiVersion: kustomize.toolkit.fluxcd.io/v1 apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization kind: Kustomization
metadata: metadata:
name: cluster-apps-k8s-gateway name: &app k8s-gateway
namespace: flux-system namespace: flux-system
spec: spec:
targetNamespace: networking
commonMetadata:
labels:
app.kubernetes.io/name: *app
path: ./kubernetes/apps/networking/k8s-gateway/app path: ./kubernetes/apps/networking/k8s-gateway/app
prune: true prune: true
sourceRef: sourceRef:
@@ -3,7 +3,6 @@ apiVersion: cert-manager.io/v1
kind: Certificate kind: Certificate
metadata: metadata:
name: "${SECRET_DOMAIN/./-}-production" name: "${SECRET_DOMAIN/./-}-production"
namespace: networking
spec: spec:
secretName: "${SECRET_DOMAIN/./-}-production-tls" secretName: "${SECRET_DOMAIN/./-}-production-tls"
issuerRef: issuerRef:
@@ -3,7 +3,6 @@ apiVersion: cert-manager.io/v1
kind: Certificate kind: Certificate
metadata: metadata:
name: "${SECRET_DOMAIN/./-}-staging" name: "${SECRET_DOMAIN/./-}-staging"
namespace: networking
spec: spec:
secretName: "${SECRET_DOMAIN/./-}-staging-tls" secretName: "${SECRET_DOMAIN/./-}-staging-tls"
issuerRef: issuerRef:
@@ -4,7 +4,7 @@ apiVersion: helm.toolkit.fluxcd.io/v2beta1
kind: HelmRelease kind: HelmRelease
metadata: metadata:
name: nginx-external name: nginx-external
namespace: networking namespace: &namespace networking
spec: spec:
interval: 30m interval: 30m
chart: chart:
@@ -70,7 +70,7 @@ spec:
enabled: true enabled: true
serviceMonitor: serviceMonitor:
enabled: true enabled: true
namespace: networking namespace: *namespace
namespaceSelector: namespaceSelector:
any: true any: true
extraArgs: extraArgs:
@@ -1,6 +1,5 @@
--- ---
apiVersion: kustomize.config.k8s.io/v1beta1 apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization kind: Kustomization
namespace: networking
resources: resources:
- ./helmrelease.yaml - ./helmrelease.yaml
@@ -4,7 +4,7 @@ apiVersion: helm.toolkit.fluxcd.io/v2beta1
kind: HelmRelease kind: HelmRelease
metadata: metadata:
name: nginx-internal name: nginx-internal
namespace: networking namespace: &namespace networking
spec: spec:
interval: 30m interval: 30m
chart: chart:
@@ -67,7 +67,7 @@ spec:
enabled: true enabled: true
serviceMonitor: serviceMonitor:
enabled: true enabled: true
namespace: networking namespace: *namespace
namespaceSelector: namespaceSelector:
any: true any: true
extraArgs: extraArgs:
@@ -1,6 +1,5 @@
--- ---
apiVersion: kustomize.config.k8s.io/v1beta1 apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization kind: Kustomization
namespace: networking
resources: resources:
- ./helmrelease.yaml - ./helmrelease.yaml
@@ -2,11 +2,15 @@
apiVersion: kustomize.toolkit.fluxcd.io/v1 apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization kind: Kustomization
metadata: metadata:
name: cluster-apps-nginx-certificates name: &app nginx-certificates
namespace: flux-system namespace: flux-system
spec: spec:
targetNamespace: networking
commonMetadata:
labels:
app.kubernetes.io/name: *app
dependsOn: dependsOn:
- name: cluster-apps-cert-manager-issuers - name: cert-manager-issuers
path: ./kubernetes/apps/networking/nginx/certificates path: ./kubernetes/apps/networking/nginx/certificates
prune: true prune: true
sourceRef: sourceRef:
@@ -20,11 +24,15 @@ spec:
apiVersion: kustomize.toolkit.fluxcd.io/v1 apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization kind: Kustomization
metadata: metadata:
name: cluster-apps-nginx-external name: &app nginx-external
namespace: flux-system namespace: flux-system
spec: spec:
targetNamespace: networking
commonMetadata:
labels:
app.kubernetes.io/name: *app
dependsOn: dependsOn:
- name: cluster-apps-nginx-certificates - name: nginx-certificates
path: ./kubernetes/apps/networking/nginx/external path: ./kubernetes/apps/networking/nginx/external
prune: true prune: true
sourceRef: sourceRef:
@@ -38,11 +46,15 @@ spec:
apiVersion: kustomize.toolkit.fluxcd.io/v1 apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization kind: Kustomization
metadata: metadata:
name: cluster-apps-nginx-internal name: &app nginx-internal
namespace: flux-system namespace: flux-system
spec: spec:
targetNamespace: networking
commonMetadata:
labels:
app.kubernetes.io/name: *app
dependsOn: dependsOn:
- name: cluster-apps-nginx-certificates - name: nginx-certificates
path: ./kubernetes/apps/networking/nginx/internal path: ./kubernetes/apps/networking/nginx/internal
prune: true prune: true
sourceRef: sourceRef:
@@ -0,0 +1,9 @@
---
# yaml-language-server: $schema=https://json.schemastore.org/kustomization
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
# Pre Flux-Kustomizations
- ./namespace.yaml
# Flux-Kustomizations
- ./volsync/ks.yaml
@@ -0,0 +1,7 @@
---
apiVersion: v1
kind: Namespace
metadata:
name: volsync
labels:
kustomize.toolkit.fluxcd.io/prune: disabled
@@ -0,0 +1,42 @@
---
apiVersion: helm.toolkit.fluxcd.io/v2beta1
kind: HelmRelease
metadata:
name: volsync
spec:
interval: 30m
chart:
spec:
chart: volsync
version: 0.8.0
sourceRef:
kind: HelmRepository
name: backube
namespace: flux-system
maxHistory: 2
install:
remediation:
retries: 3
upgrade:
cleanupOnFail: true
remediation:
retries: 3
uninstall:
keepHistory: false
dependsOn:
- name: snapshot-controller
namespace: kube-system
values:
manageCRDs: true
image:
# https://github.com/backube/volsync/issues/828
repository: &image ghcr.io/onedr0p/volsync
tag: &tag 0.8.0
rclone:
repository: *image
tag: *tag
restic:
repository: *image
tag: *tag
metrics:
disableAuth: true
@@ -0,0 +1,7 @@
---
# yaml-language-server: $schema=https://json.schemastore.org/kustomization
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ./helmrelease.yaml
- ./prometheusrule.yaml
@@ -0,0 +1,27 @@
---
apiVersion: monitoring.coreos.com/v1
kind: PrometheusRule
metadata:
name: volsync
spec:
groups:
- name: volsync.rules
rules:
- alert: VolSyncComponentAbsent
annotations:
summary: VolSync component has disappeared from Prometheus target discovery.
expr: |
absent(up{job="volsync-metrics"})
for: 15m
labels:
severity: critical
- alert: VolSyncVolumeOutOfSync
annotations:
summary: >-
{{ $labels.obj_namespace }}/{{ $labels.obj_name }} volume
is out of sync.
expr: |
volsync_volume_out_of_sync == 1
for: 15m
labels:
severity: critical
@@ -0,0 +1,20 @@
---
apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
name: &app volsync
namespace: flux-system
spec:
targetNamespace: volsync
commonMetadata:
labels:
app.kubernetes.io/name: *app
path: ./kubernetes/apps/volsync/volsync/app
prune: true
sourceRef:
kind: GitRepository
name: home-kubernetes
wait: false
interval: 30m
retryInterval: 1m
timeout: 5m
@@ -0,0 +1,9 @@
---
apiVersion: source.toolkit.fluxcd.io/v1beta2
kind: HelmRepository
metadata:
name: backube
namespace: flux-system
spec:
interval: 1h
url: https://backube.github.io/helm-charts/
@@ -2,6 +2,7 @@
apiVersion: kustomize.config.k8s.io/v1beta1 apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization kind: Kustomization
resources: resources:
- ./backube.yaml
- ./bitnami.yaml - ./bitnami.yaml
- ./bjw-s.yaml - ./bjw-s.yaml
- ./cilium.yaml - ./cilium.yaml
@@ -15,6 +16,7 @@ resources:
- ./k8s-gateway.yaml - ./k8s-gateway.yaml
- ./kubernetes-dashboard.yaml - ./kubernetes-dashboard.yaml
- ./metrics-server.yaml - ./metrics-server.yaml
- ./piraeus.yaml
- ./prometheus-community.yaml - ./prometheus-community.yaml
- ./stakater.yaml - ./stakater.yaml
- ./weave-gitops.yaml - ./weave-gitops.yaml
@@ -0,0 +1,9 @@
---
apiVersion: source.toolkit.fluxcd.io/v1beta2
kind: HelmRepository
metadata:
name: piraeus
namespace: flux-system
spec:
interval: 1h
url: https://piraeus.io/helm-charts/