{"id":30743428,"url":"https://github.com/ukho/tfmodule-aks","last_synced_at":"2026-02-22T02:35:03.572Z","repository":{"id":306280064,"uuid":"1016652142","full_name":"UKHO/tfmodule-aks","owner":"UKHO","description":null,"archived":false,"fork":false,"pushed_at":"2025-08-29T14:22:51.000Z","size":38,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-08-29T17:03:33.354Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"HCL","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/UKHO.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-07-09T10:22:00.000Z","updated_at":"2025-08-21T14:40:16.000Z","dependencies_parsed_at":"2025-07-24T20:14:54.005Z","dependency_job_id":"ae9cf2fd-002c-4204-8f7c-54cee72ea16b","html_url":"https://github.com/UKHO/tfmodule-aks","commit_stats":null,"previous_names":["ukho/tfmodule-aks"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/UKHO/tfmodule-aks","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/UKHO%2Ftfmodule-aks","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/UKHO%2Ftfmodule-aks/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/UKHO%2Ftfmodule-aks/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/UKHO%2Ftfmodule-aks/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/UKHO","download_url":"https://codeload.github.com/UKHO/tfmodule-aks/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/UKHO%2Ftfmodule-aks/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273539317,"owners_count":25123499,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-04T02:00:08.968Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-09-04T02:07:16.824Z","updated_at":"2025-10-09T09:35:53.918Z","avatar_url":"https://github.com/UKHO.png","language":"HCL","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Terraform Module: for AKS Clusters\n\n##\n\n## Required Resources\n\n- `Resource Group` exists or is created external to the module.\n- `Provider` must be created external to the module.\n\n## Usage\n\n```terraform\n# Azure Key Vault and Azure App Config\n\n## Usage Vars\n\nvariable \"resource_group_name\" {\n  description = \"Name of the resource group\"\n  type        = string\n}\n\nvariable \"location\" {\n  description = \"Azure region\"\n  type        = string\n}\n\nvariable \"tenant_id\" {\n  description = \"Azure Tenant ID\"\n  type        = string\n}\n\nvariable \"aks_name\" {\n  type = string\n}\n\nvariable \"aks_sku\" {\n  type = string\n}\n\nvariable \"aks_kubernetes_version\" {\n  type = string\n}\n\nvariable \"aks_system_node_vm_size\" {\n  type        = string\n  description = \"Azure VM size to be used for the system nodes\"\n}\n\nvariable \"aks_system_node_disk_size\" {\n  type        = number\n  description = \"Azure disk size to be used for the system nodes\"\n}\n\nvariable \"aks_system_node_min_count\" {\n  type        = number\n  description = \"Minimum number of system nodes for autoscaling and before spotting\"\n}\n\nvariable \"aks_system_node_max_count\" {\n  type        = number\n  description = \"Maximum number of system nodes for autoscaling\"\n}\n\nvariable \"user_node_pools\" {\n  type = list(object({\n    name      = string\n    os_type   = string\n    vm_size   = string\n    disk_size = number\n    min_count = number\n    max_count = number\n  }))\n}\n\nvariable \"aks_use_spot\" {\n  type        = bool\n  description = \"Should the user node pools be configured to use spot instances\"\n  default     = false\n}\n\nvariable \"vnet_name\" {\n  type = string\n}\n\nvariable \"vnet_resource_group_name\" {\n  type    = string\n  default = \"m-spokeconfig-rg\"\n}\n\nvariable \"aks_subnet_name\" {\n  type = string\n\n  validation {\n    condition     = length(var.aks_subnet_name) \u003e 0\n    error_message = \"The aks_subnet_name variable must be supplied\"\n  }\n}\n\nvariable \"tags\" {\n  description = \"Tags for the resources\"\n  type        = map(string)\n  default     = {}\n}\n\nvariable \"ip_rules\" {\n  description = \"List of IP addresses that are allowed to access the AKS Cluster\"\n  type        = list(string)\n  default     = []\n}\n\n# Flux\n\nvariable \"flux_enabled\" {\n  description = \"Enable Flux configuration for the AKS cluster\"\n  type        = bool\n  default     = false\n}\n\nvariable \"flux_git_repository_url\" {\n  description = \"Git repository URL for Flux configuration\"\n  type        = string\n}\n\nvariable \"flux_git_reference_type\" {\n  description = \"Git reference type for Flux configuration (e.g., branch, tag)\"\n  type        = string\n  default     = \"branch\"\n}\n\nvariable \"flux_git_reference_value\" {\n  description = \"Git reference value for Flux configuration (e.g., branch name, tag name)\"\n  type        = string\n  default     = \"main\"\n}\n\nvariable \"flux_ssh_private_key_base64\" {\n  description = \"Base64 encoded SSH private key for Flux Git repository access\"\n  type        = string\n}\n\nvariable \"flux_git_repository_path\" {\n  description = \"Path to the Flux Git repository configuration\"\n  type        = string\n}\n\n# PE\n\nvariable \"pe_enabled\" {\n  description = \"Enable private endpoint\"\n  type        = bool\n  default     = true\n}\n\nvariable \"pe_environment\" {\n    description = \"environment for private endpoint (for example dev | prd | qa | pre)\"\n}\n\nvariable \"pe_subnet_name\" {\n  description = \"subnet name that the private endpoint will associate\"\n}\n\nvariable \"dns_resource_group_name\" {\n  description = \"dns resource group name, please change domain-rg to either business-rg or engineering-rg\"\n}\n\nvariable \"dns_zone_group_name\" {\n  description = \"private dns zone group\"\n}\n\nvariable \"dns_zone_name\" {\n  description = \"alias to create private dns zone - be aware this is dependant on the endpoint\"\n  default     = \"privatelink.azurewebsites.net\"\n}\n\n\nExample usage: \n\nlocals {\n  user_node_pools = [{\n    name      = \"linuxpool\"\n    os_type   = \"Linux\"\n    vm_size   = var.aks_linux_node_vm_size\n    disk_size = var.aks_linux_node_disk_size\n    min_count = var.aks_linux_node_min_count\n    max_count = var.aks_linux_node_max_count\n  }]\n}\n\nmodule \"aks\" {\n  source                    = \"github.com/UKHO/tfmodule-aks\"\n  resource_group_name       = azurerm_resource_group.this.name\n  location                  = var.location_primary\n  aks_name                  = \"${local.resource_prefix}-aks\"\n  tenant_id                 = var.tenant_id\n  aks_sku                   = var.aks_sku\n  aks_kubernetes_version    = var.aks_kubernetes_version\n  aks_system_node_vm_size   = var.aks_system_node_vm_size\n  aks_system_node_disk_size = var.aks_system_node_disk_size\n  aks_system_node_min_count = var.aks_system_node_min_count\n  aks_system_node_max_count = var.aks_system_node_max_count\n  aks_subnet_name           = data.azurerm_subnet.spoke-nodes-subnet.name\n  vnet_name                 = data.azurerm_virtual_network.spoke.name\n  ip_rules                  = formatlist(\"%s/32\", local.ip_rules)\n  tags                      = var.tags\n  user_node_pools = [{\n    name      = \"linuxpool\"\n    os_type   = \"Linux\"\n    vm_size   = var.aks_linux_node_vm_size\n    disk_size = var.aks_linux_node_disk_size\n    min_count = var.aks_linux_node_min_count\n    max_count = var.aks_linux_node_max_count\n  }]\n\n  flux_enabled                = var.flux_enabled\n  flux_git_repository_url     = var.flux_git_repository_url\n  flux_git_reference_value    = var.flux_git_repository_branch\n  flux_git_repository_path    = var.flux_git_repository_path\n  flux_ssh_private_key_base64 = var.flux_ssh_private_key_base64\n  \n  pe_environment            = var.environment\n  pe_subnet_name            = data.azurerm_subnet.spoke-pe-subnet.name\n  dns_resource_group_name   = var.dns_resource_group\n  dns_zone_group_name       = var.zone_group\n}","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fukho%2Ftfmodule-aks","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fukho%2Ftfmodule-aks","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fukho%2Ftfmodule-aks/lists"}