diff --git a/common-dev-assets b/common-dev-assets index 6a351e62a..fa67327af 160000 --- a/common-dev-assets +++ b/common-dev-assets @@ -1 +1 @@ -Subproject commit 6a351e62a04ea8bf074d4933c86cd28671154d3b +Subproject commit fa67327af1a57a7a9094adb0432e44b1478f25b0 diff --git a/main.tf b/main.tf index 6a14d5ffc..38a95e8f2 100644 --- a/main.tf +++ b/main.tf @@ -10,6 +10,8 @@ locals { default_ocp_version = "${data.ibm_container_cluster_versions.cluster_versions.default_openshift_version}_openshift" ocp_version = var.ocp_version == null || var.ocp_version == "default" ? local.default_ocp_version : "${var.ocp_version}_openshift" + valid_versions_list = data.ibm_container_cluster_versions.cluster_versions.valid_openshift_versions + valid_ocp_versions = [for version in local.valid_versions_list : regex("^([0-9]+\\.[0-9]+)", version)[0]] cos_name = var.use_existing_cos == true || (var.use_existing_cos == false && var.cos_name != null) ? var.cos_name : "${var.cluster_name}_cos" cos_plan = "standard" diff --git a/variables.tf b/variables.tf index 4827b952f..3d300c264 100644 --- a/variables.tf +++ b/variables.tf @@ -102,13 +102,13 @@ variable "worker_pools" { } validation { - condition = alltrue([ + condition = (contains(local.valid_ocp_versions, local.ocp_version_num)) && alltrue([ for wp in var.worker_pools : (local.ocp_version_num == "4.14" && wp.operating_system == local.os_rhel) || (local.ocp_version_num == "4.15" && contains([local.os_rhel, local.os_rhcos], wp.operating_system)) || (contains(["4.16", "4.17"], local.ocp_version_num) && contains([local.os_rhel9, local.os_rhel, local.os_rhcos], wp.operating_system)) || - (local.ocp_version_num == "4.18" && contains([local.os_rhel9, local.os_rhcos], wp.operating_system)) || - (local.ocp_version_num == "4.19" && contains([local.os_rhel9, local.os_rhcos], wp.operating_system)) + (contains(["4.18", "4.19", "4.20"], local.ocp_version_num) && contains([local.os_rhel9, local.os_rhcos], wp.operating_system)) || + (tonumber(local.ocp_version_num) >= 4.21 && wp.operating_system == local.os_rhcos) ]) error_message = "Invalid operating system for the given OCP version. Ensure the OS is compatible with the OCP version. Supported compatible OCP version and OS are v4.14: (REDHAT_8_64); v4.15: (REDHAT_8_64, RHCOS) ; v4.16 and v4.17: (REDHAT_8_64, RHCOS, RHEL_9_64); v4.18: (RHCOS, RHEL_9_64); v4.19: (RHEL_9_64, RHCOS)" }