From b1cb8d75ccc2244f9ae988bcb617541cb3730a23 Mon Sep 17 00:00:00 2001 From: Prateek-Sharma13 Date: Fri, 11 Jul 2025 16:47:24 +0530 Subject: [PATCH 1/3] fix: updated worker node validation for ocp-ai --- README.md | 1 + main.tf | 12 +++++------- variables.tf | 4 ++-- 3 files changed, 8 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index c6510689..1b11ad15 100644 --- a/README.md +++ b/README.md @@ -276,6 +276,7 @@ Optionally, you need the following permissions to attach Access Management tags | [ibm_container_addons.existing_addons](https://registry.terraform.io/providers/ibm-cloud/ibm/latest/docs/data-sources/container_addons) | data source | | [ibm_container_cluster_config.cluster_config](https://registry.terraform.io/providers/ibm-cloud/ibm/latest/docs/data-sources/container_cluster_config) | data source | | [ibm_container_cluster_versions.cluster_versions](https://registry.terraform.io/providers/ibm-cloud/ibm/latest/docs/data-sources/container_cluster_versions) | data source | +| [ibm_container_vpc_cluster.cluster](https://registry.terraform.io/providers/ibm-cloud/ibm/latest/docs/data-sources/container_vpc_cluster) | data source | | [ibm_container_vpc_worker_pool.all_pools](https://registry.terraform.io/providers/ibm-cloud/ibm/latest/docs/data-sources/container_vpc_worker_pool) | data source | | [ibm_iam_account_settings.iam_account_settings](https://registry.terraform.io/providers/ibm-cloud/ibm/latest/docs/data-sources/iam_account_settings) | data source | | [ibm_iam_auth_token.reset_api_key_tokendata](https://registry.terraform.io/providers/ibm-cloud/ibm/latest/docs/data-sources/iam_auth_token) | data source | diff --git a/main.tf b/main.tf index f9cc6088..2d2f845f 100644 --- a/main.tf +++ b/main.tf @@ -43,13 +43,6 @@ locals { # Local block to verify validations for OCP AI Addon. locals { - # get the total workers per pool - workers_per_pool = { - for pool in var.worker_pools : - pool.pool_name => ( - pool.vpc_subnets != null ? length(pool.vpc_subnets) * pool.workers_per_zone : length(var.vpc_subnets[pool.subnet_prefix]) * pool.workers_per_zone - ) - } # retrieve worker specs (CPU & RAM) for all worker pools worker_specs = { @@ -103,6 +96,11 @@ data "ibm_container_cluster_versions" "cluster_versions" { resource_group_id = var.resource_group_id } +# To get the workers information required for OCP AI validation +data "ibm_container_vpc_cluster" "cluster" { + name = var.cluster_name +} + module "cos_instance" { count = var.enable_registry_storage && !var.use_existing_cos ? 1 : 0 diff --git a/variables.tf b/variables.tf index 5314dcb0..d610b788 100644 --- a/variables.tf +++ b/variables.tf @@ -368,8 +368,8 @@ variable "addons" { } validation { - condition = (lookup(var.addons, "openshift-ai", null) != null ? lookup(var.addons["openshift-ai"], "version", null) == null : true) || alltrue([for workers in values(local.workers_per_pool) : workers >= 2]) - error_message = "OCP AI add-on requires at least 2 worker nodes in each worker pool." + condition = (lookup(var.addons, "openshift-ai", null) != null ? lookup(var.addons["openshift-ai"], "version", null) == null : true) || length(data.ibm_container_vpc_cluster.cluster.workers) >= 2 + error_message = "OCP AI add-on requires at least 2 worker nodes in the cluster." } validation { From 1a6ca487a4f633d381f5d9524a36d48f005ca08e Mon Sep 17 00:00:00 2001 From: Prateek-Sharma13 Date: Fri, 11 Jul 2025 23:12:07 +0530 Subject: [PATCH 2/3] fix: added dependency --- main.tf | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/main.tf b/main.tf index 2d2f845f..cecd5bfe 100644 --- a/main.tf +++ b/main.tf @@ -96,11 +96,6 @@ data "ibm_container_cluster_versions" "cluster_versions" { resource_group_id = var.resource_group_id } -# To get the workers information required for OCP AI validation -data "ibm_container_vpc_cluster" "cluster" { - name = var.cluster_name -} - module "cos_instance" { count = var.enable_registry_storage && !var.use_existing_cos ? 1 : 0 @@ -476,6 +471,12 @@ resource "null_resource" "confirm_network_healthy" { } } +# To get the workers information required for OCP AI validation +data "ibm_container_vpc_cluster" "cluster" { + depends_on = [ibm_container_vpc_cluster.cluster, ibm_container_vpc_cluster.autoscaling_cluster, ibm_container_vpc_worker_pool.pool, ibm_container_vpc_worker_pool.autoscaling_pool] + name = var.cluster_name +} + ############################################################################## # Enable or Disable OCP Console Patch ############################################################################## From 174371f596fe9df4623c5ec05c671118e7daaac1 Mon Sep 17 00:00:00 2001 From: Prateek-Sharma13 Date: Mon, 14 Jul 2025 14:32:02 +0530 Subject: [PATCH 3/3] fix: removed validation as already validated by provider --- README.md | 1 - main.tf | 6 ------ variables.tf | 5 ----- 3 files changed, 12 deletions(-) diff --git a/README.md b/README.md index 75b739c1..592e04ea 100644 --- a/README.md +++ b/README.md @@ -276,7 +276,6 @@ Optionally, you need the following permissions to attach Access Management tags | [ibm_container_addons.existing_addons](https://registry.terraform.io/providers/ibm-cloud/ibm/latest/docs/data-sources/container_addons) | data source | | [ibm_container_cluster_config.cluster_config](https://registry.terraform.io/providers/ibm-cloud/ibm/latest/docs/data-sources/container_cluster_config) | data source | | [ibm_container_cluster_versions.cluster_versions](https://registry.terraform.io/providers/ibm-cloud/ibm/latest/docs/data-sources/container_cluster_versions) | data source | -| [ibm_container_vpc_cluster.cluster](https://registry.terraform.io/providers/ibm-cloud/ibm/latest/docs/data-sources/container_vpc_cluster) | data source | | [ibm_container_vpc_worker_pool.all_pools](https://registry.terraform.io/providers/ibm-cloud/ibm/latest/docs/data-sources/container_vpc_worker_pool) | data source | | [ibm_iam_account_settings.iam_account_settings](https://registry.terraform.io/providers/ibm-cloud/ibm/latest/docs/data-sources/iam_account_settings) | data source | | [ibm_iam_auth_token.reset_api_key_tokendata](https://registry.terraform.io/providers/ibm-cloud/ibm/latest/docs/data-sources/iam_auth_token) | data source | diff --git a/main.tf b/main.tf index 07734f14..79ecf216 100644 --- a/main.tf +++ b/main.tf @@ -471,12 +471,6 @@ resource "null_resource" "confirm_network_healthy" { } } -# To get the workers information required for OCP AI validation -data "ibm_container_vpc_cluster" "cluster" { - depends_on = [ibm_container_vpc_cluster.cluster, ibm_container_vpc_cluster.autoscaling_cluster, ibm_container_vpc_worker_pool.pool, ibm_container_vpc_worker_pool.autoscaling_pool] - name = var.cluster_name -} - ############################################################################## # Enable or Disable OCP Console Patch ############################################################################## diff --git a/variables.tf b/variables.tf index d610b788..711a531b 100644 --- a/variables.tf +++ b/variables.tf @@ -367,11 +367,6 @@ variable "addons" { error_message = "OCP AI add-on requires OCP version >= 4.16.0" } - validation { - condition = (lookup(var.addons, "openshift-ai", null) != null ? lookup(var.addons["openshift-ai"], "version", null) == null : true) || length(data.ibm_container_vpc_cluster.cluster.workers) >= 2 - error_message = "OCP AI add-on requires at least 2 worker nodes in the cluster." - } - validation { condition = (lookup(var.addons, "openshift-ai", null) != null ? lookup(var.addons["openshift-ai"], "version", null) == null : true) || alltrue([for spec in values(local.worker_specs) : spec.cpu_count >= 8 && spec.ram_count >= 32]) error_message = "To install OCP AI add-on, all worker nodes in all pools must have at least 8-core CPU and 32GB memory."