From 2e3011da1cb429c06c99c826ff9888724f88e16f Mon Sep 17 00:00:00 2001 From: Mark Beacom <7315957+mbeacom@users.noreply.github.com> Date: Wed, 1 Feb 2023 05:19:31 -0500 Subject: [PATCH] Adjust Terraform defaults and usage for tflint & validation checks (#104) * Fix #103 Adjust Terraform defaults and usage for tflint and validation checks * Remove temporarily unused validation --- README.md | 2 +- modules/workloads/infra/README.md | 4 ++-- modules/workloads/infra/outputs.tf | 10 +++++----- modules/workloads/infra/variables.tf | 5 +++-- modules/workloads/java/README.md | 4 ++-- modules/workloads/java/outputs.tf | 2 +- modules/workloads/java/variables.tf | 4 ++-- modules/workloads/nginx/README.md | 4 ++-- modules/workloads/nginx/dashboards.tf | 3 ++- modules/workloads/nginx/outputs.tf | 2 +- modules/workloads/nginx/variables.tf | 4 ++-- variables.tf | 2 +- 12 files changed, 24 insertions(+), 22 deletions(-) diff --git a/README.md b/README.md index 5c89a57..f445b3b 100644 --- a/README.md +++ b/README.md @@ -164,7 +164,7 @@ If you are interested in contributing, see the [Contribution guide](https://gith | [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\_permissions\_boundary](#input\_irsa\_iam\_permissions\_boundary) | IAM permissions boundary for IRSA roles | `string` | `null` | no | | [irsa\_iam\_role\_path](#input\_irsa\_iam\_role\_path) | IAM role path for IRSA roles | `string` | `"/"` | 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 | diff --git a/modules/workloads/infra/README.md b/modules/workloads/infra/README.md index 792da43..f1e36f3 100644 --- a/modules/workloads/infra/README.md +++ b/modules/workloads/infra/README.md @@ -68,10 +68,10 @@ This module is inspired from the open source [kube-prometheus-stack](https://git | [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 | | [enable\_tracing](#input\_enable\_tracing) | (Experimental) Enables tracing with AWS X-Ray. This changes the deploy mode of the collector to daemon set. Requirement: adot add-on <= 0.58-build.0 | `bool` | `false` | 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\_permissions\_boundary](#input\_irsa\_iam\_permissions\_boundary) | IAM permissions boundary for IRSA roles | `string` | `null` | 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)
scrape_interval = string
scrape_timeout = string
}) | {
"create_namespace": true,
"helm_chart_name": "kube-state-metrics",
"helm_chart_version": "4.24.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",
"scrape_interval": "60s",
"scrape_timeout": "15s"
} | no |
-| [managed\_prometheus\_workspace\_endpoint](#input\_managed\_prometheus\_workspace\_endpoint) | Amazon Managed Prometheus Workspace Endpoint | `string` | `null` | no |
+| [managed\_prometheus\_workspace\_endpoint](#input\_managed\_prometheus\_workspace\_endpoint) | Amazon Managed Prometheus Workspace Endpoint | `string` | `""` | 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)
scrape_interval = string
scrape_timeout = string
}) | {
"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",
"scrape_interval": "60s",
"scrape_timeout": "60s"
} | no |
diff --git a/modules/workloads/infra/outputs.tf b/modules/workloads/infra/outputs.tf
index 50c09c6..4f0196b 100644
--- a/modules/workloads/infra/outputs.tf
+++ b/modules/workloads/infra/outputs.tf
@@ -1,10 +1,10 @@
output "grafana_dashboard_urls" {
value = [concat(
- grafana_dashboard.workloads.*.url,
- grafana_dashboard.nodes.*.url,
- grafana_dashboard.nsworkload.*.url,
- grafana_dashboard.kubelet.*.url,
- grafana_dashboard.cluster.*.url,
+ grafana_dashboard.workloads[*].url,
+ grafana_dashboard.nodes[*].url,
+ grafana_dashboard.nsworkload[*].url,
+ grafana_dashboard.kubelet[*].url,
+ grafana_dashboard.cluster[*].url,
)]
description = "URLs for dashboards created"
}
diff --git a/modules/workloads/infra/variables.tf b/modules/workloads/infra/variables.tf
index 070107b..c6679f3 100644
--- a/modules/workloads/infra/variables.tf
+++ b/modules/workloads/infra/variables.tf
@@ -18,14 +18,15 @@ variable "irsa_iam_role_path" {
variable "irsa_iam_permissions_boundary" {
description = "IAM permissions boundary for IRSA roles"
type = string
- default = ""
+ default = null
}
variable "managed_prometheus_workspace_endpoint" {
description = "Amazon Managed Prometheus Workspace Endpoint"
type = string
- default = null
+ default = ""
}
+
variable "managed_prometheus_workspace_id" {
description = "Amazon Managed Prometheus Workspace ID"
type = string
diff --git a/modules/workloads/java/README.md b/modules/workloads/java/README.md
index b7dd257..fd4baaf 100644
--- a/modules/workloads/java/README.md
+++ b/modules/workloads/java/README.md
@@ -52,9 +52,9 @@ This module provides monitoring for Java based workloads with the following reso
| [enable\_alerting\_rules](#input\_enable\_alerting\_rules) | Enables or disables Managed Prometheus alerting rules | `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\_permissions\_boundary](#input\_irsa\_iam\_permissions\_boundary) | IAM permissions boundary for IRSA roles | `string` | `null` | no |
| [irsa\_iam\_role\_path](#input\_irsa\_iam\_role\_path) | IAM role path for IRSA roles | `string` | `"/"` | no |
-| [managed\_prometheus\_workspace\_endpoint](#input\_managed\_prometheus\_workspace\_endpoint) | Amazon Managed Prometheus Workspace Endpoint | `string` | `null` | no |
+| [managed\_prometheus\_workspace\_endpoint](#input\_managed\_prometheus\_workspace\_endpoint) | Amazon Managed Prometheus Workspace Endpoint | `string` | `""` | 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 |
| [prometheus\_config](#input\_prometheus\_config) | Controls default values such as scrape interval, timeouts and ports globally | object({
global_scrape_interval = string
global_scrape_timeout = string
scrape_sample_limit = number
}) | {
"global_scrape_interval": "60s",
"global_scrape_timeout": "15s",
"scrape_sample_limit": 1000
} | no |
diff --git a/modules/workloads/java/outputs.tf b/modules/workloads/java/outputs.tf
index a82d582..b265ffe 100644
--- a/modules/workloads/java/outputs.tf
+++ b/modules/workloads/java/outputs.tf
@@ -1,6 +1,6 @@
output "grafana_dashboard_urls" {
value = [concat(
- grafana_dashboard.this.*.url,
+ grafana_dashboard.this[*].url,
)]
description = "URLs for dashboards created"
}
diff --git a/modules/workloads/java/variables.tf b/modules/workloads/java/variables.tf
index b3237e9..5c0ab63 100644
--- a/modules/workloads/java/variables.tf
+++ b/modules/workloads/java/variables.tf
@@ -12,7 +12,7 @@ variable "irsa_iam_role_path" {
variable "irsa_iam_permissions_boundary" {
description = "IAM permissions boundary for IRSA roles"
type = string
- default = ""
+ default = null
}
variable "enable_recording_rules" {
@@ -30,7 +30,7 @@ variable "enable_alerting_rules" {
variable "managed_prometheus_workspace_endpoint" {
description = "Amazon Managed Prometheus Workspace Endpoint"
type = string
- default = null
+ default = ""
}
variable "managed_prometheus_workspace_id" {
diff --git a/modules/workloads/nginx/README.md b/modules/workloads/nginx/README.md
index a5732c6..b32d1eb 100644
--- a/modules/workloads/nginx/README.md
+++ b/modules/workloads/nginx/README.md
@@ -51,9 +51,9 @@ It provides the following resources:
| [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 |
| [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\_permissions\_boundary](#input\_irsa\_iam\_permissions\_boundary) | IAM permissions boundary for IRSA roles | `string` | `null` | no |
| [irsa\_iam\_role\_path](#input\_irsa\_iam\_role\_path) | IAM role path for IRSA roles | `string` | `"/"` | no |
-| [managed\_prometheus\_workspace\_endpoint](#input\_managed\_prometheus\_workspace\_endpoint) | Amazon Managed Prometheus Workspace Endpoint | `string` | `null` | no |
+| [managed\_prometheus\_workspace\_endpoint](#input\_managed\_prometheus\_workspace\_endpoint) | Amazon Managed Prometheus Workspace Endpoint | `string` | `""` | 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 |
| [tags](#input\_tags) | Additional tags (e.g. `map('BusinessUnit`,`XYZ`) | `map(string)` | `{}` | no |
diff --git a/modules/workloads/nginx/dashboards.tf b/modules/workloads/nginx/dashboards.tf
index 24ffe6a..872800c 100644
--- a/modules/workloads/nginx/dashboards.tf
+++ b/modules/workloads/nginx/dashboards.tf
@@ -1,5 +1,6 @@
resource "grafana_dashboard" "workloads" {
- count = var.enable_dashboards ? 1 : 0
+ count = var.enable_dashboards ? 1 : 0
+
folder = var.dashboards_folder_id
config_json = file("${path.module}/dashboards/nginx.json")
}
diff --git a/modules/workloads/nginx/outputs.tf b/modules/workloads/nginx/outputs.tf
index a5bac35..61967ac 100644
--- a/modules/workloads/nginx/outputs.tf
+++ b/modules/workloads/nginx/outputs.tf
@@ -1,4 +1,4 @@
output "grafana_dashboard_urls" {
- value = [concat(grafana_dashboard.workloads.*.url)]
+ value = [concat(grafana_dashboard.workloads[*].url)]
description = "URLs for dashboards created"
}
diff --git a/modules/workloads/nginx/variables.tf b/modules/workloads/nginx/variables.tf
index 582cd0c..7926a3e 100644
--- a/modules/workloads/nginx/variables.tf
+++ b/modules/workloads/nginx/variables.tf
@@ -19,13 +19,13 @@ variable "irsa_iam_role_path" {
variable "irsa_iam_permissions_boundary" {
description = "IAM permissions boundary for IRSA roles"
type = string
- default = ""
+ default = null
}
variable "managed_prometheus_workspace_endpoint" {
description = "Amazon Managed Prometheus Workspace Endpoint"
type = string
- default = null
+ default = ""
}
variable "managed_prometheus_workspace_id" {
description = "Amazon Managed Prometheus Workspace ID"
diff --git a/variables.tf b/variables.tf
index 185e716..5ba10fb 100644
--- a/variables.tf
+++ b/variables.tf
@@ -17,7 +17,7 @@ variable "irsa_iam_role_path" {
variable "irsa_iam_permissions_boundary" {
description = "IAM permissions boundary for IRSA roles"
type = string
- default = ""
+ default = null
}
variable "enable_amazon_eks_adot" {