Skip to content

Commit

Permalink
add versions
Browse files Browse the repository at this point in the history
  • Loading branch information
morga471 committed Nov 7, 2024
1 parent 770a567 commit 7060f2e
Show file tree
Hide file tree
Showing 7 changed files with 55 additions and 38 deletions.
19 changes: 13 additions & 6 deletions lab/_envcommon/aws-provider.hcl
Original file line number Diff line number Diff line change
@@ -1,30 +1,37 @@
include "root" {
path = find_in_parent_folders("root.hcl")
merge_strategy = "deep"
expose = true
expose = false
}

# Generate an AWS provider block
generate "aws_provider" {
path = "${get_original_terragrunt_dir()}/aws_provider.tf"
if_exists = "overwrite_terragrunt"
contents = <<EOF
terraform {
required_version = ">= 1.5.0"
required_version = "~> ${include.root.inputs.tf_version}"
}
required_providers {
aws = {
source = "hashicorp/aws"
version = "~> ${include.root.inputs.aws_version}"
}
}
provider "aws" {
region = "${include.root.inputs.aws_region}"
profile = "${include.root.inputs.aws_profile}"
default_tags {
tags = {
ProjectNumber = "${include.root.inputs.project_number}"
"Project Identifier" = "${include.root.inputs.project_number}:${include.root.inputs.project_name}"
"Project Name" = "${include.root.inputs.project_name}"
"Project Role" = "${include.root.inputs.project_role}"
"Project Identifier" = "${include.root.inputs.project_number}:${include.root.inputs.project_name}"
Organization = "${include.root.inputs.organization}"
created_by = "${include.root.inputs.creator}"
created_for = "${include.root.inputs.creator}"
created_reason = "${include.root.inputs.created_reason}"
Environment = "${include.root.inputs.environment_abbr}"
Organization = "${include.root.inputs.organization}"
ProjectNumber = "${include.root.inputs.project_number}"
Terraform = "${include.root.inputs.terraform}"
Terragrunt = "${include.root.inputs.terragrunt}"
}
Expand Down
1 change: 1 addition & 0 deletions lab/_envcommon/common-variables.hcl
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,5 @@ locals {
state_table_name = "tf_remote_state"
terraform = true
terragrunt = true
versionshcl = try(read_terragrunt_config("./versions.hcl"), read_terragrunt_config(find_in_parent_folders("default_versions.hcl")))
}
9 changes: 9 additions & 0 deletions lab/_envcommon/default-versions.hcl
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# lab/_envcommon/default-versions.hcl
locals {
aws_version = "5.14.0"
helm_version = "2.11.0"
kubernetes_version = "2.33.0"
null_version = "3.2.1"
tf_version = "1.5.0"
template_version = "2.2.0"
}
26 changes: 16 additions & 10 deletions lab/_envcommon/helm-provider.hcl
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,7 @@
dependency "eks" {
config_path = "${get_original_terragrunt_dir()}/../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"
}
}

Expand All @@ -20,8 +12,22 @@ generate "helm_provider" {
path = "${get_original_terragrunt_dir()}/helm_provider.tf"
if_exists = "overwrite_terragrunt"
contents = <<-EOF
terraform {
required_version = ">= 1.5.0"
terraform {
required_version = "~> ${include.root.inputs.tf_version}"
}
required_providers {
aws = {
source = "hashicorp/aws"
version = "~> ${include.root.inputs.aws_version}"
}
helm = {
source = "hashicorp/helm"
version = "~> ${include.root.inputs.helm_version}"
}
kubernetes = {
source = "hashicorp/kubernetes"
version = "~> ${include.root.inputs.kubernetes_version}"
}
}
data "aws_eks_cluster" "helm" {
name = "${dependency.eks.outputs.cluster_name}"
Expand Down
20 changes: 11 additions & 9 deletions lab/_envcommon/kubernetes-provider.hcl
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,7 @@
dependency "eks" {
config_path = "${get_original_terragrunt_dir()}/../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"
}
}

Expand All @@ -21,7 +13,17 @@ generate "kube_provider" {
if_exists = "overwrite_terragrunt"
contents = <<-EOF
terraform {
required_version = ">= 1.5.0"
required_version = "~> ${include.root.inputs.tf_version}"
}
required_providers {
aws = {
source = "hashicorp/aws"
version = "~> ${include.root.inputs.aws_version}"
}
kubernetes = {
source = "hashicorp/kubernetes"
version = "~> ${include.root.inputs.kubernetes_version}"
}
}
data "aws_eks_cluster" "kube" {
name = "${dependency.eks.outputs.cluster_name}"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,9 @@ locals {
eks_ng_max_size = 10
eks_ng_min_size = 0
enable_cluster_creator_admin_permissions = true
environment_abbr = "dev"
terraform = true
terragrunt = true
tags = {
"Environment" = local.environment_abbr
"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}"
}
Expand Down
16 changes: 5 additions & 11 deletions lab/root.hcl
Original file line number Diff line number Diff line change
Expand Up @@ -5,30 +5,24 @@
# ---------------------------------------------------------------------------------------------------------------------
locals {
# Automatically load account-level variables (NOTE: In our environment account = environment so there is not separate environment layer)
account_vars = read_terragrunt_config(find_in_parent_folders("account.hcl"))
account_vars = try(read_terragrunt_config(find_in_parent_folders("account.hcl")))

# Automatically load _envcommon, cross account and environment common variables
common_vars = read_terragrunt_config(find_in_parent_folders("./_envcommon/common-variables.hcl"))
common_vars = try(read_terragrunt_config(find_in_parent_folders("./_envcommon/common-variables.hcl")))

# Automatically load cluster-level variables
cluster_vars = read_terragrunt_config(find_in_parent_folders("cluster.hcl"))
cluster_vars = try(read_terragrunt_config(find_in_parent_folders("cluster.hcl")))

# Automatically load region-level variables
region_vars = read_terragrunt_config(find_in_parent_folders("region.hcl"))
region_vars = try(read_terragrunt_config(find_in_parent_folders("region.hcl")))

# Automatically load vpc-level variables
vpc_vars = read_terragrunt_config(find_in_parent_folders("vpc.hcl"))
# kube_provider = read_terragrunt_config(find_in_parent_folders("./_envcommon/kubeernetes-provider.hcl"))
# helm_provider = read_terragrunt_config(find_in_parent_folders("./_envcommon/helm-provider.hcl"))
vpc_vars = try(read_terragrunt_config(find_in_parent_folders("vpc.hcl")))

# Extract the variables we need for easy access
account_id = local.account_vars.locals.aws_account_id
aws_profile = local.account_vars.locals.aws_profile
aws_region = local.region_vars.locals.aws_region
organization = local.common_vars.locals.organization
project_number = local.common_vars.locals.project_number
project_name = local.common_vars.locals.project_name
project_role = local.common_vars.locals.project_role
state_bucket_prefix = local.common_vars.locals.state_bucket_prefix
state_table_name = local.common_vars.locals.state_table_name
}
Expand Down

0 comments on commit 7060f2e

Please sign in to comment.