diff --git a/aws/cluster/kubeconfig.tf b/aws/cluster/kubeconfig.tf index 8aa56aa3..2de128f5 100644 --- a/aws/cluster/kubeconfig.tf +++ b/aws/cluster/kubeconfig.tf @@ -1,10 +1,34 @@ locals { - template_vars = { - cluster_name = aws_eks_cluster.current.name - cluster_endpoint = aws_eks_cluster.current.endpoint - cluster_ca = aws_eks_cluster.current.certificate_authority[0].data - token = nonsensitive(data.aws_eks_cluster_auth.current.token) - } - - kubeconfig = templatefile("${path.module}/templates/kubeconfig.tpl", local.template_vars) + kubeconfig = yamlencode({ + apiVersion = "v1" + kind = "Config" + clusters = [ + { + cluster = { + server = aws_eks_cluster.current.endpoint + certificate-authority-data = aws_eks_cluster.current.certificate_authority[0].data + } + name = aws_eks_cluster.current.name + } + ] + users = [ + { + user = { + token = data.aws_eks_cluster_auth.current.token + } + name = aws_eks_cluster.current.name + } + ] + contexts = [ + { + context = { + cluster = aws_eks_cluster.current.name + user = aws_eks_cluster.current.name + } + name = aws_eks_cluster.current.name + } + ] + current-context = aws_eks_cluster.current.name + preferences = {} + }) } diff --git a/aws/cluster/outputs.tf b/aws/cluster/outputs.tf index 53125dc3..751d7473 100644 --- a/aws/cluster/outputs.tf +++ b/aws/cluster/outputs.tf @@ -11,5 +11,6 @@ output "current_metadata" { } output "kubeconfig" { - value = local.kubeconfig + sensitive = true + value = local.kubeconfig } diff --git a/aws/cluster/templates/kubeconfig.tpl b/aws/cluster/templates/kubeconfig.tpl deleted file mode 100644 index e9ba4241..00000000 --- a/aws/cluster/templates/kubeconfig.tpl +++ /dev/null @@ -1,18 +0,0 @@ -apiVersion: v1 -clusters: -- cluster: - server: ${cluster_endpoint} - certificate-authority-data: ${cluster_ca} - name: ${cluster_name} -contexts: -- context: - cluster: ${cluster_name} - user: ${cluster_name} - name: ${cluster_name} -current-context: ${cluster_name} -kind: Config -preferences: {} -users: -- name: ${cluster_name} - user: - token: ${token} diff --git a/azurerm/cluster/kubeconfig.tf b/azurerm/cluster/kubeconfig.tf index 8560f915..81b398e0 100644 --- a/azurerm/cluster/kubeconfig.tf +++ b/azurerm/cluster/kubeconfig.tf @@ -1,12 +1,35 @@ locals { - template_vars = { - cluster_name = azurerm_kubernetes_cluster.current.name - cluster_endpoint = azurerm_kubernetes_cluster.current.kube_config[0].host - cluster_ca = azurerm_kubernetes_cluster.current.kube_config[0].cluster_ca_certificate - client_cert = azurerm_kubernetes_cluster.current.kube_config[0].client_certificate - client_key = azurerm_kubernetes_cluster.current.kube_config[0].client_key - path_cwd = path.cwd - } - - kubeconfig = templatefile("${path.module}/templates/kubeconfig.tpl", local.template_vars) + kubeconfig = yamlencode({ + apiVersion = "v1" + kind = "Config" + clusters = [ + { + cluster = { + server = azurerm_kubernetes_cluster.current.kube_config[0].host + certificate-authority-data = azurerm_kubernetes_cluster.current.kube_config[0].cluster_ca_certificate + } + name = azurerm_kubernetes_cluster.current.name + } + ] + users = [ + { + user = { + client-certificate-data = azurerm_kubernetes_cluster.current.kube_config[0].client_certificate + client-key-data = azurerm_kubernetes_cluster.current.kube_config[0].client_key + } + name = azurerm_kubernetes_cluster.current.name + } + ] + contexts = [ + { + context = { + cluster = azurerm_kubernetes_cluster.current.name + user = azurerm_kubernetes_cluster.current.name + } + name = azurerm_kubernetes_cluster.current.name + } + ] + current-context = azurerm_kubernetes_cluster.current.name + preferences = {} + }) } diff --git a/azurerm/cluster/templates/kubeconfig.tpl b/azurerm/cluster/templates/kubeconfig.tpl deleted file mode 100644 index 72b3c0b6..00000000 --- a/azurerm/cluster/templates/kubeconfig.tpl +++ /dev/null @@ -1,19 +0,0 @@ -apiVersion: v1 -clusters: -- cluster: - server: ${cluster_endpoint} - certificate-authority-data: ${cluster_ca} - name: ${cluster_name} -contexts: -- context: - cluster: ${cluster_name} - user: ${cluster_name} - name: ${cluster_name} -current-context: ${cluster_name} -kind: Config -preferences: {} -users: -- name: ${cluster_name} - user: - client-certificate-data: ${client_cert} - client-key-data: ${client_key} diff --git a/google/cluster/kubeconfig.tf b/google/cluster/kubeconfig.tf index 36c903e8..cb515dca 100644 --- a/google/cluster/kubeconfig.tf +++ b/google/cluster/kubeconfig.tf @@ -1,10 +1,34 @@ locals { - template_vars = { - cluster_name = google_container_cluster.current.name - cluster_endpoint = google_container_cluster.current.endpoint - cluster_ca = google_container_cluster.current.master_auth[0].cluster_ca_certificate - token = data.google_client_config.default.access_token - } - - kubeconfig = templatefile("${path.module}/templates/kubeconfig.tpl", local.template_vars) + kubeconfig = yamlencode({ + apiVersion = "v1" + kind = "Config" + clusters = [ + { + cluster = { + server = google_container_cluster.current.endpoint + certificate-authority-data = google_container_cluster.current.master_auth[0].cluster_ca_certificate + } + name = google_container_cluster.current.name + } + ] + users = [ + { + user = { + token = data.google_client_config.default.access_token + } + name = google_container_cluster.current.name + } + ] + contexts = [ + { + context = { + cluster = google_container_cluster.current.name + user = google_container_cluster.current.name + } + name = google_container_cluster.current.name + } + ] + current-context = google_container_cluster.current.name + preferences = {} + }) } diff --git a/google/cluster/outputs.tf b/google/cluster/outputs.tf index 461e37e3..87577479 100644 --- a/google/cluster/outputs.tf +++ b/google/cluster/outputs.tf @@ -11,7 +11,8 @@ output "current_metadata" { } output "kubeconfig" { - value = local.kubeconfig + sensitive = true + value = local.kubeconfig # when the node pool is destroyed before the k8s namespaces # the namespaces get stuck in terminating diff --git a/google/cluster/templates/kubeconfig.tpl b/google/cluster/templates/kubeconfig.tpl deleted file mode 100644 index a7b793bf..00000000 --- a/google/cluster/templates/kubeconfig.tpl +++ /dev/null @@ -1,18 +0,0 @@ -apiVersion: v1 -clusters: -- cluster: - server: https://${cluster_endpoint} - certificate-authority-data: ${cluster_ca} - name: ${cluster_name} -contexts: -- context: - cluster: ${cluster_name} - user: ${cluster_name} - name: ${cluster_name} -current-context: ${cluster_name} -kind: Config -preferences: {} -users: -- name: ${cluster_name} - user: - token: ${token}