From e52ed3f29c6dfb16a3bd33bd7194a9a10db7504f Mon Sep 17 00:00:00 2001 From: aatreyee257 Date: Mon, 4 Aug 2025 22:58:24 +0530 Subject: [PATCH 01/15] DA improvement --- ibm_catalog.json | 11 ++++++----- solutions/fully-configurable/README.md | 11 +---------- 2 files changed, 7 insertions(+), 15 deletions(-) diff --git a/ibm_catalog.json b/ibm_catalog.json index 2e482e6..695e5f5 100644 --- a/ibm_catalog.json +++ b/ibm_catalog.json @@ -22,14 +22,14 @@ "registry" ], "short_description": "Creates or uses an existing IBM Container Registry namespace, configures pull traffic and storage quotas, and supports upgrading the registry plan to Standard.", - "long_description": "This architecture creates or utilizes an existing IBM Container Registry namespace, provides the ability to configure pull traffic limits and storage quotas in megabytes, and allows for upgrading the registry plan to Standard. It ensures efficient management of container image access by regulating data pull volume from the registry and setting storage capacity limits for container images within each registry.", + "long_description": "This architecture creates or utilizes an existing IBM Container Registry namespace, provides the ability to configure pull traffic limits and storage quotas in megabytes, and allows for upgrading the registry plan to Standard. It ensures efficient management of container image access by regulating data pull volume from the registry and setting storage capacity limits for container images within each registry.

