From d7f90f34e176597da47e0593bbce3f6cc350f90b Mon Sep 17 00:00:00 2001 From: Vegard Hagen Date: Mon, 15 Jul 2024 15:06:12 +0200 Subject: [PATCH] fix: configure gateway also add a cluster-issuer for ingresses --- remodel/k8s/apps/media/arr/kustomization.yaml | 2 ++ .../k8s/apps/media/arr/sonarr/http-route.yaml | 19 +++++++++++++++++++ remodel/k8s/apps/media/arr/sonarr/svc.yaml | 12 ++++++++++++ .../cert-manager/cloudflare-api-token.yaml | 12 ++++++++++++ .../cert-manager/cluster-issuer.yaml | 16 ++++++++++++++++ .../cert-manager/kustomization.yaml | 2 ++ remodel/k8s/infra/crds/kustomization.yaml | 5 +++++ .../infra/network/cilium/kustomization.yaml | 2 +- .../infra/network/gateway/kustomization.yaml | 1 - 9 files changed, 69 insertions(+), 2 deletions(-) create mode 100644 remodel/k8s/apps/media/arr/sonarr/http-route.yaml create mode 100644 remodel/k8s/apps/media/arr/sonarr/svc.yaml create mode 100644 remodel/k8s/infra/controllers/cert-manager/cloudflare-api-token.yaml create mode 100644 remodel/k8s/infra/controllers/cert-manager/cluster-issuer.yaml create mode 100644 remodel/k8s/infra/crds/kustomization.yaml diff --git a/remodel/k8s/apps/media/arr/kustomization.yaml b/remodel/k8s/apps/media/arr/kustomization.yaml index 9a8aa22..36fa244 100644 --- a/remodel/k8s/apps/media/arr/kustomization.yaml +++ b/remodel/k8s/apps/media/arr/kustomization.yaml @@ -9,4 +9,6 @@ configMapGenerator: resources: - sonarr/pvc.yaml + - sonarr/svc.yaml + - sonarr/http-route.yaml - sonarr/deployment.yaml diff --git a/remodel/k8s/apps/media/arr/sonarr/http-route.yaml b/remodel/k8s/apps/media/arr/sonarr/http-route.yaml new file mode 100644 index 0000000..975b5f9 --- /dev/null +++ b/remodel/k8s/apps/media/arr/sonarr/http-route.yaml @@ -0,0 +1,19 @@ +apiVersion: gateway.networking.k8s.io/v1 +kind: HTTPRoute +metadata: + name: sonarr-http-route + namespace: arr +spec: + parentRefs: + - name: euclid + namespace: gateway + hostnames: + - "sonarr.euclid.stonegarden.dev" + rules: + - matches: + - path: + type: PathPrefix + value: / + backendRefs: + - name: sonarr + port: 80 \ No newline at end of file diff --git a/remodel/k8s/apps/media/arr/sonarr/svc.yaml b/remodel/k8s/apps/media/arr/sonarr/svc.yaml new file mode 100644 index 0000000..4d29ca2 --- /dev/null +++ b/remodel/k8s/apps/media/arr/sonarr/svc.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 +kind: Service +metadata: + name: sonarr + namespace: arr +spec: + type: ClusterIP + selector: + app: sonarr + ports: + - port: 80 + targetPort: http diff --git a/remodel/k8s/infra/controllers/cert-manager/cloudflare-api-token.yaml b/remodel/k8s/infra/controllers/cert-manager/cloudflare-api-token.yaml new file mode 100644 index 0000000..b6097d2 --- /dev/null +++ b/remodel/k8s/infra/controllers/cert-manager/cloudflare-api-token.yaml @@ -0,0 +1,12 @@ +apiVersion: bitnami.com/v1alpha1 +kind: SealedSecret +metadata: + name: cloudflare-api-token + namespace: cert-manager +spec: + encryptedData: + api-token: AgAkBs31x8nied64Eox/WA/H1FFXgIKNO5Zx6xo56+Kq5smMih6gAf86tRFtQ7FNWjGfkqQs1a3VYB2Ov2Grbu76SJtX5p1Om01aaLedVhhfe/Vk9buC7auh71sIjhoQdKVnqoHtRjNBohKjk7LN/WTmmYGO+ChWKqk+JJLpR/dlNMEfFxG7HB4U4sRRqoKfw2QYiOYm7bhqu5My5kAhJcq0DSaCE9m6Kd4C5bX86t5C/aJXHm6UZa/bvY8/jbCOFC42+zX/Pm7E/0Awu47HPPzCOYhN4Ev569eYT7hORNAM7BlsxY4uXcDKhdJoRMzzJtaAvhc+YRtyusAqHoNKYRjAUjyPnjEQ5io/URBT5pEYV5z5p5Z4DNlCo6ACtv9bIYWuOOSRVOhDkbY/EZKYcSsUMcaKKL2QRfPqfhCAqqs1ZkqeWbn/c5BpkMEyk6DVPmF7l73MjmbRfZqNnJtjG1gglC3+ZORipgthWT9x55FTeUNUIs7t33LFuG3Zw9yuKQgziMEyr50jkMW/Q36YkGBAh0oO1S6STE4yFCzLnffFOyO/BBwz78weiyx925YEg0tmg0Q9Kc8RICThL+Le+QaU6fsVnOwce/gyQp+Pikk6ETXg+UIsHogRCLJhvea2V/+9DoOhdqnu2FDjmFmWhnpA8ACmXOiiymnLMUC+9QD2Q/+dz4GK8KKFqEkwvU6Un/OFgED/+z5NF4xWsa9Lsf986EX9Y7Dd3JADiVtbTTQoGXL/sCLSFBaW + template: + metadata: + name: cloudflare-api-token + namespace: cert-manager diff --git a/remodel/k8s/infra/controllers/cert-manager/cluster-issuer.yaml b/remodel/k8s/infra/controllers/cert-manager/cluster-issuer.yaml new file mode 100644 index 0000000..2fed4a1 --- /dev/null +++ b/remodel/k8s/infra/controllers/cert-manager/cluster-issuer.yaml @@ -0,0 +1,16 @@ +apiVersion: cert-manager.io/v1 +kind: ClusterIssuer +metadata: + name: cloudflare-cluster-issuer +spec: + acme: + server: https://acme-v02.api.letsencrypt.org/directory + email: veghag@gmail.com + privateKeySecretRef: + name: cloudflare-key + solvers: + - dns01: + cloudflare: + apiTokenSecretRef: + name: cloudflare-api-token + key: api-token diff --git a/remodel/k8s/infra/controllers/cert-manager/kustomization.yaml b/remodel/k8s/infra/controllers/cert-manager/kustomization.yaml index 1d18651..bdca858 100644 --- a/remodel/k8s/infra/controllers/cert-manager/kustomization.yaml +++ b/remodel/k8s/infra/controllers/cert-manager/kustomization.yaml @@ -3,6 +3,8 @@ kind: Kustomization resources: - ns.yaml + - cloudflare-api-token.yaml + - cluster-issuer.yaml helmCharts: - name: cert-manager diff --git a/remodel/k8s/infra/crds/kustomization.yaml b/remodel/k8s/infra/crds/kustomization.yaml new file mode 100644 index 0000000..67d4143 --- /dev/null +++ b/remodel/k8s/infra/crds/kustomization.yaml @@ -0,0 +1,5 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization + +resources: + - https://github.com/kubernetes-sigs/gateway-api/releases/download/v1.0.0/experimental-install.yaml diff --git a/remodel/k8s/infra/network/cilium/kustomization.yaml b/remodel/k8s/infra/network/cilium/kustomization.yaml index bd2c6df..79bd76a 100644 --- a/remodel/k8s/infra/network/cilium/kustomization.yaml +++ b/remodel/k8s/infra/network/cilium/kustomization.yaml @@ -8,7 +8,7 @@ resources: helmCharts: - name: cilium repo: https://helm.cilium.io - version: 1.15.5 + version: 1.15.7 releaseName: "cilium" includeCRDs: true namespace: kube-system diff --git a/remodel/k8s/infra/network/gateway/kustomization.yaml b/remodel/k8s/infra/network/gateway/kustomization.yaml index 7d0bd6c..b7af4a7 100644 --- a/remodel/k8s/infra/network/gateway/kustomization.yaml +++ b/remodel/k8s/infra/network/gateway/kustomization.yaml @@ -2,7 +2,6 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: - - https://github.com/kubernetes-sigs/gateway-api/releases/download/v1.0.0/experimental-install.yaml - gateway-class.yaml - ns.yaml - cloudflare-api-token.yaml