diff --git a/deploy/k8s/helm_release_o2bionics_webapp.tf b/deploy/k8s/helm_release_o2bionics_webapp.tf index 691871f5..34220490 100644 --- a/deploy/k8s/helm_release_o2bionics_webapp.tf +++ b/deploy/k8s/helm_release_o2bionics_webapp.tf @@ -1,9 +1,9 @@ -resource "helm_release" "o2bionicswebappdev" { - name = "o2bionics-webapp" - repository = "./charts" - namespace = "dev" - chart = "o2bionics-webapp" -} +# resource "helm_release" "o2bionicswebappdev" { +# name = "o2bionics-webapp" +# repository = "./charts" +# namespace = "dev" +# chart = "o2bionics-webapp" +# } resource "helm_release" "o2bionicswebappprod" { name = "o2bionics-webapp" repository = "./charts" diff --git a/deploy/k8s/helm_release_testapp.tf b/deploy/k8s/helm_release_testapp.tf index 3f623c3c..1c89ba95 100644 --- a/deploy/k8s/helm_release_testapp.tf +++ b/deploy/k8s/helm_release_testapp.tf @@ -1,9 +1,9 @@ -resource "helm_release" "testapp" { - name = "test-app" - repository = "./charts" - namespace = "dev" - chart = "test-app" -} +# resource "helm_release" "testapp" { +# name = "test-app" +# repository = "./charts" +# namespace = "dev" +# chart = "test-app" +# } # resource "helm_release" "example" { # name = "redis" diff --git a/deploy/k8s/monitoring.tf b/deploy/k8s/monitoring.tf new file mode 100644 index 00000000..8cd8a6a7 --- /dev/null +++ b/deploy/k8s/monitoring.tf @@ -0,0 +1,82 @@ + +resource "helm_release" "pod_identity" { + name = "pod-identity" + repository = "https://raw.githubusercontent.com/Azure/aad-pod-identity/master/charts" + chart = "aad-pod-identity" + namespace = "kube-system" +} + +# https://github.com/kubernetes/ingress-nginx/tree/main/charts/ingress-nginx +resource "helm_release" "nginx_ingress_controller" { + name = "nginx-ingress-controller" + repository = "https://kubernetes.github.io/ingress-nginx" + chart = "ingress-nginx" + version = "4.1.3" + namespace = "ingress" + create_namespace = "true" + + set { + name = "controller.service.type" + value = "LoadBalancer" + } + set { + name = "controller.autoscaling.enabled" + value = "true" + } + set { + name = "controller.autoscaling.minReplicas" + value = "1" + } + set { + name = "controller.autoscaling.maxReplicas" + value = "2" + } +} + +# https://github.com/prometheus-community/helm-charts/tree/main/charts/kube-prometheus-stack +resource "helm_release" "prometheus_stack" { + name = "prometheus-stack" + repository = "https://prometheus-community.github.io/helm-charts" + chart = "kube-prometheus-stack" + namespace = "monitoring" + create_namespace = true + + set { + name = "grafana.ingress.enabled" + value = "true" + } + set { + name = "grafana.ingress.ingressClassName" + value = "nginx" + } + set { + name = "grafana.ingress.path" + value = "/(.*)" # "/grafana2/?(.*)" + } + # annotations: + # nginx.ingress.kubernetes.io/ssl-redirect: "false" + # nginx.ingress.kubernetes.io/use-regex: "true" + # nginx.ingress.kubernetes.io/rewrite-target: /$1 + set { + name = "grafana.ingress.annotations.nginx\\.ingress\\.kubernetes\\.io/ssl-redirect" + value = "false" + type = "string" + } + set { + name = "grafana.ingress.annotations.nginx\\.ingress\\.kubernetes\\.io/use-regex" + value = "true" + type = "string" + } + set { + name = "grafana.ingress.annotations.nginx\\.ingress\\.kubernetes\\.io/rewrite-target" + value = "/$1" + } + set { + name = "grafana.adminUser" + value = var.grafana_admin_user + } + set { + name = "grafana.adminPassword" + value = var.grafana_admin_password + } +} diff --git a/deploy/k8s/terraform.tfvars b/deploy/k8s/terraform.tfvars index 55e8f3cc..f8a334de 100644 --- a/deploy/k8s/terraform.tfvars +++ b/deploy/k8s/terraform.tfvars @@ -3,4 +3,7 @@ aks_group_name = "aks-prods" aks_group_location = "WestUS3" aks_dns_prefix = "o2ngaks" aks_vm_size = "Standard_D2_v2" -aks_node_count = 1 \ No newline at end of file +aks_node_count = 1 + +grafana_admin_user = "grafana" +grafana_admin_password = "grafana-pass" \ No newline at end of file diff --git a/deploy/k8s/varribles.tf b/deploy/k8s/varribles.tf index 54859a96..f88ed365 100644 --- a/deploy/k8s/varribles.tf +++ b/deploy/k8s/varribles.tf @@ -18,6 +18,7 @@ variable "aks_vm_size" { description = "Name VM for AKS Cluster" } + variable "aks_node_count" { type = number description = "Node count for AKS Cluster" @@ -26,3 +27,13 @@ variable "aks_cluster_name" { type = string description = "AKS Cluster Name" } + +variable "grafana_admin_user" { + type = string + description = "Admin user to access Grafana dashboard" +} + +variable "grafana_admin_password" { + type = string + description = "Admin password to access Grafana dashboard" +}