From c714a104386022eb4e31933ca645329fe94b8b05 Mon Sep 17 00:00:00 2001 From: James Ellwood Date: Mon, 16 Dec 2024 14:27:05 -0500 Subject: [PATCH] Update AKS logging to log fewer things, add flexibility in disk config for system pool (#94) --- aks/terraform/main.tf | 3 +++ .../modules/broker-node-pool/README.md | 1 + aks/terraform/modules/broker-node-pool/main.tf | 2 +- .../modules/broker-node-pool/variables.tf | 6 ++++++ aks/terraform/modules/cluster/README.md | 3 +++ aks/terraform/modules/cluster/main.tf | 18 ++++++------------ aks/terraform/modules/cluster/variables.tf | 17 +++++++++++++++++ 7 files changed, 37 insertions(+), 13 deletions(-) diff --git a/aks/terraform/main.tf b/aks/terraform/main.tf index 5f74846..c04997e 100644 --- a/aks/terraform/main.tf +++ b/aks/terraform/main.tf @@ -66,6 +66,7 @@ module "cluster" { outbound_ip_count = var.outbound_ip_count outbound_ports_allocated = var.outbound_ports_allocated + worker_node_vm_size = local.system_vm_size worker_node_ssh_public_key = var.worker_node_ssh_public_key kubernetes_api_public_access = var.kubernetes_api_public_access @@ -83,6 +84,8 @@ module "cluster" { locals { os_disk_size_gb = 48 + system_vm_size = "Standard_D2s_v3" + prod1k_vm_size = "Standard_E2s_v3" prod10k_vm_size = "Standard_E4s_v3" prod100k_vm_size = "Standard_E8s_v3" diff --git a/aks/terraform/modules/broker-node-pool/README.md b/aks/terraform/modules/broker-node-pool/README.md index fc2ff41..de7ba68 100644 --- a/aks/terraform/modules/broker-node-pool/README.md +++ b/aks/terraform/modules/broker-node-pool/README.md @@ -37,6 +37,7 @@ No modules. | [node\_pool\_taints](#input\_node\_pool\_taints) | Kubernetes taints added to worker nodes in the node pools. | `list(string)` | n/a | yes | | [subnet\_id](#input\_subnet\_id) | The subnet that will contain the worker nodes in each node pool. | `string` | n/a | yes | | [worker\_node\_disk\_size](#input\_worker\_node\_disk\_size) | The OS disk size (in GB) used for the worker nodes in each node pool. | `string` | n/a | yes | +| [worker\_node\_disk\_type](#input\_worker\_node\_disk\_type) | The type of the OS disk for the worker nodes in each node pool. | `string` | `"Ephemeral"` | no | | [worker\_node\_vm\_size](#input\_worker\_node\_vm\_size) | The VM size used for the worker nodes in each node pool. | `string` | n/a | yes | ## Outputs diff --git a/aks/terraform/modules/broker-node-pool/main.tf b/aks/terraform/modules/broker-node-pool/main.tf index 13825c4..926f789 100644 --- a/aks/terraform/modules/broker-node-pool/main.tf +++ b/aks/terraform/modules/broker-node-pool/main.tf @@ -22,7 +22,7 @@ resource "azurerm_kubernetes_cluster_node_pool" "this" { vnet_subnet_id = var.subnet_id vm_size = var.worker_node_vm_size - os_disk_type = "Ephemeral" + os_disk_type = var.worker_node_disk_type os_disk_size_gb = var.worker_node_disk_size node_labels = var.node_pool_labels diff --git a/aks/terraform/modules/broker-node-pool/variables.tf b/aks/terraform/modules/broker-node-pool/variables.tf index 08e88ed..0ce51d7 100644 --- a/aks/terraform/modules/broker-node-pool/variables.tf +++ b/aks/terraform/modules/broker-node-pool/variables.tf @@ -40,6 +40,12 @@ variable "worker_node_disk_size" { description = "The OS disk size (in GB) used for the worker nodes in each node pool." } +variable "worker_node_disk_type" { + type = string + default = "Ephemeral" + description = "The type of the OS disk for the worker nodes in each node pool." +} + variable "node_pool_labels" { type = map(string) description = "Kubernetes labels added to worker nodes in the node pools." diff --git a/aks/terraform/modules/cluster/README.md b/aks/terraform/modules/cluster/README.md index dc04035..950369c 100644 --- a/aks/terraform/modules/cluster/README.md +++ b/aks/terraform/modules/cluster/README.md @@ -54,7 +54,10 @@ No modules. | [resource\_group\_name](#input\_resource\_group\_name) | The name of the resource group that will contain the cluster. | `string` | n/a | yes | | [route\_table\_id](#input\_route\_table\_id) | The ID of the route table of the subnet where the cluster will reside. | `string` | n/a | yes | | [subnet\_id](#input\_subnet\_id) | The ID of the subnet where the cluster will reside. | `string` | n/a | yes | +| [worker\_node\_os\_disk\_size\_gb](#input\_worker\_node\_os\_disk\_size\_gb) | The size of the OS disk for the worker nodes in the default (system) node pool. | `number` | `48` | no | +| [worker\_node\_os\_disk\_type](#input\_worker\_node\_os\_disk\_type) | The type of the OS disk for the worker nodes in the default (system) node pool. | `string` | `"Ephemeral"` | no | | [worker\_node\_ssh\_public\_key](#input\_worker\_node\_ssh\_public\_key) | The public key that will be added to the authorized keys file on the worker nodes for SSH access. | `string` | n/a | yes | +| [worker\_node\_vm\_size](#input\_worker\_node\_vm\_size) | The default VM size for the worker nodes in the default (system) node pool. | `string` | n/a | yes | ## Outputs diff --git a/aks/terraform/modules/cluster/main.tf b/aks/terraform/modules/cluster/main.tf index d613743..0c801bf 100644 --- a/aks/terraform/modules/cluster/main.tf +++ b/aks/terraform/modules/cluster/main.tf @@ -1,8 +1,5 @@ locals { worker_node_username = "worker" - - os_disk_size_gb = 48 - default_vm_size = "Standard_D2s_v3" } ################################################################################ @@ -62,9 +59,9 @@ resource "azurerm_kubernetes_cluster" "cluster" { default_node_pool { name = "default" node_count = 2 - vm_size = local.default_vm_size - os_disk_size_gb = local.os_disk_size_gb - os_disk_type = "Ephemeral" + vm_size = var.worker_node_vm_size + os_disk_size_gb = var.worker_node_os_disk_size_gb + os_disk_type = var.worker_node_os_disk_type vnet_subnet_id = var.subnet_id zones = var.availability_zones max_pods = var.max_pods_per_node @@ -156,15 +153,12 @@ resource "azurerm_monitor_diagnostic_setting" "cluster" { category = "cluster-autoscaler" } - enabled_log { - category = "kube-apiserver" - } - enabled_log { category = "kube-audit-admin" } - enabled_log { - category = "kube-controller-manager" + metric { + category = "AllMetrics" + enabled = false } } \ No newline at end of file diff --git a/aks/terraform/modules/cluster/variables.tf b/aks/terraform/modules/cluster/variables.tf index 641913d..30db6d1 100644 --- a/aks/terraform/modules/cluster/variables.tf +++ b/aks/terraform/modules/cluster/variables.tf @@ -109,4 +109,21 @@ variable "max_pods_per_node" { type = number default = 110 description = "The maximum number of pods for the worker nodes in the node pools." +} + +variable "worker_node_vm_size" { + type = string + description = "The default VM size for the worker nodes in the default (system) node pool." +} + +variable "worker_node_os_disk_size_gb" { + type = number + default = 48 + description = "The size of the OS disk for the worker nodes in the default (system) node pool." +} + +variable "worker_node_os_disk_type" { + type = string + default = "Ephemeral" + description = "The type of the OS disk for the worker nodes in the default (system) node pool." } \ No newline at end of file