Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 1 addition & 18 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -142,29 +142,12 @@ module "ease_module" {

### Required IAM access policies

<!-- PERMISSIONS REQUIRED TO RUN MODULE
If this module requires permissions, uncomment the following block and update
the sample permissions, following the format.
Replace the sample Account and IBM Cloud service names and roles with the
information in the console at
Manage > Access (IAM) > Access groups > Access policies.
-->

You need the following permissions to run this module:

- IAM services
- **enterprise-application-service** service
- `Editor` platform access

<!-- NO PERMISSIONS FOR MODULE
If no permissions are required for the module, uncomment the following
statement instead the previous block.
-->

<!--
No permissions are needed to run this module.
-->

<!-- The following content is automatically populated by the pre-commit hook -->
<!-- BEGINNING OF PRE-COMMIT-TERRAFORM DOCS HOOK -->
### Requirements
Expand Down Expand Up @@ -192,7 +175,7 @@ No modules.
| <a name="input_ease_name"></a> [ease\_name](#input\_ease\_name) | The name for the newly provisioned Enterprise Application Service instance. If a prefix input variable is specified, the prefix is added to the name in the `<prefix>-<name>` format. | `string` | `"instance"` | no |
| <a name="input_maven_repository_password"></a> [maven\_repository\_password](#input\_maven\_repository\_password) | Maven repository authentication password if needed. Default to null. | `string` | `null` | no |
| <a name="input_maven_repository_username"></a> [maven\_repository\_username](#input\_maven\_repository\_username) | Maven repository authentication username if needed. Default to null. | `string` | `null` | no |
| <a name="input_plan"></a> [plan](#input\_plan) | The desired pricing plan for Enterprise Application Service instance. | `string` | `"Standard"` | no |
| <a name="input_plan"></a> [plan](#input\_plan) | The desired pricing plan for Enterprise Application Service instance. | `string` | `"standard"` | no |
| <a name="input_region"></a> [region](#input\_region) | The desired region for deploying Enterprise Application Service instance. | `string` | `"us-east"` | no |
| <a name="input_repos_git_token"></a> [repos\_git\_token](#input\_repos\_git\_token) | The GitHub token to read from the application and configuration repositories. It cannot be null if var.source\_repo and var.config\_repo are not null. | `string` | `null` | no |
| <a name="input_resource_group_id"></a> [resource\_group\_id](#input\_resource\_group\_id) | The ID of the resource group to use for the creation of the Enterprise Application Service instance. | `string` | n/a | yes |
Expand Down
2 changes: 1 addition & 1 deletion examples/basic/variables.tf
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ variable "resource_group" {
variable "plan" {
type = string
description = "The desired pricing plan for IBM Enterprise Application Service instance."
default = "Standard"
default = "standard"
}

variable "region" {
Expand Down
2 changes: 1 addition & 1 deletion examples/bdr_complete/variables.tf
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ variable "resource_group" {
variable "plan" {
type = string
description = "The desired pricing plan for IBM Enterprise Application Service instance."
default = "Standard"
default = "standard"
}

variable "region" {
Expand Down
2 changes: 1 addition & 1 deletion examples/dr_complete/variables.tf
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ variable "resource_group" {
variable "plan" {
type = string
description = "The desired pricing plan for IBM Enterprise Application Service instance."
default = "Standard"
default = "standard"
}

variable "region" {
Expand Down
11 changes: 8 additions & 3 deletions ibm_catalog.json
Original file line number Diff line number Diff line change
Expand Up @@ -316,7 +316,7 @@
{
"reference_version": true,
"dependency_input": "existing_mq_capacity_crn",
"version_input": "mq_s2s_policy_target_crn"
"version_input": "mq_capacity_s2s_policy_target_crn"
},
{
"value": true,
Expand Down Expand Up @@ -376,7 +376,7 @@
"options": [
{
"displayname": "Standard",
"value": "Standard"
"value": "standard"
},
{
"displayname": "Trial (for allowlisted accounts only)",
Expand Down Expand Up @@ -574,7 +574,12 @@
}
},
{
"key": "mq_s2s_policy_target_crn"
"display_name": "existing_mq_capacity_crn",
"key": "mq_capacity_s2s_policy_target_crn",
"required": true,
"default_value": "__NOT_SET__",
"type": "string",
"description": "The existing MQ capacity instance for MQ on Cloud Deployable Architecture. If set this value is used to create an instance of MQ on Cloud using the existing MQ capacity instance and to setup a Service to Service policy from Enterprise Application Service instance to MQ on Cloud. Set explicitly to null to not use it."
},
{
"key": "db2_s2s_policy_enable"
Expand Down
10 changes: 5 additions & 5 deletions solutions/fully-configurable/main.tf
Original file line number Diff line number Diff line change
Expand Up @@ -120,21 +120,21 @@ data "ibm_iam_account_settings" "provider_account" {}

# parsing crn to collect the MQ capacity instance ID and its owner account ID
module "crn_parser_mq_capacity_instance_crn" {
count = var.mq_s2s_policy_target_crn != null ? 1 : 0
count = var.mq_capacity_s2s_policy_target_crn != null ? 1 : 0
source = "terraform-ibm-modules/common-utilities/ibm//modules/crn-parser"
version = "1.2.0"
crn = var.mq_s2s_policy_target_crn
crn = var.mq_capacity_s2s_policy_target_crn
}

locals {
# for S2S policy, the source accountID is the one owning the Enterprise Application Service instance and the target is the account retrieved from the MQ instance CRN or, if this is null, the one creating the policy and owning the Enterprise Application Service instance
mq_s2s_subject_account_id = data.ibm_iam_account_settings.provider_account.account_id
mq_s2s_target_account_id = var.mq_s2s_policy_target_crn != null ? module.crn_parser_mq_capacity_instance_crn[0].account_id : data.ibm_iam_account_settings.provider_account.account_id
mq_s2s_target_account_id = var.mq_capacity_s2s_policy_target_crn != null ? module.crn_parser_mq_capacity_instance_crn[0].account_id : data.ibm_iam_account_settings.provider_account.account_id
}

# creating S2S policy to MQ if enabled - MQ instance scope
resource "ibm_iam_authorization_policy" "mq_s2s_policy_crn_scope" {
count = var.mq_s2s_policy_enable == true && var.mq_s2s_policy_target_crn != null ? 1 : 0
count = var.mq_s2s_policy_enable == true && var.mq_capacity_s2s_policy_target_crn != null ? 1 : 0
roles = var.mq_s2s_policy_roles

# limiting the source accountID of S2S policy to the provider account ID is used
Expand Down Expand Up @@ -180,7 +180,7 @@ resource "ibm_iam_authorization_policy" "mq_s2s_policy_crn_scope" {

# creating S2S policy to MQ if enabled - account scope scope
resource "ibm_iam_authorization_policy" "mq_s2s_policy_account_scope" {
count = var.mq_s2s_policy_enable == true && var.mq_s2s_policy_target_crn == null ? 1 : 0
count = var.mq_s2s_policy_enable == true && var.mq_capacity_s2s_policy_target_crn == null ? 1 : 0
roles = var.mq_s2s_policy_roles

# limiting the source accountID of S2S policy to the provider account ID is used
Expand Down
23 changes: 19 additions & 4 deletions solutions/fully-configurable/outputs.tf
Original file line number Diff line number Diff line change
Expand Up @@ -49,22 +49,22 @@ output "ease_instance_resource_status" {

output "mq_capacity_instance_crn" {
description = "MQ capacity instance crn"
value = var.mq_s2s_policy_target_crn != null ? var.mq_s2s_policy_target_crn : null
value = var.mq_capacity_s2s_policy_target_crn != null ? var.mq_capacity_s2s_policy_target_crn : null
}

output "mq_s2s_policy_id_crn_scope" {
description = "Service to Service policy id to MQ capacity instance"
value = var.mq_s2s_policy_enable == true && var.mq_s2s_policy_target_crn != null ? ibm_iam_authorization_policy.mq_s2s_policy_crn_scope[0].id : null
value = var.mq_s2s_policy_enable == true && var.mq_capacity_s2s_policy_target_crn != null ? ibm_iam_authorization_policy.mq_s2s_policy_crn_scope[0].id : null
}

output "mq_s2s_policy_id_account_scope" {
description = "Service to Service policy id to MQ service with account scope"
value = var.mq_s2s_policy_enable == true && var.mq_s2s_policy_target_crn == null ? ibm_iam_authorization_policy.mq_s2s_policy_account_scope[0].id : null
value = var.mq_s2s_policy_enable == true && var.mq_capacity_s2s_policy_target_crn == null ? ibm_iam_authorization_policy.mq_s2s_policy_account_scope[0].id : null
}

output "mq_s2s_resource_id" {
description = "Target Resource ID for the Service to Service policy for MQ capacity instance"
value = var.mq_s2s_policy_target_crn != null ? module.crn_parser_mq_capacity_instance_crn[0].service_instance : null
value = var.mq_capacity_s2s_policy_target_crn != null ? module.crn_parser_mq_capacity_instance_crn[0].service_instance : null
}

output "db2_instance_crn" {
Expand All @@ -86,3 +86,18 @@ output "db2_s2s_resource_id" {
description = "Target Resource ID for the Service to Service policy for DB2 instance"
value = var.db2_s2s_policy_target_crn != null ? module.crn_parser_db2_instance_crn[0].service_instance : null
}

output "next_steps_text" {
value = "Enterprise Application Service instance dashboard"
description = "Access the Enterprise Application Service instance dashboard"
}

output "next_step_primary_label" {
value = "Enterprise Application Service Instance"
description = "Primary label"
}

output "next_step_primary_url" {
value = local.app_dashboard_url
description = "primary url"
}
8 changes: 4 additions & 4 deletions solutions/fully-configurable/variables.tf
Original file line number Diff line number Diff line change
Expand Up @@ -73,11 +73,11 @@ variable "instance_name" {
variable "plan" {
type = string
description = "The desired pricing plan for Enterprise Application Service instance."
default = "Standard"
default = "standard"
validation {
# free plan is added only to allow test/validation execution (its catalog name is Trial, programmatic name is free)
condition = contains(["Standard", "free"], var.plan)
error_message = "The only values accepted for the plan field are Standard and free."
condition = contains(["standard", "free"], var.plan)
error_message = "The only values accepted for the plan field are standard and free."
}
}

Expand Down Expand Up @@ -162,7 +162,7 @@ variable "mq_s2s_policy_roles" {
}
}

variable "mq_s2s_policy_target_crn" {
variable "mq_capacity_s2s_policy_target_crn" {
type = string
description = "MQ resource capacity instance CRN to restrict the target for the Service to Service policy to MQ service instance. If mq_s2s_policy_enable is true but this is null the S2S policy is created at account scope on Enterprise Application Service instance account owner. Default to null."
default = null
Expand Down
9 changes: 5 additions & 4 deletions tests/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ toolchain go1.25.1

require (
github.com/stretchr/testify v1.11.1
github.com/terraform-ibm-modules/ibmcloud-terratest-wrapper v1.60.6
github.com/terraform-ibm-modules/ibmcloud-terratest-wrapper v1.60.11
gopkg.in/yaml.v3 v3.0.1
)

Expand All @@ -17,7 +17,7 @@ require (
github.com/IBM/cloud-databases-go-sdk v0.8.0 // indirect
github.com/IBM/go-sdk-core/v5 v5.21.0 // indirect
github.com/IBM/platform-services-go-sdk v0.86.1 // indirect
github.com/IBM/project-go-sdk v0.3.6 // indirect
github.com/IBM/project-go-sdk v0.3.9 // indirect
github.com/IBM/schematics-go-sdk v0.4.0 // indirect
github.com/IBM/vpc-go-sdk v1.0.2 // indirect
github.com/Microsoft/go-winio v0.6.2 // indirect
Expand Down Expand Up @@ -53,7 +53,7 @@ require (
github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8 // indirect
github.com/google/go-cmp v0.7.0 // indirect
github.com/google/uuid v1.6.0 // indirect
github.com/gruntwork-io/terratest v0.50.0 // indirect
github.com/gruntwork-io/terratest v0.51.0 // indirect
github.com/hashicorp/errwrap v1.1.0 // indirect
github.com/hashicorp/go-cleanhttp v0.5.2 // indirect
github.com/hashicorp/go-getter/v2 v2.2.3 // indirect
Expand Down Expand Up @@ -91,6 +91,7 @@ require (
go.opentelemetry.io/otel v1.35.0 // indirect
go.opentelemetry.io/otel/metric v1.35.0 // indirect
go.opentelemetry.io/otel/trace v1.35.0 // indirect
go.yaml.in/yaml/v2 v2.4.2 // indirect
golang.org/x/crypto v0.41.0 // indirect
golang.org/x/mod v0.26.0 // indirect
golang.org/x/net v0.42.0 // indirect
Expand All @@ -100,5 +101,5 @@ require (
golang.org/x/tools v0.35.0 // indirect
gopkg.in/warnings.v0 v0.1.2 // indirect
gopkg.in/yaml.v2 v2.4.0 // indirect
sigs.k8s.io/yaml v1.4.0 // indirect
sigs.k8s.io/yaml v1.6.0 // indirect
)
22 changes: 12 additions & 10 deletions tests/go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@ github.com/IBM/go-sdk-core/v5 v5.21.0 h1:DUnYhvC4SoC8T84rx5omnhY3+xcQg/Whyoa3mDP
github.com/IBM/go-sdk-core/v5 v5.21.0/go.mod h1:Q3BYO6iDA2zweQPDGbNTtqft5tDcEpm6RTuqMlPcvbw=
github.com/IBM/platform-services-go-sdk v0.86.1 h1:ngBpaXvUF3gmLvbU1Z4lX1wowOSYgGoKBEBaR/urt30=
github.com/IBM/platform-services-go-sdk v0.86.1/go.mod h1:aGD045m6I8pfcB77wft8w2cHqWOJjcM3YSSV55BX0Js=
github.com/IBM/project-go-sdk v0.3.6 h1:DRiANKnAePevFsIKSvR89SUaMa2xsd7YKK71Ka1eqKI=
github.com/IBM/project-go-sdk v0.3.6/go.mod h1:FOJM9ihQV3EEAY6YigcWiTNfVCThtdY8bLC/nhQHFvo=
github.com/IBM/project-go-sdk v0.3.9 h1:D/UfMMn+vMQyvYf9EfocV6HrD3HcVpeIVoUSjNKuROo=
github.com/IBM/project-go-sdk v0.3.9/go.mod h1:FOJM9ihQV3EEAY6YigcWiTNfVCThtdY8bLC/nhQHFvo=
github.com/IBM/schematics-go-sdk v0.4.0 h1:x01f/tPquYJYLQzJLGuxWfCbV/EdSMXRikOceNy/JLM=
github.com/IBM/schematics-go-sdk v0.4.0/go.mod h1:Xe7R7xgwmXBHu09w2CbBe8lkWZaYxNQo19bS4dpLrUA=
github.com/IBM/vpc-go-sdk v1.0.2 h1:WhI1Cb8atA8glUdFg0SEUh9u8afjnKHxZAj9onQBi04=
Expand Down Expand Up @@ -147,8 +147,8 @@ github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+
github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/gruntwork-io/terratest v0.50.0 h1:AbBJ7IRCpLZ9H4HBrjeoWESITv8nLjN6/f1riMNcAsw=
github.com/gruntwork-io/terratest v0.50.0/go.mod h1:see0lbKvAqz6rvzvN2wyfuFQQG4PWcAb2yHulF6B2q4=
github.com/gruntwork-io/terratest v0.51.0 h1:RCXlCwWlHqhUoxgF6n3hvywvbvrsTXqoqt34BrnLekw=
github.com/gruntwork-io/terratest v0.51.0/go.mod h1:evZHXb8VWDgv5O5zEEwfkwMhkx9I53QR/RB11cISrpg=
github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY2I=
github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
Expand Down Expand Up @@ -295,8 +295,8 @@ github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO
github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U=
github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U=
github.com/terraform-ibm-modules/ibmcloud-terratest-wrapper v1.60.6 h1:Tr7AlrQ+s1Nc9VOwB+It8sItnDOXhfXTxKqI2KtdyFA=
github.com/terraform-ibm-modules/ibmcloud-terratest-wrapper v1.60.6/go.mod h1:YBrRYc+5y5Pr9CXmY35lOqTQdlIjA4x4+3iVObXGOCE=
github.com/terraform-ibm-modules/ibmcloud-terratest-wrapper v1.60.11 h1:+ATsuqFoHUg/EWpBfF7o8wzxibSan8hG5DJV2NIgrO4=
github.com/terraform-ibm-modules/ibmcloud-terratest-wrapper v1.60.11/go.mod h1:9QXyZWo0MotbNavJDyeEdpTj1YKoI6IT1wOPJnI1ahI=
github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk=
github.com/tmccombs/hcl2json v0.6.4 h1:/FWnzS9JCuyZ4MNwrG4vMrFrzRgsWEOVi+1AyYUVLGw=
github.com/tmccombs/hcl2json v0.6.4/go.mod h1:+ppKlIW3H5nsAsZddXPy2iMyvld3SHxyjswOZhavRDk=
Expand Down Expand Up @@ -331,6 +331,8 @@ go.opentelemetry.io/otel/sdk v1.29.0 h1:vkqKjk7gwhS8VaWb0POZKmIEDimRCMsopNYnriHy
go.opentelemetry.io/otel/sdk v1.29.0/go.mod h1:pM8Dx5WKnvxLCb+8lG1PRNIDxu9g9b9g59Qr7hfAAok=
go.opentelemetry.io/otel/trace v1.35.0 h1:dPpEfJu1sDIqruz7BHFG3c7528f6ddfSWfFDVt/xgMs=
go.opentelemetry.io/otel/trace v1.35.0/go.mod h1:WUk7DtFp1Aw2MkvqGdwiXYDZZNvA/1J8o6xRXLrIkyc=
go.yaml.in/yaml/v2 v2.4.2 h1:DzmwEr2rDGHl7lsFgAHxmNz/1NlQ7xLIrlN2h5d1eGI=
go.yaml.in/yaml/v2 v2.4.2/go.mod h1:081UH+NErpNdqlCXm3TtEran0rJZGxAYx9hb/ELlsPU=
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20200302210943-78000ba7a073/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
Expand Down Expand Up @@ -500,8 +502,8 @@ google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2
google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
google.golang.org/protobuf v1.35.1 h1:m3LfL6/Ca+fqnjnlqQXNpFPABW1UD7mjh8KO2mKFytA=
google.golang.org/protobuf v1.35.1/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE=
google.golang.org/protobuf v1.36.5 h1:tPhr+woSbjfYvY6/GPufUoYizxw1cF/yFoxJ2fmpwlM=
google.golang.org/protobuf v1.36.5/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
Expand All @@ -524,5 +526,5 @@ gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C
gopkg.in/yaml.v3 v3.0.0-20200605160147-a5ece683394c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
sigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E=
sigs.k8s.io/yaml v1.4.0/go.mod h1:Ejl7/uTz7PSA4eKMyQCUTnhZYNmLIl+5c2lQPGR2BPY=
sigs.k8s.io/yaml v1.6.0 h1:G8fkbMSAFqgEFgh4b1wmtzDnioxFCUgTZhlbj5P9QYs=
sigs.k8s.io/yaml v1.6.0/go.mod h1:796bPqUfzR/0jLAl6XjHl3Ck7MiyVv8dbTdyT3/pMf4=
Loading