Files
terraform-aws-observability…/examples/new-cluster-with-base/main.tf
T
Rodrigue Koffi 680a42488c Update doc
2022-08-29 19:24:40 +02:00

111 lines
3.0 KiB
Terraform

provider "aws" {
region = local.region
}
provider "kubernetes" {
host = module.eks_blueprints.eks_cluster_endpoint
cluster_ca_certificate = base64decode(module.eks_blueprints.eks_cluster_certificate_authority_data)
token = data.aws_eks_cluster_auth.this.token
}
provider "helm" {
kubernetes {
host = module.eks_blueprints.eks_cluster_endpoint
cluster_ca_certificate = base64decode(module.eks_blueprints.eks_cluster_certificate_authority_data)
token = data.aws_eks_cluster_auth.this.token
}
}
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
}
module "eks_blueprints" {
source = "github.com/aws-ia/terraform-aws-eks-blueprints"
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
}
module "observability_accelerator" {
source = "../../"
aws_region = local.region
eks_cluster_id = module.eks_blueprints.eks_cluster_id
enable_alertmanager = true
enable_managed_grafana = false
managed_grafana_workspace_id = var.managed_grafana_workspace_id
managed_grafana_region = var.managed_grafana_region
grafana_api_key = var.grafana_api_key
tags = {
Source = "aws-observability-accelerator"
}
}
module "infra" {
source = "../../modules/workloads/infra"
dashboards_folder_id = module.observability_accelerator.dashboards_folder_id
eks_cluster_id = module.eks_blueprints.eks_cluster_id
enable_alerting_rules = false
managed_prometheus_workspace_id = module.observability_accelerator.managed_prometheus_workspace_id
managed_prometheus_workspace_region = module.observability_accelerator.managed_prometheus_workspace_region
tags = {
Source = "aws-observability-accelerator"
}
}