diff --git a/examples/full-cluster-tf-upgrade/1.25/common-services/cluster-autoscaler/.tf-control b/examples/full-cluster-tf-upgrade/1.25/common-services/cluster-autoscaler/.tf-control new file mode 100644 index 0000000..280f449 --- /dev/null +++ b/examples/full-cluster-tf-upgrade/1.25/common-services/cluster-autoscaler/.tf-control @@ -0,0 +1,20 @@ +# .tf-control +# allows for setting a specific command to be used for tf-* commands under this git repo +# see tf-control.sh help for more info + +TFCONTROL_VERSION="1.0.5" + +TFCOMMAND="terraform_latest" +# TF_CLI_CONFIG_FILE=PATH-TO-FILE/.tf-control.tfrc +# TFARGS="" +# TFNOLOG="" +# TFNOCOLOR="" + +# use the following to force a specific version. An upgrade of an existing 0.12.31 to 1.x +# needs you to cycle through 0.13.17, 0.14.11, and then latest (0.15.5 not needed). Other +# steps in between. See https://github.e.it.census.gov/terraform/support/tree/master/docs/how-to/terraform-upgrade for details +# +#TFCOMMAND="terraform_0.12.31" +#TFCOMMAND="terraform_0.13.7" +#TFCOMMAND="terraform_0.14.11" +#TFCOMMAND="terraform_0.15.5" diff --git a/examples/full-cluster-tf-upgrade/1.25/common-services/cluster-autoscaler/.tf-control.tfrc b/examples/full-cluster-tf-upgrade/1.25/common-services/cluster-autoscaler/.tf-control.tfrc new file mode 100644 index 0000000..7425488 --- /dev/null +++ b/examples/full-cluster-tf-upgrade/1.25/common-services/cluster-autoscaler/.tf-control.tfrc @@ -0,0 +1,24 @@ +TFCONTROL_VERSION="1.0.5" + +# https://www.terraform.io/docs/cli/config/config-file.html +plugin_cache_dir = "/data/terraform/terraform.d/plugin-cache" +#disable_checkpoint = true + +provider_installation { +# filesystem_mirror { +# path = "/apps/terraform/terraform.d/providers" +# include = [ "*/*/*" ] +# } + filesystem_mirror { + path = "/data/terraform/terraform.d/providers" + include = [ "*/*/*" ] + } +# filesystem_mirror { +# path = "/apps/terraform/terraform.d/providers" +# include = [ "external.terraform.census.gov/*/*" ] +# } + direct { + include = [ "*/*/*" ] + } +} + diff --git a/examples/full-cluster-tf-upgrade/1.25/common-services/cluster-autoscaler.tf b/examples/full-cluster-tf-upgrade/1.25/common-services/cluster-autoscaler/cluster-autoscaler.tf similarity index 61% rename from examples/full-cluster-tf-upgrade/1.25/common-services/cluster-autoscaler.tf rename to examples/full-cluster-tf-upgrade/1.25/common-services/cluster-autoscaler/cluster-autoscaler.tf index ff82766..d171d53 100644 --- a/examples/full-cluster-tf-upgrade/1.25/common-services/cluster-autoscaler.tf +++ b/examples/full-cluster-tf-upgrade/1.25/common-services/cluster-autoscaler/cluster-autoscaler.tf @@ -28,21 +28,39 @@ module "role_cluster-autoscaler" { ) } +locals { + cluster_autoscaler_image_output = { for k, v in module.images_cluster_autoscaler.images : v.name => v } +} + +module "images_cluster_autoscaler" { + source = "git@github.e.it.census.gov:terraform-modules/aws-ecr-copy-images.git?ref=tf-upgrade" + + profile = var.profile + application_list = [] + application_name = format("eks/%v", var.cluster_name) + image_config = [for k, v in var.cluster_autoscaler_images : v if v.enabled] + tags = merge( + local.base_tags, + local.common_tags, + var.application_tags, + ) +} + resource "helm_release" "cluster-autoscaler" { chart = "cluster-autoscaler" name = "cluster-autoscaler" namespace = "kube-system" - repository = local.charts["cluster-autoscaler"].use_remote ? local.charts["cluster-autoscaler"].repository : "${path.module}/charts" - version = local.charts["cluster-autoscaler"].use_remote ? local.charts["cluster-autoscaler"].version : null + repository = var.cluster_autoscaler_charts["cluster-autoscaler"].use_remote ? var.cluster_autoscaler_charts["cluster-autoscaler"].repository : "${path.module}/charts" + version = var.cluster_autoscaler_charts["cluster-autoscaler"].use_remote ? var.cluster_autoscaler_charts["cluster-autoscaler"].version : null - depends_on = [module.images] + depends_on = [module.images_cluster_autoscaler] set { name = "image.repository" - value = split(":", local.image_output["cluster-autoscaler"].dest_full_path)[0] + value = split(":", local.cluster_autoscaler_image_output["cluster-autoscaler"].dest_full_path)[0] } set { name = "image.tag" - value = local.image_output["cluster-autoscaler"].tag + value = local.cluster_autoscaler_image_output["cluster-autoscaler"].tag } set { name = "autoDiscovery.clusterName" diff --git a/examples/full-cluster-tf-upgrade/1.25/common-services/cluster-autoscaler/locals.tf b/examples/full-cluster-tf-upgrade/1.25/common-services/cluster-autoscaler/locals.tf new file mode 100644 index 0000000..4b9ae5a --- /dev/null +++ b/examples/full-cluster-tf-upgrade/1.25/common-services/cluster-autoscaler/locals.tf @@ -0,0 +1,17 @@ +locals { + base_tags = { + "eks-cluster-name" = var.cluster_name + "boc:tf_module_version" = local._module_version + "boc:created_by" = "terraform" + } +} + +# replace TF remote state accordingly in parent_rs with that from the parent directory, and be sure to make the link +locals { + vpc_id = local.parent_rs.cluster_vpc_id + subnet_ids = local.parent_rs.cluster_subnet_ids + cluster_worker_sg_id = local.parent_rs.cluster_worker_sg_id + + oidc_provider_url = local.parent_rs.oidc_provider_url + oidc_provider_arn = local.parent_rs.oidc_provider_arn +} diff --git a/examples/full-cluster-tf-upgrade/1.25/common-services/cluster-autoscaler/region.tf b/examples/full-cluster-tf-upgrade/1.25/common-services/cluster-autoscaler/region.tf new file mode 100644 index 0000000..f617506 --- /dev/null +++ b/examples/full-cluster-tf-upgrade/1.25/common-services/cluster-autoscaler/region.tf @@ -0,0 +1,3 @@ +locals { + region = var.region +} diff --git a/examples/full-cluster-tf-upgrade/1.25/common-services/test-cluster-autoscaling.json b/examples/full-cluster-tf-upgrade/1.25/common-services/cluster-autoscaler/test-cluster-autoscaling.json similarity index 100% rename from examples/full-cluster-tf-upgrade/1.25/common-services/test-cluster-autoscaling.json rename to examples/full-cluster-tf-upgrade/1.25/common-services/cluster-autoscaler/test-cluster-autoscaling.json diff --git a/examples/full-cluster-tf-upgrade/1.25/common-services/cluster-autoscaler/tf-run.data b/examples/full-cluster-tf-upgrade/1.25/common-services/cluster-autoscaler/tf-run.data new file mode 100644 index 0000000..0db70b8 --- /dev/null +++ b/examples/full-cluster-tf-upgrade/1.25/common-services/cluster-autoscaler/tf-run.data @@ -0,0 +1,31 @@ +VERSION 1.4.2 +REMOTE-STATE +COMMAND tf-directory-setup.py -l none -f +COMMAND setup-new-directory.sh + +LINKTOP init +LINKTOP includes.d/variables.account_tags.tf +LINKTOP includes.d/variables.account_tags.auto.tfvars +LINKTOP includes.d/variables.infrastructure_tags.tf +LINKTOP includes.d/variables.infrastructure_tags.auto.tfvars +LINKTOP includes.d/variables.application_tags.tf +# LINKTOP includes.d/variables.application_tags.auto.tfvars +LINK variables.application_tags.auto.tfvars +LINKTOP provider_configs.d/provider.ldap_new.auto.tfvars +LINKTOP provider_configs.d/provider.ldap_new.tf +LINKTOP provider_configs.d/provider.ldap_new.variables.tf +LINK settings.auto.tfvars +LINK includes.d/parent_rs.tf +LINK includes.d/data.eks-subdirectory.tf +LINK includes.d/kubeconfig.eks-subdirectory.tf +LINK variables.eks.tf +LINK prefixes.tf +LINK providers.tf +LINK variables.addons.tf +LINK versions.tf +LINK version.tf +LINK variables.vpc.tf +LINK variables.vpc.auto.tfvars +COMMAND tf-init + +ALL diff --git a/examples/full-cluster-tf-upgrade/1.25/common-services/cluster-autoscaler/tf-run.destroy.data b/examples/full-cluster-tf-upgrade/1.25/common-services/cluster-autoscaler/tf-run.destroy.data new file mode 100644 index 0000000..7a82c9f --- /dev/null +++ b/examples/full-cluster-tf-upgrade/1.25/common-services/cluster-autoscaler/tf-run.destroy.data @@ -0,0 +1,6 @@ +VERSION 1.0.1 +BACKUP-STATE +COMMAND tf-init +COMMAND tf-state list + +ALL diff --git a/examples/full-cluster-tf-upgrade/1.25/common-services/cluster-autoscaler/variables.cluster-autoscaler.auto.tfvars b/examples/full-cluster-tf-upgrade/1.25/common-services/cluster-autoscaler/variables.cluster-autoscaler.auto.tfvars new file mode 100644 index 0000000..ad2c35f --- /dev/null +++ b/examples/full-cluster-tf-upgrade/1.25/common-services/cluster-autoscaler/variables.cluster-autoscaler.auto.tfvars @@ -0,0 +1,22 @@ +cluster_autoscaler_charts = { + "cluster-autoscaler" = { + name = "cluster-autoscaler" + repository = "https://kubernetes.github.io/autoscaler" + version = "9.29.3" + use_remote = true + } +} + +cluster_autoscaler_images = { + "cluster-autoscaler" = { + name = "cluster-autoscaler" + image = "registry.k8s.io/autoscaling/cluster-autoscaler" + dest_path = null + source_registry = "registry.k8s.io" + source_image = "autoscaling/cluster-autoscaler" + source_tag = null + # tag = "v1.27.3" + tag = "v1.28.0" + enabled = true + } +} diff --git a/examples/full-cluster-tf-upgrade/1.25/common-services/variables.cluster-autoscaler.tf b/examples/full-cluster-tf-upgrade/1.25/common-services/cluster-autoscaler/variables.cluster-autoscaler.tf similarity index 100% rename from examples/full-cluster-tf-upgrade/1.25/common-services/variables.cluster-autoscaler.tf rename to examples/full-cluster-tf-upgrade/1.25/common-services/cluster-autoscaler/variables.cluster-autoscaler.tf diff --git a/examples/full-cluster-tf-upgrade/1.25/common-services/variables.images.auto.tfvars b/examples/full-cluster-tf-upgrade/1.25/common-services/variables.images.auto.tfvars index ae75fa0..69ce3d1 100644 --- a/examples/full-cluster-tf-upgrade/1.25/common-services/variables.images.auto.tfvars +++ b/examples/full-cluster-tf-upgrade/1.25/common-services/variables.images.auto.tfvars @@ -11,12 +11,6 @@ chart_details = { version = "6.2.6" use_remote = true } - "cluster-autoscaler" = { - name = "cluster-autoscaler" - repository = "https://kubernetes.github.io/autoscaler" - version = "9.29.3" - use_remote = true - } } image_details = { @@ -60,17 +54,6 @@ image_details = { tag = "v1.12.3" enabled = true } - "cluster-autoscaler" = { - name = "cluster-autoscaler" - image = "registry.k8s.io/autoscaling/cluster-autoscaler" - dest_path = null - source_registry = "registry.k8s.io" - source_image = "autoscaling/cluster-autoscaler" - source_tag = null - # tag = "v1.27.3" - tag = "v1.28.0" - enabled = true - } "metrics-server" = { name = "metrics-server" image = "docker.io/bitnami/metrics-server"