🔎 Add AMP workspace (only)

This commit is contained in:
Rodrigue Koffi
2022-07-27 18:26:02 +02:00
parent b6c0d65455
commit c7a5b2c9e9
8 changed files with 87 additions and 14 deletions
+2 -1
View File
@@ -93,4 +93,5 @@ No outputs.
1. fetching EKS auth as config map? and pass to module (version, etc) as object?
2. automatically pass config option as objects? (aws adot add-on: enable cert-manager, cert-manager version?)
3. Test case for every option possible?
3. Test case for every option possible?
4. Need data source for AMP - https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/prometheus_workspace, Bryant's module doesn't seem to support splitting usage (eg. using multiple alerting rules ONLY)
+9
View File
@@ -11,3 +11,12 @@ output "aws_region" {
output "eks_cluster_version" {
value = module.eks_observability_accelerator.eks_cluster_version
}
output "prometheus_endpoint" {
value = module.eks_observability_accelerator.prometheus_endpoint
}
output "prometheus_id" {
value = module.eks_observability_accelerator.prometheus_id
}
+2 -4
View File
@@ -17,10 +17,8 @@ module "eks_observability_accelerator" {
# enable_open_telemetry_operator = true
# open_telemetry_operator_config = map() // custom config
# # deploy selected workloads by count indexing
# # this creates a new AMP workspace
# create_managed_prometheus_workspace = true
# creates a new AMP workspace, defaults to true
create_managed_prometheus_workspace = true
# enable_haproxy = true
# haproxy_config = {
+2 -3
View File
@@ -9,9 +9,6 @@ data "aws_eks_cluster" "eks_cluster" {
}
locals {
# eks_oidc_issuer_url = var.eks_oidc_provider != null ? var.eks_oidc_provider : replace(data.aws_eks_cluster.eks_cluster.identity[0].oidc[0].issuer, "https://", "")
# eks_cluster_endpoint = var.eks_cluster_endpoint != null ? var.eks_cluster_endpoint : data.aws_eks_cluster.eks_cluster.endpoint
# eks_cluster_version = var.eks_cluster_version != null ? var.eks_cluster_version : data.aws_eks_cluster.eks_cluster.version
eks_oidc_issuer_url = replace(data.aws_eks_cluster.eks_cluster.identity[0].oidc[0].issuer, "https://", "")
eks_cluster_endpoint = data.aws_eks_cluster.eks_cluster.endpoint
eks_cluster_version = data.aws_eks_cluster.eks_cluster.version
@@ -29,4 +26,6 @@ locals {
irsa_iam_role_path = var.irsa_iam_role_path
irsa_iam_permissions_boundary = var.irsa_iam_permissions_boundary
}
name = "aws-observability-accelerator"
}
+25 -5
View File
@@ -3,19 +3,39 @@
# VPC and supporting resources
# EKS and Managed node groups
#
//*
module "adot_operator" {
# locals {
# # if both adot and otel are enabled, just deploys adot
# enable_otel = (var.enable_amazon_eks_adot && var.enable_opentelemetry_operator) ? false : var.enable_opentelemetry_operator
# # if both adot and otel are disabled, just deploys adot
# enable_adot = (!var.enable_amazon_eks_adot && !var.enable_opentelemetry_operator) ? true : var.enable_amazon_eks_adot
# #possible side effects? maybe customer wants only dashboards?
# }
module "operator" {
source = "./modules/core/opentelemetry-operator"
count = var.enable_amazon_eks_adot ? 1 : 0
enable_cert_manager = var.enable_cert_manager
enable_amazon_eks_adot = var.enable_amazon_eks_adot
enable_opentelemetry_operator = var.enable_opentelemetry_operator
kubernetes_version = local.eks_cluster_version
addon_context = local.context
}
//*/
module "java" {
source = "./modules/workloads/java"
amp_endpoint = var.create_managed_prometheus_workspace ? aws_prometheus_workspace.this[0].prometheus_endpoint : var.managed_prometheus_endpoint
amp_id = var.create_managed_prometheus_workspace ? aws_prometheus_workspace.this[0].id : var.managed_prometheus_id
}
resource "aws_prometheus_workspace" "this" {
count = var.create_managed_prometheus_workspace ? 1 : 0
alias = local.name
tags = var.tags
}
+16
View File
@@ -0,0 +1,16 @@
variable "java" {
default = {
a = ""
b = ""
}
}
variable "amp_endpoint" {
description = "Managed Prometheus endpoint"
type = string
}
variable "amp_id" {
description = "Managed Prometheus workspace id"
type = string
}
+8 -1
View File
@@ -8,7 +8,14 @@ output "aws_region" {
value = var.aws_region
}
output "eks_cluster_version" {
value = data.aws_eks_cluster.eks_cluster.version
}
output "prometheus_endpoint" {
value = [aws_prometheus_workspace.this.*.prometheus_endpoint]
}
output "prometheus_id" {
value = [aws_prometheus_workspace.this.*.id]
}
+23
View File
@@ -39,6 +39,29 @@ variable "enable_cert_manager" {
default = true
}
variable "enable_opentelemetry_operator" {
type = bool
default = false
}
variable "create_managed_prometheus_workspace" {
type = bool
default = true
}
variable "managed_prometheus_id" {
description = "AWS Managed Prometheus Workspace ID"
type = string
default = ""
}
variable "managed_prometheus_endpoint" {
description = "AWS Managed Prometheus Workspace endpoint"
type = string
default = ""
}
variable "tags" {
description = "Additional tags (e.g. `map('BusinessUnit`,`XYZ`)"
type = map(string)