diff --git a/terraform/helm/certmanager.tf b/terraform/helm/certmanager.tf new file mode 100644 index 0000000..03f3c18 --- /dev/null +++ b/terraform/helm/certmanager.tf @@ -0,0 +1,31 @@ +resource "kubernetes_namespace" "certmanager" { + + metadata { + name = "certmanager" + } +} + +resource "helm_release" "certmanager" { + + depends_on = [kubernetes_namespace.certmanager] + + name = "certmanager" + namespace = "certmanager" + + repository = "https://charts.jetstack.io" + chart = "cert-manager" + + # Install Kubernetes CRDs + set { + name = "installCRDs" + value = "true" + } +} + +# (Optional) Create a Time-Sleep for Certificates and Issuer Manifests to deploy later +# resource "time_sleep" "wait_for_certmanager" { +# +# depends_on = [helm_release.certmanager] +# +# create_duration = "10s" +# } diff --git a/terraform/helm/traefik.tf b/terraform/helm/traefik.tf new file mode 100644 index 0000000..7634ddc --- /dev/null +++ b/terraform/helm/traefik.tf @@ -0,0 +1,46 @@ +resource "kubernetes_namespace" "traefik" { + + metadata { + name = "traefik" + } + +} + +resource "helm_release" "traefik" { + + depends_on = [kubernetes_namespace.traefik] + + name = "traefik" + namespace = "traefik" + + repository = "https://helm.traefik.io/traefik" + chart = "traefik" + + # Set Traefik as the Default Ingress Controller + set { + name = "ingressClass.enabled" + value = "true" + } + set { + name = "ingressClass.isDefaultClass" + value = "true" + } + + # Default Redirect + set { + name = "ports.web.redirectTo" + value = "websecure" + } + + # Enable TLS on Websecure + set { + name = "ports.websecure.tls.enabled" + value = "true" + } + + # TLS Options (that's not working for some reason...) + set { + name = "tlsOptions.default.minVersion" + value = "VersionTLS12" + } +} \ No newline at end of file diff --git a/terraform/kubectl/manifest.tf b/terraform/kubectl/manifest.tf new file mode 100644 index 0000000..17285c5 --- /dev/null +++ b/terraform/kubectl/manifest.tf @@ -0,0 +1,7 @@ +resource "kubectl_manifest" "your-manifest-file" { + + yaml_body = <