From 8e5f8e120452f43debb7f03afdeaf25a0b924a5f Mon Sep 17 00:00:00 2001 From: Kostya Date: Wed, 8 Jan 2020 16:48:42 +0800 Subject: [PATCH] Migrate from k8sraw_yaml to kubectl provider for managing CRDs --- main.tf | 80 +++++++++++++++++++++++++++++----------------------- variables.tf | 2 +- 2 files changed, 46 insertions(+), 36 deletions(-) diff --git a/main.tf b/main.tf index 966d412..09add4f 100644 --- a/main.tf +++ b/main.tf @@ -4,58 +4,68 @@ data "helm_repository" "jetstack" { } # k8sraw_yaml doesn't support multiple yaml documents in one file, so can't use remote http resource directly -# data "http" "cert-manager-crd" { -# url = "https://raw.githubusercontent.com/jetstack/cert-manager/release-0.11/deploy/manifests/00-crds.yaml" -# } +data "http" "cert-manager-crd" { + url = "https://raw.githubusercontent.com/jetstack/cert-manager/release-${var.cm_version}/deploy/manifests/00-crds.yaml" +} + +data "kubectl_file_documents" "cert-manager-crd" { + content = data.http.cert-manager-crd.body +} + +resource "kubectl_manifest" "cert-manager-crd" { + count = length(data.kubectl_file_documents.cert-manager-crd.documents) + yaml_body = file(element(data.kubectl_file_documents.cert-manager-crd.documents, count.index)) +} # resource "k8sraw_yaml" "cert-manager-crd" { # yaml_body = data.http.cert-manager-crd.body # } # List of CRDs required for cert-manager -resource "k8sraw_yaml" "certificaterequests" { - depends_on = [var.cm_depends_on] - yaml_body = file("${path.module}/files/certificaterequests.yaml") -} +# resource "k8sraw_yaml" "certificaterequests" { +# depends_on = [var.cm_depends_on] +# yaml_body = file("${path.module}/files/certificaterequests.yaml") +# } -resource "k8sraw_yaml" "certificates" { - depends_on = [var.cm_depends_on] - yaml_body = file("${path.module}/files/certificates.yaml") -} +# resource "k8sraw_yaml" "certificates" { +# depends_on = [var.cm_depends_on] +# yaml_body = file("${path.module}/files/certificates.yaml") +# } -resource "k8sraw_yaml" "challenges" { - depends_on = [var.cm_depends_on] - yaml_body = file("${path.module}/files/challenges.yaml") -} +# resource "k8sraw_yaml" "challenges" { +# depends_on = [var.cm_depends_on] +# yaml_body = file("${path.module}/files/challenges.yaml") +# } -resource "k8sraw_yaml" "clusterissuers" { - depends_on = [var.cm_depends_on] - yaml_body = file("${path.module}/files/clusterissuers.yaml") -} +# resource "k8sraw_yaml" "clusterissuers" { +# depends_on = [var.cm_depends_on] +# yaml_body = file("${path.module}/files/clusterissuers.yaml") +# } -resource "k8sraw_yaml" "issuers" { - depends_on = [var.cm_depends_on] - yaml_body = file("${path.module}/files/issuers.yaml") -} +# resource "k8sraw_yaml" "issuers" { +# depends_on = [var.cm_depends_on] +# yaml_body = file("${path.module}/files/issuers.yaml") +# } -resource "k8sraw_yaml" "orders" { - depends_on = [var.cm_depends_on] - yaml_body = file("${path.module}/files/orders.yaml") -} +# resource "k8sraw_yaml" "orders" { +# depends_on = [var.cm_depends_on] +# yaml_body = file("${path.module}/files/orders.yaml") +# } resource "helm_release" "cert-manager" { depends_on = [ - k8sraw_yaml.certificaterequests, - k8sraw_yaml.certificates, - k8sraw_yaml.challenges, - k8sraw_yaml.clusterissuers, - k8sraw_yaml.issuers, - k8sraw_yaml.orders + kubectl_manifest.cert-manager-crd + # k8sraw_yaml.certificaterequests, + # k8sraw_yaml.certificates, + # k8sraw_yaml.challenges, + # k8sraw_yaml.clusterissuers, + # k8sraw_yaml.issuers, + # k8sraw_yaml.orders ] name = "cert-manager" repository = data.helm_repository.jetstack.metadata.0.name chart = "cert-manager" - version = var.cm_version + version = "v.${var.cm_version}" namespace = var.namespace wait = true -} \ No newline at end of file +} diff --git a/variables.tf b/variables.tf index b6eae5f..e24ec5c 100644 --- a/variables.tf +++ b/variables.tf @@ -12,7 +12,7 @@ variable "namespace" { variable "cm_version" { type = string - default = "v0.11.0" + default = "0.11" # "v0.11.0" description = "Cert-manager version. NOTE: CRD files has to be generated manually accordingly to choosen version" }