diff --git a/azure/terraform/modules/kubernetes/main.tf b/azure/terraform/modules/kubernetes/main.tf --- a/azure/terraform/modules/kubernetes/main.tf +++ b/azure/terraform/modules/kubernetes/main.tf @@ -51,6 +51,7 @@ } resource "azurerm_public_ip" "aks_cluster_public_ip" { + count = var.public_ip_provisioning ? 1 : 0 name = "${var.cluster_name}_ip" resource_group_name = azurerm_kubernetes_cluster.aks_cluster.node_resource_group location = data.azurerm_resource_group.aks_rg.location diff --git a/azure/terraform/modules/kubernetes/outputs.tf b/azure/terraform/modules/kubernetes/outputs.tf --- a/azure/terraform/modules/kubernetes/outputs.tf +++ b/azure/terraform/modules/kubernetes/outputs.tf @@ -3,7 +3,7 @@ name: ${azurerm_kubernetes_cluster.aks_cluster.name} internal_ip: ${azurerm_private_endpoint.aks_cluster_endpoint.private_service_connection.0.private_ip_address} -public_ip: ${azurerm_public_ip.aks_cluster_public_ip.ip_address} +public_ip: ${var.public_ip_provisioning ? azurerm_public_ip.aks_cluster_public_ip[0].ip_address : "Disabled"} Execute the following command to add the credentials in your .kube/config: az aks get-credentials --resource-group ${data.azurerm_resource_group.aks_rg.name} --name ${azurerm_kubernetes_cluster.aks_cluster.name} diff --git a/azure/terraform/modules/kubernetes/variables.tf b/azure/terraform/modules/kubernetes/variables.tf --- a/azure/terraform/modules/kubernetes/variables.tf +++ b/azure/terraform/modules/kubernetes/variables.tf @@ -38,3 +38,9 @@ default = "swh-resource" } +variable "public_ip_provisioning" { + description = "Should a public ip should be provisionned?" + type = bool + default = true +} + diff --git a/azure/terraform/rancher.tf b/azure/terraform/rancher.tf new file mode 100644 --- /dev/null +++ b/azure/terraform/rancher.tf @@ -0,0 +1,27 @@ +resource "azurerm_resource_group" "rancher_rg" { + name = "rancher-rg" + location = "westeurope" + + tags = { + environment = "rancher" + } +} + +# kubernetes cluster for compute and storage +module "rancher_aks_cluster" { + source = "./modules/kubernetes" + cluster_name = "rancher" + resource_group = azurerm_resource_group.rancher_rg.name + + minimal_pool_count = 1 + maximal_pool_count = 3 + node_type = "Standard_B2ms" + + depends_on = [ + azurerm_resource_group.rancher_rg + ] +} + +output "rancher_aks_summary" { + value = module.rancher_aks_cluster.summary +}