diff --git a/README.md b/README.md
index fc412012..834d0341 100644
--- a/README.md
+++ b/README.md
@@ -254,7 +254,7 @@ Optionally, you need the following permissions to attach Access Management tags
| Name | Version |
|------|---------|
-| [terraform](#requirement\_terraform) | >= 1.3.0 |
+| [terraform](#requirement\_terraform) | >= 1.9.0 |
| [ibm](#requirement\_ibm) | >= 1.70.0, < 2.0.0 |
| [kubernetes](#requirement\_kubernetes) | >= 2.16.1, < 3.0.0 |
| [null](#requirement\_null) | >= 3.2.1, < 4.0.0 |
@@ -319,7 +319,7 @@ Optionally, you need the following permissions to attach Access Management tags
| [disable\_public\_endpoint](#input\_disable\_public\_endpoint) | Whether access to the public service endpoint is disabled when the cluster is created. Does not affect existing clusters. You can't disable a public endpoint on an existing cluster, so you can't convert a public cluster to a private cluster. To change a public endpoint to private, create another cluster with this input set to `true`. | `bool` | `false` | no |
| [enable\_ocp\_console](#input\_enable\_ocp\_console) | Flag to specify whether to enable or disable the OpenShift console. | `bool` | `true` | no |
| [enable\_registry\_storage](#input\_enable\_registry\_storage) | Set to `true` to enable IBM Cloud Object Storage for the Red Hat OpenShift internal image registry. Set to `false` only for new cluster deployments in an account that is allowlisted for this feature. | `bool` | `true` | no |
-| [existing\_cos\_id](#input\_existing\_cos\_id) | The COS id of an already existing COS instance to use for OpenShift internal registry storage. Only required if 'enable\_registry\_storage' and 'use\_existing\_cos' are true | `string` | `null` | no |
+| [existing\_cos\_id](#input\_existing\_cos\_id) | The COS id of an already existing COS instance to use for OpenShift internal registry storage. Only required if 'enable\_registry\_storage' and 'use\_existing\_cos' are true. | `string` | `null` | no |
| [force\_delete\_storage](#input\_force\_delete\_storage) | Flag indicating whether or not to delete attached storage when destroying the cluster - Default: false | `bool` | `false` | no |
| [ignore\_worker\_pool\_size\_changes](#input\_ignore\_worker\_pool\_size\_changes) | Enable if using worker autoscaling. Stops Terraform managing worker count | `bool` | `false` | no |
| [import\_default\_worker\_pool\_on\_create](#input\_import\_default\_worker\_pool\_on\_create) | (Advanced users) Whether to handle the default worker pool as a stand-alone ibm\_container\_vpc\_worker\_pool resource on cluster creation. Only set to false if you understand the implications of managing the default worker pool as part of the cluster resource. Set to true to import the default worker pool as a separate resource. Set to false to manage the default worker pool as part of the cluster resource. | `bool` | `true` | no |
diff --git a/examples/add_rules_to_sg/version.tf b/examples/add_rules_to_sg/version.tf
index d3bb3d76..b5a90859 100644
--- a/examples/add_rules_to_sg/version.tf
+++ b/examples/add_rules_to_sg/version.tf
@@ -1,5 +1,5 @@
terraform {
- required_version = ">= 1.3.0"
+ required_version = ">= 1.9.0"
# Ensure that there is always 1 example locked into the lowest provider version of the range defined in the main
# module's version.tf (basic and add_rules_to_sg), and 1 example that will always use the latest provider version (advanced, fscloud and multiple mzr).
diff --git a/examples/advanced/version.tf b/examples/advanced/version.tf
index 676b34ba..a5981bbb 100644
--- a/examples/advanced/version.tf
+++ b/examples/advanced/version.tf
@@ -1,5 +1,5 @@
terraform {
- required_version = ">= 1.3.0"
+ required_version = ">= 1.9.0"
# Ensure that there is always 1 example locked into the lowest provider version of the range defined in the main
# module's version.tf (basic and add_rules_to_sg), and 1 example that will always use the latest provider version (advanced, fscloud and multiple mzr).
diff --git a/examples/basic/version.tf b/examples/basic/version.tf
index 67222ced..b1d8d064 100644
--- a/examples/basic/version.tf
+++ b/examples/basic/version.tf
@@ -1,5 +1,5 @@
terraform {
- required_version = ">=1.3.0"
+ required_version = ">=1.9.0"
# Ensure that there is always 1 example locked into the lowest provider version of the range defined in the main
# module's version.tf (basic and add_rules_to_sg), and 1 example that will always use the latest provider version (advanced, fscloud and multiple mzr).
diff --git a/examples/cross_kms_support/version.tf b/examples/cross_kms_support/version.tf
index cc3f59ce..661f983b 100644
--- a/examples/cross_kms_support/version.tf
+++ b/examples/cross_kms_support/version.tf
@@ -1,5 +1,5 @@
terraform {
- required_version = ">= 1.3.0"
+ required_version = ">= 1.9.0"
# Ensure that there is always 1 example locked into the lowest provider version of the range defined in the main
# module's version.tf (basic and add_rules_to_sg), and 1 example that will always use the latest provider version (advanced, fscloud and multiple mzr).
diff --git a/examples/custom_sg/version.tf b/examples/custom_sg/version.tf
index cc3f59ce..661f983b 100644
--- a/examples/custom_sg/version.tf
+++ b/examples/custom_sg/version.tf
@@ -1,5 +1,5 @@
terraform {
- required_version = ">= 1.3.0"
+ required_version = ">= 1.9.0"
# Ensure that there is always 1 example locked into the lowest provider version of the range defined in the main
# module's version.tf (basic and add_rules_to_sg), and 1 example that will always use the latest provider version (advanced, fscloud and multiple mzr).
diff --git a/examples/fscloud/version.tf b/examples/fscloud/version.tf
index 5da3e0c2..8add13d1 100644
--- a/examples/fscloud/version.tf
+++ b/examples/fscloud/version.tf
@@ -1,5 +1,5 @@
terraform {
- required_version = ">= 1.3.0"
+ required_version = ">= 1.9.0"
# Ensure that there is always 1 example locked into the lowest provider version of the range defined in the main
# module's version.tf (basic and add_rules_to_sg), and 1 example that will always use the latest provider version (advanced, fscloud and multiple mzr).
diff --git a/examples/multiple_mzr_clusters/version.tf b/examples/multiple_mzr_clusters/version.tf
index fbb624a6..bd76dc75 100644
--- a/examples/multiple_mzr_clusters/version.tf
+++ b/examples/multiple_mzr_clusters/version.tf
@@ -1,5 +1,5 @@
terraform {
- required_version = ">= 1.3.0"
+ required_version = ">= 1.9.0"
# Ensure that there is always 1 example locked into the lowest provider version of the range defined in the main
# module's version.tf (basic and add_rules_to_sg), and 1 example that will always use the latest provider version (advanced, fscloud and multiple mzr).
diff --git a/main.tf b/main.tf
index 52389284..41399c8b 100644
--- a/main.tf
+++ b/main.tf
@@ -20,12 +20,6 @@ locals {
# if not enable_registry_storage then set cos to 'null', otherwise use existing or new CRN
cos_instance_crn = var.enable_registry_storage == true ? (var.use_existing_cos != false ? var.existing_cos_id : module.cos_instance[0].cos_instance_id) : null
- # Validation approach based on https://stackoverflow.com/a/66682419
- validate_condition = var.enable_registry_storage == true && var.use_existing_cos == true && var.existing_cos_id == null
- validate_msg = "A value for 'existing_cos_id' variable must be passed when 'use_existing_cos = true'"
- # tflint-ignore: terraform_unused_declarations
- validate_check = regex("^${local.validate_msg}$", (!local.validate_condition ? local.validate_msg : ""))
-
delete_timeout = "2h"
create_timeout = "3h"
update_timeout = "3h"
diff --git a/modules/fscloud/README.md b/modules/fscloud/README.md
index 5e2b416e..27bce4cb 100644
--- a/modules/fscloud/README.md
+++ b/modules/fscloud/README.md
@@ -92,7 +92,7 @@ module "ocp_base_fscloud" {
| Name | Version |
|------|---------|
-| [terraform](#requirement\_terraform) | >= 1.3.0 |
+| [terraform](#requirement\_terraform) | >= 1.9.0 |
| [ibm](#requirement\_ibm) | >= 1.70.0, < 2.0.0 |
| [kubernetes](#requirement\_kubernetes) | >= 2.16.1, < 3.0.0 |
| [null](#requirement\_null) | >= 3.2.1, < 4.0.0 |
diff --git a/modules/fscloud/version.tf b/modules/fscloud/version.tf
index bd4777b5..91cd81e8 100644
--- a/modules/fscloud/version.tf
+++ b/modules/fscloud/version.tf
@@ -2,7 +2,7 @@
# Terraform Version
##############################################################################
terraform {
- required_version = ">= 1.3.0"
+ required_version = ">= 1.9.0"
required_providers {
# The below tflint-ignores are required because although the below providers are not directly required by this module,
# they are required by consuming modules, and if not set here, the top level module calling this module will not be
diff --git a/tests/pr_test.go b/tests/pr_test.go
index 86e6f6b8..2dfd0b5c 100644
--- a/tests/pr_test.go
+++ b/tests/pr_test.go
@@ -137,7 +137,8 @@ func TestFSCloudInSchematic(t *testing.T) {
// If "jp-osa" was the best region selected, default to us-south instead.
// "jp-osa" is currently not allowing hs-crypto be used for encrypting in that region.
- if options.Region == "jp-osa" {
+ // skipping the us-east due to provider issue : https://github.com/IBM-Cloud/terraform-provider-ibm/issues/4843
+ if options.Region == "jp-osa" || options.Region == "us-east" {
options.Region = "us-south"
}
diff --git a/variables.tf b/variables.tf
index 698e84c5..8ee1ea45 100644
--- a/variables.tf
+++ b/variables.tf
@@ -245,8 +245,13 @@ variable "use_existing_cos" {
variable "existing_cos_id" {
type = string
- description = "The COS id of an already existing COS instance to use for OpenShift internal registry storage. Only required if 'enable_registry_storage' and 'use_existing_cos' are true"
+ description = "The COS id of an already existing COS instance to use for OpenShift internal registry storage. Only required if 'enable_registry_storage' and 'use_existing_cos' are true."
default = null
+
+ validation {
+ condition = !(var.enable_registry_storage && var.use_existing_cos && var.existing_cos_id == null)
+ error_message = "A value for 'existing_cos_id' must be provided when 'enable_registry_storage' and 'use_existing_cos' are both set to true."
+ }
}
variable "enable_registry_storage" {
diff --git a/version.tf b/version.tf
index b2f95366..508c104e 100644
--- a/version.tf
+++ b/version.tf
@@ -1,5 +1,5 @@
terraform {
- required_version = ">= 1.3.0"
+ required_version = ">= 1.9.0"
required_providers {
# Use "greater than or equal to" range in modules
ibm = {