From 26011a45bcb8c8fa9ced3ab89f8b672f25fd64ab Mon Sep 17 00:00:00 2001 From: mukulpalit-ibm Date: Thu, 15 May 2025 11:55:35 +0530 Subject: [PATCH] refactor: cross-object validation and Terraform Upgrade --- README.md | 2 +- dynamic_values/config_modules/appid/versions.tf | 2 +- .../config_modules/bastion_vsi_list_to_map/versions.tf | 2 +- .../config_modules/cluster_worker_pools/versions.tf | 2 +- dynamic_values/config_modules/clusters/versions.tf | 2 +- dynamic_values/config_modules/cos/versions.tf | 2 +- dynamic_values/config_modules/f5/versions.tf | 2 +- dynamic_values/config_modules/flow_logs/versions.tf | 2 +- dynamic_values/config_modules/get_subnets/versions.tf | 2 +- dynamic_values/config_modules/list_to_map/versions.tf | 2 +- .../config_modules/list_to_map_value/versions.tf | 2 +- .../nested_list_to_map_and_merge/versions.tf | 2 +- .../config_modules/service_authorizations/versions.tf | 2 +- dynamic_values/config_modules/vpe/versions.tf | 2 +- dynamic_values/config_modules/vpn/versions.tf | 2 +- dynamic_values/config_modules/vsi/versions.tf | 2 +- dynamic_values/versions.tf | 2 +- examples/one-vpc-one-vsi/version.tf | 2 +- examples/override-example/version.tf | 2 +- f5_config/versions.tf | 2 +- kms/dynamic_values/versions.tf | 2 +- kms/versions.tf | 2 +- .../config_modules/acl_rules/versions.tf | 2 +- .../config_modules/bastion_gateways/versions.tf | 2 +- .../config_modules/bastion_vsi/versions.tf | 2 +- .../config_modules/bastion_zone_list/versions.tf | 2 +- .../config_modules/cloud_object_storage/versions.tf | 2 +- .../default_security_group_rules/versions.tf | 2 +- .../config_modules/f5_deployments/versions.tf | 2 +- .../config_modules/f5_security_group_rules/versions.tf | 2 +- .../dynamic_values/config_modules/f5_tiers/versions.tf | 2 +- .../config_modules/key_management/versions.tf | 2 +- .../config_modules/network_acls/versions.tf | 2 +- .../config_modules/resource_groups/versions.tf | 2 +- .../config_modules/security_groups/versions.tf | 2 +- .../config_modules/subnet_cidr/versions.tf | 2 +- patterns/dynamic_values/config_modules/vpc/versions.tf | 2 +- .../config_modules/vpc_address_prefixes/versions.tf | 2 +- .../config_modules/vpc_subnet_tiers/versions.tf | 2 +- patterns/dynamic_values/versions.tf | 2 +- patterns/mixed/config.tf | 10 ---------- patterns/mixed/variables.tf | 8 ++++++++ patterns/mixed/versions.tf | 2 +- patterns/roks-quickstart/version.tf | 2 +- patterns/roks/module/versions.tf | 2 +- patterns/roks/versions.tf | 2 +- patterns/vpc/module/version.tf | 2 +- patterns/vpc/version.tf | 2 +- patterns/vsi-extension/config.tf | 9 --------- patterns/vsi-extension/variables.tf | 5 +++++ patterns/vsi-extension/version.tf | 2 +- patterns/vsi-quickstart/version.tf | 2 +- patterns/vsi/module/config.tf | 10 ---------- patterns/vsi/module/variables.tf | 8 ++++++++ patterns/vsi/module/versions.tf | 2 +- patterns/vsi/versions.tf | 2 +- ssh_key/versions.tf | 2 +- teleport_config/versions.tf | 2 +- tests/resources/slz-vpc/version.tf | 2 +- version.tf | 2 +- 60 files changed, 75 insertions(+), 83 deletions(-) diff --git a/README.md b/README.md index 46345450d..3e4c9df11 100644 --- a/README.md +++ b/README.md @@ -842,7 +842,7 @@ module "cluster_pattern" { | Name | Version | |------|---------| -| [terraform](#requirement\_terraform) | >= 1.3 | +| [terraform](#requirement\_terraform) | >= 1.9.0 | | [ibm](#requirement\_ibm) | >= 1.78.0, < 2.0.0 | | [random](#requirement\_random) | >= 3.4.3, < 4.0.0 | | [time](#requirement\_time) | >= 0.9.1, < 1.0.0 | diff --git a/dynamic_values/config_modules/appid/versions.tf b/dynamic_values/config_modules/appid/versions.tf index 8bd624a4d..25ab63421 100644 --- a/dynamic_values/config_modules/appid/versions.tf +++ b/dynamic_values/config_modules/appid/versions.tf @@ -3,7 +3,7 @@ ############################################################################## terraform { - required_version = ">= 1.3" + required_version = ">= 1.9.0" } ############################################################################## diff --git a/dynamic_values/config_modules/bastion_vsi_list_to_map/versions.tf b/dynamic_values/config_modules/bastion_vsi_list_to_map/versions.tf index 8bd624a4d..25ab63421 100644 --- a/dynamic_values/config_modules/bastion_vsi_list_to_map/versions.tf +++ b/dynamic_values/config_modules/bastion_vsi_list_to_map/versions.tf @@ -3,7 +3,7 @@ ############################################################################## terraform { - required_version = ">= 1.3" + required_version = ">= 1.9.0" } ############################################################################## diff --git a/dynamic_values/config_modules/cluster_worker_pools/versions.tf b/dynamic_values/config_modules/cluster_worker_pools/versions.tf index 8bd624a4d..25ab63421 100644 --- a/dynamic_values/config_modules/cluster_worker_pools/versions.tf +++ b/dynamic_values/config_modules/cluster_worker_pools/versions.tf @@ -3,7 +3,7 @@ ############################################################################## terraform { - required_version = ">= 1.3" + required_version = ">= 1.9.0" } ############################################################################## diff --git a/dynamic_values/config_modules/clusters/versions.tf b/dynamic_values/config_modules/clusters/versions.tf index 8bd624a4d..25ab63421 100644 --- a/dynamic_values/config_modules/clusters/versions.tf +++ b/dynamic_values/config_modules/clusters/versions.tf @@ -3,7 +3,7 @@ ############################################################################## terraform { - required_version = ">= 1.3" + required_version = ">= 1.9.0" } ############################################################################## diff --git a/dynamic_values/config_modules/cos/versions.tf b/dynamic_values/config_modules/cos/versions.tf index 8bd624a4d..25ab63421 100644 --- a/dynamic_values/config_modules/cos/versions.tf +++ b/dynamic_values/config_modules/cos/versions.tf @@ -3,7 +3,7 @@ ############################################################################## terraform { - required_version = ">= 1.3" + required_version = ">= 1.9.0" } ############################################################################## diff --git a/dynamic_values/config_modules/f5/versions.tf b/dynamic_values/config_modules/f5/versions.tf index 8bd624a4d..25ab63421 100644 --- a/dynamic_values/config_modules/f5/versions.tf +++ b/dynamic_values/config_modules/f5/versions.tf @@ -3,7 +3,7 @@ ############################################################################## terraform { - required_version = ">= 1.3" + required_version = ">= 1.9.0" } ############################################################################## diff --git a/dynamic_values/config_modules/flow_logs/versions.tf b/dynamic_values/config_modules/flow_logs/versions.tf index 8bd624a4d..25ab63421 100644 --- a/dynamic_values/config_modules/flow_logs/versions.tf +++ b/dynamic_values/config_modules/flow_logs/versions.tf @@ -3,7 +3,7 @@ ############################################################################## terraform { - required_version = ">= 1.3" + required_version = ">= 1.9.0" } ############################################################################## diff --git a/dynamic_values/config_modules/get_subnets/versions.tf b/dynamic_values/config_modules/get_subnets/versions.tf index 8bd624a4d..25ab63421 100644 --- a/dynamic_values/config_modules/get_subnets/versions.tf +++ b/dynamic_values/config_modules/get_subnets/versions.tf @@ -3,7 +3,7 @@ ############################################################################## terraform { - required_version = ">= 1.3" + required_version = ">= 1.9.0" } ############################################################################## diff --git a/dynamic_values/config_modules/list_to_map/versions.tf b/dynamic_values/config_modules/list_to_map/versions.tf index 8bd624a4d..25ab63421 100644 --- a/dynamic_values/config_modules/list_to_map/versions.tf +++ b/dynamic_values/config_modules/list_to_map/versions.tf @@ -3,7 +3,7 @@ ############################################################################## terraform { - required_version = ">= 1.3" + required_version = ">= 1.9.0" } ############################################################################## diff --git a/dynamic_values/config_modules/list_to_map_value/versions.tf b/dynamic_values/config_modules/list_to_map_value/versions.tf index 8bd624a4d..25ab63421 100644 --- a/dynamic_values/config_modules/list_to_map_value/versions.tf +++ b/dynamic_values/config_modules/list_to_map_value/versions.tf @@ -3,7 +3,7 @@ ############################################################################## terraform { - required_version = ">= 1.3" + required_version = ">= 1.9.0" } ############################################################################## diff --git a/dynamic_values/config_modules/nested_list_to_map_and_merge/versions.tf b/dynamic_values/config_modules/nested_list_to_map_and_merge/versions.tf index 8bd624a4d..25ab63421 100644 --- a/dynamic_values/config_modules/nested_list_to_map_and_merge/versions.tf +++ b/dynamic_values/config_modules/nested_list_to_map_and_merge/versions.tf @@ -3,7 +3,7 @@ ############################################################################## terraform { - required_version = ">= 1.3" + required_version = ">= 1.9.0" } ############################################################################## diff --git a/dynamic_values/config_modules/service_authorizations/versions.tf b/dynamic_values/config_modules/service_authorizations/versions.tf index 8bd624a4d..25ab63421 100644 --- a/dynamic_values/config_modules/service_authorizations/versions.tf +++ b/dynamic_values/config_modules/service_authorizations/versions.tf @@ -3,7 +3,7 @@ ############################################################################## terraform { - required_version = ">= 1.3" + required_version = ">= 1.9.0" } ############################################################################## diff --git a/dynamic_values/config_modules/vpe/versions.tf b/dynamic_values/config_modules/vpe/versions.tf index 8bd624a4d..25ab63421 100644 --- a/dynamic_values/config_modules/vpe/versions.tf +++ b/dynamic_values/config_modules/vpe/versions.tf @@ -3,7 +3,7 @@ ############################################################################## terraform { - required_version = ">= 1.3" + required_version = ">= 1.9.0" } ############################################################################## diff --git a/dynamic_values/config_modules/vpn/versions.tf b/dynamic_values/config_modules/vpn/versions.tf index 8bd624a4d..25ab63421 100644 --- a/dynamic_values/config_modules/vpn/versions.tf +++ b/dynamic_values/config_modules/vpn/versions.tf @@ -3,7 +3,7 @@ ############################################################################## terraform { - required_version = ">= 1.3" + required_version = ">= 1.9.0" } ############################################################################## diff --git a/dynamic_values/config_modules/vsi/versions.tf b/dynamic_values/config_modules/vsi/versions.tf index 8bd624a4d..25ab63421 100644 --- a/dynamic_values/config_modules/vsi/versions.tf +++ b/dynamic_values/config_modules/vsi/versions.tf @@ -3,7 +3,7 @@ ############################################################################## terraform { - required_version = ">= 1.3" + required_version = ">= 1.9.0" } ############################################################################## diff --git a/dynamic_values/versions.tf b/dynamic_values/versions.tf index 8bd624a4d..25ab63421 100644 --- a/dynamic_values/versions.tf +++ b/dynamic_values/versions.tf @@ -3,7 +3,7 @@ ############################################################################## terraform { - required_version = ">= 1.3" + required_version = ">= 1.9.0" } ############################################################################## diff --git a/examples/one-vpc-one-vsi/version.tf b/examples/one-vpc-one-vsi/version.tf index e819ac61a..cf2b5600a 100644 --- a/examples/one-vpc-one-vsi/version.tf +++ b/examples/one-vpc-one-vsi/version.tf @@ -1,5 +1,5 @@ terraform { - required_version = ">= 1.3" + required_version = ">= 1.9.0" required_providers { ibm = { source = "IBM-Cloud/ibm" diff --git a/examples/override-example/version.tf b/examples/override-example/version.tf index e819ac61a..cf2b5600a 100644 --- a/examples/override-example/version.tf +++ b/examples/override-example/version.tf @@ -1,5 +1,5 @@ terraform { - required_version = ">= 1.3" + required_version = ">= 1.9.0" required_providers { ibm = { source = "IBM-Cloud/ibm" diff --git a/f5_config/versions.tf b/f5_config/versions.tf index 8bd624a4d..25ab63421 100644 --- a/f5_config/versions.tf +++ b/f5_config/versions.tf @@ -3,7 +3,7 @@ ############################################################################## terraform { - required_version = ">= 1.3" + required_version = ">= 1.9.0" } ############################################################################## diff --git a/kms/dynamic_values/versions.tf b/kms/dynamic_values/versions.tf index 8bd624a4d..25ab63421 100644 --- a/kms/dynamic_values/versions.tf +++ b/kms/dynamic_values/versions.tf @@ -3,7 +3,7 @@ ############################################################################## terraform { - required_version = ">= 1.3" + required_version = ">= 1.9.0" } ############################################################################## diff --git a/kms/versions.tf b/kms/versions.tf index a632ab835..930d1e4ba 100644 --- a/kms/versions.tf +++ b/kms/versions.tf @@ -3,13 +3,13 @@ ############################################################################## terraform { + required_version = ">= 1.9.0" required_providers { ibm = { source = "IBM-Cloud/ibm" version = ">= 1.60.0, < 2.0.0" } } - required_version = ">= 1.3" } ############################################################################## diff --git a/patterns/dynamic_values/config_modules/acl_rules/versions.tf b/patterns/dynamic_values/config_modules/acl_rules/versions.tf index 8bd624a4d..25ab63421 100644 --- a/patterns/dynamic_values/config_modules/acl_rules/versions.tf +++ b/patterns/dynamic_values/config_modules/acl_rules/versions.tf @@ -3,7 +3,7 @@ ############################################################################## terraform { - required_version = ">= 1.3" + required_version = ">= 1.9.0" } ############################################################################## diff --git a/patterns/dynamic_values/config_modules/bastion_gateways/versions.tf b/patterns/dynamic_values/config_modules/bastion_gateways/versions.tf index 8bd624a4d..25ab63421 100644 --- a/patterns/dynamic_values/config_modules/bastion_gateways/versions.tf +++ b/patterns/dynamic_values/config_modules/bastion_gateways/versions.tf @@ -3,7 +3,7 @@ ############################################################################## terraform { - required_version = ">= 1.3" + required_version = ">= 1.9.0" } ############################################################################## diff --git a/patterns/dynamic_values/config_modules/bastion_vsi/versions.tf b/patterns/dynamic_values/config_modules/bastion_vsi/versions.tf index 8bd624a4d..25ab63421 100644 --- a/patterns/dynamic_values/config_modules/bastion_vsi/versions.tf +++ b/patterns/dynamic_values/config_modules/bastion_vsi/versions.tf @@ -3,7 +3,7 @@ ############################################################################## terraform { - required_version = ">= 1.3" + required_version = ">= 1.9.0" } ############################################################################## diff --git a/patterns/dynamic_values/config_modules/bastion_zone_list/versions.tf b/patterns/dynamic_values/config_modules/bastion_zone_list/versions.tf index 8bd624a4d..25ab63421 100644 --- a/patterns/dynamic_values/config_modules/bastion_zone_list/versions.tf +++ b/patterns/dynamic_values/config_modules/bastion_zone_list/versions.tf @@ -3,7 +3,7 @@ ############################################################################## terraform { - required_version = ">= 1.3" + required_version = ">= 1.9.0" } ############################################################################## diff --git a/patterns/dynamic_values/config_modules/cloud_object_storage/versions.tf b/patterns/dynamic_values/config_modules/cloud_object_storage/versions.tf index 8bd624a4d..25ab63421 100644 --- a/patterns/dynamic_values/config_modules/cloud_object_storage/versions.tf +++ b/patterns/dynamic_values/config_modules/cloud_object_storage/versions.tf @@ -3,7 +3,7 @@ ############################################################################## terraform { - required_version = ">= 1.3" + required_version = ">= 1.9.0" } ############################################################################## diff --git a/patterns/dynamic_values/config_modules/default_security_group_rules/versions.tf b/patterns/dynamic_values/config_modules/default_security_group_rules/versions.tf index 8bd624a4d..25ab63421 100644 --- a/patterns/dynamic_values/config_modules/default_security_group_rules/versions.tf +++ b/patterns/dynamic_values/config_modules/default_security_group_rules/versions.tf @@ -3,7 +3,7 @@ ############################################################################## terraform { - required_version = ">= 1.3" + required_version = ">= 1.9.0" } ############################################################################## diff --git a/patterns/dynamic_values/config_modules/f5_deployments/versions.tf b/patterns/dynamic_values/config_modules/f5_deployments/versions.tf index 8bd624a4d..25ab63421 100644 --- a/patterns/dynamic_values/config_modules/f5_deployments/versions.tf +++ b/patterns/dynamic_values/config_modules/f5_deployments/versions.tf @@ -3,7 +3,7 @@ ############################################################################## terraform { - required_version = ">= 1.3" + required_version = ">= 1.9.0" } ############################################################################## diff --git a/patterns/dynamic_values/config_modules/f5_security_group_rules/versions.tf b/patterns/dynamic_values/config_modules/f5_security_group_rules/versions.tf index 8bd624a4d..25ab63421 100644 --- a/patterns/dynamic_values/config_modules/f5_security_group_rules/versions.tf +++ b/patterns/dynamic_values/config_modules/f5_security_group_rules/versions.tf @@ -3,7 +3,7 @@ ############################################################################## terraform { - required_version = ">= 1.3" + required_version = ">= 1.9.0" } ############################################################################## diff --git a/patterns/dynamic_values/config_modules/f5_tiers/versions.tf b/patterns/dynamic_values/config_modules/f5_tiers/versions.tf index 8bd624a4d..25ab63421 100644 --- a/patterns/dynamic_values/config_modules/f5_tiers/versions.tf +++ b/patterns/dynamic_values/config_modules/f5_tiers/versions.tf @@ -3,7 +3,7 @@ ############################################################################## terraform { - required_version = ">= 1.3" + required_version = ">= 1.9.0" } ############################################################################## diff --git a/patterns/dynamic_values/config_modules/key_management/versions.tf b/patterns/dynamic_values/config_modules/key_management/versions.tf index 8bd624a4d..25ab63421 100644 --- a/patterns/dynamic_values/config_modules/key_management/versions.tf +++ b/patterns/dynamic_values/config_modules/key_management/versions.tf @@ -3,7 +3,7 @@ ############################################################################## terraform { - required_version = ">= 1.3" + required_version = ">= 1.9.0" } ############################################################################## diff --git a/patterns/dynamic_values/config_modules/network_acls/versions.tf b/patterns/dynamic_values/config_modules/network_acls/versions.tf index 8bd624a4d..25ab63421 100644 --- a/patterns/dynamic_values/config_modules/network_acls/versions.tf +++ b/patterns/dynamic_values/config_modules/network_acls/versions.tf @@ -3,7 +3,7 @@ ############################################################################## terraform { - required_version = ">= 1.3" + required_version = ">= 1.9.0" } ############################################################################## diff --git a/patterns/dynamic_values/config_modules/resource_groups/versions.tf b/patterns/dynamic_values/config_modules/resource_groups/versions.tf index 8bd624a4d..25ab63421 100644 --- a/patterns/dynamic_values/config_modules/resource_groups/versions.tf +++ b/patterns/dynamic_values/config_modules/resource_groups/versions.tf @@ -3,7 +3,7 @@ ############################################################################## terraform { - required_version = ">= 1.3" + required_version = ">= 1.9.0" } ############################################################################## diff --git a/patterns/dynamic_values/config_modules/security_groups/versions.tf b/patterns/dynamic_values/config_modules/security_groups/versions.tf index 8bd624a4d..25ab63421 100644 --- a/patterns/dynamic_values/config_modules/security_groups/versions.tf +++ b/patterns/dynamic_values/config_modules/security_groups/versions.tf @@ -3,7 +3,7 @@ ############################################################################## terraform { - required_version = ">= 1.3" + required_version = ">= 1.9.0" } ############################################################################## diff --git a/patterns/dynamic_values/config_modules/subnet_cidr/versions.tf b/patterns/dynamic_values/config_modules/subnet_cidr/versions.tf index 8bd624a4d..25ab63421 100644 --- a/patterns/dynamic_values/config_modules/subnet_cidr/versions.tf +++ b/patterns/dynamic_values/config_modules/subnet_cidr/versions.tf @@ -3,7 +3,7 @@ ############################################################################## terraform { - required_version = ">= 1.3" + required_version = ">= 1.9.0" } ############################################################################## diff --git a/patterns/dynamic_values/config_modules/vpc/versions.tf b/patterns/dynamic_values/config_modules/vpc/versions.tf index 8bd624a4d..25ab63421 100644 --- a/patterns/dynamic_values/config_modules/vpc/versions.tf +++ b/patterns/dynamic_values/config_modules/vpc/versions.tf @@ -3,7 +3,7 @@ ############################################################################## terraform { - required_version = ">= 1.3" + required_version = ">= 1.9.0" } ############################################################################## diff --git a/patterns/dynamic_values/config_modules/vpc_address_prefixes/versions.tf b/patterns/dynamic_values/config_modules/vpc_address_prefixes/versions.tf index 8bd624a4d..25ab63421 100644 --- a/patterns/dynamic_values/config_modules/vpc_address_prefixes/versions.tf +++ b/patterns/dynamic_values/config_modules/vpc_address_prefixes/versions.tf @@ -3,7 +3,7 @@ ############################################################################## terraform { - required_version = ">= 1.3" + required_version = ">= 1.9.0" } ############################################################################## diff --git a/patterns/dynamic_values/config_modules/vpc_subnet_tiers/versions.tf b/patterns/dynamic_values/config_modules/vpc_subnet_tiers/versions.tf index 8bd624a4d..25ab63421 100644 --- a/patterns/dynamic_values/config_modules/vpc_subnet_tiers/versions.tf +++ b/patterns/dynamic_values/config_modules/vpc_subnet_tiers/versions.tf @@ -3,7 +3,7 @@ ############################################################################## terraform { - required_version = ">= 1.3" + required_version = ">= 1.9.0" } ############################################################################## diff --git a/patterns/dynamic_values/versions.tf b/patterns/dynamic_values/versions.tf index 8bd624a4d..25ab63421 100644 --- a/patterns/dynamic_values/versions.tf +++ b/patterns/dynamic_values/versions.tf @@ -3,7 +3,7 @@ ############################################################################## terraform { - required_version = ">= 1.3" + required_version = ">= 1.9.0" } ############################################################################## diff --git a/patterns/mixed/config.tf b/patterns/mixed/config.tf index 31c02ab9e..0ae720aea 100644 --- a/patterns/mixed/config.tf +++ b/patterns/mixed/config.tf @@ -45,16 +45,6 @@ locals { } override_type = var.override_json_string == "" ? "override" : "override_json_string" - ############################################################################## - # VALIDATION FOR SSH_KEY - ############################################################################## - - override_validation = (var.override == false && length(var.override_json_string) == 0) ? true : false - sshkey_var_validation = (var.ssh_public_key == null && var.existing_ssh_key_name == null) ? true : false - - # tflint-ignore: terraform_unused_declarations - validate_ssh = local.override_validation && local.sshkey_var_validation ? tobool("Invalid input: both ssh_public_key and existing_ssh_key_name variables cannot be null together. Please provide a value for at least one of them.") : true - ############################################################################## # Default SSH key ############################################################################## diff --git a/patterns/mixed/variables.tf b/patterns/mixed/variables.tf index 094c6a2a8..2ddd33856 100644 --- a/patterns/mixed/variables.tf +++ b/patterns/mixed/variables.tf @@ -589,6 +589,14 @@ variable "override_json_string" { description = "Override default values with a JSON object. Any JSON other than an empty string overrides other configuration changes. You can use the [landing zone configuration tool](https://terraform-ibm-modules.github.io/landing-zone-config-tool/#/home) to create the JSON." type = string default = "" + + validation { + condition = !( + var.override == false && length(var.override_json_string) == 0 && + var.ssh_public_key == null && var.existing_ssh_key_name == null + ) + error_message = "The ssh_public_key and existing_ssh_key_name cannot both be null when override is false and override_json_string is empty." + } } ############################################################################## diff --git a/patterns/mixed/versions.tf b/patterns/mixed/versions.tf index a5de13ddc..444b582bc 100644 --- a/patterns/mixed/versions.tf +++ b/patterns/mixed/versions.tf @@ -3,7 +3,7 @@ ############################################################################## terraform { - required_version = ">= 1.3" + required_version = ">= 1.9.0" # renovate is set up to keep provider version at the latest for all DA solutions required_providers { ibm = { diff --git a/patterns/roks-quickstart/version.tf b/patterns/roks-quickstart/version.tf index e1556f278..b10f1d642 100644 --- a/patterns/roks-quickstart/version.tf +++ b/patterns/roks-quickstart/version.tf @@ -1,5 +1,5 @@ terraform { - required_version = ">= 1.3" + required_version = ">= 1.9.0" required_providers { # renovate is set up to keep provider version at the latest for all DA solutions ibm = { diff --git a/patterns/roks/module/versions.tf b/patterns/roks/module/versions.tf index af36e02a1..ae952c001 100644 --- a/patterns/roks/module/versions.tf +++ b/patterns/roks/module/versions.tf @@ -3,7 +3,7 @@ ############################################################################## terraform { - required_version = ">= 1.3" + required_version = ">= 1.9.0" # Pin to the lowest provider version of the range defined in the main module's version.tf to ensure lowest version still works required_providers { # tflint-ignore: terraform_unused_required_providers diff --git a/patterns/roks/versions.tf b/patterns/roks/versions.tf index 7db1c1da1..563e1aebb 100644 --- a/patterns/roks/versions.tf +++ b/patterns/roks/versions.tf @@ -3,7 +3,7 @@ ############################################################################## terraform { - required_version = ">= 1.3" + required_version = ">= 1.9.0" # renovate is set up to keep provider version at the latest for all DA solutions required_providers { ibm = { diff --git a/patterns/vpc/module/version.tf b/patterns/vpc/module/version.tf index af36e02a1..ae952c001 100644 --- a/patterns/vpc/module/version.tf +++ b/patterns/vpc/module/version.tf @@ -3,7 +3,7 @@ ############################################################################## terraform { - required_version = ">= 1.3" + required_version = ">= 1.9.0" # Pin to the lowest provider version of the range defined in the main module's version.tf to ensure lowest version still works required_providers { # tflint-ignore: terraform_unused_required_providers diff --git a/patterns/vpc/version.tf b/patterns/vpc/version.tf index 7db1c1da1..563e1aebb 100644 --- a/patterns/vpc/version.tf +++ b/patterns/vpc/version.tf @@ -3,7 +3,7 @@ ############################################################################## terraform { - required_version = ">= 1.3" + required_version = ">= 1.9.0" # renovate is set up to keep provider version at the latest for all DA solutions required_providers { ibm = { diff --git a/patterns/vsi-extension/config.tf b/patterns/vsi-extension/config.tf index 7e18fb8b5..1d5733c69 100644 --- a/patterns/vsi-extension/config.tf +++ b/patterns/vsi-extension/config.tf @@ -15,15 +15,6 @@ module "default_vsi_sg_rules" { ############################################################################## locals { - ############################################################################## - # VALIDATION FOR SSH_KEY - ############################################################################## - - sshkey_var_validation = (var.ssh_public_key == null && var.existing_ssh_key_name == null) ? true : false - - # tflint-ignore: terraform_unused_declarations - validate_ssh = local.sshkey_var_validation ? tobool("Invalid input: both ssh_public_key and existing_ssh_key_name variables cannot be null together. Please provide a value for at least one of them.") : true - ############################################################################## # Default SSH key ############################################################################## diff --git a/patterns/vsi-extension/variables.tf b/patterns/vsi-extension/variables.tf index acccf9781..5e5cb486b 100644 --- a/patterns/vsi-extension/variables.tf +++ b/patterns/vsi-extension/variables.tf @@ -36,6 +36,11 @@ variable "ssh_public_key" { error_message = "The public SSH key must be a valid SSH RSA public key." condition = var.ssh_public_key == null || can(regex("ssh-rsa AAAA[0-9A-Za-z+/]+[=]{0,3} ?([^@]+@[^@]+)?", var.ssh_public_key)) } + + validation { + condition = var.ssh_public_key != null || var.existing_ssh_key_name != null + error_message = "Invalid input: both ssh_public_key and existing_ssh_key_name variables cannot be null together. Please provide a value for at least one of them." + } } variable "resource_tags" { diff --git a/patterns/vsi-extension/version.tf b/patterns/vsi-extension/version.tf index 7db1c1da1..563e1aebb 100644 --- a/patterns/vsi-extension/version.tf +++ b/patterns/vsi-extension/version.tf @@ -3,7 +3,7 @@ ############################################################################## terraform { - required_version = ">= 1.3" + required_version = ">= 1.9.0" # renovate is set up to keep provider version at the latest for all DA solutions required_providers { ibm = { diff --git a/patterns/vsi-quickstart/version.tf b/patterns/vsi-quickstart/version.tf index e1556f278..b10f1d642 100644 --- a/patterns/vsi-quickstart/version.tf +++ b/patterns/vsi-quickstart/version.tf @@ -1,5 +1,5 @@ terraform { - required_version = ">= 1.3" + required_version = ">= 1.9.0" required_providers { # renovate is set up to keep provider version at the latest for all DA solutions ibm = { diff --git a/patterns/vsi/module/config.tf b/patterns/vsi/module/config.tf index f8a7468dd..92222580f 100644 --- a/patterns/vsi/module/config.tf +++ b/patterns/vsi/module/config.tf @@ -50,16 +50,6 @@ locals { } override_type = var.override_json_string == "" ? "override" : "override_json_string" - ############################################################################## - # VALIDATION FOR SSH_KEY - ############################################################################## - - override_validation = (var.override == false && length(var.override_json_string) == 0) ? true : false - sshkey_var_validation = (var.ssh_public_key == null && var.existing_ssh_key_name == null) ? true : false - - # tflint-ignore: terraform_unused_declarations - validate_ssh = local.override_validation && local.sshkey_var_validation ? tobool("Invalid input: both ssh_public_key and existing_ssh_key_name variables cannot be null together. Please provide a value for at least one of them.") : true - ############################################################################## # Default SSH key ############################################################################## diff --git a/patterns/vsi/module/variables.tf b/patterns/vsi/module/variables.tf index 7991b56e6..4e360bedd 100644 --- a/patterns/vsi/module/variables.tf +++ b/patterns/vsi/module/variables.tf @@ -528,6 +528,14 @@ variable "override_json_string" { description = "Override default values with a JSON object. Any JSON other than an empty string overrides other configuration changes. You can use the [landing zone configuration tool](https://terraform-ibm-modules.github.io/landing-zone-config-tool/#/home) to create the JSON." type = string default = "" + + validation { + condition = !( + var.override == false && length(var.override_json_string) == 0 && + var.ssh_public_key == null && var.existing_ssh_key_name == null + ) + error_message = "The ssh_public_key and existing_ssh_key_name cannot both be null when override is false and override_json_string is empty." + } } variable "override_json_path" { diff --git a/patterns/vsi/module/versions.tf b/patterns/vsi/module/versions.tf index 2a94097a7..ae952c001 100644 --- a/patterns/vsi/module/versions.tf +++ b/patterns/vsi/module/versions.tf @@ -3,7 +3,7 @@ ############################################################################## terraform { - required_version = ">= 1.9" + required_version = ">= 1.9.0" # Pin to the lowest provider version of the range defined in the main module's version.tf to ensure lowest version still works required_providers { # tflint-ignore: terraform_unused_required_providers diff --git a/patterns/vsi/versions.tf b/patterns/vsi/versions.tf index 83a8ebc1f..563e1aebb 100644 --- a/patterns/vsi/versions.tf +++ b/patterns/vsi/versions.tf @@ -3,7 +3,7 @@ ############################################################################## terraform { - required_version = ">= 1.9" + required_version = ">= 1.9.0" # renovate is set up to keep provider version at the latest for all DA solutions required_providers { ibm = { diff --git a/ssh_key/versions.tf b/ssh_key/versions.tf index 1115d564f..930d1e4ba 100644 --- a/ssh_key/versions.tf +++ b/ssh_key/versions.tf @@ -3,7 +3,7 @@ ############################################################################## terraform { - required_version = ">= 1.3" + required_version = ">= 1.9.0" required_providers { ibm = { source = "IBM-Cloud/ibm" diff --git a/teleport_config/versions.tf b/teleport_config/versions.tf index 8bd624a4d..25ab63421 100644 --- a/teleport_config/versions.tf +++ b/teleport_config/versions.tf @@ -3,7 +3,7 @@ ############################################################################## terraform { - required_version = ">= 1.3" + required_version = ">= 1.9.0" } ############################################################################## diff --git a/tests/resources/slz-vpc/version.tf b/tests/resources/slz-vpc/version.tf index 050d0fcc9..3e2849be1 100644 --- a/tests/resources/slz-vpc/version.tf +++ b/tests/resources/slz-vpc/version.tf @@ -1,5 +1,5 @@ terraform { - required_version = ">= 1.0.0" + required_version = ">= 1.9.0" required_providers { ibm = { source = "ibm-cloud/ibm" diff --git a/version.tf b/version.tf index 3007ffc76..3fac0c95b 100644 --- a/version.tf +++ b/version.tf @@ -3,7 +3,7 @@ ############################################################################## terraform { - required_version = ">= 1.3" + required_version = ">= 1.9.0" # Use "greater than or equal to" range for root level modules required_providers { ibm = {