@@ -53,33 +53,25 @@ locals {
5353
5454 # Map of Services to endpoints
5555 service_to_endpoint_map = {
56- account-management = " crn:v1:bluemix:public:account-management:global:::endpoint:${ var . service_endpoints } .accounts.cloud.ibm.com"
57- billing = " crn:v1:bluemix:public:billing:global:::endpoint:${ var . service_endpoints } .billing.cloud.ibm.com"
58- cloud-object-storage = " crn:v1:bluemix:public:cloud-object-storage:global:::endpoint:s3.direct.${ var . region } .cloud-object-storage.appdomain.cloud"
59- codeengine = " crn:v1:bluemix:public:codeengine:${ var . region } :::endpoint:${ var . service_endpoints } .${ var . region } .codeengine.cloud.ibm.com"
60- container-registry = " crn:v1:bluemix:public:container-registry:${ var . region } :::endpoint:vpe.${ var . region } .container-registry.cloud.ibm.com"
61- databases-for-cassandra = " crn:v1:bluemix:public:databases-for-cassandra:${ var . region } :::endpoint:${ var . service_endpoints } .databases-for-cassandra.cloud.ibm.com"
62- databases-for-elasticsearch = " crn:v1:bluemix:public:databases-for-elasticsearch:${ var . region } :::endpoint:${ var . service_endpoints } .databases-for-elasticsearch.cloud.ibm.com"
63- databases-for-enterprisedb = " crn:v1:bluemix:public:databases-for-enterprisedb:${ var . region } :::${ var . service_endpoints } .databases-for-enterprisedb.cloud.ibm.com"
64- databases-for-mongodb = " crn:v1:bluemix:public:databases-for-mongodb:${ var . region } :::endpoint:${ var . service_endpoints } .databases-for-mongodb.cloud.ibm.com"
65- databases-for-postgresql = " crn:v1:bluemix:public:databases-for-postgresql:${ var . region } :::endpoint:${ var . service_endpoints } .databases-for-postgresql.cloud.ibm.com"
66- databases-for-redis = " crn:v1:bluemix:public:databases-for-redis:${ var . region } :::endpoint:${ var . service_endpoints } .databases-for-redis.cloud.ibm.com"
67- directlink = " crn:v1:bluemix:public:directlink:global:::endpoint:${ var . service_endpoints } .directlink.cloud.ibm.com"
68- dns-svcs = " crn:v1:bluemix:public:dns-svcs:global::::"
69- enterprise = " crn:v1:bluemix:public:enterprise:global:::endpoint:${ var . service_endpoints } .enterprise.cloud.ibm.com"
70- global-search-tagging = " crn:v1:bluemix:public:global-search-tagging:global:::endpoint:api.${ var . service_endpoints } .global-search-tagging.cloud.ibm.com"
71- globalcatalog = " crn:v1:bluemix:public:globalcatalog:global:::endpoint:${ var . service_endpoints } .globalcatalog.cloud.ibm.com"
72- hs-crypto = " crn:v1:bluemix:public:hs-crypto:${ var . region } :::endpoint:api.${ var . service_endpoints } .${ var . region } .hs-crypto.cloud.ibm.com"
73- hyperp-dbaas-mongodb = " crn:v1:bluemix:public:hyperp-dbaas-mongodb:${ var . region } :::endpoint:dbaas900-mongodb.${ var . service_endpoints } .hyperp-dbaas.cloud.ibm.com"
74- hyperp-dbaas-postgresql = " crn:v1:bluemix:public:hyperp-dbaas-postgresql:${ var . region } :::endpoint:dbaas900-postgresql.${ var . service_endpoints } .hyperp-dbaas.cloud.ibm.com"
75- iam-identity = " crn:v1:bluemix:public:iam-identity:global:::endpoint:${ var . service_endpoints } .iam.cloud.ibm.com"
76- iam-svcs = " crn:v1:bluemix:public:iam-svcs:global:::endpoint:${ var . service_endpoints } .iam.cloud.ibm.com"
77- is = " crn:v1:bluemix:public:is:${ var . region } :::endpoint:${ var . region } .${ var . service_endpoints } .iaas.cloud.ibm.com"
78- kms = " crn:v1:bluemix:public:kms:${ var . region } :::endpoint:${ var . service_endpoints } .${ var . region } .kms.cloud.ibm.com"
79- resource-controller = " crn:v1:bluemix:public:resource-controller:global:::endpoint:${ var . service_endpoints } .resource-controller.cloud.ibm.com"
80- secrets-manager = " crn:v1:bluemix:public:secrets-manager:${ var . region } :::endpoint:${ var . service_endpoints } .secrets-manager.cloud.ibm.com"
81- transit = " crn:v1:bluemix:public:transit:global:::endpoint:${ var . service_endpoints } .transit.cloud.ibm.com"
82- user-management = " crn:v1:bluemix:public:user-management:global:::endpoint:${ var . service_endpoints } .user-management.cloud.ibm.com"
56+ account-management = " crn:v1:bluemix:public:account-management:global:::endpoint:${ var . service_endpoints } .accounts.cloud.ibm.com"
57+ billing = " crn:v1:bluemix:public:billing:global:::endpoint:${ var . service_endpoints } .billing.cloud.ibm.com"
58+ cloud-object-storage = " crn:v1:bluemix:public:cloud-object-storage:global:::endpoint:s3.direct.${ var . region } .cloud-object-storage.appdomain.cloud"
59+ codeengine = " crn:v1:bluemix:public:codeengine:${ var . region } :::endpoint:${ var . service_endpoints } .${ var . region } .codeengine.cloud.ibm.com"
60+ container-registry = " crn:v1:bluemix:public:container-registry:${ var . region } :::endpoint:${ var . region } .icr.io"
61+ directlink = " crn:v1:bluemix:public:directlink:global:::endpoint:${ var . service_endpoints } .directlink.cloud.ibm.com"
62+ dns-svcs = " crn:v1:bluemix:public:dns-svcs:global::::"
63+ enterprise = " crn:v1:bluemix:public:enterprise:global:::endpoint:${ var . service_endpoints } .enterprise.cloud.ibm.com"
64+ global-search-tagging = " crn:v1:bluemix:public:global-search-tagging:global:::endpoint:api.${ var . service_endpoints } .global-search-tagging.cloud.ibm.com"
65+ globalcatalog = " crn:v1:bluemix:public:globalcatalog:global:::endpoint:${ var . service_endpoints } .globalcatalog.cloud.ibm.com"
66+ hs-crypto = " crn:v1:bluemix:public:hs-crypto:${ var . region } :::endpoint:api.${ var . service_endpoints } .${ var . region } .hs-crypto.cloud.ibm.com"
67+ hyperp-dbaas-mongodb = " crn:v1:bluemix:public:hyperp-dbaas-mongodb:${ var . region } :::endpoint:dbaas900-mongodb.${ var . service_endpoints } .hyperp-dbaas.cloud.ibm.com"
68+ hyperp-dbaas-postgresql = " crn:v1:bluemix:public:hyperp-dbaas-postgresql:${ var . region } :::endpoint:dbaas900-postgresql.${ var . service_endpoints } .hyperp-dbaas.cloud.ibm.com"
69+ iam-svcs = " crn:v1:bluemix:public:iam-svcs:global:::endpoint:${ var . service_endpoints } .iam.cloud.ibm.com"
70+ is = " crn:v1:bluemix:public:is:${ var . region } :::endpoint:${ var . region } .${ var . service_endpoints } .iaas.cloud.ibm.com"
71+ kms = " crn:v1:bluemix:public:kms:${ var . region } :::endpoint:${ var . service_endpoints } .${ var . region } .kms.cloud.ibm.com"
72+ resource-controller = " crn:v1:bluemix:public:resource-controller:global:::endpoint:${ var . service_endpoints } .resource-controller.cloud.ibm.com"
73+ transit = " crn:v1:bluemix:public:transit:global:::endpoint:${ var . service_endpoints } .transit.cloud.ibm.com"
74+ user-management = " crn:v1:bluemix:public:user-management:global:::endpoint:${ var . service_endpoints } .user-management.cloud.ibm.com"
8375 }
8476}
8577
@@ -105,13 +97,16 @@ resource "ibm_is_subnet_reserved_ip" "ip" {
10597# #############################################################################
10698
10799resource "ibm_is_virtual_endpoint_gateway" "vpe" {
108- count = length (local. gateway_list )
109- name = local. gateway_list [count . index ]. name
100+ for_each = { # Create a map based on gateway name
101+ for gateway in local . gateway_list :
102+ (gateway. name ) = > gateway
103+ }
104+ name = each. key
110105 vpc = var. vpc_id
111106 resource_group = var. resource_group_id
112107 security_groups = var. security_group_ids
113108 target {
114- crn = local . gateway_list [ count . index ] . service == null ? local . gateway_list [ count . index ] . crn : local. service_to_endpoint_map [local . gateway_list [ count . index ] . service ]
109+ crn = each . value . service == null ? each . value . crn : local. service_to_endpoint_map [each . value . service ]
115110 resource_type = " provider_cloud_service"
116111 }
117112}
@@ -140,6 +135,6 @@ resource "ibm_is_virtual_endpoint_gateway_ip" "endpoint_gateway_ip" {
140135
141136data "ibm_is_virtual_endpoint_gateway" "vpe" {
142137 depends_on = [ibm_is_virtual_endpoint_gateway_ip . endpoint_gateway_ip ]
143- count = length ( ibm_is_virtual_endpoint_gateway. vpe )
144- name = ibm_is_virtual_endpoint_gateway . vpe [ count . index ] . name
138+ for_each = ibm_is_virtual_endpoint_gateway. vpe
139+ name = each . key
145140}
0 commit comments