mirror of
https://github.com/storytold/terraform-aws-observability-accelerator.git
synced 2026-10-09 00:09:43 +00:00
🔎 Add AMP workspace (only)
This commit is contained in:
@@ -94,3 +94,4 @@ 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?
|
||||
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)
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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 = {
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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
@@ -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]
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user