Skip to content

Feature namespaces #19

Merged
merged 4 commits into from
Feb 27, 2025
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 21 additions & 0 deletions lab/development/us-gov-east-1/vpc/platform-test-z/cluster.hcl
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# lab/development/us-gov-east-1/vpc/platform-eng-eks-mcm/cluster.hcl

# Set cluster specific variables. These are automatically pulled in to configure the remote state bucket in the root
# terragrunt.hcl configuration.
locals {
cluster_endpoint_public_access = true
cluster_name = "platform-test-z"
created_reason = "Terragrunt Development for CICD Delivered EKS Platform"
creator = "luther.coleman.mcginty@census.gov"
eks_instance_disk_size = 100
eks_ng_desired_size = 3
eks_ng_max_size = 10
eks_ng_min_size = 1
enable_cluster_creator_admin_permissions = true
terraform = true
terragrunt = true
tags = {
"slim:schedule" = "8:00-17:00"
"cluster:size" = "min:${local.eks_ng_min_size}-max:${local.eks_ng_max_size}-desired:${local.eks_ng_desired_size}"
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
include "root" {
path = find_in_parent_folders()
expose = true
}

terraform {
# source = "git@github.e.it.census.gov:SCT-Engineering/tfmod-alloy.git?ref=main"
source = "../../../../../../../tfmod-alloy"
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"
}
}

inputs = {
profile = include.root.inputs.aws_profile
cluster_name = dependency.eks.outputs.cluster_name
region = include.root.inputs.aws_region
cluster_domain = dependency.eks.inputs.vpc_domain_name
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
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-cert-mgr.git?ref=${include.root.inputs.release_version}"
source = "../../../../../../../tfmod-cert-mgr"
morga471 marked this conversation as resolved.
Show resolved Hide resolved
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_config" {
config_path = "../eks-config"
skip_outputs = true
}

inputs = {
cert_manager_cainjector_tag = include.root.inputs.cert_manager_cainjector_tag
cert_manager_controller_tag = include.root.inputs.cert_manager_controller_tag
cert_manager_helm_chart = include.root.inputs.cert_manager_helm_chart
cert_manager_startupapicheck_tag = include.root.inputs.cert_manager_startupapicheck_tag
cert_manager_webhook_tag = include.root.inputs.cert_manager_webhook_tag
cluster_issuer_name = include.root.inputs.cluster_issuer_name
cluster_mailing_list = dependency.eks.inputs.creator
cluster_name = dependency.eks.outputs.cluster_name
oidc_provider_arn = dependency.eks.outputs.oidc_provider_arn
profile = include.root.inputs.aws_profile
region = include.root.inputs.aws_region
release_version = include.root.inputs.release_version
namespace = include.root.inputs.namespaces["cert-manager"]
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
# lab/development/us-gov-east-1/vpc/platform-eng-eks-mcm/eks-config/terragrunt.hcl

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-eks-configuration.git?ref=${include.root.inputs.release_version}"
source = "../../../../../../../tfmod-eks-configuration"
extra_arguments "retry_lock" {
commands = get_terraform_commands_that_need_locking()
arguments = ["-lock-timeout=20m"]
}
}

dependency "eks" {
config_path = "../eks"
mock_outputs = {
cluster_certificate_authority_data = [{ data = "THISISAVERYLONGCERTSTRINGTHATGOESHEREFORSURENODYEP" }]
cluster_endpoint = "https://12345ABCDEE42BF9C24D4C362D1DC.sk1.us-gov-east-1.eks.amazonaws.com"
cluster_name = "a-cluster-name"
eks_managed_node_groups_autoscaling_group_names = ["eks-eks-a-cluster-name-node_group-0000000000000000000000000-5ac8a5e3-14dd-c043-2cc9-f4b6ffb36d32"]
oidc_provider_arn = "arn:aws-us-gov:iam::111111111111:oidc-provider/oidc.eks.us-gov-east-1.amazonaws.com/id/0000000000000000AAAAAAAAAAAAAAAA"
security_group_all_worker_mgmt_id = "sg-00b0000000000000"
subnets = ["subnet-00000000000000001", "subnet-00000000000000002", "subnet-00000000000000003"]
vpc_id = "a-vpc-id"
}
}

generate "kubectl-provider" {
path = "kubectl-provider.tf"
if_exists = "overwrite"
contents = <<-EOF
%{if dependency.eks.outputs.cluster_name != "a-cluster-name"~}
data "aws_eks_cluster" "kubectl" {
name = "${dependency.eks.outputs.cluster_name}"
}
provider "kubectl" {
apply_retry_count = 5
host = data.aws_eks_cluster.kubectl.endpoint
cluster_ca_certificate = base64decode(data.aws_eks_cluster.kubectl.certificate_authority[0].data)
load_config_file = false
exec {
api_version = "client.authentication.k8s.io/v1beta1"
command = "aws"
args = ["eks", "get-token", "--cluster-name", "${dependency.eks.outputs.cluster_name}", "--region", "${include.root.inputs.aws_region}"]
}
}
%{endif~}
EOF
}
Comment on lines +32 to +54
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I ripped all this out Maybe needs a rebase?


inputs = {
cluster_name = dependency.eks.outputs.cluster_name
eks_managed_node_groups_autoscaling_group_names = dependency.eks.outputs.eks_managed_node_groups_autoscaling_group_names
oidc_provider_arn = dependency.eks.outputs.oidc_provider_arn
profile = include.root.inputs.aws_profile
region = include.root.inputs.aws_region
release_version = include.root.inputs.release_version
security_group_all_worker_mgmt_id = dependency.eks.outputs.security_group_all_worker_mgmt_id
subnets = dependency.eks.outputs.subnets
vpc_id = dependency.eks.outputs.vpc_id
operators_ns = include.root.inputs.operator_namespace
telemetry_ns = include.root.inputs.telemetry_namespace
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
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-eks-dns.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 = {
subnets = ["subnet-abcdefgh", "subnet-12345678", "subnet-ab12cd34"]
}
}

dependency "istio" {
config_path = "../eks-istio"
mock_outputs = {
istio_ingress_lb = {
dns_name = "a1111111111111111111111111111111-2bbbbbbbbbbbbbbb.elb.us-gov-east-1.amazonaws.com"
zone_id = "ZABC123456DEF"
}
}
}

inputs = {
cluster_name = dependency.eks.inputs.cluster_name
istio_ingress_lb = dependency.istio.outputs.istio_ingress_lb
profile = include.root.inputs.aws_profile
region = include.root.inputs.aws_region
route53_endpoints = include.root.inputs.route53_endpoints
subnets = dependency.eks.outputs.subnets
tags = dependency.eks.inputs.tags
vpc_domain_name = dependency.eks.inputs.vpc_domain_name
vpc_name = dependency.eks.inputs.vpc_name
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
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}"
source = "../../../../../../../tfmod-grafana"
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"
}
}

