summaryrefslogtreecommitdiff
path: root/playbooks.d/k3s-master/manifests/infrastructure
diff options
context:
space:
mode:
authorPatrick Spek <p.spek@tyil.nl>2022-10-06 14:06:23 +0200
committerPatrick Spek <p.spek@tyil.nl>2022-10-06 14:12:18 +0200
commit1116a2ff4adb52cb8a9a7017095e29cc6caf0713 (patch)
tree1a8d48bca86add3ca042f7364bb5deffdd6fe474 /playbooks.d/k3s-master/manifests/infrastructure
parent6078b12b26a039410c67b6d541aeb69f81eaecf4 (diff)
Place manifests directly into playbook dir
Diffstat (limited to 'playbooks.d/k3s-master/manifests/infrastructure')
-rw-r--r--playbooks.d/k3s-master/manifests/infrastructure/configuration/cluster-issuers/kustomization.yaml7
-rw-r--r--playbooks.d/k3s-master/manifests/infrastructure/configuration/cluster-issuers/letsencrypt-production.yaml16
-rw-r--r--playbooks.d/k3s-master/manifests/infrastructure/configuration/cluster-issuers/letsencrypt-staging.yaml17
-rw-r--r--playbooks.d/k3s-master/manifests/infrastructure/configuration/kustomization.yaml6
-rw-r--r--playbooks.d/k3s-master/manifests/infrastructure/releases/cert-manager/kustomization.yaml6
-rw-r--r--playbooks.d/k3s-master/manifests/infrastructure/releases/cert-manager/release.yaml20
-rw-r--r--playbooks.d/k3s-master/manifests/infrastructure/releases/external-dns/kustomization.yaml7
-rw-r--r--playbooks.d/k3s-master/manifests/infrastructure/releases/external-dns/release.yaml24
-rw-r--r--playbooks.d/k3s-master/manifests/infrastructure/releases/external-dns/values.yaml17
-rw-r--r--playbooks.d/k3s-master/manifests/infrastructure/releases/ingress-nginx/kustomization.yaml6
-rw-r--r--playbooks.d/k3s-master/manifests/infrastructure/releases/ingress-nginx/release.yaml26
-rw-r--r--playbooks.d/k3s-master/manifests/infrastructure/releases/kustomization.yaml9
-rw-r--r--playbooks.d/k3s-master/manifests/infrastructure/releases/sealed-secrets/kustomization.yaml6
-rw-r--r--playbooks.d/k3s-master/manifests/infrastructure/releases/sealed-secrets/release.yaml19
-rw-r--r--playbooks.d/k3s-master/manifests/infrastructure/releases/seaweedfs-csi-driver/kustomization.yaml6
-rw-r--r--playbooks.d/k3s-master/manifests/infrastructure/releases/seaweedfs-csi-driver/release.yaml22
-rw-r--r--playbooks.d/k3s-master/manifests/infrastructure/sources/bitnami.yaml10
-rw-r--r--playbooks.d/k3s-master/manifests/infrastructure/sources/ingress-nginx.yaml10
-rw-r--r--playbooks.d/k3s-master/manifests/infrastructure/sources/jetstack.yaml10
-rw-r--r--playbooks.d/k3s-master/manifests/infrastructure/sources/kustomization.yaml12
-rw-r--r--playbooks.d/k3s-master/manifests/infrastructure/sources/nextcloud.yaml10
-rw-r--r--playbooks.d/k3s-master/manifests/infrastructure/sources/seaweedfs.yaml12
-rw-r--r--playbooks.d/k3s-master/manifests/infrastructure/sources/tyil-invidious.yaml12
-rw-r--r--playbooks.d/k3s-master/manifests/infrastructure/sources/tyil-nitter.yaml12
24 files changed, 302 insertions, 0 deletions
diff --git a/playbooks.d/k3s-master/manifests/infrastructure/configuration/cluster-issuers/kustomization.yaml b/playbooks.d/k3s-master/manifests/infrastructure/configuration/cluster-issuers/kustomization.yaml
new file mode 100644
index 0000000..c9e511c
--- /dev/null
+++ b/playbooks.d/k3s-master/manifests/infrastructure/configuration/cluster-issuers/kustomization.yaml
@@ -0,0 +1,7 @@
+---
+apiVersion: kustomize.config.k8s.io/v1beta1
+kind: Kustomization
+resources:
+- letsencrypt-staging.yaml
+- letsencrypt-production.yaml
+...
diff --git a/playbooks.d/k3s-master/manifests/infrastructure/configuration/cluster-issuers/letsencrypt-production.yaml b/playbooks.d/k3s-master/manifests/infrastructure/configuration/cluster-issuers/letsencrypt-production.yaml
new file mode 100644
index 0000000..75aea5f
--- /dev/null
+++ b/playbooks.d/k3s-master/manifests/infrastructure/configuration/cluster-issuers/letsencrypt-production.yaml
@@ -0,0 +1,16 @@
+---
+apiVersion: cert-manager.io/v1
+kind: ClusterIssuer
+metadata:
+ name: letsencrypt-production
+spec:
+ acme:
+ email: root@tyil.net
+ server: https://acme-v02.api.letsencrypt.org/directory
+ privateKeySecretRef:
+ name: clusterissuer-letsencrypt-production
+ solvers:
+ - http01:
+ ingress:
+ class: nginx
+...
diff --git a/playbooks.d/k3s-master/manifests/infrastructure/configuration/cluster-issuers/letsencrypt-staging.yaml b/playbooks.d/k3s-master/manifests/infrastructure/configuration/cluster-issuers/letsencrypt-staging.yaml
new file mode 100644
index 0000000..73a1f50
--- /dev/null
+++ b/playbooks.d/k3s-master/manifests/infrastructure/configuration/cluster-issuers/letsencrypt-staging.yaml
@@ -0,0 +1,17 @@
+---
+apiVersion: cert-manager.io/v1
+kind: ClusterIssuer
+metadata:
+ name: letsencrypt-staging
+spec:
+ acme:
+ email: root@tyil.net
+ server: https://acme-staging-v02.api.letsencrypt.org/directory
+ privateKeySecretRef:
+ name: clusterissuer-letsencrypt-staging
+ solvers:
+ - http01:
+ ingress:
+ class: nginx
+ selector: {}
+...
diff --git a/playbooks.d/k3s-master/manifests/infrastructure/configuration/kustomization.yaml b/playbooks.d/k3s-master/manifests/infrastructure/configuration/kustomization.yaml
new file mode 100644
index 0000000..b1b320b
--- /dev/null
+++ b/playbooks.d/k3s-master/manifests/infrastructure/configuration/kustomization.yaml
@@ -0,0 +1,6 @@
+---
+apiVersion: kustomize.config.k8s.io/v1beta1
+kind: Kustomization
+resources:
+- cluster-issuers
+...
diff --git a/playbooks.d/k3s-master/manifests/infrastructure/releases/cert-manager/kustomization.yaml b/playbooks.d/k3s-master/manifests/infrastructure/releases/cert-manager/kustomization.yaml
new file mode 100644
index 0000000..3c7eaaa
--- /dev/null
+++ b/playbooks.d/k3s-master/manifests/infrastructure/releases/cert-manager/kustomization.yaml
@@ -0,0 +1,6 @@
+---
+apiVersion: kustomize.config.k8s.io/v1beta1
+kind: Kustomization
+resources:
+- release.yaml
+...
diff --git a/playbooks.d/k3s-master/manifests/infrastructure/releases/cert-manager/release.yaml b/playbooks.d/k3s-master/manifests/infrastructure/releases/cert-manager/release.yaml
new file mode 100644
index 0000000..794d631
--- /dev/null
+++ b/playbooks.d/k3s-master/manifests/infrastructure/releases/cert-manager/release.yaml
@@ -0,0 +1,20 @@
+---
+apiVersion: helm.toolkit.fluxcd.io/v2beta1
+kind: HelmRelease
+metadata:
+ name: cert-manager
+ namespace: base-system
+spec:
+ interval: 5m
+ chart:
+ spec:
+ chart: cert-manager
+ version: 1.9.1
+ sourceRef:
+ kind: HelmRepository
+ name: jetstack
+ namespace: flux-system
+ interval: 1m
+ values:
+ installCRDs: true
+...
diff --git a/playbooks.d/k3s-master/manifests/infrastructure/releases/external-dns/kustomization.yaml b/playbooks.d/k3s-master/manifests/infrastructure/releases/external-dns/kustomization.yaml
new file mode 100644
index 0000000..f542f00
--- /dev/null
+++ b/playbooks.d/k3s-master/manifests/infrastructure/releases/external-dns/kustomization.yaml
@@ -0,0 +1,7 @@
+---
+apiVersion: kustomize.config.k8s.io/v1beta1
+kind: Kustomization
+resources:
+- values.yaml
+- release.yaml
+...
diff --git a/playbooks.d/k3s-master/manifests/infrastructure/releases/external-dns/release.yaml b/playbooks.d/k3s-master/manifests/infrastructure/releases/external-dns/release.yaml
new file mode 100644
index 0000000..96b652c
--- /dev/null
+++ b/playbooks.d/k3s-master/manifests/infrastructure/releases/external-dns/release.yaml
@@ -0,0 +1,24 @@
+---
+apiVersion: helm.toolkit.fluxcd.io/v2beta1
+kind: HelmRelease
+metadata:
+ name: external-dns
+ namespace: base-system
+spec:
+ interval: 5m
+ chart:
+ spec:
+ chart: external-dns
+ version: 6.7.2
+ sourceRef:
+ kind: HelmRepository
+ name: bitnami
+ namespace: flux-system
+ interval: 1m
+ values:
+ provider: transip
+ valuesFrom:
+ - kind: Secret
+ name: valuefile-external-dns
+ valuesKey: values.yaml
+...
diff --git a/playbooks.d/k3s-master/manifests/infrastructure/releases/external-dns/values.yaml b/playbooks.d/k3s-master/manifests/infrastructure/releases/external-dns/values.yaml
new file mode 100644
index 0000000..20d1d7a
--- /dev/null
+++ b/playbooks.d/k3s-master/manifests/infrastructure/releases/external-dns/values.yaml
@@ -0,0 +1,17 @@
+apiVersion: bitnami.com/v1alpha1
+kind: SealedSecret
+metadata:
+ creationTimestamp: null
+ name: valuefile-external-dns
+ namespace: base-system
+spec:
+ encryptedData:
+ values.yaml: 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
+ template:
+ data: null
+ metadata:
+ creationTimestamp: null
+ name: valuefile-external-dns
+ namespace: base-system
+ type: Opaque
+
diff --git a/playbooks.d/k3s-master/manifests/infrastructure/releases/ingress-nginx/kustomization.yaml b/playbooks.d/k3s-master/manifests/infrastructure/releases/ingress-nginx/kustomization.yaml
new file mode 100644
index 0000000..3c7eaaa
--- /dev/null
+++ b/playbooks.d/k3s-master/manifests/infrastructure/releases/ingress-nginx/kustomization.yaml
@@ -0,0 +1,6 @@
+---
+apiVersion: kustomize.config.k8s.io/v1beta1
+kind: Kustomization
+resources:
+- release.yaml
+...
diff --git a/playbooks.d/k3s-master/manifests/infrastructure/releases/ingress-nginx/release.yaml b/playbooks.d/k3s-master/manifests/infrastructure/releases/ingress-nginx/release.yaml
new file mode 100644
index 0000000..dc5a3e8
--- /dev/null
+++ b/playbooks.d/k3s-master/manifests/infrastructure/releases/ingress-nginx/release.yaml
@@ -0,0 +1,26 @@
+---
+apiVersion: helm.toolkit.fluxcd.io/v2beta1
+kind: HelmRelease
+metadata:
+ name: ingress-nginx
+ namespace: base-system
+spec:
+ interval: 5m
+ chart:
+ spec:
+ chart: ingress-nginx
+ version: 4.2.0
+ sourceRef:
+ kind: HelmRepository
+ name: ingress-nginx
+ namespace: flux-system
+ interval: 1m
+ values:
+ controller:
+ replicaCount: 1
+ service:
+ ports:
+ http: 8080
+ https: 8443
+ watchIngressWithoutClass: true
+...
diff --git a/playbooks.d/k3s-master/manifests/infrastructure/releases/kustomization.yaml b/playbooks.d/k3s-master/manifests/infrastructure/releases/kustomization.yaml
new file mode 100644
index 0000000..c3e8794
--- /dev/null
+++ b/playbooks.d/k3s-master/manifests/infrastructure/releases/kustomization.yaml
@@ -0,0 +1,9 @@
+---
+apiVersion: kustomize.config.k8s.io/v1beta1
+kind: Kustomization
+resources:
+- sealed-secrets
+- ingress-nginx
+- cert-manager
+- seaweedfs-csi-driver
+...
diff --git a/playbooks.d/k3s-master/manifests/infrastructure/releases/sealed-secrets/kustomization.yaml b/playbooks.d/k3s-master/manifests/infrastructure/releases/sealed-secrets/kustomization.yaml
new file mode 100644
index 0000000..3c7eaaa
--- /dev/null
+++ b/playbooks.d/k3s-master/manifests/infrastructure/releases/sealed-secrets/kustomization.yaml
@@ -0,0 +1,6 @@
+---
+apiVersion: kustomize.config.k8s.io/v1beta1
+kind: Kustomization
+resources:
+- release.yaml
+...
diff --git a/playbooks.d/k3s-master/manifests/infrastructure/releases/sealed-secrets/release.yaml b/playbooks.d/k3s-master/manifests/infrastructure/releases/sealed-secrets/release.yaml
new file mode 100644
index 0000000..fe9ef26
--- /dev/null
+++ b/playbooks.d/k3s-master/manifests/infrastructure/releases/sealed-secrets/release.yaml
@@ -0,0 +1,19 @@
+---
+apiVersion: helm.toolkit.fluxcd.io/v2beta1
+kind: HelmRelease
+metadata:
+ name: sealed-secrets-controller
+ namespace: kube-system
+spec:
+ interval: 5m
+ chart:
+ spec:
+ chart: sealed-secrets
+ version: 1.0.10
+ sourceRef:
+ kind: HelmRepository
+ name: bitnami
+ namespace: flux-system
+ interval: 1m
+ values: {}
+...
diff --git a/playbooks.d/k3s-master/manifests/infrastructure/releases/seaweedfs-csi-driver/kustomization.yaml b/playbooks.d/k3s-master/manifests/infrastructure/releases/seaweedfs-csi-driver/kustomization.yaml
new file mode 100644
index 0000000..3c7eaaa
--- /dev/null
+++ b/playbooks.d/k3s-master/manifests/infrastructure/releases/seaweedfs-csi-driver/kustomization.yaml
@@ -0,0 +1,6 @@
+---
+apiVersion: kustomize.config.k8s.io/v1beta1
+kind: Kustomization
+resources:
+- release.yaml
+...
diff --git a/playbooks.d/k3s-master/manifests/infrastructure/releases/seaweedfs-csi-driver/release.yaml b/playbooks.d/k3s-master/manifests/infrastructure/releases/seaweedfs-csi-driver/release.yaml
new file mode 100644
index 0000000..750e6fa
--- /dev/null
+++ b/playbooks.d/k3s-master/manifests/infrastructure/releases/seaweedfs-csi-driver/release.yaml
@@ -0,0 +1,22 @@
+---
+apiVersion: helm.toolkit.fluxcd.io/v2beta1
+kind: HelmRelease
+metadata:
+ name: seaweedfs-csi-driver
+ namespace: base-system
+spec:
+ interval: 5m
+ chart:
+ spec:
+ chart: ./deploy/helm/seaweedfs-csi-driver
+ version: 0.1.1
+ sourceRef:
+ kind: GitRepository
+ name: seaweedfs
+ namespace: flux-system
+ interval: 1m
+ values:
+ seaweedfsFiler: 10.57.21.1
+ storageClassName: seaweedfs
+ isDefaultStorageClass: false
+...
diff --git a/playbooks.d/k3s-master/manifests/infrastructure/sources/bitnami.yaml b/playbooks.d/k3s-master/manifests/infrastructure/sources/bitnami.yaml
new file mode 100644
index 0000000..ef29afb
--- /dev/null
+++ b/playbooks.d/k3s-master/manifests/infrastructure/sources/bitnami.yaml
@@ -0,0 +1,10 @@
+---
+apiVersion: source.toolkit.fluxcd.io/v1beta2
+kind: HelmRepository
+metadata:
+ name: bitnami
+ namespace: flux-system
+spec:
+ interval: 1m
+ url: https://charts.bitnami.com/bitnami
+...
diff --git a/playbooks.d/k3s-master/manifests/infrastructure/sources/ingress-nginx.yaml b/playbooks.d/k3s-master/manifests/infrastructure/sources/ingress-nginx.yaml
new file mode 100644
index 0000000..cd006ac
--- /dev/null
+++ b/playbooks.d/k3s-master/manifests/infrastructure/sources/ingress-nginx.yaml
@@ -0,0 +1,10 @@
+---
+apiVersion: source.toolkit.fluxcd.io/v1beta2
+kind: HelmRepository
+metadata:
+ name: ingress-nginx
+ namespace: flux-system
+spec:
+ interval: 1m
+ url: https://kubernetes.github.io/ingress-nginx
+...
diff --git a/playbooks.d/k3s-master/manifests/infrastructure/sources/jetstack.yaml b/playbooks.d/k3s-master/manifests/infrastructure/sources/jetstack.yaml
new file mode 100644
index 0000000..782ba14
--- /dev/null
+++ b/playbooks.d/k3s-master/manifests/infrastructure/sources/jetstack.yaml
@@ -0,0 +1,10 @@
+---
+apiVersion: source.toolkit.fluxcd.io/v1beta2
+kind: HelmRepository
+metadata:
+ name: jetstack
+ namespace: flux-system
+spec:
+ interval: 1m
+ url: https://charts.jetstack.io
+...
diff --git a/playbooks.d/k3s-master/manifests/infrastructure/sources/kustomization.yaml b/playbooks.d/k3s-master/manifests/infrastructure/sources/kustomization.yaml
new file mode 100644
index 0000000..a87331d
--- /dev/null
+++ b/playbooks.d/k3s-master/manifests/infrastructure/sources/kustomization.yaml
@@ -0,0 +1,12 @@
+---
+apiVersion: kustomize.config.k8s.io/v1beta1
+kind: Kustomization
+resources:
+- bitnami.yaml
+- ingress-nginx.yaml
+- jetstack.yaml
+- nextcloud.yaml
+- seaweedfs.yaml
+- tyil-invidious.yaml
+- tyil-nitter.yaml
+...
diff --git a/playbooks.d/k3s-master/manifests/infrastructure/sources/nextcloud.yaml b/playbooks.d/k3s-master/manifests/infrastructure/sources/nextcloud.yaml
new file mode 100644
index 0000000..1594b3b
--- /dev/null
+++ b/playbooks.d/k3s-master/manifests/infrastructure/sources/nextcloud.yaml
@@ -0,0 +1,10 @@
+---
+apiVersion: source.toolkit.fluxcd.io/v1beta2
+kind: HelmRepository
+metadata:
+ name: nextcloud
+ namespace: flux-system
+spec:
+ interval: 1m
+ url: https://nextcloud.github.io/helm/
+...
diff --git a/playbooks.d/k3s-master/manifests/infrastructure/sources/seaweedfs.yaml b/playbooks.d/k3s-master/manifests/infrastructure/sources/seaweedfs.yaml
new file mode 100644
index 0000000..cba7a16
--- /dev/null
+++ b/playbooks.d/k3s-master/manifests/infrastructure/sources/seaweedfs.yaml
@@ -0,0 +1,12 @@
+---
+apiVersion: source.toolkit.fluxcd.io/v1beta2
+kind: GitRepository
+metadata:
+ name: seaweedfs
+ namespace: flux-system
+spec:
+ interval: 1m
+ url: https://github.com/seaweedfs/seaweedfs-csi-driver
+ ref:
+ branch: master
+...
diff --git a/playbooks.d/k3s-master/manifests/infrastructure/sources/tyil-invidious.yaml b/playbooks.d/k3s-master/manifests/infrastructure/sources/tyil-invidious.yaml
new file mode 100644
index 0000000..1633026
--- /dev/null
+++ b/playbooks.d/k3s-master/manifests/infrastructure/sources/tyil-invidious.yaml
@@ -0,0 +1,12 @@
+---
+apiVersion: source.toolkit.fluxcd.io/v1beta2
+kind: GitRepository
+metadata:
+ name: tyil-helm-invidious
+ namespace: flux-system
+spec:
+ interval: 1m
+ url: https://git.sr.ht/~tyil/helm-invidious
+ ref:
+ branch: master
+...
diff --git a/playbooks.d/k3s-master/manifests/infrastructure/sources/tyil-nitter.yaml b/playbooks.d/k3s-master/manifests/infrastructure/sources/tyil-nitter.yaml
new file mode 100644
index 0000000..d7cc48c
--- /dev/null
+++ b/playbooks.d/k3s-master/manifests/infrastructure/sources/tyil-nitter.yaml
@@ -0,0 +1,12 @@
+---
+apiVersion: source.toolkit.fluxcd.io/v1beta2
+kind: GitRepository
+metadata:
+ name: tyil-helm-nitter
+ namespace: flux-system
+spec:
+ interval: 1m
+ url: https://git.sr.ht/~tyil/helm-nitter
+ ref:
+ branch: master
+...