From 888e0de398569d703f6d77491dd3ff270f1ef78a Mon Sep 17 00:00:00 2001 From: Vegard Hagen Date: Mon, 9 Jan 2023 20:26:08 +0100 Subject: [PATCH] fix(argocd): Cleaning up Application entry for Traefik --- infra/traefik/kustomization.yaml | 9 +++++++ infra/traefik/values.yaml | 34 ++++++++++++++++++++++++++ infra/traefikApp.yaml | 41 ++++++++++++++++++++++++-------- main.tf | 34 +++++++++++++------------- 4 files changed, 91 insertions(+), 27 deletions(-) create mode 100644 infra/traefik/kustomization.yaml create mode 100644 infra/traefik/values.yaml diff --git a/infra/traefik/kustomization.yaml b/infra/traefik/kustomization.yaml new file mode 100644 index 0000000..8e95416 --- /dev/null +++ b/infra/traefik/kustomization.yaml @@ -0,0 +1,9 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +namespace: traefik-system + +helmCharts: + - name: traefik + repo: https://helm.traefik.io/traefik + version: 20.8.0 + valuesFile: values.yaml diff --git a/infra/traefik/values.yaml b/infra/traefik/values.yaml new file mode 100644 index 0000000..05e6445 --- /dev/null +++ b/infra/traefik/values.yaml @@ -0,0 +1,34 @@ +deployment: + initContainers: + # The "volume-permissions" init container is required if you run into permission issues. + # Related issue: https://github.com/traefik/traefik/issues/6972 + - name: volume-permissions + image: busybox:1.31.1 + command: [ "sh", "-c", "chmod -Rv 600 /data/*" ] + volumeMounts: + - name: data + mountPath: /data + +providers: + kubernetesCRD: + allowCrossNamespace: true + +additionalArguments: + - "--log.level=ERROR" + - "--api.insecure" + +persistence: + enabled: true + name: data + accessMode: ReadWriteOnce + size: 128Mi + storageClass: cert-storage + path: /data + +certResolvers: + letsencrypt: + email: veghag@gmail.com + tlsChallenge: true + storage: /data/acme.json + # Remove staging server when it's working + #caServer: https://acme-staging-v02.api.letsencrypt.org/directory \ No newline at end of file diff --git a/infra/traefikApp.yaml b/infra/traefikApp.yaml index e891456..784e41d 100644 --- a/infra/traefikApp.yaml +++ b/infra/traefikApp.yaml @@ -10,17 +10,38 @@ spec: source: chart: traefik repoURL: https://helm.traefik.io/traefik - targetRevision: 20.7.0 + targetRevision: 20.8.0 +# path: infra/traefik +# repoURL: https://github.com/vehagn/homelab +# targetRevision: HEAD helm: - #parameters: - # - name: providers.kubernetesCRD.allowCrossNamespace - # value: "true" - # - name: additionalArguments - # value: "--api.insecure" - # - name: persistence.enabled - # value: "true" - valueFiles: - - https://raw.githubusercontent.com/vehagn/homelab/main/helm/traefik-values.yaml + values: | + deployment: + initContainers: + - name: volume-permissions + image: busybox:1.31.1 + command: [ "sh", "-c", "chmod -Rv 600 /data/*" ] + volumeMounts: + - name: data + mountPath: /data + providers: + kubernetesCRD: + allowCrossNamespace: true + additionalArguments: + - "--log.level=ERROR" + - "--api.insecure" + persistence: + enabled: true + name: data + accessMode: ReadWriteOnce + size: 128Mi + storageClass: cert-storage + path: /data + certResolvers: + letsencrypt: + email: veghag@gmail.com + tlsChallenge: true + storage: /data/acme.json destination: namespace: traefik-system name: in-cluster diff --git a/main.tf b/main.tf index 62ce7a3..07cffff 100644 --- a/main.tf +++ b/main.tf @@ -30,12 +30,12 @@ provider "helm" { # version = "1.11.5" #} -## Create namespace for Traefik -resource "kubernetes_namespace" "traefik" { - metadata { - name = "traefik-system" - } -} +### Create namespace for Traefik +#resource "kubernetes_namespace" "traefik" { +# metadata { +# name = "traefik-system" +# } +#} ## Create StorageClass for local volumes resource "kubernetes_storage_class" "cert-storage" { @@ -78,14 +78,14 @@ resource "kubernetes_persistent_volume" "traefik-cert-pv" { } } -## Install Traefik -resource "helm_release" "traefik" { - name = "traefik" - - repository = "https://helm.traefik.io/traefik" - chart = "traefik" - namespace = kubernetes_namespace.traefik.metadata.0.name - #version = "10.30.1" - - values = [file("helm/traefik-values.yaml")] -} \ No newline at end of file +### Install Traefik +#resource "helm_release" "traefik" { +# name = "traefik" +# +# repository = "https://helm.traefik.io/traefik" +# chart = "traefik" +# namespace = kubernetes_namespace.traefik.metadata.0.name +# #version = "10.30.1" +# +# values = [file("helm/traefik-values.yaml")] +#} \ No newline at end of file