inputs = {
cluster_domain = dependency.eks.inputs.vpc_domain_name
cluster_name = dependency.eks.outputs.cluster_name
download_dashboards_image_tag = include.root.inputs.download_dashboards_image_tag
grafana_chart_version = include.root.inputs.grafana_chart_version
grafana_tag = include.root.inputs.grafana_tag
init_chown_data_image_tag = include.root.inputs.init_chown_data_image_tag
profile = include.root.inputs.aws_profile
public_hostname = include.root.inputs.grafana_hostname
region = include.root.inputs.aws_region
rwo_storage_class = dependency.eks-loki.outputs.rwo_storage_class
namespace = include.root.inputs.namespaces["grafana"]
}
Original file line number Diff line number Diff line change
@@ -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-istio.git?ref=${include.root.inputs.release_version}"
source = "../../../../../../../tfmod-istio"
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-karpenter" {
config_path = "../eks-karpenter"
skip_outputs = true
}

inputs = {
cluster_name = dependency.eks.outputs.cluster_name
istio_chart_version = include.root.inputs.istio_version
istio_version = include.root.inputs.istio_version
profile = include.root.inputs.aws_profile
region = include.root.inputs.aws_region
namespace = include.root.inputs.namespaces["istio"]
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
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}"
source = "../../../../../../../tfmod-k8s-dashboard"
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"
}
}

dependency "eks-loki" {
config_path = "../eks-loki"
skip_outputs = true
}

inputs = {
# datasources = dependency.eks-loki.outputs.gateway_internal_endpoint
cluster_domain = dependency.eks.inputs.vpc_domain_name
cluster_name = dependency.eks.outputs.cluster_name
k8s_dashboard_version = include.root.inputs.k8s_dashboard_version
profile = include.root.inputs.aws_profile
public_hostname = include.root.inputs.dashboard_hostname
region = include.root.inputs.aws_region
namespace = include.root.inputs.namespaces["k8s-dashboard"]
}
Original file line number Diff line number Diff line change
@@ -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-karpenter.git?ref=${include.root.inputs.release_version}"
source = "../../../../../../../tfmod-karpenter"
extra_arguments "retry_lock" {
commands = get_terraform_commands_that_need_locking()
arguments = ["-lock-timeout=20m"]
}
}

dependency "eks" {
config_path = "../eks"
mock_outputs = {
cluster_endpoint = "https://0000000000000000AAAAAAAAAAAAAAAA.sk1.us-gov-east-1.eks.amazonaws.com"
cluster_name = "a-cluster-name"
node_group_name = "node_group_a-cluster-name"
oidc_provider_arn = "arn:aws-us-gov:iam::111111111111:oidc-provider/oidc.eks.us-gov-east-1.amazonaws.com/id/0000000000000000AAAAAAAAAAAAAAAA"
vpc_id = "a-vpc-name"
}
}

dependency "eks-config" {
config_path = "../eks-config"
skip_outputs = true
}

inputs = {
cluster_endpoint = dependency.eks.outputs.cluster_endpoint
cluster_name = dependency.eks.outputs.cluster_name
karpenter_helm_chart = include.root.inputs.karpenter_helm_chart
karpenter_node_group_name = dependency.eks.outputs.node_group_name
karpenter_tag = include.root.inputs.karpenter_tag
oidc_provider_arn = dependency.eks.outputs.oidc_provider_arn
profile = include.root.inputs.aws_profile
region = include.root.inputs.aws_region
release_version = include.root.inputs.release_version
vpc_id = dependency.eks.outputs.vpc_id
namespace = include.root.inputs.namespaces["karpenter"]
}
Loading
Loading