terra grunt restructure
+85 · 8 files changed
-
terraform/deployment/aks/kubectl/terragrunt.hcl+29 −0 -
terraform/deployment/aks/main.tf+7 −0 -
terraform/deployment/{ => aks/modules/kubectl}/harness-delegate.yml+0 −0 -
terraform/deployment/{kubectl-cfg/clusterrolebining.yaml => aks/modules/kubectl/kubectl-cfg/clusterrolebinding.yaml}+0 −0 -
terraform/deployment/{ => aks/modules/kubectl}/kubectl-cfg/secret.yaml+0 −0 -
terraform/deployment/{ => aks/modules/kubectl}/kubectl-cfg/serviceaccount.yaml+0 −0 -
terraform/deployment/aks/modules/kubectl/main.tf+40 −0 -
terraform/deployment/aks/modules/kubectl/variables.tf+9 −0
@@ -0,0 +1,29 @@ +include "root" { + path = find_in_parent_folders("terragrunt.hcl") +} + +terraform { + source = "../modules//kubectl/" +} + +# Kubernetes provider configuration +provider "kubernetes" { + host = dependency.aksclauster.outputs.host + username = dependency.akscluster.outputs.username + password = dependency.akscluster.outputs.password + client_certificate = base64decode(dependency.aks-cluster.outputs.client_certificate) + client_key = base64decode(dependency.aks-cluster.outputs.client_key) + cluster_ca_certificate = base64decode(dependency.aks-cluster.outputs.cluster_ca_certificate) +} + +inputs = { + cluster_config = { + host = local.aks_host + client_key = local.aks_client_key + cluster_ca_certificate = local.aks_cluster_ca_certificate + } +} + +dependency "akscluster" { + config_path = "../" +} @@ -58,6 +58,13 @@ module "aks" { attached_acr_id_map = var.attached_acr_id_map } +/* +# Output to see what the aks module is providing +output "aks_module_outputs" { + value = module.aks + sensitive = true +} +*/ /* module "vm" { source = "./modules/vm" @@ -0,0 +1,40 @@ +terraform { + required_providers { + kubernetes = { + source = "hashicorp/kubernetes" + # Setting the provider version is a strongly recommended practice + version = "~> 2.23.0" + } + } + # Provider functions require Terraform 1.8 and later. + required_version = ">= 1.8.0" +} +/* +provider "kubernetes" { + #host = azurerm_kubernetes_cluster.cluster.kube_config.0.host + host = var.cluster_config.host + #client_certificate = base64decode(azurerm_kubernetes_cluster.cluster.kube_config.0.client_certificate) + #client_key = base64decode(azurerm_kubernetes_cluster.cluster.kube_config.0.client_key) + client_key = base64decode(var.cluster_config.client_key) + #cluster_ca_certificate = base64decode(azurerm_kubernetes_cluster.cluster.kube_config.0.cluster_ca_certificate) + cluster_ca_certificate = base64decode(var.cluster_config.cluster_ca_certificate) +} +# Multi decode YAML, iterate over the object + +resource "kubernetes_manifest" "harness_delegate" { + value = provider::kubernetes::manifest_decode_multi(file("manifest.yaml")) + manifest = yamldecode(file("harness-delegate.yml")) +} + +*/ +resource "kubernetes_manifest" "clusterrolebinding" { + manifest = yamldecode(file("${path.module}/kubectl-cfg/clusterrolebinding.yaml")) +} + +resource "kubernetes_manifest" "secret" { + manifest = yamldecode(file("${path.module}/kubectl-cfg/secret.yaml")) +} + +resource "kubernetes_manifest" "serviceaccount" { + manifest = yamldecode(file("${path.module}/kubectl-cfg/serviceaccount.yaml")) +} @@ -0,0 +1,9 @@ +variable "cluster_config" { + description = "AKS Cluster Config" + type = object({ + host = string + client_key = string + cluster_ca_certificate = string + }) +} +