Skip to content

Commit

Permalink
feat: Aks 1.26 setup ex novo (#69)
Browse files Browse the repository at this point in the history
* rename aks

* upgraded module versions

* upgrated middleware

* fix terraform lock

* pre-commit fixs
  • Loading branch information
diegolagospagopa authored Jul 19, 2023
1 parent 3130ae3 commit 5d8cdbf
Show file tree
Hide file tree
Showing 13 changed files with 311 additions and 82 deletions.
130 changes: 65 additions & 65 deletions src/aks-platform/.terraform.lock.hcl

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion src/aks-platform/01_network_aks.tf
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# k8s cluster subnet
module "snet_aks" {
source = "git::https://github.com/pagopa/terraform-azurerm-v3.git//subnet?ref=v4.1.0"
source = "git::https://github.com/pagopa/terraform-azurerm-v3.git//subnet?ref=v6.20.1"

name = "${local.project}-aks-snet"

Expand Down
8 changes: 7 additions & 1 deletion src/aks-platform/03_aks.tf → src/aks-platform/02_aks.tf
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ resource "azurerm_resource_group" "rg_aks" {
}

module "aks" {
source = "git::https://github.com/pagopa/terraform-azurerm-v3.git//kubernetes_cluster?ref=v4.1.0"
source = "git::https://github.com/pagopa/terraform-azurerm-v3.git//kubernetes_cluster?ref=v6.20.1"

count = var.aks_enabled ? 1 : 0

Expand Down Expand Up @@ -96,6 +96,12 @@ module "aks" {
]
}

resource "azurerm_role_assignment" "managed_identity_operator_vs_aks_managed_identity" {
scope = azurerm_resource_group.rg_aks.id
role_definition_name = "Managed Identity Operator"
principal_id = module.aks[0].identity_principal_id
}

#
# ACR connection
#
Expand Down
113 changes: 113 additions & 0 deletions src/aks-platform/03_monitoring.tf
Original file line number Diff line number Diff line change
@@ -0,0 +1,113 @@
resource "kubernetes_namespace" "monitoring" {
metadata {
name = "monitoring"
}
}

resource "helm_release" "prometheus" {
name = "prometheus"
repository = "https://prometheus-community.github.io/helm-charts"
chart = "prometheus"
version = var.prometheus_helm.chart_version
namespace = kubernetes_namespace.monitoring.metadata[0].name

set {
name = "server.global.scrape_interval"
value = "30s"
}
set {
name = "alertmanager.image.repository"
value = var.prometheus_helm.alertmanager.image_name
}
set {
name = "alertmanager.image.tag"
value = var.prometheus_helm.alertmanager.image_tag
}
set {
name = "alertmanager.configmapReload.prometheus.image.repository"
value = var.prometheus_helm.configmap_reload_prometheus.image_name
}
set {
name = "alertmanager.configmapReload.prometheus.image.tag"
value = var.prometheus_helm.configmap_reload_prometheus.image_tag
}
set {
name = "alertmanager.configmapReload.alertmanager.image.repository"
value = var.prometheus_helm.configmap_reload_alertmanager.image_name
}
set {
name = "alertmanager.configmapReload.alertmanager.image.tag"
value = var.prometheus_helm.configmap_reload_alertmanager.image_tag
}
set {
name = "alertmanager.nodeExporter.image.repository"
value = var.prometheus_helm.node_exporter.image_name
}
set {
name = "alertmanager.nodeExporter.image.tag"
value = var.prometheus_helm.node_exporter.image_tag
}
set {
name = "alertmanager.nodeExporter.image.repository"
value = var.prometheus_helm.node_exporter.image_name
}
set {
name = "alertmanager.nodeExporter.image.tag"
value = var.prometheus_helm.node_exporter.image_tag
}
set {
name = "alertmanager.server.image.repository"
value = var.prometheus_helm.server.image_name
}
set {
name = "alertmanager.server.image.tag"
value = var.prometheus_helm.server.image_tag
}
set {
name = "alertmanager.pushgateway.image.repository"
value = var.prometheus_helm.pushgateway.image_name
}
set {
name = "alertmanager.pushgateway.image.tag"
value = var.prometheus_helm.pushgateway.image_tag
}
}

# resource "helm_release" "grafana" {
# name = "grafana"
# repository = "https://grafana.github.io/helm-charts"
# chart = "grafana"
# version = var.grafana_helm_version
# namespace = kubernetes_namespace.monitoring.metadata[0].name

# set {
# name = "adminUser"
# value = data.azurerm_key_vault_secret.grafana_admin_username.value
# }

# set {
# name = "adminPassword"
# value = data.azurerm_key_vault_secret.grafana_admin_password.value
# }
# }

resource "helm_release" "monitoring_reloader" {
name = "reloader"
repository = "https://stakater.github.io/stakater-charts"
chart = "reloader"
version = var.reloader_helm.chart_version
namespace = kubernetes_namespace.monitoring.metadata[0].name

set {
name = "reloader.watchGlobally"
value = "false"
}
set {
name = "reloader.deployment.image.name"
value = var.reloader_helm.image_name
}
set {
name = "reloader.deployment.image.tag"
value = var.reloader_helm.image_tag
}
}
4 changes: 4 additions & 0 deletions src/aks-platform/04_rbac.tf
Original file line number Diff line number Diff line change
Expand Up @@ -207,6 +207,10 @@ resource "kubernetes_cluster_role_binding" "edit_binding" {
name = data.azuread_group.adgroup_developers.object_id
namespace = "kube-system"
}

depends_on = [
module.aks
]
}

resource "kubernetes_cluster_role_binding" "view_binding" {
Expand Down
8 changes: 4 additions & 4 deletions src/aks-platform/05_ingress.tf
Original file line number Diff line number Diff line change
Expand Up @@ -33,10 +33,6 @@ module "nginx_ingress" {
name = "controller.replicaCount"
value = var.ingress_replica_count
},
{
name = "controller.service.annotations.service\\.beta\\.kubernetes\\.io/azure-load-balancer-health-probe-request-path"
value = "/healthz"
},
{
name = "controller.nodeSelector.beta\\.kubernetes\\.io/os"
value = "linux"
Expand All @@ -48,6 +44,10 @@ module "nginx_ingress" {
{
name = "controller.admissionWebhooks.patch.nodeSelector.beta\\.kubernetes\\.io/os"
value = "linux"
},
{
name = "controller.service.annotations.service\\.beta\\.kubernetes\\.io/azure-load-balancer-health-probe-request-path"
value = "/healthz"
}
]

Expand Down
6 changes: 5 additions & 1 deletion src/aks-platform/05_keda.tf
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ locals {
}

module "keda_pod_identity" {
source = "git::https://github.com/pagopa/terraform-azurerm-v3.git//kubernetes_pod_identity?ref=v4.1.0"
source = "git::https://github.com/pagopa/terraform-azurerm-v3.git//kubernetes_pod_identity?ref=v6.20.1"

resource_group_name = azurerm_resource_group.rg_aks.name
location = var.location
Expand All @@ -33,6 +33,10 @@ resource "azurerm_role_assignment" "keda_monitoring_reader" {
scope = data.azurerm_subscription.current.id
role_definition_name = "Monitoring Reader"
principal_id = module.keda_pod_identity.identity.principal_id

depends_on = [
module.aks
]
}

resource "helm_release" "keda" {
Expand Down
2 changes: 1 addition & 1 deletion src/aks-platform/99_main.tf
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ terraform {
required_providers {
azurerm = {
source = "hashicorp/azurerm"
version = ">= 3.36.0"
version = ">= 3.64.0"
}
azuread = {
source = "hashicorp/azuread"
Expand Down
2 changes: 1 addition & 1 deletion src/aks-platform/99_main.tf.ci
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ terraform {
required_providers {
azurerm = {
source = "hashicorp/azurerm"
version = ">= 3.36.0"
version = ">= 3.64.0"
}
azuread = {
source = "hashicorp/azuread"
Expand Down
Loading

0 comments on commit 5d8cdbf

Please sign in to comment.