From fc6418253180f2bf2f8bdcb3316defa63b51d364 Mon Sep 17 00:00:00 2001 From: Edward Cheng Date: Sun, 9 Jun 2024 16:02:44 +1000 Subject: [PATCH] temp check in --- .../rpi5-cluster/apps/cert-manager/ks.yaml | 35 +++++++++++++++ .../apps/cert-manager/namespace.yaml | 4 ++ .../repositories/cert-manager.yaml | 8 ++++ .../apps/cert-manager/apps/helmrelease.yaml | 44 +++++++++++++++++++ .../issuers/letsencrypt-dns01.yaml | 17 +++++++ .../issuers/letsencrypt-http01.yaml | 15 +++++++ 6 files changed, 123 insertions(+) create mode 100644 kubernetes/rpi5-cluster/apps/cert-manager/ks.yaml create mode 100644 kubernetes/rpi5-cluster/apps/cert-manager/namespace.yaml create mode 100644 kubernetes/rpi5-cluster/infrastructure/repositories/cert-manager.yaml create mode 100644 kubernetes/rpi5-cluster/templates/apps/cert-manager/apps/helmrelease.yaml create mode 100644 kubernetes/rpi5-cluster/templates/apps/cert-manager/issuers/letsencrypt-dns01.yaml create mode 100644 kubernetes/rpi5-cluster/templates/apps/cert-manager/issuers/letsencrypt-http01.yaml diff --git a/kubernetes/rpi5-cluster/apps/cert-manager/ks.yaml b/kubernetes/rpi5-cluster/apps/cert-manager/ks.yaml new file mode 100644 index 0000000..e647a3a --- /dev/null +++ b/kubernetes/rpi5-cluster/apps/cert-manager/ks.yaml @@ -0,0 +1,35 @@ +apiVersion: kustomize.toolkit.fluxcd.io/v1 +kind: Kustomization +metadata: + name: app + namespace: cert-manager +spec: + interval: 1h + targetNamespace: cert-manager + path: ./kubernetes/rpi5-cluster/templates/apps/cert-manager/app + prune: true + sourceRef: + kind: GitRepository + namespace: flux-system + name: home-cluster-ops +--- +apiVersion: kustomize.toolkit.fluxcd.io/v1 +kind: Kustomization +metadata: + name: issuers + namespace: cert-manager +spec: + interval: 1h + targetNamespace: cert-manager + path: ./kubernetes/rpi5-cluster/templates/apps/cert-manager/issuers + prune: true + sourceRef: + kind: GitRepository + namespace: flux-system + name: home-cluster-ops + dependsOn: + - name: app + postBuild: + substituteFrom: + - kind: Secret + name: issuer-vars diff --git a/kubernetes/rpi5-cluster/apps/cert-manager/namespace.yaml b/kubernetes/rpi5-cluster/apps/cert-manager/namespace.yaml new file mode 100644 index 0000000..c90416f --- /dev/null +++ b/kubernetes/rpi5-cluster/apps/cert-manager/namespace.yaml @@ -0,0 +1,4 @@ +apiVersion: v1 +kind: Namespace +metadata: + name: cert-manager diff --git a/kubernetes/rpi5-cluster/infrastructure/repositories/cert-manager.yaml b/kubernetes/rpi5-cluster/infrastructure/repositories/cert-manager.yaml new file mode 100644 index 0000000..2b98576 --- /dev/null +++ b/kubernetes/rpi5-cluster/infrastructure/repositories/cert-manager.yaml @@ -0,0 +1,8 @@ +apiVersion: source.toolkit.fluxcd.io/v1 +kind: HelmRepository +metadata: + name: cert-manager + namespace: cert-manager +spec: + interval: 1h + url: https://charts.jetstack.io diff --git a/kubernetes/rpi5-cluster/templates/apps/cert-manager/apps/helmrelease.yaml b/kubernetes/rpi5-cluster/templates/apps/cert-manager/apps/helmrelease.yaml new file mode 100644 index 0000000..c4efb8e --- /dev/null +++ b/kubernetes/rpi5-cluster/templates/apps/cert-manager/apps/helmrelease.yaml @@ -0,0 +1,44 @@ +apiVersion: helm.toolkit.fluxcd.io/v2 +kind: HelmRelease +metadata: + name: cert-manager + namespace: cert-manager +spec: + interval: 1h + driftDetection: + mode: enabled + chart: + spec: + chart: cert-manager + version: v1.15.0 + sourceRef: + kind: HelmRepository + namespace: cert-manager + name: cert-manager + interval: 1h + install: + crds: Create + upgrade: + crds: CreateReplace + values: + installCRDs: true + + podLabels: + rpi5.cluster.policy/egress-kubeapi: "true" + rpi5.cluster.policy/egress-namespace: "true" + rpi5.cluster.policy/egress-world: "true" + rpi5.cluster.policy/ingress-namespace: "true" + webhook: + podLabels: + rpi5.cluster.policy/egress-kubeapi: "true" + cainjector: + podLabels: + rpi5.cluster.policy/egress-kubeapi: "true" + + global: + priorityClassName: system-cluster-critical + + podDnsConfig: + nameservers: + - 1.1.1.1 + - 1.0.0.1 diff --git a/kubernetes/rpi5-cluster/templates/apps/cert-manager/issuers/letsencrypt-dns01.yaml b/kubernetes/rpi5-cluster/templates/apps/cert-manager/issuers/letsencrypt-dns01.yaml new file mode 100644 index 0000000..976e4f2 --- /dev/null +++ b/kubernetes/rpi5-cluster/templates/apps/cert-manager/issuers/letsencrypt-dns01.yaml @@ -0,0 +1,17 @@ +apiVersion: cert-manager.io/v1 +kind: ClusterIssuer +metadata: + name: letsencrypt-dns01 + namespace: cert-manager +spec: + acme: + email: ${email} + server: https://acme-v02.api.letsencrypt.org/directory + privateKeySecretRef: + name: letsencrypt-dns01 + solvers: + - dns01: + cloudflare: + apiTokenSecretRef: + name: cloudflare-api-token + key: api-token diff --git a/kubernetes/rpi5-cluster/templates/apps/cert-manager/issuers/letsencrypt-http01.yaml b/kubernetes/rpi5-cluster/templates/apps/cert-manager/issuers/letsencrypt-http01.yaml new file mode 100644 index 0000000..657c3a5 --- /dev/null +++ b/kubernetes/rpi5-cluster/templates/apps/cert-manager/issuers/letsencrypt-http01.yaml @@ -0,0 +1,15 @@ +apiVersion: cert-manager.io/v1 +kind: ClusterIssuer +metadata: + name: letsencrypt-http01 + namespace: cert-manager +spec: + acme: + email: ${email} + server: https://acme-v02.api.letsencrypt.org/directory + privateKeySecretRef: + name: letsencrypt-http01 + solvers: + - http01: + ingress: + class: nginx