diff --git a/README.md b/README.md index b106e2d..59f4ccb 100644 --- a/README.md +++ b/README.md @@ -47,13 +47,13 @@ module "eks_observability_accelerator" { aws_region = "eu-west-1" eks_cluster_id = "my-eks-cluster" - # prevents creation of a new AMP workspace + # prevents creation of a new Amazon Managed Prometheus workspace enable_managed_prometheus = false - # reusing existing AMP + # reusing existing Amazon Managed Prometheus Workspace managed_prometheus_workspace_id = "ws-abcd123..." - # prevents creation of a new AMG workspace + # prevents creation of a new Amazon Managed Grafana workspace enable_managed_grafana = false managed_grafana_workspace_id = "g-abcdef123" @@ -71,8 +71,6 @@ metrics collection, alerting rule and Grafana dashboards. #### Infrastructure monitoring - - ```hcl module "workloads_infra" { source = "aws-observability/terrarom-aws-observability-accelerator/workloads/infra" @@ -153,18 +151,17 @@ If you are interested in contributing to EKS Blueprints, see the Contribution (h |------|-------------|------|---------|:--------:| | [aws\_region](#input\_aws\_region) | AWS Region | `string` | n/a | yes | | [eks\_cluster\_id](#input\_eks\_cluster\_id) | EKS Cluster Id | `string` | n/a | yes | -| [enable\_alertmanager](#input\_enable\_alertmanager) | Creates AMP AlertManager for all workloads | `bool` | `false` | no | +| [enable\_alertmanager](#input\_enable\_alertmanager) | Creates Amazon Managed Service for Prometheus AlertManager for all workloads | `bool` | `false` | no | | [enable\_amazon\_eks\_adot](#input\_enable\_amazon\_eks\_adot) | Enables the ADOT Operator on the EKS Cluster | `bool` | `true` | no | | [enable\_cert\_manager](#input\_enable\_cert\_manager) | Allow reusing an existing installation of cert-manager | `bool` | `true` | no | -| [enable\_managed\_grafana](#input\_enable\_managed\_grafana) | Creates a new Amazon Managed Grafana (AMG) Workspace | `bool` | `true` | no | -| [enable\_managed\_prometheus](#input\_enable\_managed\_prometheus) | Creates a new AMP workspace | `bool` | `true` | no | -| [grafana\_api\_key](#input\_grafana\_api\_key) | Grafana API key for the AMG workspace | `string` | `null` | no | +| [enable\_managed\_grafana](#input\_enable\_managed\_grafana) | Creates a new Amazon Managed Grafana Workspace | `bool` | `true` | no | +| [enable\_managed\_prometheus](#input\_enable\_managed\_prometheus) | Creates a new Amazon Managed Service for Prometheus Workspace | `bool` | `true` | no | +| [grafana\_api\_key](#input\_grafana\_api\_key) | Grafana API key for the Amazon Managed Grafana workspace | `string` | `null` | no | | [irsa\_iam\_permissions\_boundary](#input\_irsa\_iam\_permissions\_boundary) | IAM permissions boundary for IRSA roles | `string` | `""` | no | | [irsa\_iam\_role\_path](#input\_irsa\_iam\_role\_path) | IAM role path for IRSA roles | `string` | `"/"` | no | -| [managed\_grafana\_region](#input\_managed\_grafana\_region) | Region where AMG is deployed | `string` | `null` | no | -| [managed\_grafana\_workspace\_id](#input\_managed\_grafana\_workspace\_id) | AMG Workspace ID | `string` | `""` | no | -| [managed\_prometheus\_workspace\_id](#input\_managed\_prometheus\_workspace\_id) | AMP Workspace ID | `string` | `""` | no | -| [managed\_prometheus\_workspace\_region](#input\_managed\_prometheus\_workspace\_region) | Region where AMP is deployed | `string` | `null` | no | +| [managed\_grafana\_workspace\_id](#input\_managed\_grafana\_workspace\_id) | Amazon Managed Grafana Workspace ID | `string` | `""` | no | +| [managed\_prometheus\_workspace\_id](#input\_managed\_prometheus\_workspace\_id) | Amazon Managed Service for Prometheus Workspace ID | `string` | `""` | no | +| [managed\_prometheus\_workspace\_region](#input\_managed\_prometheus\_workspace\_region) | Region where Amazon Managed Service for Prometheus is deployed | `string` | `null` | no | | [tags](#input\_tags) | Additional tags (e.g. `map('BusinessUnit`,`XYZ`) | `map(string)` | `{}` | no | ## Outputs @@ -173,12 +170,12 @@ If you are interested in contributing to EKS Blueprints, see the Contribution (h |------|-------------| | [aws\_region](#output\_aws\_region) | EKS Cluster Id | | [eks\_cluster\_id](#output\_eks\_cluster\_id) | EKS Cluster Id | -| [eks\_cluster\_version](#output\_eks\_cluster\_version) | n/a | -| [grafana\_dashboards\_folder\_id](#output\_grafana\_dashboards\_folder\_id) | n/a | -| [managed\_grafana\_workspace\_endpoint](#output\_managed\_grafana\_workspace\_endpoint) | n/a | -| [managed\_prometheus\_workspace\_endpoint](#output\_managed\_prometheus\_workspace\_endpoint) | n/a | -| [managed\_prometheus\_workspace\_id](#output\_managed\_prometheus\_workspace\_id) | n/a | -| [managed\_prometheus\_workspace\_region](#output\_managed\_prometheus\_workspace\_region) | n/a | +| [eks\_cluster\_version](#output\_eks\_cluster\_version) | EKS Cluster version | +| [grafana\_dashboards\_folder\_id](#output\_grafana\_dashboards\_folder\_id) | Grafana folder ID for automatic dashboards. Required by workload modules | +| [managed\_grafana\_workspace\_endpoint](#output\_managed\_grafana\_workspace\_endpoint) | Amazon Managed Grafana workspace endpoint | +| [managed\_prometheus\_workspace\_endpoint](#output\_managed\_prometheus\_workspace\_endpoint) | Amazon Managed Prometheus workspace endpoint | +| [managed\_prometheus\_workspace\_id](#output\_managed\_prometheus\_workspace\_id) | Amazon Managed Prometheus workspace ID | +| [managed\_prometheus\_workspace\_region](#output\_managed\_prometheus\_workspace\_region) | Amazon Managed Prometheus workspace region | ## Contributing diff --git a/examples/eks-cluster-with-vpc/main.tf b/examples/eks-cluster-with-vpc/main.tf index 017e1a0..6aee289 100644 --- a/examples/eks-cluster-with-vpc/main.tf +++ b/examples/eks-cluster-with-vpc/main.tf @@ -23,7 +23,7 @@ data "aws_eks_cluster_auth" "this" { data "aws_availability_zones" "available" {} locals { - name = basename(path.cwd) + name = basename(path.cwd) cluster_name = coalesce(var.cluster_name, local.name) region = var.aws_region diff --git a/locals.tf b/locals.tf index a261ae0..9e34442 100644 --- a/locals.tf +++ b/locals.tf @@ -23,15 +23,9 @@ locals { amp_ws_id = var.enable_managed_prometheus ? aws_prometheus_workspace.this[0].id : var.managed_prometheus_workspace_id amp_ws_endpoint = "https://aps-workspaces.${local.amp_ws_region}.amazonaws.com/workspaces/${local.amp_ws_id}/" - # if region is not passed, we assume the current one - amg_ws_region = coalesce(var.managed_grafana_region, data.aws_region.current.name) - # if grafana_workspace_id is supplied, we infer the endpoint from # computed region, else we create a new workspace amg_ws_endpoint = var.managed_grafana_workspace_id == "" ? "https://${module.managed_grafana[0].workspace_endpoint}" : "https://${data.aws_grafana_workspace.this[0].endpoint}" - amg_ws_id = var.managed_grafana_workspace_id == "" ? module.managed_grafana[0].workspace_ : data.aws_grafana_workspace.this[0].endpoint - - amg_api_key = var.grafana_api_key context = { aws_caller_identity_account_id = data.aws_caller_identity.current.account_id diff --git a/main.tf b/main.tf index e64e4c0..33b5664 100644 --- a/main.tf +++ b/main.tf @@ -1,5 +1,6 @@ module "operator" { source = "./modules/add-ons/adot-operator" + count = var.enable_amazon_eks_adot ? 1 : 0 enable_cert_manager = var.enable_cert_manager kubernetes_version = local.eks_cluster_version diff --git a/modules/add-ons/adot-operator/README.md b/modules/add-ons/adot-operator/README.md index 70884c4..bc7131f 100644 --- a/modules/add-ons/adot-operator/README.md +++ b/modules/add-ons/adot-operator/README.md @@ -61,9 +61,9 @@ the ADOT Operator. |------|-------------|------|---------|:--------:| | [addon\_config](#input\_addon\_config) | Amazon EKS Managed CoreDNS Add-on config | `any` | `{}` | no | | [addon\_context](#input\_addon\_context) | Input configuration for the addon |
object({
aws_caller_identity_account_id = string
aws_caller_identity_arn = string
aws_eks_cluster_endpoint = string
aws_partition_id = string
aws_region_name = string
eks_cluster_id = string
eks_oidc_issuer_url = string
eks_oidc_provider_arn = string
irsa_iam_role_path = string
tags = map(string)
})
| n/a | yes | -| [enable\_cert\_manager](#input\_enable\_cert\_manager) | n/a | `bool` | `true` | no | -| [helm\_config](#input\_helm\_config) | Helm provider config for ADOT Operator AddOn | `any` | `{}` | no | -| [kubernetes\_version](#input\_kubernetes\_version) | n/a | `string` | n/a | yes | +| [enable\_cert\_manager](#input\_enable\_cert\_manager) | Enable cert-manager, a requirement for ADOT Operator | `bool` | `true` | no | +| [helm\_config](#input\_helm\_config) | Helm provider config for ADOT Operator AddOn | `any` |
{
"version": "v1.8.2"
}
| no | +| [kubernetes\_version](#input\_kubernetes\_version) | EKS Cluster version | `string` | n/a | yes | ## Outputs diff --git a/modules/add-ons/adot-operator/main.tf b/modules/add-ons/adot-operator/main.tf index e8723a8..6b796ca 100644 --- a/modules/add-ons/adot-operator/main.tf +++ b/modules/add-ons/adot-operator/main.tf @@ -2,7 +2,7 @@ module "cert_manager" { source = "github.com/aws-ia/terraform-aws-eks-blueprints/modules/kubernetes-addons/cert-manager" count = var.enable_cert_manager ? 1 : 0 - helm_config = { version = "v1.8.2" } + helm_config = var.helm_config addon_context = var.addon_context } diff --git a/modules/add-ons/adot-operator/variables.tf b/modules/add-ons/adot-operator/variables.tf index 73368a7..105d8e4 100644 --- a/modules/add-ons/adot-operator/variables.tf +++ b/modules/add-ons/adot-operator/variables.tf @@ -1,7 +1,7 @@ variable "helm_config" { description = "Helm provider config for ADOT Operator AddOn" type = any - default = {} + default = { version = "v1.8.2" } } variable "addon_context" { @@ -21,12 +21,14 @@ variable "addon_context" { } variable "enable_cert_manager" { - type = bool - default = true + description = "Enable cert-manager, a requirement for ADOT Operator" + type = bool + default = true } variable "kubernetes_version" { - type = string + description = "EKS Cluster version" + type = string } variable "addon_config" { diff --git a/modules/workloads/infra/README.md b/modules/workloads/infra/README.md index 4eba836..2d82d70 100644 --- a/modules/workloads/infra/README.md +++ b/modules/workloads/infra/README.md @@ -33,16 +33,9 @@ This module provides EKS cluster monitoring with the following resources: |------|------| | [aws_prometheus_rule_group_namespace.alerting_rules](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/prometheus_rule_group_namespace) | resource | | [aws_prometheus_rule_group_namespace.recording_rules](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/prometheus_rule_group_namespace) | resource | -| [grafana_dashboard.apis](https://registry.terraform.io/providers/grafana/grafana/1.25.0/docs/resources/dashboard) | resource | | [grafana_dashboard.cluster](https://registry.terraform.io/providers/grafana/grafana/1.25.0/docs/resources/dashboard) | resource | | [grafana_dashboard.clusternw](https://registry.terraform.io/providers/grafana/grafana/1.25.0/docs/resources/dashboard) | resource | -| [grafana_dashboard.controller](https://registry.terraform.io/providers/grafana/grafana/1.25.0/docs/resources/dashboard) | resource | -| [grafana_dashboard.coredns](https://registry.terraform.io/providers/grafana/grafana/1.25.0/docs/resources/dashboard) | resource | -| [grafana_dashboard.etcd](https://registry.terraform.io/providers/grafana/grafana/1.25.0/docs/resources/dashboard) | resource | | [grafana_dashboard.kubelet](https://registry.terraform.io/providers/grafana/grafana/1.25.0/docs/resources/dashboard) | resource | -| [grafana_dashboard.necluster](https://registry.terraform.io/providers/grafana/grafana/1.25.0/docs/resources/dashboard) | resource | -| [grafana_dashboard.nenode](https://registry.terraform.io/providers/grafana/grafana/1.25.0/docs/resources/dashboard) | resource | -| [grafana_dashboard.nenodeuse](https://registry.terraform.io/providers/grafana/grafana/1.25.0/docs/resources/dashboard) | resource | | [grafana_dashboard.nodes](https://registry.terraform.io/providers/grafana/grafana/1.25.0/docs/resources/dashboard) | resource | | [grafana_dashboard.nsnw](https://registry.terraform.io/providers/grafana/grafana/1.25.0/docs/resources/dashboard) | resource | | [grafana_dashboard.nsnwworkload](https://registry.terraform.io/providers/grafana/grafana/1.25.0/docs/resources/dashboard) | resource | @@ -51,9 +44,6 @@ This module provides EKS cluster monitoring with the following resources: | [grafana_dashboard.nwworload](https://registry.terraform.io/providers/grafana/grafana/1.25.0/docs/resources/dashboard) | resource | | [grafana_dashboard.podnetwork](https://registry.terraform.io/providers/grafana/grafana/1.25.0/docs/resources/dashboard) | resource | | [grafana_dashboard.pods](https://registry.terraform.io/providers/grafana/grafana/1.25.0/docs/resources/dashboard) | resource | -| [grafana_dashboard.proxy](https://registry.terraform.io/providers/grafana/grafana/1.25.0/docs/resources/dashboard) | resource | -| [grafana_dashboard.pv](https://registry.terraform.io/providers/grafana/grafana/1.25.0/docs/resources/dashboard) | resource | -| [grafana_dashboard.scheduler](https://registry.terraform.io/providers/grafana/grafana/1.25.0/docs/resources/dashboard) | resource | | [grafana_dashboard.workloads](https://registry.terraform.io/providers/grafana/grafana/1.25.0/docs/resources/dashboard) | resource | | [helm_release.kube_state_metrics](https://registry.terraform.io/providers/hashicorp/helm/latest/docs/resources/release) | resource | | [helm_release.prometheus_node_exporter](https://registry.terraform.io/providers/hashicorp/helm/latest/docs/resources/release) | resource | @@ -66,20 +56,21 @@ This module provides EKS cluster monitoring with the following resources: | Name | Description | Type | Default | Required | |------|-------------|------|---------|:--------:| -| [config](#input\_config) | n/a |
object({
helm_config = map(any)

kms_create_namespace = bool
ksm_k8s_namespace = string
ksm_helm_chart_name = string
ksm_helm_chart_version = string
ksm_helm_release_name = string
ksm_helm_repo_url = string
ksm_helm_settings = map(string)
ksm_helm_values = map(any)

ne_create_namespace = bool
ne_k8s_namespace = string
ne_helm_chart_name = string
ne_helm_chart_version = string
ne_helm_release_name = string
ne_helm_repo_url = string
ne_helm_settings = map(string)
ne_helm_values = map(any)

})
|
{
"enable_kube_state_metrics": true,
"enable_node_exporter": true,
"helm_config": {},
"kms_create_namespace": true,
"ksm_helm_chart_name": "kube-state-metrics",
"ksm_helm_chart_version": "4.9.2",
"ksm_helm_release_name": "kube-state-metrics",
"ksm_helm_repo_url": "https://prometheus-community.github.io/helm-charts",
"ksm_helm_settings": {},
"ksm_helm_values": {},
"ksm_k8s_namespace": "kube-system",
"ne_create_namespace": true,
"ne_helm_chart_name": "prometheus-node-exporter",
"ne_helm_chart_version": "2.0.3",
"ne_helm_release_name": "prometheus-node-exporter",
"ne_helm_repo_url": "https://prometheus-community.github.io/helm-charts",
"ne_helm_settings": {},
"ne_helm_values": {},
"ne_k8s_namespace": "prometheus-node-exporter"
}
| no | -| [dashboards\_folder\_id](#input\_dashboards\_folder\_id) | n/a | `string` | n/a | yes | +| [dashboards\_folder\_id](#input\_dashboards\_folder\_id) | Grafana folder ID for automatic dashboards | `string` | n/a | yes | | [eks\_cluster\_id](#input\_eks\_cluster\_id) | EKS Cluster Id | `string` | n/a | yes | -| [enable\_alerting\_rules](#input\_enable\_alerting\_rules) | n/a | `bool` | `true` | no | -| [enable\_dashboards](#input\_enable\_dashboards) | n/a | `bool` | `true` | no | -| [enable\_kube\_state\_metrics](#input\_enable\_kube\_state\_metrics) | n/a | `bool` | `true` | no | -| [enable\_node\_exporter](#input\_enable\_node\_exporter) | n/a | `bool` | `true` | no | -| [enable\_recording\_rules](#input\_enable\_recording\_rules) | n/a | `bool` | `true` | no | +| [enable\_alerting\_rules](#input\_enable\_alerting\_rules) | Enables or disables Managed Prometheus alerting rules | `bool` | `true` | no | +| [enable\_dashboards](#input\_enable\_dashboards) | Enables or disables curated dashboards | `bool` | `true` | no | +| [enable\_kube\_state\_metrics](#input\_enable\_kube\_state\_metrics) | Enables or disables Kube State metrics exporter. Disabling this might affect some data in the dashboards | `bool` | `true` | no | +| [enable\_node\_exporter](#input\_enable\_node\_exporter) | Enables or disables Node exporter. Disabling this might affect some data in the dashboards | `bool` | `true` | no | +| [enable\_recording\_rules](#input\_enable\_recording\_rules) | Enables or disables Managed Prometheus recording rules. Disabling this might affect some data in the dashboards | `bool` | `true` | no | | [helm\_config](#input\_helm\_config) | Helm Config for Prometheus | `any` | `{}` | no | | [irsa\_iam\_permissions\_boundary](#input\_irsa\_iam\_permissions\_boundary) | IAM permissions boundary for IRSA roles | `string` | `""` | no | | [irsa\_iam\_role\_path](#input\_irsa\_iam\_role\_path) | IAM role path for IRSA roles | `string` | `"/"` | no | +| [ksm\_config](#input\_ksm\_config) | Kube State metrics configuration |
object({
create_namespace = bool
k8s_namespace = string
helm_chart_name = string
helm_chart_version = string
helm_release_name = string
helm_repo_url = string
helm_settings = map(string)
helm_values = map(any)
})
|
{
"create_namespace": true,
"helm_chart_name": "kube-state-metrics",
"helm_chart_version": "4.16.0",
"helm_release_name": "kube-state-metrics",
"helm_repo_url": "https://prometheus-community.github.io/helm-charts",
"helm_settings": {},
"helm_values": {},
"k8s_namespace": "kube-system"
}
| no | | [managed\_prometheus\_workspace\_endpoint](#input\_managed\_prometheus\_workspace\_endpoint) | Amazon Managed Prometheus Workspace Endpoint | `string` | `null` | no | | [managed\_prometheus\_workspace\_id](#input\_managed\_prometheus\_workspace\_id) | Amazon Managed Prometheus Workspace ID | `string` | `null` | no | | [managed\_prometheus\_workspace\_region](#input\_managed\_prometheus\_workspace\_region) | Amazon Managed Prometheus Workspace's Region | `string` | `null` | no | +| [ne\_config](#input\_ne\_config) | Node exporter configuration |
object({
create_namespace = bool
k8s_namespace = string
helm_chart_name = string
helm_chart_version = string
helm_release_name = string
helm_repo_url = string
helm_settings = map(string)
helm_values = map(any)
})
|
{
"create_namespace": true,
"helm_chart_name": "prometheus-node-exporter",
"helm_chart_version": "2.0.3",
"helm_release_name": "prometheus-node-exporter",
"helm_repo_url": "https://prometheus-community.github.io/helm-charts",
"helm_settings": {},
"helm_values": {},
"k8s_namespace": "prometheus-node-exporter"
}
| no | | [tags](#input\_tags) | Additional tags (e.g. `map('BusinessUnit`,`XYZ`) | `map(string)` | `{}` | no | ## Outputs diff --git a/modules/workloads/infra/dashboards.tf b/modules/workloads/infra/dashboards.tf index ed084a9..110810c 100644 --- a/modules/workloads/infra/dashboards.tf +++ b/modules/workloads/infra/dashboards.tf @@ -68,4 +68,4 @@ resource "grafana_dashboard" "cluster" { count = var.enable_dashboards ? 1 : 0 folder = var.dashboards_folder_id config_json = file("${path.module}/dashboards/cluster.json") -} \ No newline at end of file +} diff --git a/modules/workloads/infra/dashboards/cluster-networking.json b/modules/workloads/infra/dashboards/cluster-networking.json index c5dc4c6..47a5b99 100644 --- a/modules/workloads/infra/dashboards/cluster-networking.json +++ b/modules/workloads/infra/dashboards/cluster-networking.json @@ -1742,4 +1742,4 @@ "uid": "ff635a025bcfea7bc3dd4f508990a3e9", "version": 1, "weekStart": "" -} \ No newline at end of file +} diff --git a/modules/workloads/infra/dashboards/cluster.json b/modules/workloads/infra/dashboards/cluster.json index 7236fe1..f33f782 100644 --- a/modules/workloads/infra/dashboards/cluster.json +++ b/modules/workloads/infra/dashboards/cluster.json @@ -2944,4 +2944,4 @@ "uid": "efa86fd1d0c121a26444b636a3f509a8", "version": 1, "weekStart": "" -} \ No newline at end of file +} diff --git a/modules/workloads/infra/dashboards/kubelet.json b/modules/workloads/infra/dashboards/kubelet.json index 53f4e73..416141e 100644 --- a/modules/workloads/infra/dashboards/kubelet.json +++ b/modules/workloads/infra/dashboards/kubelet.json @@ -1983,4 +1983,4 @@ "uid": "3138fa155d5915769fbded898ac09fd9", "version": 1, "weekStart": "" -} \ No newline at end of file +} diff --git a/modules/workloads/infra/dashboards/namespace-networking.json b/modules/workloads/infra/dashboards/namespace-networking.json index 40ef090..2233f9b 100644 --- a/modules/workloads/infra/dashboards/namespace-networking.json +++ b/modules/workloads/infra/dashboards/namespace-networking.json @@ -1399,4 +1399,4 @@ "uid": "8b7a8b326d7a6f1f04244066368c67af", "version": 1, "weekStart": "" -} \ No newline at end of file +} diff --git a/modules/workloads/infra/dashboards/namespace-nw-workloads.json b/modules/workloads/infra/dashboards/namespace-nw-workloads.json index b38026d..89cdf9e 100644 --- a/modules/workloads/infra/dashboards/namespace-nw-workloads.json +++ b/modules/workloads/infra/dashboards/namespace-nw-workloads.json @@ -1632,4 +1632,4 @@ "uid": "bbb2a765a623ae38130206c7d94a160f", "version": 1, "weekStart": "" -} \ No newline at end of file +} diff --git a/modules/workloads/infra/dashboards/namespace-pods.json b/modules/workloads/infra/dashboards/namespace-pods.json index 8061421..d192b29 100644 --- a/modules/workloads/infra/dashboards/namespace-pods.json +++ b/modules/workloads/infra/dashboards/namespace-pods.json @@ -2718,4 +2718,4 @@ "uid": "85a562078cdf77779eaa1add43ccec1e", "version": 1, "weekStart": "" -} \ No newline at end of file +} diff --git a/modules/workloads/infra/dashboards/namespace-workloads.json b/modules/workloads/infra/dashboards/namespace-workloads.json index e8cb8f0..e127d9f 100644 --- a/modules/workloads/infra/dashboards/namespace-workloads.json +++ b/modules/workloads/infra/dashboards/namespace-workloads.json @@ -2274,4 +2274,4 @@ "uid": "a87fb0d919ec0ea5f6543124e16c42a5", "version": 1, "weekStart": "" -} \ No newline at end of file +} diff --git a/modules/workloads/infra/dashboards/networking-workloads.json b/modules/workloads/infra/dashboards/networking-workloads.json index 97fbec0..81b39cb 100644 --- a/modules/workloads/infra/dashboards/networking-workloads.json +++ b/modules/workloads/infra/dashboards/networking-workloads.json @@ -1352,4 +1352,4 @@ "uid": "728bf77cc1166d2f3133bf25846876cc", "version": 1, "weekStart": "" -} \ No newline at end of file +} diff --git a/modules/workloads/infra/dashboards/nodes.json b/modules/workloads/infra/dashboards/nodes.json index 1cdb1a3..69a42af 100644 --- a/modules/workloads/infra/dashboards/nodes.json +++ b/modules/workloads/infra/dashboards/nodes.json @@ -1049,4 +1049,4 @@ "uid": "200ac8fdbfbb74b39aff88118e4d1c2c", "version": 1, "weekStart": "" -} \ No newline at end of file +} diff --git a/modules/workloads/infra/dashboards/pods-networking.json b/modules/workloads/infra/dashboards/pods-networking.json index 1883220..be4a86b 100644 --- a/modules/workloads/infra/dashboards/pods-networking.json +++ b/modules/workloads/infra/dashboards/pods-networking.json @@ -1179,4 +1179,4 @@ "uid": "7a18067ce943a40ae25454675c19ff5c", "version": 1, "weekStart": "" -} \ No newline at end of file +} diff --git a/modules/workloads/infra/dashboards/pods.json b/modules/workloads/infra/dashboards/pods.json index ebec0e1..17f1f01 100644 --- a/modules/workloads/infra/dashboards/pods.json +++ b/modules/workloads/infra/dashboards/pods.json @@ -2483,4 +2483,4 @@ "uid": "6581e46e4e5c7ba40a07646395ef7b23", "version": 1, "weekStart": "" -} \ No newline at end of file +} diff --git a/modules/workloads/infra/dashboards/workloads.json b/modules/workloads/infra/dashboards/workloads.json index 60413ac..aad5daa 100644 --- a/modules/workloads/infra/dashboards/workloads.json +++ b/modules/workloads/infra/dashboards/workloads.json @@ -2031,4 +2031,4 @@ "uid": "a164a7f0339f99e89cea5cb47e9be617", "version": 1, "weekStart": "" -} \ No newline at end of file +} diff --git a/modules/workloads/infra/variables.tf b/modules/workloads/infra/variables.tf index 57df479..5d65aa2 100644 --- a/modules/workloads/infra/variables.tf +++ b/modules/workloads/infra/variables.tf @@ -39,30 +39,36 @@ variable "managed_prometheus_workspace_region" { } variable "dashboards_folder_id" { - type = string + description = "Grafana folder ID for automatic dashboards" + type = string } variable "enable_recording_rules" { - type = bool - default = true + description = "Enables or disables Managed Prometheus recording rules. Disabling this might affect some data in the dashboards" + type = bool + default = true } variable "enable_alerting_rules" { - type = bool - default = true + description = "Enables or disables Managed Prometheus alerting rules" + type = bool + default = true } variable "enable_dashboards" { - type = bool - default = true + description = "Enables or disables curated dashboards" + type = bool + default = true } variable "enable_kube_state_metrics" { - type = bool - default = true + description = "Enables or disables Kube State metrics exporter. Disabling this might affect some data in the dashboards" + type = bool + default = true } variable "ksm_config" { + description = "Kube State metrics configuration" type = object({ create_namespace = bool k8s_namespace = string @@ -88,10 +94,13 @@ variable "ksm_config" { } variable "enable_node_exporter" { - type = bool - default = true + description = "Enables or disables Node exporter. Disabling this might affect some data in the dashboards" + type = bool + default = true } + variable "ne_config" { + description = "Node exporter configuration" type = object({ create_namespace = bool k8s_namespace = string diff --git a/modules/workloads/java/README.md b/modules/workloads/java/README.md index 5463384..67447b2 100644 --- a/modules/workloads/java/README.md +++ b/modules/workloads/java/README.md @@ -42,7 +42,7 @@ This module provides monitoring for Java based workloads with the following reso | [amp\_endpoint](#input\_amp\_endpoint) | Amazon Managed Prometheus endpoint | `string` | n/a | yes | | [amp\_id](#input\_amp\_id) | Managed Prometheus workspace id | `string` | n/a | yes | | [amp\_region](#input\_amp\_region) | Amazon Managed Prometheus Workspace's Region | `string` | `null` | no | -| [dashboards\_folder\_id](#input\_dashboards\_folder\_id) | n/a | `string` | n/a | yes | +| [dashboards\_folder\_id](#input\_dashboards\_folder\_id) | Grafana folder ID for automatic dashboards | `string` | n/a | yes | | [enable\_recording\_rules](#input\_enable\_recording\_rules) | Enable AMP recording rules | `bool` | `true` | no | | [helm\_config](#input\_helm\_config) | Helm Config for Prometheus | `any` | `{}` | no | diff --git a/modules/workloads/java/variables.tf b/modules/workloads/java/variables.tf index 9166135..10d7d90 100644 --- a/modules/workloads/java/variables.tf +++ b/modules/workloads/java/variables.tf @@ -27,7 +27,8 @@ variable "amp_region" { } variable "dashboards_folder_id" { - type = string + description = "Grafana folder ID for automatic dashboards" + type = string } variable "addon_context" { diff --git a/modules/workloads/nginx/dashboards/default.json b/modules/workloads/nginx/dashboards/default.json index 3f12b6c..98ecd4f 100644 --- a/modules/workloads/nginx/dashboards/default.json +++ b/modules/workloads/nginx/dashboards/default.json @@ -1451,4 +1451,4 @@ "uid": "nginx", "version": 1, "description": "Ingress-nginx supports a rich collection of prometheus metrics. If you have prometheus and grafana installed on your cluster then prometheus will already be scraping this data due to the scrape annotation on the deployment." -} \ No newline at end of file +} diff --git a/outputs.tf b/outputs.tf index 90ec351..a969724 100644 --- a/outputs.tf +++ b/outputs.tf @@ -9,25 +9,31 @@ output "aws_region" { } output "eks_cluster_version" { - value = data.aws_eks_cluster.eks_cluster.version + description = "EKS Cluster version" + value = data.aws_eks_cluster.eks_cluster.version } output "managed_prometheus_workspace_endpoint" { - value = local.amp_ws_endpoint + description = "Amazon Managed Prometheus workspace endpoint" + value = local.amp_ws_endpoint } output "managed_prometheus_workspace_id" { - value = local.amp_ws_id + description = "Amazon Managed Prometheus workspace ID" + value = local.amp_ws_id } output "managed_prometheus_workspace_region" { - value = local.amp_ws_region + description = "Amazon Managed Prometheus workspace region" + value = local.amp_ws_region } output "managed_grafana_workspace_endpoint" { - value = local.amg_ws_endpoint + description = "Amazon Managed Grafana workspace endpoint" + value = local.amg_ws_endpoint } output "grafana_dashboards_folder_id" { - value = grafana_folder.this.id + description = "Grafana folder ID for automatic dashboards. Required by workload modules" + value = grafana_folder.this.id } diff --git a/variables.tf b/variables.tf index 7716f49..2a00beb 100644 --- a/variables.tf +++ b/variables.tf @@ -33,47 +33,42 @@ variable "enable_cert_manager" { } variable "enable_managed_prometheus" { - description = "Creates a new AMP workspace" + description = "Creates a new Amazon Managed Service for Prometheus Workspace" type = bool default = true } variable "managed_prometheus_workspace_id" { - description = "AMP Workspace ID" + description = "Amazon Managed Service for Prometheus Workspace ID" type = string default = "" } variable "managed_prometheus_workspace_region" { - description = "Region where AMP is deployed" + description = "Region where Amazon Managed Service for Prometheus is deployed" type = string default = null } variable "enable_alertmanager" { - description = "Creates AMP AlertManager for all workloads" + description = "Creates Amazon Managed Service for Prometheus AlertManager for all workloads" type = bool default = false } variable "enable_managed_grafana" { - description = "Creates a new Amazon Managed Grafana (AMG) Workspace" + description = "Creates a new Amazon Managed Grafana Workspace" type = bool default = true } -variable "managed_grafana_region" { - description = "Region where AMG is deployed" - type = string - default = null -} variable "managed_grafana_workspace_id" { - description = "AMG Workspace ID" + description = "Amazon Managed Grafana Workspace ID" type = string default = "" } variable "grafana_api_key" { - description = "Grafana API key for the AMG workspace" + description = "Grafana API key for the Amazon Managed Grafana workspace" type = string default = null }