Skip to content

Commit

Permalink
add generators
Browse files Browse the repository at this point in the history
  • Loading branch information
morga471 committed Nov 12, 2024
1 parent 0d703a7 commit 4b77f47
Show file tree
Hide file tree
Showing 20 changed files with 848 additions and 36 deletions.
48 changes: 48 additions & 0 deletions lab/_envcommon/cluster-tg/gen-eks-cert-mgr-tg.hcl
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
# lab/_envcommon/cluster-tg/gen-eks-cert-mgr-tg.hcl

generate "terragrunt.hcl" {
path = "${get_original_terragrunt_dir()}/${include.root.inputs.environment}/${include.root.inputs.region}/vpc/${include.root.inputs.cluster_name}/eks-cert-manager/terragrunt.hcl"
if_exists = "overwrite_terragrunt"
contents = <<-EOF
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}"
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 = {
cluster_name = dependency.eks.outputs.cluster_name
cluster_mailing_list = dependency.eks.inputs.creator
oidc_provider_arn = dependency.eks.outputs.oidc_provider_arn
profile = include.root.inputs.aws_profile
region = include.root.inputs.aws_region
cert_manager_helm_chart = include.root.inputs.cert_manager_helm_chart
cert_manager_cainjector_tag = include.root.inputs.cert_manager_cainjector_tag
cert_manager_controller_tag = include.root.inputs.cert_manager_controller_tag
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
}
EOF
}
49 changes: 49 additions & 0 deletions lab/_envcommon/cluster-tg/gen-eks-config-tg.hcl
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
# lab/_envcommon/cluster-tg/gen-eks-config-tg.hcl

# Generate the terragrunt.hcl for eks-configuration
generate "terragrunt.hcl" {
path = "${get_original_terragrunt_dir()}/${include.root.inputs.environment}/${include.root.inputs.region}/vpc/${include.root.inputs.cluster_name}/eks-configuration/terragrunt.hcl"
if_exists = "overwrite_terragrunt"
contents = <<-EOF
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}"
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"]
token = [{ token = "THISISTHETOKENTHATDOESNTEXISTTHEREAREMANYLIKEITBUTHISONEISFORACLUSTER" }]
vpc_id = "a-vpc-id"
}
}
inputs = {
profile = include.root.inputs.aws_profile
region = include.root.inputs.aws_region
vpc_id = dependency.eks.outputs.vpc_id
cluster_name = dependency.eks.outputs.cluster_name
subnets = dependency.eks.outputs.subnets
security_group_all_worker_mgmt_id = dependency.eks.outputs.security_group_all_worker_mgmt_id
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
kubectl_image_tag = include.root.inputs.kubectl_image_tag
}
EOF
}
51 changes: 51 additions & 0 deletions lab/_envcommon/cluster-tg/gen-eks-dns-tg.hcl
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
# lab/_envcommon/cluster-tg/gen-eks-dns-tg.hcl

# Generate the eks-dns terragrunt.hcl
generate "terragrunt.hcl" {
path = "${get_original_terragrunt_dir()}/${include.root.inputs.environment}/${include.root.inputs.region}/vpc/${include.root.inputs.cluster_name}/eks-dns/terragrunt.hcl"
if_exists = "overwrite_terragrunt"
contents = <<-EOF
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
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
route53_endpoints = include.root.inputs.route53_endpoints
}
EOF
}
49 changes: 49 additions & 0 deletions lab/_envcommon/cluster-tg/gen-eks-grafana-tg.hcl
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
# lab/_envcommon/cluster-tg/gen-eks-grafana-tg.hcl

# Generate the eks-grafana terragrunt.hcl
generate "terragrunt.hcl" {
path = "${get_original_terragrunt_dir()}/${include.root.inputs.environment}/${include.root.inputs.region}/vpc/${include.root.inputs.cluster_name}/eks-grafana/terragrunt.hcl"
if_exists = "overwrite_terragrunt"
contents = <<-EOF
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"
}
}
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
}
EOF
}
41 changes: 41 additions & 0 deletions lab/_envcommon/cluster-tg/gen-eks-istio-tg.hcl
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
# lab/_envcommon/cluster-tg/gen-eks-istio-tg.hcl

# Generate the eks-istio terragrunt.hcl
generate "terragrunt.hcl" {
path = "${get_original_terragrunt_dir()}/${include.root.inputs.environment}/${include.root.inputs.region}/vpc/${include.root.inputs.cluster_name}/eks-istio/terragrunt.hcl"
if_exists = "overwrite_terragrunt"
contents = <<-EOF
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}"
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 = {
profile = include.root.inputs.aws_profile
region = include.root.inputs.aws_region
cluster_name = dependency.eks.outputs.cluster_name
istio_chart_version = include.root.inputs.istio_version
istio_version = include.root.inputs.istio_version
}
EOF
}
45 changes: 45 additions & 0 deletions lab/_envcommon/cluster-tg/gen-eks-k8s-dash-tg.hcl
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
# lab/_envcommon/cluster-tg/gen-eks-k8s-dash-tg.hcl

# Generate the eks-k8s-dashboard terragrunt.hcl
generate "terragrunt.hcl" {
path = "${get_original_terragrunt_dir()}/${include.root.inputs.environment}/${include.root.inputs.region}/vpc/${include.root.inputs.cluster_name}/eks-k8s-dashboard/terragrunt.hcl"
if_exists = "overwrite_terragrunt"
contents = <<-EOF
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"
}
}
dependency "eks-loki" {
config_path = "../eks-loki"
skip_outputs = true
}
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
}
EOF
}
51 changes: 51 additions & 0 deletions lab/_envcommon/cluster-tg/gen-eks-karpenter-tg.hcl
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
# lab/_envcommon/cluster-tg/gen-eks-karpenter-tg.hcl

# Generate the eks-karpenter terragrunt.hcl
generate "terragrunt.hcl" {
path = "${get_original_terragrunt_dir()}/${include.root.inputs.environment}/${include.root.inputs.region}/vpc/${include.root.inputs.cluster_name}/eks-karpenter/terragrunt.hcl"
if_exists = "overwrite_terragrunt"
contents = <<-EOF
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}"
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 = {
profile = include.root.inputs.aws_profile
region = include.root.inputs.aws_region
cluster_endpoint = dependency.eks.outputs.cluster_endpoint
cluster_name = dependency.eks.outputs.cluster_name
karpenter_node_group_name = dependency.eks.outputs.node_group_name
oidc_provider_arn = dependency.eks.outputs.oidc_provider_arn
vpc_id = dependency.eks.outputs.vpc_id
karpenter_helm_chart = include.root.inputs.karpenter_helm_chart
karpenter_tag = include.root.inputs.karpenter_tag
kubectl_tag = include.root.inputs.kubectl_image_tag
}
EOF
}
Loading

0 comments on commit 4b77f47

Please sign in to comment.