Skip to content

Commit fb7ccc4

Browse files
fix: Improved DA for better user experience<br> - updated reference architecture diagram<br> - modifiy catalog tile content<br> - added notes for all listed IAM permissions for DA<br> - updated description of prefix input variable (#311)
* DA improvement * Diagram update * fixes * changes * minor fixes * minor fixes * minor changes * minor changes * minor changes * diagram modifications * minor changes * minor changes * minor changes * minor changes * resolved comments * resolved comments * resolved comments * Update ibm_catalog.json Co-authored-by: Shikha Maheshwari <[email protected]> * removed garbage file * changes * resolved comments * Update ibm_catalog.json Co-authored-by: Shikha Maheshwari <[email protected]> * Update ibm_catalog.json Co-authored-by: Shikha Maheshwari <[email protected]> * updated permission * resolved comments --------- Co-authored-by: Shikha Maheshwari <[email protected]>
1 parent 00290a1 commit fb7ccc4

File tree

6 files changed

+66
-44
lines changed

6 files changed

+66
-44
lines changed

ibm_catalog.json

Lines changed: 60 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"products": [
33
{
44
"name": "deploy-arch-ibm-container-registry",
5-
"label": "Cloud automation for IBM Container Registry",
5+
"label": "Cloud automation for Container Registry",
66
"product_kind": "solution",
77
"tags": [
88
"ibm_created",
@@ -21,35 +21,36 @@
2121
"solution",
2222
"registry"
2323
],
24-
"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.",
25-
"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.",
24+
"short_description": "Creates and configures IBM Cloud Container Registry",
25+
"long_description": "This architecture creates a [container registry](https://cloud.ibm.com/docs/Registry?topic=Registry-getting-started) namespace, provides the ability to configure pull traffic limits and storage quotas. This solution also allows you to configure an existing namespace in the IBM Cloud Container Registry. 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.<br/><br/>ℹ️ 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.",
2626
"offering_docs_url": "https://github.com/terraform-ibm-modules/terraform-ibm-container-registry/main/README.md",
2727
"offering_icon_url": "https://raw.githubusercontent.com/terraform-ibm-modules/terraform-ibm-container-registry/main/images/icr_icon.svg",
2828
"provider_name": "IBM",
29-
"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.",
29+
"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.",
3030
"features": [
3131
{
32-
"title": "Creates or Uses Existing IBM Container Registry Namespace",
33-
"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."
32+
"title": "Container Registry Namespace",
33+
"description": "Enables the creation of a new 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. [Learn more](https://cloud.ibm.com/docs/Registry?topic=Registry-registry_setup_cli_namespace#registry_setup_cli_namespace_plan)."
3434
},
3535
{
36-
"title": "Configures Pull Traffic Limits",
37-
"description": "Allows fine-grained configuration of pull traffic limits in megabytes, controlling the amount of data that can be pulled from the registry."
36+
"title": "Pull Traffic Limit Controls",
37+
"description": "Allows fine-grained configuration of pull traffic limits in megabytes, controlling the amount of data that can be pulled from the registry. [Learn more](https://cloud.ibm.com/docs/Registry?topic=Registry-registry_quota)."
3838
},
3939
{
4040
"title": "Sets Storage Quotas",
41-
"description": "Enables the configuration of storage quotas in megabytes, defining the maximum amount of storage available for container images within each registry."
41+
"description": "Enables the configuration of storage quotas in megabytes, defining the maximum amount of storage available for container images within each registry. [Learn more](https://cloud.ibm.com/docs/Registry?topic=Registry-registry_quota)."
4242
},
4343
{
4444
"title": "Upgrades Registry Plan to Standard",
45-
"description": "Provides the ability to upgrade the container registry plan to Standard, allowing for enhanced features and capabilities."
45+
"description": "Provides the ability to upgrade the container registry plan to Standard, allowing for enhanced features and capabilities. [Learn more](https://cloud.ibm.com/docs/Registry?topic=Registry-registry_overview&utm_source=chatgpt.com#registry_plans)."
4646
}
4747
],
4848
"flavors": [
4949
{
5050
"label": "Fully configurable",
5151
"name": "fully-configurable",
5252
"install_type": "fullstack",
53+
"index": 1,
5354
"working_directory": "solutions/fully-configurable",
5455
"compliance": {
5556
"authority": "scc-v3",
@@ -65,38 +66,53 @@
6566
"role_crns": [
6667
"crn:v1:bluemix:public:iam::::role:Administrator"
6768
],
68-
"service_name": "all-account-management-services"
69+
"service_name": "All Account Management services",
70+
"notes": "[Optional] Required to create new resource groups when enabling the Account Configuration integration."
6971
},
7072
{
7173
"role_crns": [
72-
"crn:v1:bluemix:public:iam::::serviceRole:Manager",
7374
"crn:v1:bluemix:public:iam::::role:Administrator"
7475
],
75-
"service_name": "container-registry"
76+
"service_name": "All Identity and Access enabled services",
77+
"notes": "[Optional] Required to create new resource groups with account settings when enabling the Account Configuration integration."
78+
},
79+
{
80+
"role_crns": [
81+
"crn:v1:bluemix:public:iam::::serviceRole:Manager"
82+
],
83+
"service_name": "container-registry",
84+
"notes": "Required to manage namespaces, repositories, and access policies in Container Registry."
85+
},
86+
{
87+
"role_crns": [
88+
"crn:v1:bluemix:public:iam::::role:Viewer"
89+
],
90+
"service_name": "Resource group only",
91+
"notes": "Viewer access is required in the resource group you want to provision in."
7692
}
7793
],
7894
"architecture": {
7995
"features": [
8096
{
81-
"title": "Creates or uses an existing IBM Container Registry namespace, configures pull traffic and storage quotas, and supports upgrading the registry plan to Standard.",
82-
"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."
97+
"title": " ",
98+
"description": "Configured to use IBM secure-by-default standards, but can be edited to fit your use case."
8399
}
84100
],
85101
"diagrams": [
86102
{
87103
"diagram": {
88-
"caption": "Creates IBM Container Registry namespace.",
104+
"caption": "Container Registry",
89105
"url": "https://raw.githubusercontent.com/terraform-ibm-modules/terraform-ibm-container-registry/main/reference-architecture/deployable-architecture-icr.svg",
90106
"type": "image/svg+xml"
91107
},
92-
"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."
108+
"description": "This architecture creates a Container Registry namespace to manage container images. At the registry level, it supports configuring pull traffic limits and storage quotas in megabytes, as well as upgrading the plan to Standard for additional capabilities. It can also configure an existing namespace. These features provide a structured and scalable approach to managing image storage and access across environments."
93109
}
94110
]
95111
},
96112
"dependencies": [
97113
{
98114
"name": "deploy-arch-ibm-account-infra-base",
99-
"description": "Cloud automation for Account Configuration organizes your IBM Cloud account with a ready-made set of resource groups by default—and, when you enable the \"with Account Settings\" option, it also applies baseline security and governance settings.",
115+
"description": "Organize your IBM Cloud account with preconfigured resource groups. If not selected, the default resource group is used. Optionally, expand to apply recommended security controls via \"with Account Settings\" variation.",
100116
"catalog_id": "7a4d68b4-cf8b-40cd-a3d1-f49aff526eb3",
101117
"flavors": [
102118
"resource-group-only",
@@ -113,11 +129,6 @@
113129
"dependency_input": "prefix",
114130
"version_input": "prefix",
115131
"reference_version": true
116-
},
117-
{
118-
"dependency_input": "provider_visibility",
119-
"version_input": "provider_visibility",
120-
"reference_version": true
121132
}
122133
],
123134
"optional": true,
@@ -154,21 +165,22 @@
154165
"hidden": "true",
155166
"options": [
156167
{
157-
"displayname": "private",
168+
"displayname": "Private",
158169
"value": "private"
159170
},
160171
{
161-
"displayname": "public",
172+
"displayname": "Public",
162173
"value": "public"
163174
},
164175
{
165-
"displayname": "public-and-private",
176+
"displayname": "Public-and-Private",
166177
"value": "public-and-private"
167178
}
168179
]
169180
},
170181
{
171182
"key": "namespace_region",
183+
"required": true,
172184
"default_value": "us-south",
173185
"options": [
174186
{
@@ -238,10 +250,30 @@
238250
"key": "images_per_repo"
239251
},
240252
{
241-
"key": "retain_untagged"
253+
"key": "retain_untagged",
254+
"options": [
255+
{
256+
"displayname": "True",
257+
"value": "true"
258+
},
259+
{
260+
"displayname": "False",
261+
"value": "false"
262+
}
263+
]
242264
},
243265
{
244-
"key": "upgrade_to_standard_plan"
266+
"key": "upgrade_to_standard_plan",
267+
"options": [
268+
{
269+
"displayname": "True",
270+
"value": "true"
271+
},
272+
{
273+
"displayname": "False",
274+
"value": "false"
275+
}
276+
]
245277
},
246278
{
247279
"key": "storage_megabytes"

modules/plan/variables.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,5 +23,5 @@ variable "container_registry_endpoint" {
2323
# us-south us.icr.io private.us.icr.io
2424
# global icr.io private.icr.io
2525

26-
# pattern match (possilby "private.") (possibly two letters, a number 2 and a period) "icr.io" with no prefix or suffix
26+
# pattern match (possibly "private.") (possibly two letters, a number 2 and a period) "icr.io" with no prefix or suffix
2727
# This avoids very specific checks and allows for new regions to be added without updating the module.

reference-architecture/deployable-architecture-icr.svg

Lines changed: 1 addition & 1 deletion
Loading
Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,3 @@
1-
# IBM Cloud Container Registry
2-
3-
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.
4-
5-
- A resource group, if existing is not passed in.
6-
- A Container Registry namespace.
7-
- Option to upgrade to `Standard` plan.
8-
- Option to set pull traffic and storage quotas.
9-
10-
![IBM Container Registry](../../reference-architecture/deployable-architecture-icr.svg)
1+
# Cloud automation for Container Registry (Fully configurable)
112

123
: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).

solutions/fully-configurable/variables.tf

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,8 @@ variable "existing_resource_group_name" {
1616

1717
variable "prefix" {
1818
type = string
19+
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)."
1920
nullable = true
20-
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)."
21-
2221
validation {
2322
# - null and empty string is allowed
2423
# - Must not contain consecutive hyphens (--): length(regexall("--", var.prefix)) == 0
@@ -33,14 +32,14 @@ variable "prefix" {
3332
)
3433
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 ('--')."
3534
}
36-
3735
validation {
3836
# must not exceed 16 characters in length
3937
condition = var.prefix == null || var.prefix == "" ? true : length(var.prefix) <= 16
4038
error_message = "Prefix must not exceed 16 characters."
4139
}
4240
}
4341

42+
4443
variable "provider_visibility" {
4544
type = string
4645
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)"

variables.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ variable "existing_namespace_name" {
33
description = "The name of an existing namespace. Required if 'namespace_name' is not provided."
44
default = null
55

6-
# existing_namespace_name can be NULL. If not NULL then atleast one namespace should match in existing_cr_namespaces list that matches existing_namespace_name
6+
# 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
77
validation {
88
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
99
error_message = "Existing namespace not found in the region"

0 commit comments

Comments
 (0)