Split core and workloads modules

This commit is contained in:
Rodrigue Koffi
2022-08-09 12:35:14 +02:00
parent cd827f6fb9
commit 5b5d5e7dd1
59 changed files with 119 additions and 191 deletions
-24
View File
@@ -1,24 +0,0 @@
#---------------------------------------------------------------
# EKS Blueprints
#---------------------------------------------------------------
module "eks_blueprints" {
source = "../../.."
cluster_name = local.name
cluster_version = "1.22"
vpc_id = module.vpc.vpc_id
private_subnet_ids = module.vpc.private_subnets
managed_node_groups = {
t3_l = {
node_group_name = "managed-ondemand"
instance_types = ["t3.large"]
min_size = 2
subnet_ids = module.vpc.private_subnets
}
}
tags = local.tags
}
@@ -0,0 +1,92 @@
provider "aws" {
region = local.region
}
data "aws_eks_cluster_auth" "this" {
name = var.eks_cluster_id
}
data "aws_eks_cluster" "this" {
name = var.eks_cluster_id
}
provider "kubernetes" {
host = local.eks_cluster_endpoint
cluster_ca_certificate = base64decode(data.aws_eks_cluster.this.certificate_authority[0].data)
token = data.aws_eks_cluster_auth.this.token
}
provider "helm" {
kubernetes {
host = local.eks_cluster_endpoint
cluster_ca_certificate = base64decode(data.aws_eks_cluster.this.certificate_authority[0].data)
token = data.aws_eks_cluster_auth.this.token
}
}
terraform {
required_providers {
grafana = {
source = "grafana/grafana"
version = "1.24.0"
}
}
}
locals {
name = basename(path.cwd)
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_version = data.aws_eks_cluster.this.version
tags = {
Source = "github.com/aws-ia/terraform-aws-observability-accelerator"
}
}
# deploys the base module
module "eks_observability_accelerator" {
# source = "aws-ia/terrarom-aws-observability-accelerator?ref=dev"
source = "../../"
aws_region = var.aws_region
eks_cluster_id = var.eks_cluster_id
# deploys AWS Distro for OpenTelemetry operator into the cluster
enable_amazon_eks_adot = true
# reusing existing certificate manager? defaults to true
enable_cert_manager = true
# # -- or enable opentelemetry operator
enable_opentelemetry_operator = false
#open_telemetry_operator_config = map() // custom config
# creates a new AMP workspace, defaults to true
enable_managed_prometheus = false
# reusing existing AMP -- needs data source for alerting rules
managed_prometheus_id = var.managed_prometheus_workspace_id
managed_prometheus_region = null # defaults to the current region, useful for cross region scenarios (same account)
# sets up the AMP alert manager at the workspace level
enable_alertmanager = true
# create a new Grafana workspace - TODO review design
enable_managed_grafana = false
managed_grafana_workspace_id = var.managed_grafana_workspace_id
grafana_api_key = var.grafana_api_key
tags = local.tags
}
module "workloads_infra" {
source = "../../workloads/infra"
# source = "aws-ia/terrarom-aws-observability-accelerator/workloads/infra?ref=dev"
enable_infra_metrics = true
# infra_metrics_config = {}
}
-47
View File
@@ -1,47 +0,0 @@
provider "aws" {
region = local.region
}
data "aws_eks_cluster_auth" "this" {
name = var.eks_cluster_id
}
data "aws_eks_cluster" "this" {
name = var.eks_cluster_id
}
provider "kubernetes" {
host = local.eks_cluster_endpoint
cluster_ca_certificate = base64decode(data.aws_eks_cluster.this.certificate_authority[0].data)
token = data.aws_eks_cluster_auth.this.token
}
provider "helm" {
kubernetes {
host = local.eks_cluster_endpoint
cluster_ca_certificate = base64decode(data.aws_eks_cluster.this.certificate_authority[0].data)
token = data.aws_eks_cluster_auth.this.token
}
}
terraform {
required_providers {
grafana = {
source = "grafana/grafana"
version = "1.24.0"
}
}
}
locals {
name = basename(path.cwd)
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_version = data.aws_eks_cluster.this.version
tags = {
Source = "github.com/aws-ia/terraform-aws-observability-accelerator"
}
}
-35
View File
@@ -1,35 +0,0 @@
module "vpc" {
source = "terraform-aws-modules/vpc/aws"
version = "~> 3.0"
name = local.name
cidr = local.vpc_cidr
azs = local.azs
public_subnets = [for k, v in local.azs : cidrsubnet(local.vpc_cidr, 8, k)]
private_subnets = [for k, v in local.azs : cidrsubnet(local.vpc_cidr, 8, k + 10)]
enable_nat_gateway = true
single_nat_gateway = true
enable_dns_hostnames = true
# Manage so we can name
manage_default_network_acl = true
default_network_acl_tags = { Name = "${local.name}-default" }
manage_default_route_table = true
default_route_table_tags = { Name = "${local.name}-default" }
manage_default_security_group = true
default_security_group_tags = { Name = "${local.name}-default" }
public_subnet_tags = {
"kubernetes.io/cluster/${local.name}" = "shared"
"kubernetes.io/role/elb" = 1
}
private_subnet_tags = {
"kubernetes.io/cluster/${local.name}" = "shared"
"kubernetes.io/role/internal-elb" = 1
}
tags = local.tags
}
-56
View File
@@ -1,56 +0,0 @@
module "eks_observability_accelerator" {
#source = "aws-ia/terrarom-aws-observability-accelerator"
source = "../"
aws_region = var.aws_region
eks_cluster_id = var.eks_cluster_id
# deploys AWS Distro for OpenTelemetry operator into the cluster
enable_amazon_eks_adot = true
# reusing existing certificate manager? defaults to true
enable_cert_manager = true
# # -- or enable opentelemetry operator
enable_opentelemetry_operator = false
#open_telemetry_operator_config = map() // custom config
# creates a new AMP workspace, defaults to true
enable_managed_prometheus = false
# reusing existing AMP -- needs data source for alerting rules
managed_prometheus_id = var.managed_prometheus_workspace_id
managed_prometheus_region = null # defaults to the current region, useful for cross region scenarios (same account)
# sets up the AMP alert manager at the workspace level
enable_alertmanager = true
# create a new Grafana workspace - TODO review design
enable_managed_grafana = false
managed_grafana_workspace_id = var.managed_grafana_workspace_id
grafana_api_key = var.grafana_api_key
# enable workload-specific collector, metrics, alerts and dashboards
enable_java = false
enable_java_recording_rules = false
# enable_haproxy = true
# haproxy_config = {
# amp_endpoint = module / amp.endpoint
# grafana_endpoint = module.grafana.endpoint
# }
enable_infra_metrics = true
# infra_metrics_config = {}
tags = local.tags
}
# module "amp" {
# }
# module "grafana" {
# }