Skip to content

Commit 62c132a

Browse files
committed
merge conflicts
2 parents cd4d8de + cfcb640 commit 62c132a

File tree

11 files changed

+142
-88
lines changed

11 files changed

+142
-88
lines changed

.github/workflows/release.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,5 +8,5 @@ on:
88

99
jobs:
1010
call-terraform-release-pipeline:
11-
uses: terraform-ibm-modules/common-pipeline-assets/.github/workflows/common-release.yml@v1.23.2
11+
uses: terraform-ibm-modules/common-pipeline-assets/.github/workflows/common-release.yml@v1.24.0
1212
secrets: inherit

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,8 @@ IBM `watsonx.ai` provides an enterprise-grade studio of integrated tools for dev
3131
* [configure_user](./modules/configure_user)
3232
* [storage_delegation](./modules/storage_delegation)
3333
* [Examples](./examples)
34-
* <div style="display: inline-block;"><a href="./examples/basic">Basic example</a></div> <div style="display: inline-block; vertical-align: middle;"><a href="https://cloud.ibm.com/schematics/workspaces/create?workspace_name=wa-basic-example&repository=github.com/terraform-ibm-modules/terraform-ibm-watsonx-ai/tree/main/examples/basic" target="_blank"><img src="https://cloud.ibm.com/media/docs/images/icons/Deploy_to_cloud.svg" alt="Deploy to IBM Cloud button"></a></div>
35-
* <div style="display: inline-block;"><a href="./examples/complete">Complete example</a></div> <div style="display: inline-block; vertical-align: middle;"><a href="https://cloud.ibm.com/schematics/workspaces/create?workspace_name=wa-complete-example&repository=github.com/terraform-ibm-modules/terraform-ibm-watsonx-ai/tree/main/examples/complete" target="_blank"><img src="https://cloud.ibm.com/media/docs/images/icons/Deploy_to_cloud.svg" alt="Deploy to IBM Cloud button"></a></div>
34+
* <div style="display: inline-block;"><a href="./examples/basic">Basic example</a></div> <div style="display: inline-block; vertical-align: middle;"><a href="https://cloud.ibm.com/schematics/workspaces/create?workspace_name=wa-basic-example&repository=https://github.com/terraform-ibm-modules/terraform-ibm-watsonx-ai/tree/main/examples/basic" target="_blank"><img src="https://cloud.ibm.com/media/docs/images/icons/Deploy_to_cloud.svg" alt="Deploy to IBM Cloud button"></a></div>
35+
* <div style="display: inline-block;"><a href="./examples/complete">Complete example</a></div> <div style="display: inline-block; vertical-align: middle;"><a href="https://cloud.ibm.com/schematics/workspaces/create?workspace_name=wa-complete-example&repository=https://github.com/terraform-ibm-modules/terraform-ibm-watsonx-ai/tree/main/examples/complete" target="_blank"><img src="https://cloud.ibm.com/media/docs/images/icons/Deploy_to_cloud.svg" alt="Deploy to IBM Cloud button"></a></div>
3636
* [Contributing](#contributing)
3737
<!-- END OVERVIEW HOOK -->
3838

examples/basic/main.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ module "resource_group" {
1212

1313
module "cos" {
1414
source = "terraform-ibm-modules/cos/ibm//modules/fscloud"
15-
version = "10.5.8"
15+
version = "10.7.0"
1616
resource_group_id = module.resource_group.resource_group_id
1717
cos_instance_name = "${var.prefix}-cos"
1818
cos_plan = "standard"

examples/complete/main.tf

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ module "resource_group" {
1616

1717
module "cos" {
1818
source = "terraform-ibm-modules/cos/ibm//modules/fscloud"
19-
version = "10.5.8"
19+
version = "10.7.0"
2020
resource_group_id = module.resource_group.resource_group_id
2121
cos_instance_name = "${var.prefix}-cos"
2222
cos_plan = "standard"
@@ -34,7 +34,7 @@ locals {
3434

3535
module "key_protect_all_inclusive" {
3636
source = "terraform-ibm-modules/kms-all-inclusive/ibm"
37-
version = "5.4.10"
37+
version = "5.5.0"
3838
resource_group_id = module.resource_group.resource_group_id
3939
region = var.region
4040
key_protect_instance_name = "${var.prefix}-kp"

ibm_catalog.json

Lines changed: 40 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -270,7 +270,14 @@
270270
},
271271
{
272272
"key": "existing_cos_instance_crn",
273-
"required": true
273+
"required": true,
274+
"value_constraints": [
275+
{
276+
"type": "regex",
277+
"description": "The value provided for 'existing_cos_instance_crn' is not valid.",
278+
"value": "^crn:v\\d:(.*:){2}cloud-object-storage:(.*:)([aos]\\/[\\w_\\-]+):[0-9a-fA-F]{8}(?:-[0-9a-fA-F]{4}){3}-[0-9a-fA-F]{12}::$"
279+
}
280+
]
274281
},
275282
{
276283
"key": "enable_platform_metrics",
@@ -328,7 +335,14 @@
328335
"key": "watsonx_ai_studio_instance_name"
329336
},
330337
{
331-
"key": "existing_watsonx_ai_studio_instance_crn"
338+
"key": "existing_watsonx_ai_studio_instance_crn",
339+
"value_constraints": [
340+
{
341+
"type": "regex",
342+
"description": "The value provided for 'existing_watsonx_ai_studio_instance_crn' is not valid.",
343+
"value": "^__NULL__$|^crn:v\\d:(.*:){2}data-science-experience:(.*:)([aos]\\/[\\w_\\-]+):[0-9a-fA-F]{8}(?:-[0-9a-fA-F]{4}){3}-[0-9a-fA-F]{12}::$"
344+
}
345+
]
332346
},
333347
{
334348
"key": "watsonx_ai_runtime_instance_name"
@@ -354,7 +368,14 @@
354368
"key": "watsonx_ai_new_project_members"
355369
},
356370
{
357-
"key": "existing_watsonx_ai_runtime_instance_crn"
371+
"key": "existing_watsonx_ai_runtime_instance_crn",
372+
"value_constraints": [
373+
{
374+
"type": "regex",
375+
"description": "The value provided for 'existing_watsonx_ai_runtime_instance_crn' is not valid.",
376+
"value": "^__NULL__$|^crn:v\\d:(.*:){2}pm-20:(.*:)([aos]\\/[\\w_\\-]+):[0-9a-fA-F]{8}(?:-[0-9a-fA-F]{4}){3}-[0-9a-fA-F]{12}::$"
377+
}
378+
]
358379
},
359380
{
360381
"key": "resource_tags",
@@ -391,10 +412,24 @@
391412
"key": "skip_cos_kms_iam_auth_policy"
392413
},
393414
{
394-
"key": "existing_cos_kms_key_crn"
415+
"key": "existing_cos_kms_key_crn",
416+
"value_constraints": [
417+
{
418+
"type": "regex",
419+
"description": "The value provided for 'existing_cos_kms_key_crn' is not valid.",
420+
"value": "^__NULL__$|^crn:v\\d:(.*:){2}kms:(.*:)([aos]\\/[\\w_\\-]+):[0-9a-fA-F]{8}(?:-[0-9a-fA-F]{4}){3}-[0-9a-fA-F]{12}:key:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
421+
}
422+
]
395423
},
396424
{
397-
"key": "existing_kms_instance_crn"
425+
"key": "existing_kms_instance_crn",
426+
"value_constraints": [
427+
{
428+
"type": "regex",
429+
"description": "The value provided for 'existing_kms_instance_crn' is not valid.",
430+
"value": "^__NULL__$|^crn:v\\d:(.*:){2}kms:(.*:)([aos]\\/[\\w_\\-]+):[0-9a-fA-F]{8}(?:-[0-9a-fA-F]{4}){3}-[0-9a-fA-F]{12}::$"
431+
}
432+
]
398433
},
399434
{
400435
"key": "ibmcloud_kms_api_key"

solutions/fully-configurable/main.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ locals {
3737
module "kms" {
3838
count = local.create_kms_key ? 1 : 0
3939
source = "terraform-ibm-modules/kms-all-inclusive/ibm"
40-
version = "5.4.10"
40+
version = "5.5.0"
4141
create_key_protect_instance = false
4242
region = local.kms_region
4343
existing_kms_instance_crn = var.existing_kms_instance_crn

solutions/fully-configurable/variables.tf

Lines changed: 36 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,8 @@ variable "existing_resource_group_name" {
2727

2828
variable "prefix" {
2929
type = string
30-
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-ai. [Learn more](https://terraform-ibm-modules.github.io/documentation/#/prefix.md)."
30+
nullable = true
31+
description = "The prefix to add to all resources that this solution creates (e.g `prod`, `test`, `dev`). To skip using a prefix, set this value to null or an empty string. [Learn more](https://terraform-ibm-modules.github.io/documentation/#/prefix.md)."
3132

3233
validation {
3334
# - null and empty string is allowed
@@ -76,6 +77,14 @@ variable "existing_watsonx_ai_studio_instance_crn" {
7677
default = null
7778
description = "The CRN of an existing watsonx.ai Studio instance. If not provided, a new instance will be provisioned."
7879
type = string
80+
81+
validation {
82+
condition = anytrue([
83+
var.existing_watsonx_ai_studio_instance_crn == null,
84+
can(regex("^crn:v\\d:(.*:){2}data-science-experience:(.*:)([aos]\\/[\\w_\\-]+):[0-9a-fA-F]{8}(?:-[0-9a-fA-F]{4}){3}-[0-9a-fA-F]{12}::$", var.existing_watsonx_ai_studio_instance_crn))
85+
])
86+
error_message = "The value provided for 'existing_watsonx_ai_studio_instance_crn' is not valid."
87+
}
7988
}
8089

8190
variable "watsonx_ai_studio_plan" {
@@ -102,6 +111,14 @@ variable "existing_watsonx_ai_runtime_instance_crn" {
102111
default = null
103112
description = "The CRN of an existing watsonx.ai Runtime instance. If not provided, a new instance will be provisioned."
104113
type = string
114+
115+
validation {
116+
condition = anytrue([
117+
var.existing_watsonx_ai_runtime_instance_crn == null,
118+
can(regex("^crn:v\\d:(.*:){2}pm-20:(.*:)([aos]\\/[\\w_\\-]+):[0-9a-fA-F]{8}(?:-[0-9a-fA-F]{4}){3}-[0-9a-fA-F]{12}::$", var.existing_watsonx_ai_runtime_instance_crn))
119+
])
120+
error_message = "The value provided for 'existing_watsonx_ai_runtime_instance_crn' is not valid."
121+
}
105122
}
106123

107124
variable "watsonx_ai_runtime_instance_name" {
@@ -184,17 +201,25 @@ variable "existing_kms_instance_crn" {
184201

185202
validation {
186203
condition = anytrue([
187-
can(regex("^crn:(.*:){3}kms:(.*:){2}[0-9a-fA-F]{8}(?:-[0-9a-fA-F]{4}){3}-[0-9a-fA-F]{12}::$", var.existing_kms_instance_crn)),
188204
var.existing_kms_instance_crn == null,
205+
can(regex("^crn:v\\d:(.*:){2}kms:(.*:)([aos]\\/[\\w_\\-]+):[0-9a-fA-F]{8}(?:-[0-9a-fA-F]{4}){3}-[0-9a-fA-F]{12}::$", var.existing_kms_instance_crn))
189206
])
190-
error_message = "The provided KMS (Key Protect) instance CRN in not valid."
207+
error_message = "The value provided for 'existing_kms_instance_crn' is not valid."
191208
}
192209
}
193210

194211
variable "existing_cos_kms_key_crn" {
195212
type = string
196213
default = null
197214
description = "Optional. The CRN of an existing key management service (Key Protect) key to use to encrypt the Cloud Object Storage bucket that this solution creates. To create a key ring and key, pass a value for the `existing_kms_instance_crn` input variable."
215+
216+
validation {
217+
condition = anytrue([
218+
var.existing_cos_kms_key_crn == null,
219+
can(regex("^crn:v\\d:(.*:){2}kms:(.*:)([aos]\\/[\\w_\\-]+):[0-9a-fA-F]{8}(?:-[0-9a-fA-F]{4}){3}-[0-9a-fA-F]{12}:key:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$", var.existing_cos_kms_key_crn))
220+
])
221+
error_message = "The value provided for 'existing_cos_kms_key_crn' is not valid."
222+
}
198223
}
199224

200225
variable "kms_endpoint_type" {
@@ -244,6 +269,14 @@ variable "ibmcloud_kms_api_key" {
244269
variable "existing_cos_instance_crn" {
245270
type = string
246271
description = "The CRN of an existing Cloud Object Storage instance."
272+
273+
validation {
274+
condition = anytrue([
275+
var.existing_cos_instance_crn == null,
276+
can(regex("^crn:v\\d:(.*:){2}cloud-object-storage:(.*:)([aos]\\/[\\w_\\-]+):[0-9a-fA-F]{8}(?:-[0-9a-fA-F]{4}){3}-[0-9a-fA-F]{12}::$", var.existing_cos_instance_crn))
277+
])
278+
error_message = "The value provided for 'existing_cos_instance_crn' is not valid."
279+
}
247280
}
248281

249282
variable "skip_cos_kms_iam_auth_policy" {

tests/go.mod

Lines changed: 17 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -5,20 +5,19 @@ go 1.24.0
55
toolchain go1.25.4
66

77
require (
8-
github.com/IBM/go-sdk-core v1.1.0
9-
github.com/gruntwork-io/terratest v0.52.0
8+
github.com/IBM/go-sdk-core/v5 v5.21.2
9+
github.com/gruntwork-io/terratest v0.54.0
1010
github.com/stretchr/testify v1.11.1
11-
github.com/terraform-ibm-modules/ibmcloud-terratest-wrapper v1.60.22
11+
github.com/terraform-ibm-modules/ibmcloud-terratest-wrapper v1.60.34
1212
)
1313

1414
require (
1515
dario.cat/mergo v1.0.0 // indirect
1616
github.com/IBM-Cloud/bluemix-go v0.0.0-20240719075425-078fcb3a55be // indirect
17-
github.com/IBM-Cloud/power-go-client v1.13.0 // indirect
17+
github.com/IBM-Cloud/power-go-client v1.14.3 // indirect
1818
github.com/IBM/cloud-databases-go-sdk v0.8.1 // indirect
19-
github.com/IBM/go-sdk-core/v5 v5.21.0 // indirect
20-
github.com/IBM/platform-services-go-sdk v0.90.0 // indirect
21-
github.com/IBM/project-go-sdk v0.3.9 // indirect
19+
github.com/IBM/platform-services-go-sdk v0.90.4 // indirect
20+
github.com/IBM/project-go-sdk v0.4.0 // indirect
2221
github.com/IBM/schematics-go-sdk v0.4.0 // indirect
2322
github.com/IBM/vpc-go-sdk v1.0.2 // indirect
2423
github.com/Microsoft/go-winio v0.6.2 // indirect
@@ -29,13 +28,12 @@ require (
2928
github.com/cloudflare/circl v1.6.1 // indirect
3029
github.com/cyphar/filepath-securejoin v0.4.1 // indirect
3130
github.com/davecgh/go-spew v1.1.1 // indirect
32-
github.com/dgrijalva/jwt-go v3.2.0+incompatible // indirect
3331
github.com/emirpasic/gods v1.18.1 // indirect
34-
github.com/gabriel-vasile/mimetype v1.4.9 // indirect
32+
github.com/gabriel-vasile/mimetype v1.4.11 // indirect
3533
github.com/ghodss/yaml v1.0.0 // indirect
3634
github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 // indirect
3735
github.com/go-git/go-billy/v5 v5.6.2 // indirect
38-
github.com/go-git/go-git/v5 v5.16.3 // indirect
36+
github.com/go-git/go-git/v5 v5.16.4 // indirect
3937
github.com/go-logr/logr v1.4.2 // indirect
4038
github.com/go-logr/stdr v1.2.2 // indirect
4139
github.com/go-openapi/analysis v0.23.0 // indirect
@@ -50,7 +48,7 @@ require (
5048
github.com/go-openapi/validate v0.24.0 // indirect
5149
github.com/go-playground/locales v0.14.1 // indirect
5250
github.com/go-playground/universal-translator v0.18.1 // indirect
53-
github.com/go-playground/validator/v10 v10.26.0 // indirect
51+
github.com/go-playground/validator/v10 v10.28.0 // indirect
5452
github.com/go-viper/mapstructure/v2 v2.4.0 // indirect
5553
github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8 // indirect
5654
github.com/google/go-cmp v0.7.0 // indirect
@@ -59,7 +57,7 @@ require (
5957
github.com/hashicorp/go-cleanhttp v0.5.2 // indirect
6058
github.com/hashicorp/go-getter/v2 v2.2.3 // indirect
6159
github.com/hashicorp/go-multierror v1.1.1 // indirect
62-
github.com/hashicorp/go-retryablehttp v0.7.7 // indirect
60+
github.com/hashicorp/go-retryablehttp v0.7.8 // indirect
6361
github.com/hashicorp/go-safetemp v1.0.0 // indirect
6462
github.com/hashicorp/go-version v1.7.0 // indirect
6563
github.com/hashicorp/hcl/v2 v2.22.0 // indirect
@@ -91,15 +89,14 @@ require (
9189
go.opentelemetry.io/otel v1.35.0 // indirect
9290
go.opentelemetry.io/otel/metric v1.35.0 // indirect
9391
go.opentelemetry.io/otel/trace v1.35.0 // indirect
94-
go.yaml.in/yaml/v2 v2.4.2 // indirect
95-
golang.org/x/crypto v0.43.0 // indirect
96-
golang.org/x/mod v0.28.0 // indirect
97-
golang.org/x/net v0.46.0 // indirect
92+
go.yaml.in/yaml/v2 v2.4.3 // indirect
93+
golang.org/x/crypto v0.45.0 // indirect
94+
golang.org/x/mod v0.29.0 // indirect
95+
golang.org/x/net v0.47.0 // indirect
9896
golang.org/x/sync v0.18.0 // indirect
99-
golang.org/x/sys v0.37.0 // indirect
100-
golang.org/x/text v0.30.0 // indirect
101-
golang.org/x/tools v0.37.0 // indirect
102-
gopkg.in/go-playground/validator.v9 v9.31.0 // indirect
97+
golang.org/x/sys v0.38.0 // indirect
98+
golang.org/x/text v0.31.0 // indirect
99+
golang.org/x/tools v0.38.0 // indirect
103100
gopkg.in/warnings.v0 v0.1.2 // indirect
104101
gopkg.in/yaml.v2 v2.4.0 // indirect
105102
gopkg.in/yaml.v3 v3.0.1 // indirect

0 commit comments

Comments
 (0)