ℹ️ This Terraform-based automation is part of a broader suite of IBM-maintained Infrastructure as Code (IaC) assets, each following the naming pattern \"Cloud automation for *servicename*\" and focusing on single IBM Cloud service. These single-service deployable architectures can be used on their own to streamline and automate service deployments through an [IaC approach](https://cloud.ibm.com/docs/secure-enterprise?topic=secure-enterprise-understanding-projects), or assembled together into a broader [automated IaC stack](https://cloud.ibm.com/docs/secure-enterprise?topic=secure-enterprise-config-stack) to automate the deployment of an end-to-end solution architecture.", "offering_docs_url": "https://github.com/terraform-ibm-modules/terraform-ibm-container-registry/main/README.md", "offering_icon_url": "https://raw.githubusercontent.com/terraform-ibm-modules/terraform-ibm-container-registry/main/images/icr_icon.svg", "provider_name": "IBM", "support_details": "This product is in the community registry, as such support is handled through the originated repo. If you experience issues please open an issue in the repository [https://github.com/terraform-ibm-modules/terraform-ibm-container-registry/issues](https://github.com/terraform-ibm-modules/terraform-ibm-container-registry/issues). Please note this product is not supported via the IBM Cloud Support Center.", "features": [ { - "title": "Creates or Uses Existing IBM Container Registry Namespace", + "title": "IBM Container Registry Namespace", "description": "Enables the creation of a new IBM Container Registry namespace or the use of an existing one, allowing users to define isolated environments for managing container images, with the ability to set a retention policy." }, { @@ -65,7 +65,8 @@ "role_crns": [ "crn:v1:bluemix:public:iam::::role:Administrator" ], - "service_name": "all-account-management-services" + "service_name": "all-account-management-services", + "notes": "Administrator access is required for resource group creation and deletion." }, { "role_crns": [ @@ -78,8 +79,8 @@ "architecture": { "features": [ { - "title": "Creates or uses an existing IBM Container Registry namespace, configures pull traffic and storage quotas, and supports upgrading the registry plan to Standard.", - "description": "This architecture creates or utilizes an existing IBM Container Registry namespace, provides the ability to configure pull traffic limits and storage quotas in megabytes, and allows for upgrading the registry plan to Standard. It ensures efficient management of container image access by regulating data pull volume from the registry and setting storage capacity limits for container images within each registry." + "title": " ", + "description": "Configured to use IBM secure by default standards, but can be edited to fit your use case." } ], "diagrams": [ diff --git a/solutions/fully-configurable/README.md b/solutions/fully-configurable/README.md index a1fc9be..a05ff19 100644 --- a/solutions/fully-configurable/README.md +++ b/solutions/fully-configurable/README.md @@ -1,12 +1,3 @@ -# IBM Cloud Container Registry - -This architecture creates or utilizes an existing IBM Container Registry namespace, provides the ability to configure pull traffic limits and storage quotas in megabytes, and allows for upgrading the registry plan to Standard. It ensures efficient management of container image access by regulating data pull volume from the registry and setting storage capacity limits for container images within each registry. - -- A resource group, if existing is not passed in. -- A Container Registry namespace. -- Option to upgrade to `Standard` plan. -- Option to set pull traffic and storage quotas. - -![IBM Container Registry](../../reference-architecture/deployable-architecture-icr.svg) +# Cloud automation for Container Registry (Fully configurable) :exclamation: **Important:** This solution is not intended to be called by other modules because it contains a provider configuration and is not compatible with the `for_each`, `count`, and `depends_on` arguments. For more information, see [Providers Within Modules](https://developer.hashicorp.com/terraform/language/modules/develop/providers). From c1382e7078a678bd77c939b6727e6f831f49798a Mon Sep 17 00:00:00 2001 From: aatreyee257 Date: Tue, 5 Aug 2025 12:10:50 +0530 Subject: [PATCH 02/15] Diagram update --- ibm_catalog.json | 4 ++-- reference-architecture/deployable-architecture-icr.drawio.svg | 4 ++++ reference-architecture/deployable-architecture-icr.svg | 4 ---- 3 files changed, 6 insertions(+), 6 deletions(-) create mode 100644 reference-architecture/deployable-architecture-icr.drawio.svg delete mode 100644 reference-architecture/deployable-architecture-icr.svg diff --git a/ibm_catalog.json b/ibm_catalog.json index 695e5f5..c60bed7 100644 --- a/ibm_catalog.json +++ b/ibm_catalog.json @@ -22,11 +22,11 @@ "registry" ], "short_description": "Creates or uses an existing IBM Container Registry namespace, configures pull traffic and storage quotas, and supports upgrading the registry plan to Standard.", - "long_description": "This architecture creates or utilizes an existing IBM Container Registry namespace, provides the ability to configure pull traffic limits and storage quotas in megabytes, and allows for upgrading the registry plan to Standard. It ensures efficient management of container image access by regulating data pull volume from the registry and setting storage capacity limits for container images within each registry.

ℹ️ This Terraform-based automation is part of a broader suite of IBM-maintained Infrastructure as Code (IaC) assets, each following the naming pattern \"Cloud automation for *servicename*\" and focusing on single IBM Cloud service. These single-service deployable architectures can be used on their own to streamline and automate service deployments through an [IaC approach](https://cloud.ibm.com/docs/secure-enterprise?topic=secure-enterprise-understanding-projects), or assembled together into a broader [automated IaC stack](https://cloud.ibm.com/docs/secure-enterprise?topic=secure-enterprise-config-stack) to automate the deployment of an end-to-end solution architecture.", + "long_description": "[IBM Cloud Container Registry](https://cloud.ibm.com/docs/Registry?topic=Registry-getting-started) creates or utilizes an existing IBM Container Registry namespace, provides the ability to configure pull traffic limits and storage quotas in megabytes, and allows for upgrading the registry plan to Standard. It ensures efficient management of container image access by regulating data pull volume from the registry and setting storage capacity limits for container images within each registry.

ℹ️ This Terraform-based automation is part of a broader suite of IBM-maintained Infrastructure as Code (IaC) assets, each following the naming pattern \"Cloud automation for *servicename*\" and focusing on single IBM Cloud service. These single-service deployable architectures can be used on their own to streamline and automate service deployments through an [IaC approach](https://cloud.ibm.com/docs/secure-enterprise?topic=secure-enterprise-understanding-projects), or assembled together into a broader [automated IaC stack](https://cloud.ibm.com/docs/secure-enterprise?topic=secure-enterprise-config-stack) to automate the deployment of an end-to-end solution architecture.", "offering_docs_url": "https://github.com/terraform-ibm-modules/terraform-ibm-container-registry/main/README.md", "offering_icon_url": "https://raw.githubusercontent.com/terraform-ibm-modules/terraform-ibm-container-registry/main/images/icr_icon.svg", "provider_name": "IBM", - "support_details": "This product is in the community registry, as such support is handled through the originated repo. If you experience issues please open an issue in the repository [https://github.com/terraform-ibm-modules/terraform-ibm-container-registry/issues](https://github.com/terraform-ibm-modules/terraform-ibm-container-registry/issues). Please note this product is not supported via the IBM Cloud Support Center.", + "support_details": "This product is in the community registry, as such support is handled through the [original repo](https://github.com/terraform-ibm-modules/terraform-ibm-container-registry). If you experience issues kindly open an issue in the repository [https://github.com/terraform-ibm-modules/terraform-ibm-container-registry/issues](https://github.com/terraform-ibm-modules/terraform-ibm-container-registry/issues). Please note that this product is not currently supported through the IBM Cloud Support Center.", "features": [ { "title": "IBM Container Registry Namespace", diff --git a/reference-architecture/deployable-architecture-icr.drawio.svg b/reference-architecture/deployable-architecture-icr.drawio.svg new file mode 100644 index 0000000..1f87cb5 --- /dev/null +++ b/reference-architecture/deployable-architecture-icr.drawio.svg @@ -0,0 +1,4 @@ + + + +
IBM Cloud
Region
IBM Container Registry
Namespace
\ No newline at end of file diff --git a/reference-architecture/deployable-architecture-icr.svg b/reference-architecture/deployable-architecture-icr.svg deleted file mode 100644 index b2288a1..0000000 --- a/reference-architecture/deployable-architecture-icr.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - -
IBM Cloud Container Registry
Region
Cloud
Namespaces
\ No newline at end of file From 99442f53d78b3d6d39799a5a0f26d49434a789b0 Mon Sep 17 00:00:00 2001 From: aatreyee257 Date: Tue, 5 Aug 2025 14:19:18 +0530 Subject: [PATCH 03/15] fixes --- ibm_catalog.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ibm_catalog.json b/ibm_catalog.json index c60bed7..f9a4213 100644 --- a/ibm_catalog.json +++ b/ibm_catalog.json @@ -73,7 +73,8 @@ "crn:v1:bluemix:public:iam::::serviceRole:Manager", "crn:v1:bluemix:public:iam::::role:Administrator" ], - "service_name": "container-registry" + "service_name": "container-registry", + "notes": "Manager or Administrator access is required to manage namespaces, repositories, and access policies in Container Registry." } ], "architecture": { From f5dd4326f8d84813cd5237ee0f1c7f1aaf432040 Mon Sep 17 00:00:00 2001 From: aatreyee257 Date: Fri, 8 Aug 2025 12:07:47 +0530 Subject: [PATCH 04/15] changes --- ibm_catalog.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ibm_catalog.json b/ibm_catalog.json index 68d83c0..acff32c 100644 --- a/ibm_catalog.json +++ b/ibm_catalog.json @@ -21,7 +21,7 @@ "solution", "registry" ], - "short_description": "Creates or uses an existing IBM Container Registry namespace, configures pull traffic and storage quotas, and supports upgrading the registry plan to Standard.", + "short_description": "Creates or uses an existing IBM Container Registry namespace, configures pull traffic and storage quotas, and supports upgrading the registry plan to Standard", "long_description": "[IBM Cloud Container Registry](https://cloud.ibm.com/docs/Registry?topic=Registry-getting-started) creates or utilizes an existing IBM Container Registry namespace, provides the ability to configure pull traffic limits and storage quotas in megabytes, and allows for upgrading the registry plan to Standard. It ensures efficient management of container image access by regulating data pull volume from the registry and setting storage capacity limits for container images within each registry.

ℹ️ This Terraform-based automation is part of a broader suite of IBM-maintained Infrastructure as Code (IaC) assets, each following the naming pattern \"Cloud automation for *servicename*\" and focusing on single IBM Cloud service. These single-service deployable architectures can be used on their own to streamline and automate service deployments through an [IaC approach](https://cloud.ibm.com/docs/secure-enterprise?topic=secure-enterprise-understanding-projects), or assembled together into a broader [automated IaC stack](https://cloud.ibm.com/docs/secure-enterprise?topic=secure-enterprise-config-stack) to automate the deployment of an end-to-end solution architecture.", "offering_docs_url": "https://github.com/terraform-ibm-modules/terraform-ibm-container-registry/main/README.md", "offering_icon_url": "https://raw.githubusercontent.com/terraform-ibm-modules/terraform-ibm-container-registry/main/images/icr_icon.svg", @@ -50,6 +50,7 @@ "label": "Fully configurable", "name": "fully-configurable", "install_type": "fullstack", + "index": 1, "working_directory": "solutions/fully-configurable", "compliance": { "authority": "scc-v3", From 0e43c3d0d077e229ca5129900ddc563be9649c67 Mon Sep 17 00:00:00 2001 From: aatreyee257 Date: Mon, 11 Aug 2025 17:04:51 +0530 Subject: [PATCH 05/15] minor fixes --- ibm_catalog.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ibm_catalog.json b/ibm_catalog.json index acff32c..717430e 100644 --- a/ibm_catalog.json +++ b/ibm_catalog.json @@ -33,7 +33,7 @@ "description": "Enables the creation of a new IBM Container Registry namespace or the use of an existing one, allowing users to define isolated environments for managing container images, with the ability to set a retention policy." }, { - "title": "Configures Pull Traffic Limits", + "title": "Pull Traffic Limit Controls", "description": "Allows fine-grained configuration of pull traffic limits in megabytes, controlling the amount of data that can be pulled from the registry." }, { @@ -72,7 +72,7 @@ { "role_crns": [ "crn:v1:bluemix:public:iam::::serviceRole:Manager", - "crn:v1:bluemix:public:iam::::role:Administrator" + "crn:v1:bluemix:public:iam::::serviceRole:Writer" ], "service_name": "container-registry", "notes": "Manager or Administrator access is required to manage namespaces, repositories, and access policies in Container Registry." From ee08d63125189d4188e3e2fffd192fe751921e3f Mon Sep 17 00:00:00 2001 From: aatreyee257 Date: Mon, 11 Aug 2025 18:14:00 +0530 Subject: [PATCH 06/15] minor fixes --- ibm_catalog.json | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/ibm_catalog.json b/ibm_catalog.json index 717430e..1259735 100644 --- a/ibm_catalog.json +++ b/ibm_catalog.json @@ -66,9 +66,16 @@ "role_crns": [ "crn:v1:bluemix:public:iam::::role:Administrator" ], - "service_name": "all-account-management-services", + "service_name": "All Account Management services", "notes": "Administrator access is required for resource group creation and deletion." }, + { + "role_crns": [ + "crn:v1:bluemix:public:iam::::role:Administrator" + ], + "service_name": "All Identity and Access enabled services", + "notes": "(Optional) Only required if creating context-based restrictions which can be toggled using the `provision_cbr` input." + }, { "role_crns": [ "crn:v1:bluemix:public:iam::::serviceRole:Manager", From d8c3189aed3f6f9b23c9e6271e7d2eb19fc5ebb2 Mon Sep 17 00:00:00 2001 From: aatreyee257 Date: Sat, 16 Aug 2025 22:46:21 +0530 Subject: [PATCH 07/15] minor changes --- ibm_catalog.json | 12 ++++++------ solutions/fully-configurable/variables.tf | 17 ++++------------- 2 files changed, 10 insertions(+), 19 deletions(-) diff --git a/ibm_catalog.json b/ibm_catalog.json index 1259735..382bbd9 100644 --- a/ibm_catalog.json +++ b/ibm_catalog.json @@ -67,21 +67,21 @@ "crn:v1:bluemix:public:iam::::role:Administrator" ], "service_name": "All Account Management services", - "notes": "Administrator access is required for resource group creation and deletion." + "notes": "[Optional] Required for consuming Account Configuration deployable architecture which creates resource group." }, { "role_crns": [ "crn:v1:bluemix:public:iam::::role:Administrator" ], "service_name": "All Identity and Access enabled services", - "notes": "(Optional) Only required if creating context-based restrictions which can be toggled using the `provision_cbr` input." + "notes": "[Optional] Required for consuming Account Configuration deployable architecture which creates resource group with account settings." }, { "role_crns": [ "crn:v1:bluemix:public:iam::::serviceRole:Manager", "crn:v1:bluemix:public:iam::::serviceRole:Writer" ], - "service_name": "container-registry", + "service_name": "Container-Registry", "notes": "Manager or Administrator access is required to manage namespaces, repositories, and access policies in Container Registry." } ], @@ -162,15 +162,15 @@ "hidden": "true", "options": [ { - "displayname": "private", + "displayname": "Private", "value": "private" }, { - "displayname": "public", + "displayname": "Public", "value": "public" }, { - "displayname": "public-and-private", + "displayname": "Public-and-Private", "value": "public-and-private" } ] diff --git a/solutions/fully-configurable/variables.tf b/solutions/fully-configurable/variables.tf index 0bd7652..1383f6d 100644 --- a/solutions/fully-configurable/variables.tf +++ b/solutions/fully-configurable/variables.tf @@ -17,25 +17,16 @@ variable "existing_resource_group_name" { variable "prefix" { type = string nullable = true - description = "The prefix to be added to all resources created by this solution. To skip using a prefix, set this value to null or an empty string. The prefix must begin with a lowercase letter and may contain only lowercase letters, digits, and hyphens '-'. It should not exceed 16 characters, must not end with a hyphen('-'), and can not contain consecutive hyphens ('--'). Example: prod-0205-cos. [Learn more](https://terraform-ibm-modules.github.io/documentation/#/prefix.md)." + description = "The prefix to be added to all resources created by this solution. To skip using a prefix, set this value to null or an empty string. The prefix must begin with a lowercase letter and may contain only lowercase letters, digits, and hyphens '-'. It should not exceed 16 characters, must not end with a hyphen('-'), and can not contain consecutive hyphens ('--'). Example: con-0205-reg. [Learn more](https://terraform-ibm-modules.github.io/documentation/#/prefix.md)" validation { - # - null and empty string is allowed - # - Must not contain consecutive hyphens (--): length(regexall("--", var.prefix)) == 0 - # - Starts with a lowercase letter: [a-z] - # - Contains only lowercase letters (a–z), digits (0–9), and hyphens (-) - # - Must not end with a hyphen (-): [a-z0-9] - condition = (var.prefix == null || var.prefix == "" ? true : - alltrue([ - can(regex("^[a-z][-a-z0-9]*[a-z0-9]$", var.prefix)), - length(regexall("--", var.prefix)) == 0 - ]) - ) + condition = var.prefix == null || var.prefix == "" ? true : alltrue([ + can(regex("^[a-z][-a-z0-9]*[a-z0-9]$", var.prefix)), length(regexall("--", var.prefix)) == 0 + ]) error_message = "Prefix must begin with a lowercase letter and may contain only lowercase letters, digits, and hyphens '-'. It must not end with a hyphen('-'), and cannot contain consecutive hyphens ('--')." } validation { - # must not exceed 16 characters in length condition = var.prefix == null || var.prefix == "" ? true : length(var.prefix) <= 16 error_message = "Prefix must not exceed 16 characters." } From 3f423eb5caea0ec400bfd4f6747729c93acd481c Mon Sep 17 00:00:00 2001 From: aatreyee257 Date: Sun, 17 Aug 2025 11:22:02 +0530 Subject: [PATCH 08/15] minor changes --- solutions/fully-configurable/variables.tf | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/solutions/fully-configurable/variables.tf b/solutions/fully-configurable/variables.tf index 1383f6d..2916ca0 100644 --- a/solutions/fully-configurable/variables.tf +++ b/solutions/fully-configurable/variables.tf @@ -16,22 +16,30 @@ variable "existing_resource_group_name" { variable "prefix" { type = string - nullable = true - description = "The prefix to be added to all resources created by this solution. To skip using a prefix, set this value to null or an empty string. The prefix must begin with a lowercase letter and may contain only lowercase letters, digits, and hyphens '-'. It should not exceed 16 characters, must not end with a hyphen('-'), and can not contain consecutive hyphens ('--'). Example: con-0205-reg. [Learn more](https://terraform-ibm-modules.github.io/documentation/#/prefix.md)" + description = "The prefix to be added to all resources created by this solution. To skip using a prefix, set this value to null or an empty string. The prefix must begin with a lowercase letter and may contain only lowercase letters, digits, and hyphens '-'. It should not exceed 16 characters, must not end with a hyphen('-'), and can not contain consecutive hyphens ('--'). Example: wx-0205-orch. [Learn more](https://terraform-ibm-modules.github.io/documentation/#/prefix.md)." validation { - condition = var.prefix == null || var.prefix == "" ? true : alltrue([ - can(regex("^[a-z][-a-z0-9]*[a-z0-9]$", var.prefix)), length(regexall("--", var.prefix)) == 0 - ]) + # - null and empty string is allowed + # - Must not contain consecutive hyphens (--): length(regexall("--", var.prefix)) == 0 + # - Starts with a lowercase letter: [a-z] + # - Contains only lowercase letters (a–z), digits (0–9), and hyphens (-) + # - Must not end with a hyphen (-): [a-z0-9] + condition = (var.prefix == null || var.prefix == "" ? true : + alltrue([ + can(regex("^[a-z][-a-z0-9]*[a-z0-9]$", var.prefix)), + length(regexall("--", var.prefix)) == 0 + ]) + ) error_message = "Prefix must begin with a lowercase letter and may contain only lowercase letters, digits, and hyphens '-'. It must not end with a hyphen('-'), and cannot contain consecutive hyphens ('--')." } - validation { + # must not exceed 16 characters in length condition = var.prefix == null || var.prefix == "" ? true : length(var.prefix) <= 16 error_message = "Prefix must not exceed 16 characters." } } + variable "provider_visibility" { type = string description = "Set the visibility value for the IBM terraform provider. Supported values are `public`, `private`, `public-and-private`. [Learn more](https://registry.terraform.io/providers/IBM-Cloud/ibm/latest/docs/guides/custom-service-endpoints)" From ce2d7e5e756653b84c2f38138b7ecba189c1d5d7 Mon Sep 17 00:00:00 2001 From: aatreyee257 Date: Tue, 19 Aug 2025 00:47:19 +0530 Subject: [PATCH 09/15] minor changes --- ibm_catalog.json | 2 +- modules/plan/README.md | 2 +- modules/plan/variables.tf | 2 +- variables.tf | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/ibm_catalog.json b/ibm_catalog.json index 382bbd9..cb3930e 100644 --- a/ibm_catalog.json +++ b/ibm_catalog.json @@ -82,7 +82,7 @@ "crn:v1:bluemix:public:iam::::serviceRole:Writer" ], "service_name": "Container-Registry", - "notes": "Manager or Administrator access is required to manage namespaces, repositories, and access policies in Container Registry." + "notes": "Manager or Writer access is required to manage namespaces, repositories, and access policies in Container Registry." } ], "architecture": { diff --git a/modules/plan/README.md b/modules/plan/README.md index 5a94d47..db1b708 100644 --- a/modules/plan/README.md +++ b/modules/plan/README.md @@ -2,7 +2,7 @@ You can use this submodule to upgrade the IBM [Container Registry](https://cloud.ibm.com/docs/Registry?topic=Registry-registry_overview#registry_plans) plan. -The submodule can used without the root module upgrade the plan without creating any additional namespaces or retention polcies. +The submodule can used without the root module upgrade the plan without creating any additional namespaces or retention policies. ### Usage ``` diff --git a/modules/plan/variables.tf b/modules/plan/variables.tf index af42b4f..f73eb80 100644 --- a/modules/plan/variables.tf +++ b/modules/plan/variables.tf @@ -23,5 +23,5 @@ variable "container_registry_endpoint" { # us-south us.icr.io private.us.icr.io # global icr.io private.icr.io -# pattern match (possilby "private.") (possibly two letters, a number 2 and a period) "icr.io" with no prefix or suffix +# pattern match (possibly "private.") (possibly two letters, a number 2 and a period) "icr.io" with no prefix or suffix # This avoids very specific checks and allows for new regions to be added without updating the module. diff --git a/variables.tf b/variables.tf index 4f89b2d..c2b7dad 100644 --- a/variables.tf +++ b/variables.tf @@ -3,7 +3,7 @@ variable "existing_namespace_name" { description = "The name of an existing namespace. Required if 'namespace_name' is not provided." default = null - # exisiting_namespace_name can be NULL. If not NULL then atleast one namespace should match in existing_cr_namespaces list that matches existing_namespace_name + # exisiting_namespace_name can be NULL. If not NULL then at least one namespace should match in existing_cr_namespaces list that matches existing_namespace_name validation { condition = var.existing_namespace_name == null || length([for namespace in data.ibm_cr_namespaces.existing_cr_namespaces.namespaces : namespace if namespace.name == var.existing_namespace_name]) > 0 error_message = "Existing namespace not found in the region" From 62f613098e3e8c22f833c2c871bc8f80176ac78d Mon Sep 17 00:00:00 2001 From: aatreyee257 Date: Tue, 19 Aug 2025 09:47:25 +0530 Subject: [PATCH 10/15] diagram modifications --- reference-architecture/deployable-architecture-icr.drawio.svg | 4 ---- reference-architecture/deployable-architecture-icr.svg | 4 ++++ solutions/fully-configurable/variables.tf | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) delete mode 100644 reference-architecture/deployable-architecture-icr.drawio.svg create mode 100644 reference-architecture/deployable-architecture-icr.svg diff --git a/reference-architecture/deployable-architecture-icr.drawio.svg b/reference-architecture/deployable-architecture-icr.drawio.svg deleted file mode 100644 index 1f87cb5..0000000 --- a/reference-architecture/deployable-architecture-icr.drawio.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - -
IBM Cloud
Region
IBM Container Registry
Namespace
\ No newline at end of file diff --git a/reference-architecture/deployable-architecture-icr.svg b/reference-architecture/deployable-architecture-icr.svg new file mode 100644 index 0000000..295b753 --- /dev/null +++ b/reference-architecture/deployable-architecture-icr.svg @@ -0,0 +1,4 @@ + + + +IBM CloudRegion
IBM Container Registry
Namespace
\ No newline at end of file diff --git a/solutions/fully-configurable/variables.tf b/solutions/fully-configurable/variables.tf index 2916ca0..a8d87b5 100644 --- a/solutions/fully-configurable/variables.tf +++ b/solutions/fully-configurable/variables.tf @@ -16,7 +16,7 @@ variable "existing_resource_group_name" { variable "prefix" { type = string - description = "The prefix to be added to all resources created by this solution. To skip using a prefix, set this value to null or an empty string. The prefix must begin with a lowercase letter and may contain only lowercase letters, digits, and hyphens '-'. It should not exceed 16 characters, must not end with a hyphen('-'), and can not contain consecutive hyphens ('--'). Example: wx-0205-orch. [Learn more](https://terraform-ibm-modules.github.io/documentation/#/prefix.md)." + description = "The prefix to be added to all resources created by this solution. To skip using a prefix, set this value to null or an empty string. The prefix must begin with a lowercase letter and may contain only lowercase letters, digits, and hyphens '-'. It should not exceed 16 characters, must not end with a hyphen('-'), and can not contain consecutive hyphens ('--'). Example: cn-0205-rg. [Learn more](https://terraform-ibm-modules.github.io/documentation/#/prefix.md)." validation { # - null and empty string is allowed From 53c9c8e5c602eea2f91f7652a70b551371fc9d76 Mon Sep 17 00:00:00 2001 From: aatreyee257 Date: Tue, 19 Aug 2025 13:26:25 +0530 Subject: [PATCH 11/15] minor changes --- ibm_catalog.json | 4 ++-- solutions/fully-configurable/variables.tf | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/ibm_catalog.json b/ibm_catalog.json index cb3930e..3adb188 100644 --- a/ibm_catalog.json +++ b/ibm_catalog.json @@ -67,14 +67,14 @@ "crn:v1:bluemix:public:iam::::role:Administrator" ], "service_name": "All Account Management services", - "notes": "[Optional] Required for consuming Account Configuration deployable architecture which creates resource group." + "notes": "[Optional] Required to deploy Cloud automation for account configuration, which creates foundational IBM Cloud account resources, like IAM settings, trusted profiles, access groups, and resource groups." }, { "role_crns": [ "crn:v1:bluemix:public:iam::::role:Administrator" ], "service_name": "All Identity and Access enabled services", - "notes": "[Optional] Required for consuming Account Configuration deployable architecture which creates resource group with account settings." + "notes": "[Optional] Required to deploy Cloud automation for account configuration, which creates foundational IBM Cloud account resources, like IAM settings, trusted profiles, access groups, and resource group with account settings." }, { "role_crns": [ diff --git a/solutions/fully-configurable/variables.tf b/solutions/fully-configurable/variables.tf index a8d87b5..f9fc14d 100644 --- a/solutions/fully-configurable/variables.tf +++ b/solutions/fully-configurable/variables.tf @@ -16,7 +16,7 @@ variable "existing_resource_group_name" { variable "prefix" { type = string - description = "The prefix to be added to all resources created by this solution. To skip using a prefix, set this value to null or an empty string. The prefix must begin with a lowercase letter and may contain only lowercase letters, digits, and hyphens '-'. It should not exceed 16 characters, must not end with a hyphen('-'), and can not contain consecutive hyphens ('--'). Example: cn-0205-rg. [Learn more](https://terraform-ibm-modules.github.io/documentation/#/prefix.md)." + description = "The prefix to be added to all resources created by this solution. To skip using a prefix, set this value to null or an empty string. The prefix must begin with a lowercase letter and may contain only lowercase letters, digits, and hyphens '-'. It should not exceed 16 characters, must not end with a hyphen('-'), and can not contain consecutive hyphens ('--'). Example: prod-0205-icr. [Learn more](https://terraform-ibm-modules.github.io/documentation/#/prefix.md)." validation { # - null and empty string is allowed From 085a00db5fd28a817a3869b09cd83ac5b743f8c3 Mon Sep 17 00:00:00 2001 From: aatreyee257 Date: Wed, 20 Aug 2025 14:23:00 +0530 Subject: [PATCH 12/15] minor changes --- ibm_catalog.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ibm_catalog.json b/ibm_catalog.json index 3adb188..c38577a 100644 --- a/ibm_catalog.json +++ b/ibm_catalog.json @@ -81,7 +81,7 @@ "crn:v1:bluemix:public:iam::::serviceRole:Manager", "crn:v1:bluemix:public:iam::::serviceRole:Writer" ], - "service_name": "Container-Registry", + "service_name": "container-registry", "notes": "Manager or Writer access is required to manage namespaces, repositories, and access policies in Container Registry." } ], From eef59b7d2448d0864061d0fc8c607b0d5d194968 Mon Sep 17 00:00:00 2001 From: aatreyee257 Date: Thu, 21 Aug 2025 12:01:09 +0530 Subject: [PATCH 13/15] minor changes --- variables.tf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/variables.tf b/variables.tf index c2b7dad..29e230c 100644 --- a/variables.tf +++ b/variables.tf @@ -3,7 +3,7 @@ variable "existing_namespace_name" { description = "The name of an existing namespace. Required if 'namespace_name' is not provided." default = null - # exisiting_namespace_name can be NULL. If not NULL then at least one namespace should match in existing_cr_namespaces list that matches existing_namespace_name + # existing_namespace_name can be NULL. If not NULL then at least one namespace should match in existing_cr_namespaces list that matches existing_namespace_name validation { condition = var.existing_namespace_name == null || length([for namespace in data.ibm_cr_namespaces.existing_cr_namespaces.namespaces : namespace if namespace.name == var.existing_namespace_name]) > 0 error_message = "Existing namespace not found in the region" From 59196995dbf46ebf20b23c21243c22a533345f58 Mon Sep 17 00:00:00 2001 From: aatreyee257 Date: Sun, 24 Aug 2025 22:32:58 +0530 Subject: [PATCH 14/15] minor changes --- ibm_catalog.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ibm_catalog.json b/ibm_catalog.json index c38577a..21849e9 100644 --- a/ibm_catalog.json +++ b/ibm_catalog.json @@ -26,7 +26,7 @@ "offering_docs_url": "https://github.com/terraform-ibm-modules/terraform-ibm-container-registry/main/README.md", "offering_icon_url": "https://raw.githubusercontent.com/terraform-ibm-modules/terraform-ibm-container-registry/main/images/icr_icon.svg", "provider_name": "IBM", - "support_details": "This product is in the community registry, as such support is handled through the [original repo](https://github.com/terraform-ibm-modules/terraform-ibm-container-registry). If you experience issues kindly open an issue in the repository [https://github.com/terraform-ibm-modules/terraform-ibm-container-registry/issues](https://github.com/terraform-ibm-modules/terraform-ibm-container-registry/issues). Please note that this product is not currently supported through the IBM Cloud Support Center.", + "support_details": "This product is in the community registry, as such support is handled through the [original repo](https://github.com/terraform-ibm-modules/terraform-ibm-container-registry). If you experience issues kindly open an issue in the repository [here](https://github.com/terraform-ibm-modules/terraform-ibm-container-registry/issues). Please note that this product is not currently supported through the IBM Cloud Support Center.", "features": [ { "title": "IBM Container Registry Namespace", From 8b3cd3aebbadd6549183896d367b7d276eff86ce Mon Sep 17 00:00:00 2001 From: aatreyee257 Date: Thu, 28 Aug 2025 03:55:37 +0530 Subject: [PATCH 15/15] resolved comments --- ibm_catalog.json | 12 +++++++----- solutions/fully-configurable/variables.tf | 2 +- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/ibm_catalog.json b/ibm_catalog.json index 21849e9..5b8b619 100644 --- a/ibm_catalog.json +++ b/ibm_catalog.json @@ -83,6 +83,13 @@ ], "service_name": "container-registry", "notes": "Manager or Writer access is required to manage namespaces, repositories, and access policies in Container Registry." + }, + { + "role_crns": [ + "crn:v1:bluemix:public:iam::::role:Viewer" + ], + "service_name": "Resource group only", + "notes": "Viewer access is required in the resource group you want to provision in." } ], "architecture": { @@ -123,11 +130,6 @@ "dependency_input": "prefix", "version_input": "prefix", "reference_version": true - }, - { - "dependency_input": "provider_visibility", - "version_input": "provider_visibility", - "reference_version": true } ], "optional": true, diff --git a/solutions/fully-configurable/variables.tf b/solutions/fully-configurable/variables.tf index f9fc14d..2e469fa 100644 --- a/solutions/fully-configurable/variables.tf +++ b/solutions/fully-configurable/variables.tf @@ -17,7 +17,7 @@ variable "existing_resource_group_name" { variable "prefix" { type = string description = "The prefix to be added to all resources created by this solution. To skip using a prefix, set this value to null or an empty string. The prefix must begin with a lowercase letter and may contain only lowercase letters, digits, and hyphens '-'. It should not exceed 16 characters, must not end with a hyphen('-'), and can not contain consecutive hyphens ('--'). Example: prod-0205-icr. [Learn more](https://terraform-ibm-modules.github.io/documentation/#/prefix.md)." - + nullable = true validation { # - null and empty string is allowed # - Must not contain consecutive hyphens (--): length(regexall("--", var.prefix)) == 0