mirror of
https://github.com/storytold/terraform-aws-observability-accelerator.git
synced 2026-10-09 00:09:43 +00:00
Pre-commit fixes (#44)
* Pre-commit fixes * Restrict terraform version to < 1.3.0 * fixup! Restrict terraform version to < 1.3.0 * fixup! Restrict terraform version to < 1.3.0 * Pinned min version to 1.1.0, support for nullable * Update README.md
This commit is contained in:
@@ -41,6 +41,13 @@ jobs:
|
|||||||
matrix:
|
matrix:
|
||||||
directory: ${{ fromJson(needs.collectInputs.outputs.directories) }}
|
directory: ${{ fromJson(needs.collectInputs.outputs.directories) }}
|
||||||
steps:
|
steps:
|
||||||
|
- name: Remove default Terraform
|
||||||
|
run: rm -rf $(which terraform)
|
||||||
|
|
||||||
|
- name: Should fail
|
||||||
|
continue-on-error: true
|
||||||
|
run: terraform version
|
||||||
|
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
@@ -73,27 +80,37 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
directory: ${{ matrix.directory }}
|
directory: ${{ matrix.directory }}
|
||||||
|
|
||||||
- name: Pre-commit Terraform ${{ steps.minMax.outputs.minVersion }}
|
- name: Pre-commit Terraform 1.1.0 #${{ steps.minMax.outputs.minVersion }}
|
||||||
uses: clowdhaus/terraform-composite-actions/pre-commit@v1.6.0
|
uses: clowdhaus/terraform-composite-actions/pre-commit@v1.6.0
|
||||||
# Run only validate pre-commit check on min version supported
|
# Run only validate pre-commit check on min version supported
|
||||||
if: ${{ matrix.directory != '.' && steps.changes.outputs.src== 'true' }}
|
if: ${{ matrix.directory != '.' && steps.changes.outputs.src== 'true' }}
|
||||||
with:
|
with:
|
||||||
terraform-version: ${{ steps.minMax.outputs.minVersion }}
|
terraform-version: 1.1.0 # ${{ steps.minMax.outputs.minVersion }}
|
||||||
args: 'terraform_validate --color=always --show-diff-on-failure --files ${{ matrix.directory }}/*'
|
args: 'terraform_validate --color=always --show-diff-on-failure --files ${{ matrix.directory }}/*'
|
||||||
|
|
||||||
- name: Pre-commit Terraform ${{ steps.minMax.outputs.minVersion }}
|
- name: Pre-commit Terraform 1.1.0 #${{ steps.minMax.outputs.minVersion }}
|
||||||
uses: clowdhaus/terraform-composite-actions/pre-commit@v1.6.0
|
uses: clowdhaus/terraform-composite-actions/pre-commit@v1.6.0
|
||||||
# Run only validate pre-commit check on min version supported
|
# Run only validate pre-commit check on min version supported
|
||||||
if: ${{ matrix.directory == '.' && steps.changes.outputs.src== 'true' }}
|
if: ${{ matrix.directory == '.' && steps.changes.outputs.src== 'true' }}
|
||||||
with:
|
with:
|
||||||
terraform-version: ${{ steps.minMax.outputs.minVersion }}
|
terraform-version: 1.1.0 #${{ steps.minMax.outputs.minVersion }}
|
||||||
args: 'terraform_validate --color=always --show-diff-on-failure --files $(ls *.tf)'
|
args: 'terraform_validate --color=always --show-diff-on-failure --files $(ls *.tf)'
|
||||||
|
|
||||||
|
- if: steps.changes.outputs.src== 'true'
|
||||||
|
run: terraform version
|
||||||
|
|
||||||
preCommitMaxVersion:
|
preCommitMaxVersion:
|
||||||
name: Max TF pre-commit
|
name: Max TF pre-commit
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
needs: collectInputs
|
needs: collectInputs
|
||||||
steps:
|
steps:
|
||||||
|
- name: Remove default Terraform
|
||||||
|
run: rm -rf $(which terraform)
|
||||||
|
|
||||||
|
- name: Should fail
|
||||||
|
continue-on-error: true
|
||||||
|
run: terraform version
|
||||||
|
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
@@ -125,10 +142,14 @@ jobs:
|
|||||||
uses: clowdhaus/terraform-min-max@v1.0.7
|
uses: clowdhaus/terraform-min-max@v1.0.7
|
||||||
if: steps.changes.outputs.src== 'true'
|
if: steps.changes.outputs.src== 'true'
|
||||||
|
|
||||||
- name: Pre-commit Terraform ${{ steps.minMax.outputs.maxVersion }}
|
# TODO - remove hardcoded version once optional attributes are resolved/removed
|
||||||
|
- name: Pre-commit Terraform 1.2.9 # ${{ steps.minMax.outputs.maxVersion }}
|
||||||
uses: clowdhaus/terraform-composite-actions/pre-commit@v1.6.0
|
uses: clowdhaus/terraform-composite-actions/pre-commit@v1.6.0
|
||||||
if: steps.changes.outputs.src== 'true'
|
if: steps.changes.outputs.src== 'true'
|
||||||
with:
|
with:
|
||||||
terraform-version: ${{ steps.minMax.outputs.maxVersion }}
|
terraform-version: 1.2.9 # ${{ steps.minMax.outputs.maxVersion }}
|
||||||
terraform-docs-version: ${{ env.TERRAFORM_DOCS_VERSION }}
|
terraform-docs-version: ${{ env.TERRAFORM_DOCS_VERSION }}
|
||||||
tflint-version: ${{ env.TFLINT_VERSION }}
|
tflint-version: ${{ env.TFLINT_VERSION }}
|
||||||
|
|
||||||
|
- if: steps.changes.outputs.src== 'true'
|
||||||
|
run: terraform version
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
# AWS Observability Accelerator for Terraform
|
# AWS Observability Accelerator for Terraform
|
||||||
|
|
||||||
<!-- [](https://github.com/aws-observability/terraform-aws-observability-accelerator/actions/workflows/pre-commit.yaml)
|
[](https://github.com/aws-observability/terraform-aws-observability-accelerator/actions/workflows/pre-commit.yaml)
|
||||||
-->
|
|
||||||
Welcome to the AWS Observability Accelerator for Terraform!
|
Welcome to the AWS Observability Accelerator for Terraform!
|
||||||
|
|
||||||
The AWS Observability accelerator for Terraform is a set of modules to help you
|
The AWS Observability accelerator for Terraform is a set of modules to help you
|
||||||
@@ -114,7 +114,7 @@ If you are interested in contributing to EKS Blueprints, see the [Contribution g
|
|||||||
|
|
||||||
| Name | Version |
|
| Name | Version |
|
||||||
|------|---------|
|
|------|---------|
|
||||||
| <a name="requirement_terraform"></a> [terraform](#requirement\_terraform) | >= 0.14.0 |
|
| <a name="requirement_terraform"></a> [terraform](#requirement\_terraform) | >= 1.1.0, < 1.3.0 |
|
||||||
| <a name="requirement_aws"></a> [aws](#requirement\_aws) | >= 4.0.0 |
|
| <a name="requirement_aws"></a> [aws](#requirement\_aws) | >= 4.0.0 |
|
||||||
| <a name="requirement_awscc"></a> [awscc](#requirement\_awscc) | >= 0.24.0 |
|
| <a name="requirement_awscc"></a> [awscc](#requirement\_awscc) | >= 0.24.0 |
|
||||||
| <a name="requirement_grafana"></a> [grafana](#requirement\_grafana) | 1.25.0 |
|
| <a name="requirement_grafana"></a> [grafana](#requirement\_grafana) | 1.25.0 |
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
terraform {
|
terraform {
|
||||||
required_version = ">= 1.0.0"
|
required_version = ">= 1.1.0, < 1.3.0"
|
||||||
|
|
||||||
required_providers {
|
required_providers {
|
||||||
aws = {
|
aws = {
|
||||||
|
|||||||
@@ -191,10 +191,9 @@ add this `managed_prometheus_region=xxx` and `managed_prometheus_workspace_id=ws
|
|||||||
|
|
||||||
| Name | Version |
|
| Name | Version |
|
||||||
|------|---------|
|
|------|---------|
|
||||||
| <a name="requirement_terraform"></a> [terraform](#requirement\_terraform) | >= 1.0.0 |
|
| <a name="requirement_terraform"></a> [terraform](#requirement\_terraform) | >= 1.1.0, < 1.3.0 |
|
||||||
| <a name="requirement_aws"></a> [aws](#requirement\_aws) | >= 4.0.0 |
|
| <a name="requirement_aws"></a> [aws](#requirement\_aws) | >= 4.0.0 |
|
||||||
| <a name="requirement_grafana"></a> [grafana](#requirement\_grafana) | >= 1.25.0 |
|
| <a name="requirement_grafana"></a> [grafana](#requirement\_grafana) | >= 1.25.0 |
|
||||||
| <a name="requirement_grafana"></a> [grafana](#requirement\_grafana) | >= 1.25.0 |
|
|
||||||
| <a name="requirement_helm"></a> [helm](#requirement\_helm) | >= 2.4.1 |
|
| <a name="requirement_helm"></a> [helm](#requirement\_helm) | >= 2.4.1 |
|
||||||
| <a name="requirement_kubectl"></a> [kubectl](#requirement\_kubectl) | >= 1.14 |
|
| <a name="requirement_kubectl"></a> [kubectl](#requirement\_kubectl) | >= 1.14 |
|
||||||
| <a name="requirement_kubernetes"></a> [kubernetes](#requirement\_kubernetes) | >= 2.10 |
|
| <a name="requirement_kubernetes"></a> [kubernetes](#requirement\_kubernetes) | >= 2.10 |
|
||||||
@@ -224,10 +223,10 @@ add this `managed_prometheus_region=xxx` and `managed_prometheus_workspace_id=ws
|
|||||||
| Name | Description | Type | Default | Required |
|
| Name | Description | Type | Default | Required |
|
||||||
|------|-------------|------|---------|:--------:|
|
|------|-------------|------|---------|:--------:|
|
||||||
| <a name="input_aws_region"></a> [aws\_region](#input\_aws\_region) | AWS Region | `string` | n/a | yes |
|
| <a name="input_aws_region"></a> [aws\_region](#input\_aws\_region) | AWS Region | `string` | n/a | yes |
|
||||||
| <a name="input_eks_cluster_id"></a> [eks\_cluster\_id](#input\_eks\_cluster\_id) | Name of the EKS cluster | `string` | n/a | yes |
|
| <a name="input_eks_cluster_id"></a> [eks\_cluster\_id](#input\_eks\_cluster\_id) | EKS Cluster Id | `string` | n/a | yes |
|
||||||
| <a name="input_grafana_api_key"></a> [grafana\_api\_key](#input\_grafana\_api\_key) | API key for authorizing the Grafana provider to make changes to Amazon Managed Grafana | `string` | `""` | no |
|
| <a name="input_grafana_api_key"></a> [grafana\_api\_key](#input\_grafana\_api\_key) | API key for authorizing the Grafana provider to make changes to Amazon Managed Grafana | `string` | `""` | no |
|
||||||
| <a name="input_managed_grafana_workspace_id"></a> [managed\_grafana\_workspace\_id](#input\_managed\_grafana\_workspace\_id) | Amazon Managed Grafana Workspace ID | `string` | `""` | no |
|
| <a name="input_managed_grafana_workspace_id"></a> [managed\_grafana\_workspace\_id](#input\_managed\_grafana\_workspace\_id) | Amazon Managed Grafana (AMG) workspace ID | `string` | `""` | no |
|
||||||
| <a name="input_managed_prometheus_workspace_id"></a> [managed\_prometheus\_workspace\_id](#input\_managed\_prometheus\_workspace\_id) | Amazon Managed Service for Prometheus Workspace ID | `string` | `""` | no |
|
| <a name="input_managed_prometheus_workspace_id"></a> [managed\_prometheus\_workspace\_id](#input\_managed\_prometheus\_workspace\_id) | Amazon Managed Service for Prometheus (AMP) workspace ID | `string` | `""` | no |
|
||||||
|
|
||||||
## Outputs
|
## Outputs
|
||||||
|
|
||||||
|
|||||||
@@ -24,23 +24,10 @@ provider "helm" {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
terraform {
|
|
||||||
required_providers {
|
|
||||||
grafana = {
|
|
||||||
source = "grafana/grafana"
|
|
||||||
version = ">= 1.25.0"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
locals {
|
locals {
|
||||||
name = basename(path.cwd)
|
|
||||||
region = var.aws_region
|
region = var.aws_region
|
||||||
|
|
||||||
eks_oidc_issuer_url = replace(data.aws_eks_cluster.this.identity[0].oidc[0].issuer, "https://", "")
|
|
||||||
eks_cluster_endpoint = data.aws_eks_cluster.this.endpoint
|
eks_cluster_endpoint = data.aws_eks_cluster.this.endpoint
|
||||||
eks_cluster_version = data.aws_eks_cluster.this.version
|
|
||||||
|
|
||||||
create_new_workspace = var.managed_prometheus_workspace_id == "" ? true : false
|
create_new_workspace = var.managed_prometheus_workspace_id == "" ? true : false
|
||||||
|
|
||||||
tags = {
|
tags = {
|
||||||
@@ -84,7 +71,6 @@ provider "grafana" {
|
|||||||
auth = var.grafana_api_key
|
auth = var.grafana_api_key
|
||||||
}
|
}
|
||||||
|
|
||||||
//*
|
|
||||||
module "workloads_nginx" {
|
module "workloads_nginx" {
|
||||||
source = "../../modules/workloads/nginx"
|
source = "../../modules/workloads/nginx"
|
||||||
|
|
||||||
@@ -102,4 +88,3 @@ module "workloads_nginx" {
|
|||||||
module.eks_observability_accelerator
|
module.eks_observability_accelerator
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
//*/
|
|
||||||
|
|||||||
@@ -21,4 +21,4 @@ output "managed_prometheus_workspace_endpoint" {
|
|||||||
output "managed_prometheus_workspace_id" {
|
output "managed_prometheus_workspace_id" {
|
||||||
description = "Amazon Managed Prometheus workspace ID"
|
description = "Amazon Managed Prometheus workspace ID"
|
||||||
value = module.eks_observability_accelerator.managed_prometheus_workspace_id
|
value = module.eks_observability_accelerator.managed_prometheus_workspace_id
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,29 +11,14 @@ variable "managed_prometheus_workspace_id" {
|
|||||||
type = string
|
type = string
|
||||||
default = ""
|
default = ""
|
||||||
}
|
}
|
||||||
variable "managed_prometheus_endpoint" {
|
|
||||||
description = "AMP workspace ID"
|
|
||||||
type = string
|
|
||||||
default = ""
|
|
||||||
}
|
|
||||||
variable "managed_prometheus_region" {
|
|
||||||
description = "Region where AMP is deployed"
|
|
||||||
type = string
|
|
||||||
default = ""
|
|
||||||
}
|
|
||||||
variable "managed_grafana_workspace_id" {
|
variable "managed_grafana_workspace_id" {
|
||||||
description = "Amazon Managed Grafana (AMG) workspace ID"
|
description = "Amazon Managed Grafana (AMG) workspace ID"
|
||||||
type = string
|
type = string
|
||||||
default = ""
|
default = ""
|
||||||
}
|
}
|
||||||
variable "grafana_endpoint" {
|
|
||||||
description = "AMG endpoint"
|
|
||||||
type = string
|
|
||||||
default = null
|
|
||||||
}
|
|
||||||
variable "grafana_api_key" {
|
variable "grafana_api_key" {
|
||||||
description = "API key for authorizing the Grafana provider to make changes to Amazon Managed Grafana"
|
description = "API key for authorizing the Grafana provider to make changes to Amazon Managed Grafana"
|
||||||
type = string
|
type = string
|
||||||
default = ""
|
default = ""
|
||||||
sensitive = true
|
sensitive = true
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,34 @@
|
|||||||
|
terraform {
|
||||||
|
required_version = ">= 1.1.0, < 1.3.0"
|
||||||
|
|
||||||
|
required_providers {
|
||||||
|
aws = {
|
||||||
|
source = "hashicorp/aws"
|
||||||
|
version = ">= 4.0.0"
|
||||||
|
}
|
||||||
|
kubernetes = {
|
||||||
|
source = "hashicorp/kubernetes"
|
||||||
|
version = ">= 2.10"
|
||||||
|
}
|
||||||
|
kubectl = {
|
||||||
|
source = "gavinbunney/kubectl"
|
||||||
|
version = ">= 1.14"
|
||||||
|
}
|
||||||
|
helm = {
|
||||||
|
source = "hashicorp/helm"
|
||||||
|
version = ">= 2.4.1"
|
||||||
|
}
|
||||||
|
grafana = {
|
||||||
|
source = "grafana/grafana"
|
||||||
|
version = ">= 1.25.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# ## Used for end-to-end testing on project; update to suit your needs
|
||||||
|
# backend "s3" {
|
||||||
|
# bucket = "observability-accelerator-terraform-states"
|
||||||
|
# region = "us-west-2"
|
||||||
|
# key = "e2e/existing-cluster-with-base-and-infra/terraform.tfstate"
|
||||||
|
# }
|
||||||
|
|
||||||
|
}
|
||||||
@@ -136,7 +136,7 @@ terraform destroy -var-file=terraform.tfvars
|
|||||||
|
|
||||||
| Name | Version |
|
| Name | Version |
|
||||||
|------|---------|
|
|------|---------|
|
||||||
| <a name="requirement_terraform"></a> [terraform](#requirement\_terraform) | >= 1.0.0 |
|
| <a name="requirement_terraform"></a> [terraform](#requirement\_terraform) | >= 1.1.0, < 1.3.0 |
|
||||||
| <a name="requirement_aws"></a> [aws](#requirement\_aws) | >= 4.0.0 |
|
| <a name="requirement_aws"></a> [aws](#requirement\_aws) | >= 4.0.0 |
|
||||||
| <a name="requirement_grafana"></a> [grafana](#requirement\_grafana) | >= 1.25.0 |
|
| <a name="requirement_grafana"></a> [grafana](#requirement\_grafana) | >= 1.25.0 |
|
||||||
| <a name="requirement_helm"></a> [helm](#requirement\_helm) | >= 2.4.1 |
|
| <a name="requirement_helm"></a> [helm](#requirement\_helm) | >= 2.4.1 |
|
||||||
|
|||||||
@@ -86,7 +86,7 @@ module "workloads_infra" {
|
|||||||
managed_prometheus_workspace_region = module.eks_observability_accelerator.managed_prometheus_workspace_region
|
managed_prometheus_workspace_region = module.eks_observability_accelerator.managed_prometheus_workspace_region
|
||||||
|
|
||||||
tags = local.tags
|
tags = local.tags
|
||||||
|
|
||||||
depends_on = [
|
depends_on = [
|
||||||
module.eks_observability_accelerator
|
module.eks_observability_accelerator
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
terraform {
|
terraform {
|
||||||
required_version = ">= 1.0.0"
|
required_version = ">= 1.1.0, < 1.3.0"
|
||||||
|
|
||||||
required_providers {
|
required_providers {
|
||||||
aws = {
|
aws = {
|
||||||
source = "hashicorp/aws"
|
source = "hashicorp/aws"
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ the ADOT Operator.
|
|||||||
|
|
||||||
| Name | Version |
|
| Name | Version |
|
||||||
|------|---------|
|
|------|---------|
|
||||||
| <a name="requirement_terraform"></a> [terraform](#requirement\_terraform) | >= 1.0.0 |
|
| <a name="requirement_terraform"></a> [terraform](#requirement\_terraform) | >= 1.1.0, < 1.3.0 |
|
||||||
| <a name="requirement_aws"></a> [aws](#requirement\_aws) | >= 3.72 |
|
| <a name="requirement_aws"></a> [aws](#requirement\_aws) | >= 3.72 |
|
||||||
| <a name="requirement_kubernetes"></a> [kubernetes](#requirement\_kubernetes) | >= 2.10 |
|
| <a name="requirement_kubernetes"></a> [kubernetes](#requirement\_kubernetes) | >= 2.10 |
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
terraform {
|
terraform {
|
||||||
required_version = ">= 1.0.0"
|
required_version = ">= 1.1.0, < 1.3.0"
|
||||||
|
|
||||||
required_providers {
|
required_providers {
|
||||||
aws = {
|
aws = {
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ This module is inspired from the open source [kube-prometheus-stack](https://git
|
|||||||
|
|
||||||
| Name | Version |
|
| Name | Version |
|
||||||
|------|---------|
|
|------|---------|
|
||||||
| <a name="requirement_terraform"></a> [terraform](#requirement\_terraform) | >= 1.0.0 |
|
| <a name="requirement_terraform"></a> [terraform](#requirement\_terraform) | >= 1.1.0, < 1.3.0 |
|
||||||
| <a name="requirement_aws"></a> [aws](#requirement\_aws) | >= 4.0.0 |
|
| <a name="requirement_aws"></a> [aws](#requirement\_aws) | >= 4.0.0 |
|
||||||
| <a name="requirement_grafana"></a> [grafana](#requirement\_grafana) | >= 1.25.0 |
|
| <a name="requirement_grafana"></a> [grafana](#requirement\_grafana) | >= 1.25.0 |
|
||||||
| <a name="requirement_helm"></a> [helm](#requirement\_helm) | >= 2.4.1 |
|
| <a name="requirement_helm"></a> [helm](#requirement\_helm) | >= 2.4.1 |
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
terraform {
|
terraform {
|
||||||
required_version = ">= 1.0.0"
|
required_version = ">= 1.1.0, < 1.3.0"
|
||||||
|
|
||||||
required_providers {
|
required_providers {
|
||||||
aws = {
|
aws = {
|
||||||
source = "hashicorp/aws"
|
source = "hashicorp/aws"
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ This module provides monitoring for Java based workloads with the following reso
|
|||||||
|
|
||||||
| Name | Version |
|
| Name | Version |
|
||||||
|------|---------|
|
|------|---------|
|
||||||
| <a name="requirement_terraform"></a> [terraform](#requirement\_terraform) | >= 1.0.0 |
|
| <a name="requirement_terraform"></a> [terraform](#requirement\_terraform) | >= 1.1.0, < 1.3.0 |
|
||||||
| <a name="requirement_aws"></a> [aws](#requirement\_aws) | >= 4.0.0 |
|
| <a name="requirement_aws"></a> [aws](#requirement\_aws) | >= 4.0.0 |
|
||||||
| <a name="requirement_grafana"></a> [grafana](#requirement\_grafana) | >= 1.25.0 |
|
| <a name="requirement_grafana"></a> [grafana](#requirement\_grafana) | >= 1.25.0 |
|
||||||
| <a name="requirement_helm"></a> [helm](#requirement\_helm) | >= 2.4.1 |
|
| <a name="requirement_helm"></a> [helm](#requirement\_helm) | >= 2.4.1 |
|
||||||
@@ -29,7 +29,7 @@ This module provides monitoring for Java based workloads with the following reso
|
|||||||
|
|
||||||
| Name | Source | Version |
|
| Name | Source | Version |
|
||||||
|------|--------|---------|
|
|------|--------|---------|
|
||||||
| <a name="module_helm_addon"></a> [helm\_addon](#module\_helm\_addon) | github.com/aws-ia/terraform-aws-eks-blueprints/modules/kubernetes-addons/helm-addon | n/a |
|
| <a name="module_helm_addon"></a> [helm\_addon](#module\_helm\_addon) | github.com/aws-ia/terraform-aws-eks-blueprints//modules/kubernetes-addons/helm-addon | v4.8.1 |
|
||||||
|
|
||||||
## Resources
|
## Resources
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ data "aws_partition" "current" {}
|
|||||||
|
|
||||||
# deploys collector
|
# deploys collector
|
||||||
module "helm_addon" {
|
module "helm_addon" {
|
||||||
source = "github.com/aws-ia/terraform-aws-eks-blueprints/modules/kubernetes-addons/helm-addon"
|
source = "github.com/aws-ia/terraform-aws-eks-blueprints//modules/kubernetes-addons/helm-addon?ref=v4.8.1"
|
||||||
|
|
||||||
|
|
||||||
helm_config = merge(
|
helm_config = merge(
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
terraform {
|
terraform {
|
||||||
required_version = ">= 1.0.0"
|
required_version = ">= 1.1.0, < 1.3.0"
|
||||||
|
|
||||||
required_providers {
|
required_providers {
|
||||||
aws = {
|
aws = {
|
||||||
source = "hashicorp/aws"
|
source = "hashicorp/aws"
|
||||||
|
|||||||
@@ -12,8 +12,9 @@ It provides the following resources:
|
|||||||
|
|
||||||
| Name | Version |
|
| Name | Version |
|
||||||
|------|---------|
|
|------|---------|
|
||||||
| <a name="requirement_terraform"></a> [terraform](#requirement\_terraform) | >= 1.0.0 |
|
| <a name="requirement_terraform"></a> [terraform](#requirement\_terraform) | >= 1.1.0, < 1.3.0 |
|
||||||
| <a name="requirement_aws"></a> [aws](#requirement\_aws) | >= 4.0.0 |
|
| <a name="requirement_aws"></a> [aws](#requirement\_aws) | >= 4.0.0 |
|
||||||
|
| <a name="requirement_grafana"></a> [grafana](#requirement\_grafana) | >= 1.25.0 |
|
||||||
| <a name="requirement_kubernetes"></a> [kubernetes](#requirement\_kubernetes) | >= 2.10 |
|
| <a name="requirement_kubernetes"></a> [kubernetes](#requirement\_kubernetes) | >= 2.10 |
|
||||||
|
|
||||||
## Providers
|
## Providers
|
||||||
@@ -21,27 +22,41 @@ It provides the following resources:
|
|||||||
| Name | Version |
|
| Name | Version |
|
||||||
|------|---------|
|
|------|---------|
|
||||||
| <a name="provider_aws"></a> [aws](#provider\_aws) | >= 4.0.0 |
|
| <a name="provider_aws"></a> [aws](#provider\_aws) | >= 4.0.0 |
|
||||||
|
| <a name="provider_grafana"></a> [grafana](#provider\_grafana) | >= 1.25.0 |
|
||||||
|
|
||||||
## Modules
|
## Modules
|
||||||
|
|
||||||
| Name | Source | Version |
|
| Name | Source | Version |
|
||||||
|------|--------|---------|
|
|------|--------|---------|
|
||||||
| <a name="module_helm_addon"></a> [helm\_addon](#module\_helm\_addon) | github.com/aws-ia/terraform-aws-eks-blueprints/modules/kubernetes-addons/helm-addon | n/a |
|
| <a name="module_helm_addon"></a> [helm\_addon](#module\_helm\_addon) | github.com/aws-ia/terraform-aws-eks-blueprints//modules/kubernetes-addons/helm-addon | v4.9.0 |
|
||||||
|
|
||||||
## Resources
|
## Resources
|
||||||
|
|
||||||
| Name | Type |
|
| Name | Type |
|
||||||
|------|------|
|
|------|------|
|
||||||
|
| [aws_prometheus_rule_group_namespace.alerting_rules](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/prometheus_rule_group_namespace) | resource |
|
||||||
|
| [grafana_dashboard.workloads](https://registry.terraform.io/providers/grafana/grafana/latest/docs/resources/dashboard) | resource |
|
||||||
|
| [aws_caller_identity.current](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/caller_identity) | data source |
|
||||||
|
| [aws_eks_cluster.eks_cluster](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/eks_cluster) | data source |
|
||||||
| [aws_partition.current](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/partition) | data source |
|
| [aws_partition.current](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/partition) | data source |
|
||||||
|
| [aws_region.current](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/region) | data source |
|
||||||
|
|
||||||
## Inputs
|
## Inputs
|
||||||
|
|
||||||
| Name | Description | Type | Default | Required |
|
| Name | Description | Type | Default | Required |
|
||||||
|------|-------------|------|---------|:--------:|
|
|------|-------------|------|---------|:--------:|
|
||||||
| <a name="input_addon_context"></a> [addon\_context](#input\_addon\_context) | Input configuration for the addon | <pre>object({<br> aws_caller_identity_account_id = string<br> aws_caller_identity_arn = string<br> aws_eks_cluster_endpoint = string<br> aws_partition_id = string<br> aws_region_name = string<br> eks_cluster_id = string<br> eks_oidc_issuer_url = string<br> eks_oidc_provider_arn = string<br> irsa_iam_permissions_boundary = string<br> irsa_iam_role_path = string<br> tags = map(string)<br> })</pre> | n/a | yes |
|
| <a name="input_config"></a> [config](#input\_config) | Helm Config for Prometheus | `any` | `{}` | no |
|
||||||
| <a name="input_amazon_prometheus_workspace_endpoint"></a> [amazon\_prometheus\_workspace\_endpoint](#input\_amazon\_prometheus\_workspace\_endpoint) | Amazon Managed Prometheus Workspace Endpoint | `string` | `null` | no |
|
| <a name="input_dashboards_folder_id"></a> [dashboards\_folder\_id](#input\_dashboards\_folder\_id) | Grafana folder ID for automatic dashboards | `string` | n/a | yes |
|
||||||
| <a name="input_amazon_prometheus_workspace_region"></a> [amazon\_prometheus\_workspace\_region](#input\_amazon\_prometheus\_workspace\_region) | Amazon Managed Prometheus Workspace's Region | `string` | `null` | no |
|
| <a name="input_eks_cluster_id"></a> [eks\_cluster\_id](#input\_eks\_cluster\_id) | EKS Cluster Id | `string` | n/a | yes |
|
||||||
|
| <a name="input_enable_alerting_rules"></a> [enable\_alerting\_rules](#input\_enable\_alerting\_rules) | Enables or disables Managed Prometheus alerting rules | `bool` | `true` | no |
|
||||||
|
| <a name="input_enable_dashboards"></a> [enable\_dashboards](#input\_enable\_dashboards) | Enables or disables curated dashboards | `bool` | `true` | no |
|
||||||
| <a name="input_helm_config"></a> [helm\_config](#input\_helm\_config) | Helm Config for Prometheus | `any` | `{}` | no |
|
| <a name="input_helm_config"></a> [helm\_config](#input\_helm\_config) | Helm Config for Prometheus | `any` | `{}` | no |
|
||||||
|
| <a name="input_irsa_iam_permissions_boundary"></a> [irsa\_iam\_permissions\_boundary](#input\_irsa\_iam\_permissions\_boundary) | IAM permissions boundary for IRSA roles | `string` | `""` | no |
|
||||||
|
| <a name="input_irsa_iam_role_path"></a> [irsa\_iam\_role\_path](#input\_irsa\_iam\_role\_path) | IAM role path for IRSA roles | `string` | `"/"` | no |
|
||||||
|
| <a name="input_managed_prometheus_workspace_endpoint"></a> [managed\_prometheus\_workspace\_endpoint](#input\_managed\_prometheus\_workspace\_endpoint) | Amazon Managed Prometheus Workspace Endpoint | `string` | `null` | no |
|
||||||
|
| <a name="input_managed_prometheus_workspace_id"></a> [managed\_prometheus\_workspace\_id](#input\_managed\_prometheus\_workspace\_id) | Amazon Managed Prometheus Workspace ID | `string` | `null` | no |
|
||||||
|
| <a name="input_managed_prometheus_workspace_region"></a> [managed\_prometheus\_workspace\_region](#input\_managed\_prometheus\_workspace\_region) | Amazon Managed Prometheus Workspace's Region | `string` | `null` | no |
|
||||||
|
| <a name="input_tags"></a> [tags](#input\_tags) | Additional tags (e.g. `map('BusinessUnit`,`XYZ`) | `map(string)` | `{}` | no |
|
||||||
|
|
||||||
## Outputs
|
## Outputs
|
||||||
|
|
||||||
|
|||||||
@@ -2,4 +2,4 @@ resource "grafana_dashboard" "workloads" {
|
|||||||
count = var.enable_dashboards ? 1 : 0
|
count = var.enable_dashboards ? 1 : 0
|
||||||
folder = var.dashboards_folder_id
|
folder = var.dashboards_folder_id
|
||||||
config_json = file("${path.module}/dashboards/nginx.json")
|
config_json = file("${path.module}/dashboards/nginx.json")
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1439,4 +1439,4 @@
|
|||||||
"uid": "nginx",
|
"uid": "nginx",
|
||||||
"version": 5,
|
"version": 5,
|
||||||
"weekStart": ""
|
"weekStart": ""
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
module "helm_addon" {
|
module "helm_addon" {
|
||||||
source = "github.com/aws-ia/terraform-aws-eks-blueprints/modules/kubernetes-addons/helm-addon"
|
source = "github.com/aws-ia/terraform-aws-eks-blueprints//modules/kubernetes-addons/helm-addon?ref=v4.9.0"
|
||||||
|
|
||||||
helm_config = merge(
|
helm_config = merge(
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,12 +1,11 @@
|
|||||||
# Prioritize recording rules over alerting rules for limits (10)
|
|
||||||
|
|
||||||
################################################################################################################################################
|
################################################################################################################################################
|
||||||
# Recording rules ##############################################################################################################################
|
# Alerting rules ###############################################################################################################################
|
||||||
################################################################################################################################################
|
################################################################################################################################################
|
||||||
|
|
||||||
resource "aws_prometheus_rule_group_namespace" "recording_rules" {
|
resource "aws_prometheus_rule_group_namespace" "alerting_rules" {
|
||||||
count = var.enable_recording_rules ? 1 : 0
|
count = var.enable_alerting_rules ? 1 : 0
|
||||||
name = "acclerator-nginx-rules"
|
|
||||||
|
name = "accelerator-nginx-alerting"
|
||||||
workspace_id = var.managed_prometheus_workspace_id
|
workspace_id = var.managed_prometheus_workspace_id
|
||||||
data = <<EOF
|
data = <<EOF
|
||||||
groups:
|
groups:
|
||||||
@@ -41,4 +40,4 @@ groups:
|
|||||||
summary: Nginx latency high (instance {{ $labels.instance }})
|
summary: Nginx latency high (instance {{ $labels.instance }})
|
||||||
description: "Nginx p99 latency is higher than 3 seconds\n VALUE = {{ $value }}\n LABELS = {{ $labels }}"
|
description: "Nginx p99 latency is higher than 3 seconds\n VALUE = {{ $value }}\n LABELS = {{ $labels }}"
|
||||||
EOF
|
EOF
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -40,83 +40,26 @@ variable "managed_prometheus_workspace_region" {
|
|||||||
}
|
}
|
||||||
|
|
||||||
variable "dashboards_folder_id" {
|
variable "dashboards_folder_id" {
|
||||||
type = string
|
type = string
|
||||||
}
|
description = "Grafana folder ID for automatic dashboards"
|
||||||
|
|
||||||
variable "enable_recording_rules" {
|
|
||||||
type = bool
|
|
||||||
default = true
|
|
||||||
}
|
}
|
||||||
|
|
||||||
variable "enable_alerting_rules" {
|
variable "enable_alerting_rules" {
|
||||||
type = bool
|
type = bool
|
||||||
default = true
|
default = true
|
||||||
|
description = "Enables or disables Managed Prometheus alerting rules"
|
||||||
}
|
}
|
||||||
|
|
||||||
variable "enable_dashboards" {
|
variable "enable_dashboards" {
|
||||||
type = bool
|
type = bool
|
||||||
default = true
|
description = "Enables or disables curated dashboards"
|
||||||
}
|
default = true
|
||||||
|
|
||||||
variable "enable_kube_state_metrics" {
|
|
||||||
type = bool
|
|
||||||
default = true
|
|
||||||
}
|
|
||||||
|
|
||||||
variable "enable_node_exporter" {
|
|
||||||
type = bool
|
|
||||||
default = true
|
|
||||||
}
|
}
|
||||||
|
|
||||||
variable "config" {
|
variable "config" {
|
||||||
type = object({
|
description = "Helm Config for Prometheus"
|
||||||
helm_config = map(any)
|
type = any
|
||||||
|
default = {}
|
||||||
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)
|
|
||||||
|
|
||||||
})
|
|
||||||
|
|
||||||
default = {
|
|
||||||
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_k8s_namespace = "prometheus-node-exporter"
|
|
||||||
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 = {}
|
|
||||||
}
|
|
||||||
nullable = false
|
|
||||||
}
|
}
|
||||||
|
|
||||||
variable "tags" {
|
variable "tags" {
|
||||||
@@ -124,5 +67,3 @@ variable "tags" {
|
|||||||
type = map(string)
|
type = map(string)
|
||||||
default = {}
|
default = {}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
terraform {
|
terraform {
|
||||||
required_version = ">= 1.0.0"
|
required_version = ">= 1.1.0, < 1.3.0"
|
||||||
|
|
||||||
required_providers {
|
required_providers {
|
||||||
aws = {
|
aws = {
|
||||||
|
|||||||
+2
-1
@@ -1,5 +1,6 @@
|
|||||||
terraform {
|
terraform {
|
||||||
required_version = ">= 0.14.0"
|
required_version = ">= 1.1.0, < 1.3.0"
|
||||||
|
|
||||||
required_providers {
|
required_providers {
|
||||||
aws = {
|
aws = {
|
||||||
source = "hashicorp/aws"
|
source = "hashicorp/aws"
|
||||||
|
|||||||
Reference in New Issue
Block a user