diff --git a/azure/terraform/gitlab.tf b/azure/terraform/gitlab.tf index 3f9c8b7..5988b74 100644 --- a/azure/terraform/gitlab.tf +++ b/azure/terraform/gitlab.tf @@ -1,28 +1,40 @@ # create a kubernetes cluster for a given environment # and deploy a gitlab instance on it # The cluster is deployed in its own resource group # suffixed by the environment -# module "gitlab-production" { -# source = "./modules/gitlab" -# name = "euwest-gitlab-production" -# } +####### +# Production instance +####### +module "gitlab-production" { + source = "./modules/gitlab" + name = "euwest-gitlab-production" + blob_storage_name = "swheuwestgitlabprod" #can only consist of lowercase letters and numbers, and must be between 3 and 24 characters long +} + +output "gitlab-production_aks_summary" { + value = module.gitlab-production.aks_summary +} -# output "gitlab-production_summary" { -# value = module.gitlab-production.summary -# } +output "gitlab-production_storage_summary" { + value = module.gitlab-production.blob_storage_summary + sensitive = true +} +####### +# Staging instance +####### module "gitlab-staging" { source = "./modules/gitlab" name = "euwest-gitlab-staging" blob_storage_name = "swheuwestgitlabstaging" } output "gitlab-staging_aks_summary" { value = module.gitlab-staging.aks_summary } output "gitlab-staging_storage_summary" { value = module.gitlab-staging.blob_storage_summary sensitive = true } diff --git a/azure/terraform/modules/kubernetes/main.tf b/azure/terraform/modules/kubernetes/main.tf index c7ba58d..993896d 100644 --- a/azure/terraform/modules/kubernetes/main.tf +++ b/azure/terraform/modules/kubernetes/main.tf @@ -1,60 +1,61 @@ resource "azurerm_kubernetes_cluster" "aks_cluster" { name = var.cluster_name resource_group_name = data.azurerm_resource_group.aks_rg.name location = data.azurerm_resource_group.aks_rg.location dns_prefix = var.cluster_name node_resource_group = "${var.cluster_name}-internal" default_node_pool { name = "default" # node_count = 1 vm_size = var.node_type enable_auto_scaling = true max_count = var.maximal_pool_count min_count = var.minimal_pool_count # not supported for all vm types # os_disk_type = "Ephemeral" # experimental feature, not activable as we don't # have a subscription # kubelet_config { # container_log_max_size_mb = "1024" # } } identity { type = "SystemAssigned" } private_cluster_enabled = true network_profile { network_plugin = "kubenet" network_policy = "calico" load_balancer_sku = "standard" # needed to assign a private ip address } } resource "azurerm_private_endpoint" "aks_cluster_endpoint" { name = "${var.cluster_name}-endpoint" resource_group_name = data.azurerm_resource_group.aks_rg.name location = data.azurerm_resource_group.aks_rg.location subnet_id = data.azurerm_subnet.internal_subnet.id private_service_connection { name = "${var.cluster_name}-psc" is_manual_connection = false private_connection_resource_id = azurerm_kubernetes_cluster.aks_cluster.id subresource_names = ["management"] } } 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 allocation_method = "Static" sku = "Standard" + zones = ["1", "2", "3"] }