diff --git a/README.md b/README.md index 084d49b..1b0b6e9 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ Update status and "latest release" badges: 1. For the status options, see https://terraform-ibm-modules.github.io/documentation/#/badge-status 2. Update the "latest release" badge to point to the correct module's repo. Replace "terraform-ibm-module-template" in two places. --> -[![Incubating (Not yet consumable)](https://img.shields.io/badge/status-Incubating%20(Not%20yet%20consumable)-red)](https://terraform-ibm-modules.github.io/documentation/#/badge-status) +[![Stable (With quality checks)](https://img.shields.io/badge/Status-Stable%20(With%20quality%20checks)-green)](https://terraform-ibm-modules.github.io/documentation/#/badge-status) [![latest release](https://img.shields.io/github/v/release/terraform-ibm-modules/terraform-ibm-web-app-mzr-da?logo=GitHub&sort=semver)](https://github.com/terraform-ibm-modules/terraform-ibm-web-app-mzr-da/releases/latest) [![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white)](https://github.com/pre-commit/pre-commit) [![Renovate enabled](https://img.shields.io/badge/renovate-enabled-brightgreen.svg)](https://renovatebot.com/) diff --git a/common-dev-assets b/common-dev-assets index 2365130..347487f 160000 --- a/common-dev-assets +++ b/common-dev-assets @@ -1 +1 @@ -Subproject commit 23651307a050e56d75bfeaf0efa1c31412da092f +Subproject commit 347487f8935050c157b9e1d9a5a5b255ae77c034 diff --git a/solutions/e2e/README.md b/solutions/e2e/README.md index b1b3593..98978d7 100644 --- a/solutions/e2e/README.md +++ b/solutions/e2e/README.md @@ -105,57 +105,57 @@ statement instead the previous block. | Name | Version | |------|---------| | [terraform](#requirement\_terraform) | >= 1.3.0 | -| [ibm](#requirement\_ibm) | >= 1.60.0 | -| [null](#requirement\_null) | 3.2.2 | -| [random](#requirement\_random) | 3.6.0 | +| [ibm](#requirement\_ibm) | 1.70.1 | +| [null](#requirement\_null) | 3.2.3 | +| [random](#requirement\_random) | 3.6.3 | ### Modules | Name | Source | Version | |------|--------|---------| -| [app\_tier\_autoscale](#module\_app\_tier\_autoscale) | github.com/terraform-ibm-modules/terraform-ibm-landing-zone-vsi-autoscale | v1.0.0 | -| [data\_tier\_vsi](#module\_data\_tier\_vsi) | terraform-ibm-modules/landing-zone-vsi/ibm | 4.0.0 | -| [landing\_zone](#module\_landing\_zone) | git::https://github.com/terraform-ibm-modules/terraform-ibm-landing-zone.git//patterns/vsi | v5.20.2 | -| [private\_secret\_engine](#module\_private\_secret\_engine) | terraform-ibm-modules/secrets-manager-private-cert-engine/ibm | 1.2.2 | -| [secrets\_manager\_group](#module\_secrets\_manager\_group) | terraform-ibm-modules/secrets-manager-secret-group/ibm | 1.1.4 | -| [secrets\_manager\_private\_certificate](#module\_secrets\_manager\_private\_certificate) | terraform-ibm-modules/secrets-manager-private-cert/ibm | 1.1.3 | -| [sm\_resource\_group](#module\_sm\_resource\_group) | terraform-ibm-modules/resource-group/ibm | 1.1.5 | -| [web\_tier\_autoscale](#module\_web\_tier\_autoscale) | github.com/terraform-ibm-modules/terraform-ibm-landing-zone-vsi-autoscale | v1.0.0 | +| [app\_tier\_autoscale](#module\_app\_tier\_autoscale) | github.com/terraform-ibm-modules/terraform-ibm-landing-zone-vsi-autoscale | v1.0.2 | +| [data\_tier\_vsi](#module\_data\_tier\_vsi) | terraform-ibm-modules/landing-zone-vsi/ibm | 4.2.0 | +| [landing\_zone](#module\_landing\_zone) | git::https://github.com/terraform-ibm-modules/terraform-ibm-landing-zone.git//patterns/vsi/module | v6.1.2 | +| [private\_secret\_engine](#module\_private\_secret\_engine) | terraform-ibm-modules/secrets-manager-private-cert-engine/ibm | 1.3.3 | +| [secrets\_manager\_group](#module\_secrets\_manager\_group) | terraform-ibm-modules/secrets-manager-secret-group/ibm | 1.2.2 | +| [secrets\_manager\_private\_certificate](#module\_secrets\_manager\_private\_certificate) | terraform-ibm-modules/secrets-manager-private-cert/ibm | 1.3.1 | +| [sm\_resource\_group](#module\_sm\_resource\_group) | terraform-ibm-modules/resource-group/ibm | 1.1.6 | +| [web\_tier\_autoscale](#module\_web\_tier\_autoscale) | github.com/terraform-ibm-modules/terraform-ibm-landing-zone-vsi-autoscale | v1.0.2 | ### Resources | Name | Type | |------|------| -| [ibm_iam_authorization_policy.s2s_lb_to_sm](https://registry.terraform.io/providers/IBM-Cloud/ibm/latest/docs/resources/iam_authorization_policy) | resource | -| [ibm_resource_instance.secrets_manager](https://registry.terraform.io/providers/IBM-Cloud/ibm/latest/docs/resources/resource_instance) | resource | -| [null_resource.primary_postgresql_install](https://registry.terraform.io/providers/hashicorp/null/3.2.2/docs/resources/resource) | resource | -| [null_resource.secondary_postgresql_install](https://registry.terraform.io/providers/hashicorp/null/3.2.2/docs/resources/resource) | resource | -| [random_password.password](https://registry.terraform.io/providers/hashicorp/random/3.6.0/docs/resources/password) | resource | -| [ibm_is_image.app_is_image](https://registry.terraform.io/providers/IBM-Cloud/ibm/latest/docs/data-sources/is_image) | data source | -| [ibm_is_image.data_is_image](https://registry.terraform.io/providers/IBM-Cloud/ibm/latest/docs/data-sources/is_image) | data source | -| [ibm_is_image.web_is_image](https://registry.terraform.io/providers/IBM-Cloud/ibm/latest/docs/data-sources/is_image) | data source | +| [ibm_iam_authorization_policy.s2s_lb_to_sm](https://registry.terraform.io/providers/IBM-Cloud/ibm/1.70.1/docs/resources/iam_authorization_policy) | resource | +| [ibm_resource_instance.secrets_manager](https://registry.terraform.io/providers/IBM-Cloud/ibm/1.70.1/docs/resources/resource_instance) | resource | +| [null_resource.primary_postgresql_install](https://registry.terraform.io/providers/hashicorp/null/3.2.3/docs/resources/resource) | resource | +| [null_resource.secondary_postgresql_install](https://registry.terraform.io/providers/hashicorp/null/3.2.3/docs/resources/resource) | resource | +| [random_password.password](https://registry.terraform.io/providers/hashicorp/random/3.6.3/docs/resources/password) | resource | +| [ibm_is_image.app_is_image](https://registry.terraform.io/providers/IBM-Cloud/ibm/1.70.1/docs/data-sources/is_image) | data source | +| [ibm_is_image.data_is_image](https://registry.terraform.io/providers/IBM-Cloud/ibm/1.70.1/docs/data-sources/is_image) | data source | +| [ibm_is_image.web_is_image](https://registry.terraform.io/providers/IBM-Cloud/ibm/1.70.1/docs/data-sources/is_image) | data source | ### Inputs | Name | Description | Type | Default | Required | |------|-------------|------|---------|:--------:| | [app\_application\_port](#input\_app\_application\_port) | The instance group the application tier uses when scaling up instances to supply the port for the Load Balancer pool member. | `number` | `3000` | no | -| [app\_block\_storage\_volumes](#input\_app\_block\_storage\_volumes) | List describing the block storage volumes that will be attached to each vsi |
list(| `[]` | no | +| [app\_block\_storage\_volumes](#input\_app\_block\_storage\_volumes) | List describing the block storage volumes that will be attached to each vsi |
object({
name = string
profile = string
capacity = optional(number)
iops = optional(number)
encryption_key = optional(string)
resource_group_id = optional(string)
})
)
list(| `[]` | no | | [app\_boot\_volume\_encryption\_key\_suffix](#input\_app\_boot\_volume\_encryption\_key\_suffix) | App tier boot volume encryption key suffix | `string` | `"vsi-volume-key"` | no | -| [app\_group\_managers](#input\_app\_group\_managers) | Instance group manager to add to the instance group |
object({
name = string
profile = string
capacity = optional(number)
iops = optional(number)
encryption_key = optional(string)
resource_group_id = optional(string)
})
)
list(|
object({
name = string
aggregation_window = optional(number)
cooldown = optional(number)
enable_manager = optional(bool)
manager_type = string
max_membership_count = optional(number)
min_membership_count = optional(number)
actions = optional(
list(
object({
name = string
cron_spec = optional(string)
membership_count = optional(number)
max_membership_count = optional(number)
min_membership_count = optional(number)
run_at = optional(string)
})
)
)
policies = optional(
list(
object({
name = string
metric_type = string
metric_value = number
policy_type = string
})
)
)
})
)
[| no | +| [app\_group\_managers](#input\_app\_group\_managers) | Instance group manager to add to the instance group |
{
"aggregation_window": 120,
"cooldown": 300,
"enable_manager": true,
"manager_type": "autoscale",
"max_membership_count": 4,
"min_membership_count": 1,
"name": "app",
"policies": [
{
"metric_type": "cpu",
"metric_value": 70,
"name": "app-policy",
"policy_type": "target"
}
]
}
]
list(|
object({
name = string
aggregation_window = optional(number)
cooldown = optional(number)
enable_manager = optional(bool)
manager_type = string
max_membership_count = optional(number)
min_membership_count = optional(number)
actions = optional(
list(
object({
name = string
cron_spec = optional(string)
membership_count = optional(number)
max_membership_count = optional(number)
min_membership_count = optional(number)
run_at = optional(string)
})
)
)
policies = optional(
list(
object({
name = string
metric_type = string
metric_value = number
policy_type = string
})
)
)
})
)
[| no | | [app\_instance\_count](#input\_app\_instance\_count) | The number of instances to create in the instance group. | `number` | `1` | no | -| [app\_load\_balancers](#input\_app\_load\_balancers) | Load balancers to add to VSI |
{
"aggregation_window": 120,
"cooldown": 300,
"enable_manager": true,
"manager_type": "autoscale",
"max_membership_count": 4,
"min_membership_count": 1,
"name": "app",
"policies": [
{
"metric_type": "cpu",
"metric_value": 70,
"name": "app-policy",
"policy_type": "target"
}
]
}
]
list(|
object({
name = string
type = string
listener_port = number
listener_protocol = string
connection_limit = number
idle_connection_timeout = optional(number)
algorithm = string
protocol = string
health_delay = number
health_retries = number
health_timeout = number
health_type = string
pool_member_port = string
profile = optional(string)
dns = optional(
object({
instance_crn = string
zone_id = string
})
)
security_group = optional(
object({
name = string
rules = list(
object({
name = string
direction = string
source = string
tcp = optional(
object({
port_max = number
port_min = number
})
)
udp = optional(
object({
port_max = number
port_min = number
})
)
icmp = optional(
object({
type = number
code = number
})
)
})
)
})
)
})
)
[| no | +| [app\_load\_balancers](#input\_app\_load\_balancers) | Load balancers to add to VSI |
{
"algorithm": "round_robin",
"connection_limit": 10,
"health_delay": 60,
"health_retries": 5,
"health_timeout": 30,
"health_type": "tcp",
"listener_port": 3000,
"listener_protocol": "tcp",
"name": "app-lb",
"pool_member_port": 3000,
"protocol": "tcp",
"security_group": {
"name": "app-lb-sg",
"rules": [
{
"direction": "inbound",
"name": "allow-vpc-inbound",
"source": "10.0.0.0/8"
},
{
"direction": "outbound",
"name": "allow-vpc-outbound",
"source": "10.0.0.0/8"
}
]
},
"type": "private"
}
]
list(|
object({
name = string
type = string
listener_port = number
listener_protocol = string
connection_limit = number
idle_connection_timeout = optional(number)
algorithm = string
protocol = string
health_delay = number
health_retries = number
health_timeout = number
health_type = string
pool_member_port = string
profile = optional(string)
dns = optional(
object({
instance_crn = string
zone_id = string
})
)
security_group = optional(
object({
name = string
rules = list(
object({
name = string
direction = string
source = string
tcp = optional(
object({
port_max = number
port_min = number
})
)
udp = optional(
object({
port_max = number
port_min = number
})
)
icmp = optional(
object({
type = number
code = number
})
)
})
)
})
)
})
)
[| no | | [app\_machine\_type](#input\_app\_machine\_type) | Application tier machine type to use | `string` | `"cx2-2x4"` | no | | [app\_os\_profile](#input\_app\_os\_profile) | Application tier machine type to use | `string` | `"ibm-centos-stream-9-amd64-5"` | no | -| [app\_security\_group](#input\_app\_security\_group) | The security group surrounding the application tier VSIs |
{
"algorithm": "round_robin",
"connection_limit": 10,
"health_delay": 60,
"health_retries": 5,
"health_timeout": 30,
"health_type": "tcp",
"listener_port": 3000,
"listener_protocol": "tcp",
"name": "app-lb",
"pool_member_port": 3000,
"protocol": "tcp",
"security_group": {
"name": "app-lb-sg",
"rules": [
{
"direction": "inbound",
"name": "allow-vpc-inbound",
"source": "10.0.0.0/8"
},
{
"direction": "outbound",
"name": "allow-vpc-outbound",
"source": "10.0.0.0/8"
}
]
},
"type": "private"
}
]
object({|
name = string
add_ibm_cloud_internal_rules = optional(bool, false)
rules = list(
object({
name = string
direction = string
source = string
tcp = optional(
object({
port_max = number
port_min = number
})
)
udp = optional(
object({
port_max = number
port_min = number
})
)
icmp = optional(
object({
type = number
code = number
})
)
})
)
})
{| no | +| [app\_security\_group](#input\_app\_security\_group) | The security group surrounding the application tier VSIs |
"name": "app-sg",
"rules": [
{
"direction": "inbound",
"name": "allow-vpc-inbound",
"source": "10.0.0.0/8"
},
{
"direction": "inbound",
"name": "allow-ibm-inbound",
"source": "161.26.0.0/16"
},
{
"direction": "outbound",
"name": "allow-vpc-outbound",
"source": "10.0.0.0/8"
},
{
"direction": "outbound",
"name": "allow-ibm-outbound",
"source": "161.26.0.0/16"
}
]
}
object({|
name = string
add_ibm_cloud_internal_rules = optional(bool, false)
rules = list(
object({
name = string
direction = string
source = string
tcp = optional(
object({
port_max = number
port_min = number
})
)
udp = optional(
object({
port_max = number
port_min = number
})
)
icmp = optional(
object({
type = number
code = number
})
)
})
)
})
{| no | | [cert\_common\_name](#input\_cert\_common\_name) | A fully qualified domain name or host domain name for the certificate to be created. | `string` | `"test.webapp.com"` | no | | [certificate\_template\_name](#input\_certificate\_template\_name) | The name of the Certificate Template to create for a private\_cert secret engine. When `var.existing_sm_instance_guid` is `true`, then it has to be the existing template name that exists in the private cert engine. | `string` | `"my-template"` | no | | [create\_s2s\_lb\_to\_sm](#input\_create\_s2s\_lb\_to\_sm) | Create a service-to-service authorization between VPC LB and Secrets Manager. | `bool` | `true` | no | -| [data\_block\_storage\_volumes](#input\_data\_block\_storage\_volumes) | The data block storage volume to attach to the data VSIs |
"name": "app-sg",
"rules": [
{
"direction": "inbound",
"name": "allow-vpc-inbound",
"source": "10.0.0.0/8"
},
{
"direction": "inbound",
"name": "allow-ibm-inbound",
"source": "161.26.0.0/16"
},
{
"direction": "outbound",
"name": "allow-vpc-outbound",
"source": "10.0.0.0/8"
},
{
"direction": "outbound",
"name": "allow-ibm-outbound",
"source": "161.26.0.0/16"
}
]
}
list(|
object({
name = string
profile = string
capacity = optional(number)
iops = optional(number)
encryption_key = optional(string)
resource_group_id = optional(string)
})
)
[| no | +| [data\_block\_storage\_volumes](#input\_data\_block\_storage\_volumes) | The data block storage volume to attach to the data VSIs |
{
"capacity": 50,
"name": "data",
"profile": "general-purpose"
}
]
list(|
object({
name = string
profile = string
capacity = optional(number)
iops = optional(number)
encryption_key = optional(string)
resource_group_id = optional(string)
})
)
[| no | | [data\_boot\_volume\_encryption\_key\_suffix](#input\_data\_boot\_volume\_encryption\_key\_suffix) | Data tier boot volume encryption key suffix | `string` | `"vsi-volume-key"` | no | | [data\_machine\_type](#input\_data\_machine\_type) | Application tier machine type to use | `string` | `"cx2-2x4"` | no | | [data\_os\_profile](#input\_data\_os\_profile) | Application tier os profile to use | `string` | `"ibm-centos-stream-9-amd64-5"` | no | -| [data\_security\_group](#input\_data\_security\_group) | The security group surrounding the data tier VSIs |
{
"capacity": 50,
"name": "data",
"profile": "general-purpose"
}
]
object({|
name = string
add_ibm_cloud_internal_rules = optional(bool, false)
rules = list(
object({
name = string
direction = string
source = string
tcp = optional(
object({
port_max = number
port_min = number
})
)
udp = optional(
object({
port_max = number
port_min = number
})
)
icmp = optional(
object({
type = number
code = number
})
)
})
)
})
{| no | +| [data\_security\_group](#input\_data\_security\_group) | The security group surrounding the data tier VSIs |
"name": "data-sg",
"rules": [
{
"direction": "inbound",
"name": "allow-vpc-inbound",
"source": "10.0.0.0/8"
},
{
"direction": "inbound",
"name": "allow-ibm-inbound",
"source": "161.26.0.0/16"
},
{
"direction": "outbound",
"name": "allow-vpc-outbound",
"source": "10.0.0.0/8"
},
{
"direction": "outbound",
"name": "allow-ibm-outbound",
"source": "161.26.0.0/16"
}
]
}
object({|
name = string
add_ibm_cloud_internal_rules = optional(bool, false)
rules = list(
object({
name = string
direction = string
source = string
tcp = optional(
object({
port_max = number
port_min = number
})
)
udp = optional(
object({
port_max = number
port_min = number
})
)
icmp = optional(
object({
type = number
code = number
})
)
})
)
})
{| no | | [data\_vsi\_per\_subnet](#input\_data\_vsi\_per\_subnet) | Application tier number of vsi's per subnet | `number` | `1` | no | | [existing\_sm\_instance\_guid](#input\_existing\_sm\_instance\_guid) | An existing Secrets Manager GUID. The existing Secret Manager instance must have private certificate engine configured. If not provided an new instance will be provisioned. | `string` | `null` | no | | [existing\_sm\_instance\_region](#input\_existing\_sm\_instance\_region) | Required if value is passed into `var.existing_sm_instance_guid`. | `string` | `null` | no | @@ -174,14 +174,14 @@ statement instead the previous block. | [ssh\_private\_key](#input\_ssh\_private\_key) | Private SSH key (RSA format) that is paired with the public ssh key. | `string` | n/a | yes | | [use\_sm](#input\_use\_sm) | Whether to use Secrets Manager to generate certificates. | `bool` | `true` | no | | [web\_application\_port](#input\_web\_application\_port) | The instance group the web tier uses when scaling up instances to supply the port for the Load Balancer pool member. | `number` | `80` | no | -| [web\_block\_storage\_volumes](#input\_web\_block\_storage\_volumes) | List describing the block storage volumes that will be attached to each vsi |
"name": "data-sg",
"rules": [
{
"direction": "inbound",
"name": "allow-vpc-inbound",
"source": "10.0.0.0/8"
},
{
"direction": "inbound",
"name": "allow-ibm-inbound",
"source": "161.26.0.0/16"
},
{
"direction": "outbound",
"name": "allow-vpc-outbound",
"source": "10.0.0.0/8"
},
{
"direction": "outbound",
"name": "allow-ibm-outbound",
"source": "161.26.0.0/16"
}
]
}
list(| `[]` | no | +| [web\_block\_storage\_volumes](#input\_web\_block\_storage\_volumes) | List describing the block storage volumes that will be attached to each vsi |
object({
name = string
profile = string
capacity = optional(number)
iops = optional(number)
encryption_key = optional(string)
resource_group_id = optional(string)
})
)
list(| `[]` | no | | [web\_boot\_volume\_encryption\_key\_suffix](#input\_web\_boot\_volume\_encryption\_key\_suffix) | Web tier boot volume encryption key suffix | `string` | `"vsi-volume-key"` | no | -| [web\_group\_managers](#input\_web\_group\_managers) | Instance group manager to add to the instance group |
object({
name = string
profile = string
capacity = optional(number)
iops = optional(number)
encryption_key = optional(string)
resource_group_id = optional(string)
})
)
list(|
object({
name = string
aggregation_window = optional(number)
cooldown = optional(number)
enable_manager = optional(bool)
manager_type = string
max_membership_count = optional(number)
min_membership_count = optional(number)
actions = optional(
list(
object({
name = string
cron_spec = optional(string)
membership_count = optional(number)
max_membership_count = optional(number)
min_membership_count = optional(number)
run_at = optional(string)
})
)
)
policies = optional(
list(
object({
name = string
metric_type = string
metric_value = number
policy_type = string
})
)
)
})
)
[| no | +| [web\_group\_managers](#input\_web\_group\_managers) | Instance group manager to add to the instance group |
{
"aggregation_window": 120,
"cooldown": 300,
"enable_manager": true,
"manager_type": "autoscale",
"max_membership_count": 4,
"min_membership_count": 1,
"name": "web",
"policies": [
{
"metric_type": "cpu",
"metric_value": 70,
"name": "web-policy",
"policy_type": "target"
}
]
}
]
list(|
object({
name = string
aggregation_window = optional(number)
cooldown = optional(number)
enable_manager = optional(bool)
manager_type = string
max_membership_count = optional(number)
min_membership_count = optional(number)
actions = optional(
list(
object({
name = string
cron_spec = optional(string)
membership_count = optional(number)
max_membership_count = optional(number)
min_membership_count = optional(number)
run_at = optional(string)
})
)
)
policies = optional(
list(
object({
name = string
metric_type = string
metric_value = number
policy_type = string
})
)
)
})
)
[| no | | [web\_instance\_count](#input\_web\_instance\_count) | The number of instances to create in the instance group. | `number` | `1` | no | -| [web\_load\_balancers](#input\_web\_load\_balancers) | Load balancers to add to VSI |
{
"aggregation_window": 120,
"cooldown": 300,
"enable_manager": true,
"manager_type": "autoscale",
"max_membership_count": 4,
"min_membership_count": 1,
"name": "web",
"policies": [
{
"metric_type": "cpu",
"metric_value": 70,
"name": "web-policy",
"policy_type": "target"
}
]
}
]
list(|
object({
name = string
type = string
listener_port = number
listener_protocol = string
connection_limit = number
idle_connection_timeout = optional(number)
algorithm = string
protocol = string
health_delay = number
health_retries = number
health_timeout = number
health_type = string
pool_member_port = string
profile = optional(string)
dns = optional(
object({
instance_crn = string
zone_id = string
})
)
security_group = optional(
object({
name = string
rules = list(
object({
name = string
direction = string
source = string
tcp = optional(
object({
port_max = number
port_min = number
})
)
udp = optional(
object({
port_max = number
port_min = number
})
)
icmp = optional(
object({
type = number
code = number
})
)
})
)
})
)
})
)
[| no | +| [web\_load\_balancers](#input\_web\_load\_balancers) | Load balancers to add to VSI |
{
"algorithm": "round_robin",
"connection_limit": 10,
"health_delay": 60,
"health_retries": 5,
"health_timeout": 30,
"health_type": "tcp",
"listener_port": 443,
"listener_protocol": "http",
"name": "web-lb",
"pool_member_port": 80,
"protocol": "http",
"security_group": {
"name": "web-lb-sg",
"rules": [
{
"direction": "inbound",
"name": "allow-all-inbound",
"source": "0.0.0.0/0",
"tcp": {
"port_max": 443,
"port_min": 443
}
},
{
"direction": "outbound",
"name": "allow-vpc-outbound",
"source": "10.0.0.0/8"
}
]
},
"type": "public"
}
]
list(|
object({
name = string
type = string
listener_port = number
listener_protocol = string
connection_limit = number
idle_connection_timeout = optional(number)
algorithm = string
protocol = string
health_delay = number
health_retries = number
health_timeout = number
health_type = string
pool_member_port = string
profile = optional(string)
dns = optional(
object({
instance_crn = string
zone_id = string
})
)
security_group = optional(
object({
name = string
rules = list(
object({
name = string
direction = string
source = string
tcp = optional(
object({
port_max = number
port_min = number
})
)
udp = optional(
object({
port_max = number
port_min = number
})
)
icmp = optional(
object({
type = number
code = number
})
)
})
)
})
)
})
)
[| no | | [web\_machine\_type](#input\_web\_machine\_type) | Web tier machine type to use | `string` | `"cx2-2x4"` | no | | [web\_os\_profile](#input\_web\_os\_profile) | Web tier os name to use | `string` | `"ibm-centos-stream-9-amd64-5"` | no | -| [web\_security\_group](#input\_web\_security\_group) | The security group surrounding the web tier VSIs |
{
"algorithm": "round_robin",
"connection_limit": 10,
"health_delay": 60,
"health_retries": 5,
"health_timeout": 30,
"health_type": "tcp",
"listener_port": 443,
"listener_protocol": "http",
"name": "web-lb",
"pool_member_port": 80,
"protocol": "http",
"security_group": {
"name": "web-lb-sg",
"rules": [
{
"direction": "inbound",
"name": "allow-all-inbound",
"source": "0.0.0.0/0",
"tcp": {
"port_max": 443,
"port_min": 443
}
},
{
"direction": "outbound",
"name": "allow-vpc-outbound",
"source": "10.0.0.0/8"
}
]
},
"type": "public"
}
]
object({|
name = string
add_ibm_cloud_internal_rules = optional(bool, false)
rules = list(
object({
name = string
direction = string
source = string
tcp = optional(
object({
port_max = number
port_min = number
})
)
udp = optional(
object({
port_max = number
port_min = number
})
)
icmp = optional(
object({
type = number
code = number
})
)
})
)
})
{| no | +| [web\_security\_group](#input\_web\_security\_group) | The security group surrounding the web tier VSIs |
"name": "web-sg",
"rules": [
{
"direction": "inbound",
"name": "allow-vpc-inbound",
"source": "10.0.0.0/8"
},
{
"direction": "inbound",
"name": "allow-ibm-inbound",
"source": "161.26.0.0/16"
},
{
"direction": "outbound",
"name": "allow-vpc-outbound",
"source": "10.0.0.0/8"
},
{
"direction": "outbound",
"name": "allow-ibm-outbound",
"source": "161.26.0.0/16"
}
]
}
object({|
name = string
add_ibm_cloud_internal_rules = optional(bool, false)
rules = list(
object({
name = string
direction = string
source = string
tcp = optional(
object({
port_max = number
port_min = number
})
)
udp = optional(
object({
port_max = number
port_min = number
})
)
icmp = optional(
object({
type = number
code = number
})
)
})
)
})
{| no | ### Outputs diff --git a/solutions/e2e/app-tier.tf b/solutions/e2e/app-tier.tf index e234545..9d932c4 100644 --- a/solutions/e2e/app-tier.tf +++ b/solutions/e2e/app-tier.tf @@ -26,13 +26,13 @@ data "ibm_is_image" "app_is_image" { } module "app_tier_autoscale" { - source = "github.com/terraform-ibm-modules/terraform-ibm-landing-zone-vsi-autoscale?ref=v1.0.0" + source = "github.com/terraform-ibm-modules/terraform-ibm-landing-zone-vsi-autoscale?ref=v1.0.2" prefix = "${var.prefix}-app-tier" - resource_group_id = local.vpc_data.resource_group_id + resource_group_id = local.vpc_data.vpc_data.resource_group zone = "${var.region}-1" image_id = data.ibm_is_image.app_is_image.id subnets = local.app_tier_subnets - vpc_id = local.vpc_data.id + vpc_id = local.vpc_data.vpc_id placement_group_id = null machine_type = var.app_machine_type ssh_key_ids = [module.landing_zone.ssh_key_data[0].id] diff --git a/solutions/e2e/data-tier.tf b/solutions/e2e/data-tier.tf index 27e48ae..706a778 100644 --- a/solutions/e2e/data-tier.tf +++ b/solutions/e2e/data-tier.tf @@ -35,10 +35,10 @@ resource "random_password" "password" { module "data_tier_vsi" { source = "terraform-ibm-modules/landing-zone-vsi/ibm" - version = "4.0.0" - resource_group_id = local.vpc_data.resource_group_id + version = "4.2.0" + resource_group_id = local.vpc_data.vpc_data.resource_group prefix = "${var.prefix}-data-vsi" - vpc_id = local.vpc_data.id + vpc_id = local.vpc_data.vpc_id subnets = local.data_tier_subnets image_id = data.ibm_is_image.data_is_image.id ssh_key_ids = [module.landing_zone.ssh_key_data[0].id] diff --git a/solutions/e2e/main.tf b/solutions/e2e/main.tf index 9adecb6..ada13fc 100644 --- a/solutions/e2e/main.tf +++ b/solutions/e2e/main.tf @@ -7,10 +7,9 @@ ############################################################################## module "landing_zone" { - source = "git::https://github.com/terraform-ibm-modules/terraform-ibm-landing-zone.git//patterns/vsi?ref=v5.20.2" + source = "git::https://github.com/terraform-ibm-modules/terraform-ibm-landing-zone.git//patterns/vsi/module?ref=v6.1.2" prefix = var.prefix region = var.region - ibmcloud_api_key = var.ibmcloud_api_key ssh_public_key = var.ssh_key override_json_string = templatefile("${path.module}/override.tftpl", { prefix = var.prefix }) } @@ -40,7 +39,7 @@ module "sm_resource_group" { count = var.sm_instance_rg_existing || (!var.sm_instance_rg_existing && var.sm_instance_rg_name != null) ? 1 : 0 source = "terraform-ibm-modules/resource-group/ibm" - version = "1.1.5" + version = "1.1.6" resource_group_name = !var.sm_instance_rg_existing ? var.sm_instance_rg_name : null existing_resource_group_name = var.sm_instance_rg_existing ? var.sm_instance_rg_name : null @@ -66,7 +65,7 @@ module "private_secret_engine" { depends_on = [ibm_resource_instance.secrets_manager] count = (var.use_sm && var.existing_sm_instance_guid == null) ? 1 : 0 source = "terraform-ibm-modules/secrets-manager-private-cert-engine/ibm" - version = "1.2.2" + version = "1.3.3" secrets_manager_guid = local.sm_guid region = local.sm_region root_ca_name = var.root_ca_name @@ -83,7 +82,7 @@ module "private_secret_engine" { # Create a secret group to place the certificate in module "secrets_manager_group" { source = "terraform-ibm-modules/secrets-manager-secret-group/ibm" - version = "1.1.4" + version = "1.2.2" count = var.use_sm ? 1 : 0 region = local.sm_region secrets_manager_guid = local.sm_guid @@ -98,7 +97,7 @@ module "secrets_manager_group" { module "secrets_manager_private_certificate" { depends_on = [module.private_secret_engine] source = "terraform-ibm-modules/secrets-manager-private-cert/ibm" - version = "1.1.3" + version = "1.3.1" count = var.use_sm ? 1 : 0 cert_name = "${var.prefix}-cts-vpn-private-cert" cert_description = "Example private cert" diff --git a/solutions/e2e/version.tf b/solutions/e2e/version.tf index 0ca37c1..f4e1304 100644 --- a/solutions/e2e/version.tf +++ b/solutions/e2e/version.tf @@ -1,17 +1,18 @@ terraform { required_version = ">= 1.3.0" + # Lock DA into an exact provider version - renovate automation will keep it updated required_providers { ibm = { source = "IBM-Cloud/ibm" - version = ">= 1.60.0" + version = "1.70.1" } random = { source = "hashicorp/random" - version = "3.6.0" + version = "3.6.3" } null = { source = "hashicorp/null" - version = "3.2.2" + version = "3.2.3" } } } diff --git a/solutions/e2e/web-tier.tf b/solutions/e2e/web-tier.tf index 89f55b2..f67cd2d 100644 --- a/solutions/e2e/web-tier.tf +++ b/solutions/e2e/web-tier.tf @@ -3,9 +3,9 @@ locals { ## VPC data for workload vpc_data = flatten([ - for vpc in module.landing_zone.vpc_resource_list : [ + for vpc in module.landing_zone.vpc_data : [ vpc - ] if strcontains(vpc.name, local.workload_vpc) + ] if strcontains(vpc.vpc_name, local.workload_vpc) ])[0] web_tier_subnets = flatten([ @@ -36,13 +36,13 @@ data "ibm_is_image" "web_is_image" { module "web_tier_autoscale" { depends_on = [ibm_iam_authorization_policy.s2s_lb_to_sm] - source = "github.com/terraform-ibm-modules/terraform-ibm-landing-zone-vsi-autoscale?ref=v1.0.0" + source = "github.com/terraform-ibm-modules/terraform-ibm-landing-zone-vsi-autoscale?ref=v1.0.2" prefix = "${var.prefix}-web-tier" - resource_group_id = local.vpc_data.resource_group_id + resource_group_id = local.vpc_data.vpc_data.resource_group zone = "${var.region}-1" image_id = data.ibm_is_image.web_is_image.id subnets = local.web_tier_subnets - vpc_id = local.vpc_data.id + vpc_id = local.vpc_data.vpc_id placement_group_id = null machine_type = var.web_machine_type ssh_key_ids = [module.landing_zone.ssh_key_data[0].id] diff --git a/tests/go.mod b/tests/go.mod index 250a7ea..fc7b5c6 100644 --- a/tests/go.mod +++ b/tests/go.mod @@ -1,12 +1,13 @@ module github.com/terraform-ibm-modules/terraform-ibm-web-app-mzr-da -go 1.21 +go 1.22.0 -toolchain go1.22.4 +toolchain go1.23.2 require ( + github.com/gruntwork-io/terratest v0.47.2 github.com/stretchr/testify v1.9.0 - github.com/terraform-ibm-modules/ibmcloud-terratest-wrapper v1.35.2 + github.com/terraform-ibm-modules/ibmcloud-terratest-wrapper v1.41.1 ) require ( @@ -16,12 +17,13 @@ require ( cloud.google.com/go/iam v1.1.1 // indirect cloud.google.com/go/storage v1.30.1 // indirect dario.cat/mergo v1.0.0 // indirect - github.com/IBM-Cloud/bluemix-go v0.0.0-20240423071914-9e96525baef4 // indirect - github.com/IBM-Cloud/power-go-client v1.6.0 // indirect + github.com/IBM-Cloud/bluemix-go v0.0.0-20240719075425-078fcb3a55be // indirect + github.com/IBM-Cloud/power-go-client v1.8.3 // indirect github.com/IBM/cloud-databases-go-sdk v0.7.0 // indirect - github.com/IBM/go-sdk-core/v5 v5.17.3 // indirect - github.com/IBM/platform-services-go-sdk v0.63.1 // indirect - github.com/IBM/project-go-sdk v0.3.0 // indirect + github.com/IBM/go-sdk-core/v5 v5.18.0 // indirect + github.com/IBM/platform-services-go-sdk v0.69.3 // indirect + github.com/IBM/project-go-sdk v0.3.6 // indirect + github.com/IBM/schematics-go-sdk v0.3.0 // indirect github.com/IBM/vpc-go-sdk v1.0.2 // indirect github.com/Microsoft/go-winio v0.6.1 // indirect github.com/ProtonMail/go-crypto v1.0.0 // indirect @@ -62,12 +64,11 @@ require ( github.com/google/uuid v1.6.0 // indirect github.com/googleapis/enterprise-certificate-proxy v0.2.4 // indirect github.com/googleapis/gax-go/v2 v2.11.0 // indirect - github.com/gruntwork-io/terratest v0.46.15 // indirect github.com/hashicorp/errwrap v1.1.0 // indirect github.com/hashicorp/go-cleanhttp v0.5.2 // indirect - github.com/hashicorp/go-getter v1.7.4 // indirect + github.com/hashicorp/go-getter v1.7.6 // indirect github.com/hashicorp/go-multierror v1.1.1 // indirect - github.com/hashicorp/go-retryablehttp v0.7.5 // indirect + github.com/hashicorp/go-retryablehttp v0.7.7 // indirect github.com/hashicorp/go-safetemp v1.0.0 // indirect github.com/hashicorp/go-version v1.6.0 // indirect github.com/hashicorp/hcl/v2 v2.17.0 // indirect @@ -100,13 +101,13 @@ require ( go.opentelemetry.io/otel v1.16.0 // indirect go.opentelemetry.io/otel/metric v1.16.0 // indirect go.opentelemetry.io/otel/trace v1.16.0 // indirect - golang.org/x/crypto v0.24.0 // indirect + golang.org/x/crypto v0.28.0 // indirect golang.org/x/mod v0.17.0 // indirect golang.org/x/net v0.25.0 // indirect golang.org/x/oauth2 v0.10.0 // indirect - golang.org/x/sync v0.7.0 // indirect - golang.org/x/sys v0.21.0 // indirect - golang.org/x/text v0.16.0 // indirect + golang.org/x/sync v0.8.0 // indirect + golang.org/x/sys v0.26.0 // indirect + golang.org/x/text v0.19.0 // indirect golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d // indirect golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect google.golang.org/api v0.127.0 // indirect diff --git a/tests/go.sum b/tests/go.sum index bfadbcb..9269488 100644 --- a/tests/go.sum +++ b/tests/go.sum @@ -189,19 +189,22 @@ dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= -github.com/IBM-Cloud/bluemix-go v0.0.0-20240423071914-9e96525baef4 h1:43l8CU5cW4pOea10+jWtqRJj/4F4Ghfn6Oc82jB9RhM= -github.com/IBM-Cloud/bluemix-go v0.0.0-20240423071914-9e96525baef4/go.mod h1:/7hMjdZA6fEpd/dQAOEABxKEwN0t72P3PlpEDu0Y7bE= -github.com/IBM-Cloud/power-go-client v1.6.0 h1:X+QX+WSF66+aouyaf4r+IeBLXUurAJj9+Bd+vH7G5I0= -github.com/IBM-Cloud/power-go-client v1.6.0/go.mod h1:0ad5Lcq1utoYVJx0uqooMjCpUaYaK0ItP9QJYtY6k0Y= +github.com/IBM-Cloud/bluemix-go v0.0.0-20240719075425-078fcb3a55be h1:USOcBHkYQ4o/ccoEvoHinrba8NQthLJpFXnAoBY+MI4= +github.com/IBM-Cloud/bluemix-go v0.0.0-20240719075425-078fcb3a55be/go.mod h1:/7hMjdZA6fEpd/dQAOEABxKEwN0t72P3PlpEDu0Y7bE= +github.com/IBM-Cloud/power-go-client v1.8.3 h1:QsBuIS6KvKsiEpe0yiHYKhWgXlqkcJ7XqFHtATj8Yh4= +github.com/IBM-Cloud/power-go-client v1.8.3/go.mod h1:UDyXeIKEp6r7yWUXYu3r0ZnFSlNZ2YeQTHwM2Tmlgv0= github.com/IBM/cloud-databases-go-sdk v0.7.0 h1:prvLebKD1kcIk81D6yRhOr/TWp1VQJGLhGAasQr7RtA= github.com/IBM/cloud-databases-go-sdk v0.7.0/go.mod h1:JYucI1PdwqbAd8XGdDAchxzxRP7bxOh1zUnseovHKsc= github.com/IBM/go-sdk-core/v5 v5.9.2/go.mod h1:YlOwV9LeuclmT/qi/LAK2AsobbAP42veV0j68/rlZsE= -github.com/IBM/go-sdk-core/v5 v5.17.3 h1:CZSVCKzhQc/hRQZOtuEmi9dlNtWMnxJvOsPtQKP7cZ4= -github.com/IBM/go-sdk-core/v5 v5.17.3/go.mod h1:GatGZpxlo1KaxiRN6E10/rNgWtUtx1hN/GoHSCaSPKA= -github.com/IBM/platform-services-go-sdk v0.63.1 h1:F5mZU1hKDHqpZa85twUeSYmM9g9gwNAdja097rfpxJY= -github.com/IBM/platform-services-go-sdk v0.63.1/go.mod h1:16nYqb16KRNSnBFVjHzI+9XfEWcooh0WxklA5VWUuzY= -github.com/IBM/project-go-sdk v0.3.0 h1:lZR4wT6UCsOZ8QkEBITrfM6OZkLlL70/HXiPxF/Olt4= -github.com/IBM/project-go-sdk v0.3.0/go.mod h1:FOJM9ihQV3EEAY6YigcWiTNfVCThtdY8bLC/nhQHFvo= +github.com/IBM/go-sdk-core/v5 v5.10.2/go.mod h1:WZPFasUzsKab/2mzt29xPcfruSk5js2ywAPwW4VJjdI= +github.com/IBM/go-sdk-core/v5 v5.18.0 h1:ZB3qaLEsN4fccQWzMblfXeqLx5VztiVi+HfyIqmqask= +github.com/IBM/go-sdk-core/v5 v5.18.0/go.mod h1:3ywpylZ41WhWPusqtpJZWopYlt2brebcphV7mA2JncU= +github.com/IBM/platform-services-go-sdk v0.69.3 h1:Rbt3ARFQdTPRNcAYkJGGvayaotpmIQtE63Rr9tQH60I= +github.com/IBM/platform-services-go-sdk v0.69.3/go.mod h1:ApFkvqw7NaluWJ5Uq+afdM/2jQqo5ILc0SzKSVobYNw= +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/schematics-go-sdk v0.3.0 h1:Vwxw85SONflakiBsNHAfViKLyp9zJiH5/hh6SewOP5Q= +github.com/IBM/schematics-go-sdk v0.3.0/go.mod h1:Tw2OSAPdpC69AxcwoyqcYYaGTTW6YpERF9uNEU+BFRQ= github.com/IBM/vpc-go-sdk v1.0.2 h1:WhI1Cb8atA8glUdFg0SEUh9u8afjnKHxZAj9onQBi04= github.com/IBM/vpc-go-sdk v1.0.2/go.mod h1:42NO/XCXsyrYqpvtxoX5xwSEv/jBU1MKEoyaYkIUico= github.com/Microsoft/go-winio v0.5.2/go.mod h1:WpS1mjBmmwHBEWmogvA2mj8546UReBk4v8QkMxJ6pZY= @@ -273,6 +276,8 @@ github.com/envoyproxy/go-control-plane v0.9.10-0.20210907150352-cf90f659a021/go. github.com/envoyproxy/go-control-plane v0.10.2-0.20220325020618-49ff273808a1/go.mod h1:KJwIaB5Mv44NWtYuAOFCVOjcI94vtpEz2JU/D2v6IjE= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= +github.com/fatih/color v1.16.0 h1:zmkK9Ngbjj+K0yRhTVONQh1p/HknKYSlNT+vZCzyokM= +github.com/fatih/color v1.16.0/go.mod h1:fL2Sau1YI5c0pdGEVCbKQbLXB6edEj1ZgiY4NijnWvE= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY= @@ -304,6 +309,7 @@ github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre github.com/go-openapi/analysis v0.21.5 h1:3tHfEBh6Ia8eKc4M7khOGjPOAlWKJ10d877Cr9teujI= github.com/go-openapi/analysis v0.21.5/go.mod h1:25YcZosX9Lwz2wBsrFrrsL8bmjjXdlyP6zsr2AMy29M= github.com/go-openapi/errors v0.19.8/go.mod h1:cM//ZKUKyO06HSwqAelJ5NsEMMcpa6VpXe8DOa1Mi1M= +github.com/go-openapi/errors v0.20.2/go.mod h1:cM//ZKUKyO06HSwqAelJ5NsEMMcpa6VpXe8DOa1Mi1M= github.com/go-openapi/errors v0.20.3/go.mod h1:Z3FlZ4I8jEGxjUK+bugx3on2mIAk4txuAOhlsB1FSgk= github.com/go-openapi/errors v0.22.0 h1:c4xY/OLxUBSTiepAg3j/MHuAv5mJhnf53LLMWFB+u/w= github.com/go-openapi/errors v0.22.0/go.mod h1:J3DmZScxCDufmIMsdOuDHxJbdOGC0xtUynjIx092vXE= @@ -318,6 +324,7 @@ github.com/go-openapi/runtime v0.26.0/go.mod h1:QgRGeZwrUcSHdeh4Ka9Glvo0ug1LC5Wy github.com/go-openapi/spec v0.20.12 h1:cgSLbrsmziAP2iais+Vz7kSazwZ8rsUZd6TUzdDgkVI= github.com/go-openapi/spec v0.20.12/go.mod h1:iSCgnBcwbMW9SfzJb8iYynXvcY6C/QFrI7otzF7xGM4= github.com/go-openapi/strfmt v0.21.1/go.mod h1:I/XVKeLc5+MM5oPNN7P6urMOpuLXEcNrCX/rPGuWb0k= +github.com/go-openapi/strfmt v0.21.3/go.mod h1:k+RzNO0Da+k3FrrynSNN8F7n/peCmQQqbbXjtDfvmGg= github.com/go-openapi/strfmt v0.21.7/go.mod h1:adeGTkxE44sPyLk0JV235VQAO/ZXUr8KAzYjclFs3ew= github.com/go-openapi/strfmt v0.23.0 h1:nlUS6BCqcnAk0pyhi9Y+kdDVZdZMHfEKQiS4HaMgO/c= github.com/go-openapi/strfmt v0.23.0/go.mod h1:NrtIpfKtWIygRkKVsxh7XQMDQW5HKQl6S5ik2elW+K4= @@ -443,23 +450,25 @@ github.com/googleapis/gax-go/v2 v2.11.0 h1:9V9PWXEsWnPpQhu/PeQIkS4eGzMlTLGgt80cU github.com/googleapis/gax-go/v2 v2.11.0/go.mod h1:DxmR61SGKkGLa2xigwuZIQpkCI2S5iydzRfb3peWZJI= github.com/googleapis/go-type-adapters v1.0.0/go.mod h1:zHW75FOG2aur7gAO2B+MLby+cLsWGBF62rFAi7WjWO4= github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= -github.com/gruntwork-io/terratest v0.46.15 h1:qfqjTFveymaqe7aAWn3LjlK0SwVGpRfoOut5ggNyfQ8= -github.com/gruntwork-io/terratest v0.46.15/go.mod h1:9bd22zAojjBBiYdsp+AR1iyl2iB6bRUVm2Yf1AFhfrA= +github.com/gruntwork-io/terratest v0.47.2 h1:t6iWwsqJH7Gx0RwXleU/vjc+2c0JXRMdj3DxYXTBssQ= +github.com/gruntwork-io/terratest v0.47.2/go.mod h1:LnYX8BN5WxUMpDr8rtD39oToSL4CBERWSCusbJ0d/64= 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= github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= github.com/hashicorp/go-cleanhttp v0.5.2 h1:035FKYIWjmULyFRBKPs8TBQoi0x6d9G4xc9neXJWAZQ= github.com/hashicorp/go-cleanhttp v0.5.2/go.mod h1:kO/YDlP8L1346E6Sodw+PrpBSV4/SoxCXGY6BqNFT48= -github.com/hashicorp/go-getter v1.7.4 h1:3yQjWuxICvSpYwqSayAdKRFcvBl1y/vogCxczWSmix0= -github.com/hashicorp/go-getter v1.7.4/go.mod h1:W7TalhMmbPmsSMdNjD0ZskARur/9GJ17cfHTRtXV744= -github.com/hashicorp/go-hclog v0.9.2 h1:CG6TE5H9/JXsFWJCfoIVpKFIkFe6ysEuHirp4DxCsHI= +github.com/hashicorp/go-getter v1.7.6 h1:5jHuM+aH373XNtXl9TNTUH5Qd69Trve11tHIrB+6yj4= +github.com/hashicorp/go-getter v1.7.6/go.mod h1:W7TalhMmbPmsSMdNjD0ZskARur/9GJ17cfHTRtXV744= github.com/hashicorp/go-hclog v0.9.2/go.mod h1:5CU+agLiy3J7N7QjHK5d05KxGsuXiQLrjA0H7acj2lQ= +github.com/hashicorp/go-hclog v1.6.3 h1:Qr2kF+eVWjTiYmU7Y31tYlP1h0q/X3Nl3tPGdaB11/k= +github.com/hashicorp/go-hclog v1.6.3/go.mod h1:W4Qnvbt70Wk/zYJryRzDRU/4r0kIg0PVHBcfoyhpF5M= github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo= github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM= github.com/hashicorp/go-retryablehttp v0.7.0/go.mod h1:vAew36LZh98gCBJNLH42IQ1ER/9wtLZZ8meHqQvEYWY= -github.com/hashicorp/go-retryablehttp v0.7.5 h1:bJj+Pj19UZMIweq/iie+1u5YCdGrnxCT9yvm0e+Nd5M= -github.com/hashicorp/go-retryablehttp v0.7.5/go.mod h1:Jy/gPYAdjqffZ/yFGCFV2doI5wjtH1ewM9u8iYVjtX8= +github.com/hashicorp/go-retryablehttp v0.7.1/go.mod h1:vAew36LZh98gCBJNLH42IQ1ER/9wtLZZ8meHqQvEYWY= +github.com/hashicorp/go-retryablehttp v0.7.7 h1:C8hUCYzor8PIfXHa4UrZkU4VvK8o9ISHxT2Q8+VepXU= +github.com/hashicorp/go-retryablehttp v0.7.7/go.mod h1:pkQpWZeYWskR+D1tR2O5OcBFOxfA7DoAO6xtkuQnHTk= github.com/hashicorp/go-safetemp v1.0.0 h1:2HR189eFNrjHQyENnQMMpCiBAsRxzbTMIgBhEyExpmo= github.com/hashicorp/go-safetemp v1.0.0/go.mod h1:oaerMy3BhqiTbVye6QuFhFtIceqFoDHxNAB65b+Rj1I= github.com/hashicorp/go-version v1.6.0 h1:feTTfFNnjP967rlCxM/I9g701jU+RN74YKx2mOkIeek= @@ -507,7 +516,11 @@ github.com/leodido/go-urn v1.4.0/go.mod h1:bvxc+MVxLKB4z00jd1z+Dvzr47oO32F/QSNjS github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0= github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= +github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= +github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= +github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= +github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/mattn/go-runewidth v0.0.4/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/mattn/go-zglob v0.0.4 h1:LQi2iOm0/fGgu80AioIJ/1j9w9Oh+9DZ39J4VAGzHQM= github.com/mattn/go-zglob v0.0.4/go.mod h1:MxxjyoXXnMxfIpxTK2GAkw1w8glPsQILx3N5wrKakiY= @@ -533,6 +546,7 @@ github.com/onsi/ginkgo v1.14.2/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9k github.com/onsi/ginkgo v1.16.4/go.mod h1:dX+/inL/fNMqNlz0e9LfyB9TswhZpCVdJM/Z6Vvnwo0= github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE= github.com/onsi/ginkgo v1.16.5/go.mod h1:+E8gABHa3K6zRBolWtd+ROzc/U5bkGt0FwiG042wbpU= +github.com/onsi/ginkgo/v2 v2.0.0/go.mod h1:vw5CSIxN1JObi/U8gcbwft7ZxR2dgaR70JSE3/PpL4c= github.com/onsi/ginkgo/v2 v2.1.3/go.mod h1:vw5CSIxN1JObi/U8gcbwft7ZxR2dgaR70JSE3/PpL4c= github.com/onsi/ginkgo/v2 v2.1.4/go.mod h1:um6tUpWM/cxCK3/FK8BXqEiUMUwRgSM4JXG47RKZmLU= github.com/onsi/ginkgo/v2 v2.1.6/go.mod h1:MEH45j8TBi6u9BMogfbp0stKC5cdGjumZj5Y7AG4VIk= @@ -553,6 +567,7 @@ github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7J github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= github.com/onsi/gomega v1.10.5/go.mod h1:gza4q3jKQJijlu05nKWRCW/GavJumGt8aNRxWg7mt48= github.com/onsi/gomega v1.17.0/go.mod h1:HnhC7FXeEQY45zxNK3PPoIUhzk/80Xly9PcubAlGdZY= +github.com/onsi/gomega v1.18.0/go.mod h1:0q+aL8jAiMXy9hbwj2mr5GziHiwhAIQpFmmtT5hitRs= github.com/onsi/gomega v1.19.0/go.mod h1:LY+I3pBVzYsTBU1AnDwOSxaYi9WoWiqgwooUqq9yPro= github.com/onsi/gomega v1.20.1/go.mod h1:DtrZpjmvpn2mPm4YWQa0/ALMDj9v4YxLgojwPeREyVo= github.com/onsi/gomega v1.21.1/go.mod h1:iYAIXgPSaDHak0LCMA+AWBpIKBr8WZicMxnE8luStNc= @@ -606,8 +621,8 @@ github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= -github.com/terraform-ibm-modules/ibmcloud-terratest-wrapper v1.35.2 h1:u9/jBHL0wSkfZpMejHvWkDwjoRV1z67klF1ezuF7mig= -github.com/terraform-ibm-modules/ibmcloud-terratest-wrapper v1.35.2/go.mod h1:MXtQ40V5bbyri3QLE9AhjuJKuwKrGPjC/KmoOUvko6s= +github.com/terraform-ibm-modules/ibmcloud-terratest-wrapper v1.41.1 h1:Pzk44YtqeggW+4tz6xpZ2boPMFP+XMgH1oMjubFgoq4= +github.com/terraform-ibm-modules/ibmcloud-terratest-wrapper v1.41.1/go.mod h1:iYLg1LeFmBUIKlhvH790QtvLZzYezGyJwA9rKu6TKQQ= github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk= github.com/tmccombs/hcl2json v0.5.0 h1:cT2sXStOzKL06c8ZTf9vh+0N8GKGzV7+9RUaY5/iUP8= github.com/tmccombs/hcl2json v0.5.0/go.mod h1:B0ZpBthAKbQur6yZRKrtaqDmYLCvgnwHOBApE0faCpU= @@ -632,6 +647,7 @@ github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5t github.com/zclconf/go-cty v1.14.4 h1:uXXczd9QDGsgu0i/QFR/hzI5NYCHLf6NQw/atrbnhq8= github.com/zclconf/go-cty v1.14.4/go.mod h1:VvMs5i0vgZdhYawQNq5kePSpLAoz8u1xvZgrPIxfnZE= go.mongodb.org/mongo-driver v1.7.5/go.mod h1:VXEWRZ6URJIkUq2SCAyapmhH0ZLRBP+FT4xhp5Zvxng= +go.mongodb.org/mongo-driver v1.10.0/go.mod h1:wsihk0Kdgv8Kqu1Anit4sfK+22vSFbUrAVEYRhCXrA8= go.mongodb.org/mongo-driver v1.11.3/go.mod h1:PTSz5yu21bkT/wXpkS7WR5f0ddqw5quethTUn9WM+2g= go.mongodb.org/mongo-driver v1.14.0 h1:P98w8egYRjYe3XDjxhYJagTokP/H6HzlsnojRgZRd80= go.mongodb.org/mongo-driver v1.14.0/go.mod h1:Vzb0Mk/pa7e6cWw85R4F/endUC3u0U9jGcNU603k65c= @@ -670,8 +686,8 @@ golang.org/x/crypto v0.12.0/go.mod h1:NF0Gs7EO5K4qLn+Ylc+fih8BSTeIjAP05siRnAh98y golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliYc= golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4= golang.org/x/crypto v0.16.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4= -golang.org/x/crypto v0.24.0 h1:mnl8DM0o513X8fdIkmyFE/5hTYxbwYOjDS/+rK6qpRI= -golang.org/x/crypto v0.24.0/go.mod h1:Z1PMYSOR5nyMcyAVAIQSKCDwalqy85Aqn1x3Ws4L5DM= +golang.org/x/crypto v0.28.0 h1:GBDwsMXVQi34v5CCYUm2jkJvu4cbtru2U4TN2PSyQnw= +golang.org/x/crypto v0.28.0/go.mod h1:rmgy+3RHxRZMyY0jjAJShp2zgEdOqj2AO7U0pYmeQ7U= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= @@ -830,8 +846,8 @@ golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.2.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= golang.org/x/sync v0.5.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= -golang.org/x/sync v0.7.0 h1:YsImfSBoP9QPYL0xyKJPq0gcaJdG3rInoqxTWbfQu9M= -golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sync v0.8.0 h1:3NFvSEYkUoMifnESzZl15y791HH1qU2xm6eCJU5ZPXQ= +golang.org/x/sync v0.8.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -919,8 +935,8 @@ golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/sys v0.21.0 h1:rF+pYz3DAGSQAxAu1CbC7catZg4ebC4UIeIhKxBZvws= -golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.26.0 h1:KHjCJyddX0LoSTb3J+vWpupP9p0oznkqVk/IfjymZbo= +golang.org/x/sys v0.26.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= @@ -935,8 +951,8 @@ golang.org/x/term v0.11.0/go.mod h1:zC9APTIj3jG3FdV/Ons+XE1riIZXG4aZ4GTHiPZJPIU= golang.org/x/term v0.12.0/go.mod h1:owVbMEjm3cBLCHdkQu9b1opXd4ETQWc3BhuQGKgXgvU= golang.org/x/term v0.13.0/go.mod h1:LTmsnFJwVN6bCy1rVCoS+qHT1HhALEFxKncY3WNNh4U= golang.org/x/term v0.15.0/go.mod h1:BDl952bC7+uMoWR75FIrCDx79TPU9oHkTZ9yRbYOrX0= -golang.org/x/term v0.21.0 h1:WVXCp+/EBEHOj53Rvu+7KiT/iElMrO8ACK16SMZ3jaA= -golang.org/x/term v0.21.0/go.mod h1:ooXLefLobQVslOqselCNF4SxFAaoS6KujMbsGzSDmX0= +golang.org/x/term v0.25.0 h1:WtHI/ltw4NvSUig5KARz9h521QvRC8RmF/cuYqifU24= +golang.org/x/term v0.25.0/go.mod h1:RPyXicDX+6vLxogjjRxjgD2TKtmAO6NZBsBRfrOLu7M= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -957,8 +973,8 @@ golang.org/x/text v0.11.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/text v0.12.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= -golang.org/x/text v0.16.0 h1:a94ExnEXNtEwYLGJSIUxnWoxoRz/ZcCsV63ROupILh4= -golang.org/x/text v0.16.0/go.mod h1:GhwF1Be+LQoKShO3cGOHzqOgRrGaYc9AvblQOmPVHnI= +golang.org/x/text v0.19.0 h1:kTxAhCbGbxhK0IwgSKiMO5awPoDQ0RpfiVYBfK860YM= +golang.org/x/text v0.19.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
"name": "web-sg",
"rules": [
{
"direction": "inbound",
"name": "allow-vpc-inbound",
"source": "10.0.0.0/8"
},
{
"direction": "inbound",
"name": "allow-ibm-inbound",
"source": "161.26.0.0/16"
},
{
"direction": "outbound",
"name": "allow-vpc-outbound",
"source": "10.0.0.0/8"
},
{
"direction": "outbound",
"name": "allow-ibm-outbound",
"source": "161.26.0.0/16"
}
]
}