From 4a7abfb8d9694a4e7bbf2bc4feebcfa9f5e2c61a Mon Sep 17 00:00:00 2001 From: "Matthew C. Morgan" Date: Fri, 7 Feb 2025 18:00:39 -0500 Subject: [PATCH] re-add --- .../eks-grafana/terragrunt.hcl | 44 ++++++++++++++++ .../eks-istio/terragrunt.hcl | 1 - .../eks-k8s-dashboard/terragrunt.hcl | 35 +++++++++++++ .../eks-karpenter/terragrunt.hcl | 5 +- .../eks-kiali/terragrunt.hcl.disable | 20 ++------ .../eks-loki/terragrunt.hcl | 40 +++++++++++++++ .../eks-metrics-server/terragrunt.hcl | 4 ++ .../eks-prometheus/terragrunt.hcl | 37 ++++++++++++++ .../eks-tempo/terragrunt.hcl | 50 +++++++++++++++++++ lab/root.hcl | 41 +++++++-------- 10 files changed, 236 insertions(+), 41 deletions(-) create mode 100644 lab/development/us-gov-east-1/vpc/platform-eng-eks-mcm/eks-grafana/terragrunt.hcl create mode 100644 lab/development/us-gov-east-1/vpc/platform-eng-eks-mcm/eks-k8s-dashboard/terragrunt.hcl create mode 100644 lab/development/us-gov-east-1/vpc/platform-eng-eks-mcm/eks-loki/terragrunt.hcl create mode 100644 lab/development/us-gov-east-1/vpc/platform-eng-eks-mcm/eks-prometheus/terragrunt.hcl create mode 100644 lab/development/us-gov-east-1/vpc/platform-eng-eks-mcm/eks-tempo/terragrunt.hcl diff --git a/lab/development/us-gov-east-1/vpc/platform-eng-eks-mcm/eks-grafana/terragrunt.hcl b/lab/development/us-gov-east-1/vpc/platform-eng-eks-mcm/eks-grafana/terragrunt.hcl new file mode 100644 index 0000000..e4d73cf --- /dev/null +++ b/lab/development/us-gov-east-1/vpc/platform-eng-eks-mcm/eks-grafana/terragrunt.hcl @@ -0,0 +1,44 @@ +include "root" { + path = find_in_parent_folders("root.hcl") + merge_strategy = "deep" + expose = true +} + +terraform { + source = "git@github.e.it.census.gov:SCT-Engineering/tfmod-grafana.git?ref=${include.root.inputs.release_version}" + extra_arguments "retry_lock" { + commands = get_terraform_commands_that_need_locking() + arguments = ["-lock-timeout=20m"] + } +} + +dependency "eks" { + config_path = "../eks" + mock_outputs = { + cluster_name = "a-cluster-name" + } +} + +dependency "eks-loki" { + config_path = "../eks-loki" + mock_outputs = { + rwo_storage_class = "gp3-encrypted" + } +} + +dependencies { + paths = ["../eks", "../eks-loki", "../eks-config", "../eks-karpenter"] +} + +inputs = { + profile = include.root.inputs.aws_profile + region = include.root.inputs.aws_region + cluster_name = dependency.eks.outputs.cluster_name + cluster_domain = dependency.eks.inputs.vpc_domain_name + public_hostname = include.root.inputs.grafana_hostname + rwo_storage_class = dependency.eks-loki.outputs.rwo_storage_class + grafana_chart_version = include.root.inputs.grafana_chart_version + grafana_tag = include.root.inputs.grafana_tag + download_dashboards_image_tag = include.root.inputs.download_dashboards_image_tag + init_chown_data_image_tag = include.root.inputs.init_chown_data_image_tag +} diff --git a/lab/development/us-gov-east-1/vpc/platform-eng-eks-mcm/eks-istio/terragrunt.hcl b/lab/development/us-gov-east-1/vpc/platform-eng-eks-mcm/eks-istio/terragrunt.hcl index 4368d6e..75a6b24 100644 --- a/lab/development/us-gov-east-1/vpc/platform-eng-eks-mcm/eks-istio/terragrunt.hcl +++ b/lab/development/us-gov-east-1/vpc/platform-eng-eks-mcm/eks-istio/terragrunt.hcl @@ -14,7 +14,6 @@ terraform { dependency "eks" { config_path = "${get_original_terragrunt_dir()}/../eks" - mock_outputs_allowed_terraform_commands = ["plan", "validate"] mock_outputs = { cluster_name = "a-cluster-name" } diff --git a/lab/development/us-gov-east-1/vpc/platform-eng-eks-mcm/eks-k8s-dashboard/terragrunt.hcl b/lab/development/us-gov-east-1/vpc/platform-eng-eks-mcm/eks-k8s-dashboard/terragrunt.hcl new file mode 100644 index 0000000..1d2b727 --- /dev/null +++ b/lab/development/us-gov-east-1/vpc/platform-eng-eks-mcm/eks-k8s-dashboard/terragrunt.hcl @@ -0,0 +1,35 @@ +include "root" { + path = find_in_parent_folders("root.hcl") + merge_strategy = "deep" + expose = true +} + +terraform { + source = "git@github.e.it.census.gov:SCT-Engineering/tfmod-k8s-dashboard.git?ref=${include.root.inputs.release_version}" + extra_arguments "retry_lock" { + commands = get_terraform_commands_that_need_locking() + arguments = ["-lock-timeout=20m"] + } +} + +dependency "eks" { + config_path = "../eks" + mock_outputs = { + cluster_name = "a-cluster-name" + vpc_domain_name = "example.com" + } +} + +dependencies { + paths = ["../eks", "../eks-loki", "../eks-config", "../eks-karpenter"] +} + +inputs = { + profile = include.root.inputs.aws_profile + region = include.root.inputs.aws_region + cluster_name = dependency.eks.outputs.cluster_name + cluster_domain = dependency.eks.inputs.vpc_domain_name + public_hostname = include.root.inputs.dashboard_hostname + k8s_dashboard_version = include.root.inputs.k8s_dashboard_version + # datasources = dependency.eks-loki.outputs.gateway_internal_endpoint +} diff --git a/lab/development/us-gov-east-1/vpc/platform-eng-eks-mcm/eks-karpenter/terragrunt.hcl b/lab/development/us-gov-east-1/vpc/platform-eng-eks-mcm/eks-karpenter/terragrunt.hcl index 3535ac6..3934f46 100644 --- a/lab/development/us-gov-east-1/vpc/platform-eng-eks-mcm/eks-karpenter/terragrunt.hcl +++ b/lab/development/us-gov-east-1/vpc/platform-eng-eks-mcm/eks-karpenter/terragrunt.hcl @@ -14,7 +14,6 @@ terraform { dependency "eks" { config_path = "../eks" - mock_outputs_allowed_terraform_commands = ["plan", "validate"] mock_outputs = { cluster_endpoint = "https://0000000000000000AAAAAAAAAAAAAAAA.sk1.us-gov-east-1.eks.amazonaws.com" cluster_name = "a-cluster-name" @@ -24,6 +23,10 @@ dependency "eks" { } } +dependencies { + paths = ["../eks"] +} + inputs = { cluster_endpoint = dependency.eks.outputs.cluster_endpoint cluster_name = dependency.eks.outputs.cluster_name diff --git a/lab/development/us-gov-east-1/vpc/platform-eng-eks-mcm/eks-kiali/terragrunt.hcl.disable b/lab/development/us-gov-east-1/vpc/platform-eng-eks-mcm/eks-kiali/terragrunt.hcl.disable index 5ccd126..2d432e9 100644 --- a/lab/development/us-gov-east-1/vpc/platform-eng-eks-mcm/eks-kiali/terragrunt.hcl.disable +++ b/lab/development/us-gov-east-1/vpc/platform-eng-eks-mcm/eks-kiali/terragrunt.hcl.disable @@ -19,12 +19,14 @@ dependency "eks" { cluster_name = "a-cluster-name" } } + dependency "eks-cert-manager" { config_path = "../eks-cert-manager" mock_outputs = { cluster_issuer_name = "acmpca-clusterissuer" } } + dependency "eks-prometheus" { config_path = "../eks-prometheus" mock_outputs = { @@ -34,6 +36,7 @@ dependency "eks-prometheus" { url = "http://prometheus-server.prometheus.svc.cluster.local:9090/" } } + } dependency "eks-grafana" { config_path = "../eks-grafana" @@ -53,23 +56,6 @@ dependency "eks-grafana" { } } -locals { - helm = read_terragrunt_config(find_in_parent_folders("./_envcommon/helm-provider.hcl")) - kube = read_terragrunt_config(find_in_parent_folders("./_envcommon/kube-provider.hcl")) -} - -generate "helm" { - path = local.helm.generate.helm_provider.path - if_exists = local.helm.generate.helm_provider.if_exists - contents = local.helm.generate.helm_provider.contents -} - -generate "kube" { - path = local.kube.generate.kube_provider.path - if_exists = local.kube.generate.kube_provider.if_exists - contents = local.kube.generate.kube_provider.contents -} - inputs = { kiali_operator_version = include.root.inputs.kiali_operator_version kiali_application_version = include.root.inputs.kiali_application_version diff --git a/lab/development/us-gov-east-1/vpc/platform-eng-eks-mcm/eks-loki/terragrunt.hcl b/lab/development/us-gov-east-1/vpc/platform-eng-eks-mcm/eks-loki/terragrunt.hcl new file mode 100644 index 0000000..a821081 --- /dev/null +++ b/lab/development/us-gov-east-1/vpc/platform-eng-eks-mcm/eks-loki/terragrunt.hcl @@ -0,0 +1,40 @@ +include "root" { + path = find_in_parent_folders("root.hcl") + merge_strategy = "deep" + expose = true +} + +terraform { + source = "git@github.e.it.census.gov:SCT-Engineering/tfmod-loki.git?ref=${include.root.inputs.release_version}" + extra_arguments "retry_lock" { + commands = get_terraform_commands_that_need_locking() + arguments = ["-lock-timeout=20m"] + } +} + +dependency "eks" { + config_path = "../eks" + mock_outputs = { + cluster_name = "a-cluster-name" + oidc_provider_arn = "arn:aws-us-gov:iam::111111111111:oidc-provider/oidc.eks.us-gov-east-1.amazonaws.com/id/0000000000000000AAAAAAAAAAAAAAAA" + } +} + +dependencies { + paths = ["../eks", "../eks-prometheus", "../eks-config", "../eks-karpenter", "../eks-istio"] +} + +inputs = { + profile = include.root.inputs.aws_profile + region = include.root.inputs.aws_region + cluster_name = dependency.eks.outputs.cluster_name + oidc_provider_arn = dependency.eks.outputs.oidc_provider_arn + loki_chart_version = include.root.inputs.loki_chart_version + loki_tag = include.root.inputs.loki_tag + canary_tag = include.root.inputs.canary_tag + enterprise_logs_provisioner_tag = include.root.inputs.enterprise_logs_provisioner_tag + gateway_tag = include.root.inputs.gateway_tag + memcached_tag = include.root.inputs.memcached_tag + exporter_tag = include.root.inputs.exporter_tag + sidecar_tag = include.root.inputs.sidecar_tag +} diff --git a/lab/development/us-gov-east-1/vpc/platform-eng-eks-mcm/eks-metrics-server/terragrunt.hcl b/lab/development/us-gov-east-1/vpc/platform-eng-eks-mcm/eks-metrics-server/terragrunt.hcl index d4d19fc..0b291ed 100644 --- a/lab/development/us-gov-east-1/vpc/platform-eng-eks-mcm/eks-metrics-server/terragrunt.hcl +++ b/lab/development/us-gov-east-1/vpc/platform-eng-eks-mcm/eks-metrics-server/terragrunt.hcl @@ -19,6 +19,10 @@ dependency "eks" { } } +dependencies { + paths = ["../eks", "../eks-config", "../eks-karpenter"] +} + inputs = { profile = include.root.inputs.aws_profile cluster_name = dependency.eks.outputs.cluster_name diff --git a/lab/development/us-gov-east-1/vpc/platform-eng-eks-mcm/eks-prometheus/terragrunt.hcl b/lab/development/us-gov-east-1/vpc/platform-eng-eks-mcm/eks-prometheus/terragrunt.hcl new file mode 100644 index 0000000..a98669b --- /dev/null +++ b/lab/development/us-gov-east-1/vpc/platform-eng-eks-mcm/eks-prometheus/terragrunt.hcl @@ -0,0 +1,37 @@ +include "root" { + path = find_in_parent_folders("root.hcl") + merge_strategy = "deep" + expose = true +} + +terraform { + source = "git@github.e.it.census.gov:SCT-Engineering/tfmod-prometheus.git?ref=${include.root.inputs.release_version}" + extra_arguments "retry_lock" { + commands = get_terraform_commands_that_need_locking() + arguments = ["-lock-timeout=20m"] + } +} + +dependency "eks" { + config_path = "../eks" + mock_outputs = { + cluster_name = "a-cluster-name" + } +} + +dependencies { + paths = ["../eks", "../eks-config", "../eks-karpenter", "../eks-istio", "../eks-dns"] +} + +inputs = { + profile = dependency.eks.inputs.aws_profile + region = dependency.eks.inputs.aws_region + cluster_name = dependency.eks.outputs.cluster_name + prometheus_chart_version = dependency.eks.inputs.prometheus_chart_version + prometheus_server_tag = dependency.eks.inputs.prometheus_server_tag + prometheus_config_reloader_tag = dependency.eks.inputs.prometheus_config_reloader_tag + alertmanager_tag = dependency.eks.inputs.alertmanager_tag + kube_state_metrics_tag = dependency.eks.inputs.kube_state_metrics_tag + node_exporter_tag = dependency.eks.inputs.node_exporter_tag + pushgateway_tag = dependency.eks.inputs.pushgateway_tag +} diff --git a/lab/development/us-gov-east-1/vpc/platform-eng-eks-mcm/eks-tempo/terragrunt.hcl b/lab/development/us-gov-east-1/vpc/platform-eng-eks-mcm/eks-tempo/terragrunt.hcl new file mode 100644 index 0000000..b3190c0 --- /dev/null +++ b/lab/development/us-gov-east-1/vpc/platform-eng-eks-mcm/eks-tempo/terragrunt.hcl @@ -0,0 +1,50 @@ +include "root" { + path = find_in_parent_folders("root.hcl") + merge_strategy = "deep" + expose = true +} + +terraform { + source = "git@github.e.it.census.gov:SCT-Engineering/tfmod-tempo.git?ref=${include.root.inputs.release_version}" + extra_arguments "retry_lock" { + commands = get_terraform_commands_that_need_locking() + arguments = ["-lock-timeout=20m"] + } +} + +dependency "eks" { + config_path = "../eks" + mock_outputs = { + cluster_name = "a-cluster-name" + oidc_provider_arn = "arn:aws-us-gov:iam::111111111111:oidc-provider/oidc.eks.us-gov-east-1.amazonaws.com/id/0000000000000000AAAAAAAAAAAAAAAA" + } +} + +dependency "eks-prometheus" { + config_path = "../eks-prometheus" + mock_outputs = { + prometheus_namespace = "prometheus" + prometheus_server_internal_endpoint = { + hostname = "prometheus-server.prometheus.svc.cluster.local" + port_number = 9090 + url = "http://prometheus-server.prometheus.svc.cluster.local:9090/" + } + } + +} + +dependencies { + paths = ["../eks", "../eks-prometheus", "../eks-config", "../eks-karpenter"] +} + +inputs = { + account_id = dependency.eks.inputs.account_id + cluster_name = dependency.eks.outputs.cluster_name + oidc_provider_arn = dependency.eks.outputs.oidc_provider_arn + profile = dependency.eks.inputs.aws_profile + prometheus_namespace = dependency.eks-prometheus.outputs.prometheus_namespace + prometheus_port = dependency.eks-prometheus.outputs.prometheus_server_internal_endpoint.port_number + region = dependency.eks.inputs.aws_region + tempo_chart_version = dependency.eks.inputs.tempo_chart_version + tempo_tag = dependency.eks.inputs.tempo_tag +} diff --git a/lab/root.hcl b/lab/root.hcl index 7400266..b71ff39 100644 --- a/lab/root.hcl +++ b/lab/root.hcl @@ -40,7 +40,6 @@ locals { state_table_name = local.common_vars.locals.state_table_name terraform = local.cluster_vars.locals.terraform terragrunt = local.cluster_vars.locals.terragrunt - module_name = trimprefix(replace(run_cmd("realpath", get_original_terragrunt_dir()), dirname(get_repo_root()), ""), "/") } # Configure Terragrunt to automatically store tfstate files in an S3 bucket @@ -71,29 +70,27 @@ generate "aws-provider" { path = "aws-provider.tf" if_exists = "overwrite" contents = <<-EOF -provider "aws" { - region = "${local.aws_region}" - profile = "${local.aws_profile}" - default_tags { - tags = { - cluster_name = "${local.cluster_name}" - module_name = "${local.module_name}" - created_by = "${local.creator}" - created_for = "${local.creator}" - created_reason = "${local.created_reason}" - environment = "${local.environment_abbr}" - finops_project_name = "${local.project_name}" - finops_project_number = "${local.project_number}" - finops_project_role = "${local.project_role}" - organization = "${local.organization}" - project_identifier = "${local.project_number}:${local.project_name}" - terraform = "${local.terraform}" - terragrunt = "${local.terragrunt}" + provider "aws" { + region = "${local.aws_region}" + profile = "${local.aws_profile}" + default_tags { + tags = { + created_by = "${local.creator}" + created_for = "${local.creator}" + created_reason = "${local.created_reason}" + environment = "${local.environment_abbr}" + finops_project_name = "${local.project_name}" + finops_project_number = "${local.project_number}" + finops_project_role = "${local.project_role}" + organization = "${local.organization}" + project_identifier = "${local.project_number}:${local.project_name}" + terraform = "${local.terraform}" + terragrunt = "${local.terragrunt}" + } } + # Only these AWS Account IDs may be operated on by this template + allowed_account_ids = ["${local.account_id}"] } - # Only these AWS Account IDs may be operated on by this template - allowed_account_ids = ["${local.account_id}"] -} EOF }