1- provider "ibm" {
2- region = var. region
3- generation = 2
4- ibmcloud_api_key = var. ibmcloud_api_key
5- }
61
72locals {
83 config_values = {
@@ -45,9 +40,11 @@ locals {
4540 cluster_type_tag = local. cluster_type == " kubernetes" ? " iks" : " ocp"
4641 cluster_version = local. cluster_type == " openshift" ? local. openshift_versions [local . config_values [local . cluster_type_cleaned ]. version ] : " "
4742 ibmcloud_release_name = " ibmcloud-config"
48- cos_location = " global "
43+ vpc_subnet_count = var . vpc_subnet_count
4944 vpc_id = ! var. exists ? data. ibm_is_vpc . vpc [0 ]. id : " "
50- vpc_subnets = ! var. exists ? data. ibm_is_vpc . vpc [0 ]. subnets : []
45+ vpc_subnets = ! var. exists ? var. vpc_subnets : []
46+ security_group_id = ! var. exists ? data. ibm_is_vpc . vpc [0 ]. default_security_group : " "
47+ ipv4_cidr_blocks = ! var. exists ? data. ibm_is_subnet . vpc_subnet [* ]. ipv4_cidr_block : []
5148}
5249
5350resource null_resource create_dirs {
@@ -67,7 +64,30 @@ resource null_resource create_dirs {
6764 }
6865}
6966
67+ resource null_resource print_resources {
68+ provisioner "local-exec" {
69+ command = " echo 'Resource group: ${ var . resource_group_name } '"
70+ }
71+ provisioner "local-exec" {
72+ command = " echo 'Cos id: ${ var . cos_id } '"
73+ }
74+ provisioner "local-exec" {
75+ command = " echo 'VPC name: ${ var . vpc_name } '"
76+ }
77+ }
78+
79+ resource null_resource print_subnets {
80+ provisioner "local-exec" {
81+ command = " echo 'VPC subnet count: ${ local . vpc_subnet_count } '"
82+ }
83+ provisioner "local-exec" {
84+ command = " echo 'VPC subnets: ${ jsonencode (local. vpc_subnets )} '"
85+ }
86+ }
87+
7088data ibm_resource_group resource_group {
89+ depends_on = [null_resource. print_resources ]
90+
7191 name = var. resource_group_name
7292}
7393
@@ -77,23 +97,22 @@ data ibm_container_cluster_versions cluster_versions {
7797 resource_group_id = data. ibm_resource_group . resource_group . id
7898}
7999
80- resource null_resource print-vpc_name {
81- depends_on = [null_resource. create_dirs ]
82-
83- provisioner "local-exec" {
84- command = " echo 'VPC name: ${ var . vpc_name } '"
85- }
86- }
87-
88100data ibm_is_vpc vpc {
89101 count = ! var. exists ? 1 : 0
90- depends_on = [null_resource. print-vpc_name ]
102+ depends_on = [null_resource. print_resources ]
91103
92104 name = var. vpc_name
93105}
94106
107+ data ibm_is_subnet vpc_subnet {
108+ count = ! var. exists ? var. vpc_subnet_count : 0
109+
110+ identifier = local. vpc_subnets [count . index ]. id
111+ }
112+
95113resource ibm_container_vpc_cluster cluster {
96114 count = ! var. exists ? 1 : 0
115+ depends_on = [null_resource. print_resources ]
97116
98117 name = local. cluster_name
99118 vpc_id = local. vpc_id
@@ -113,7 +132,7 @@ resource ibm_container_vpc_cluster cluster {
113132}
114133
115134resource ibm_container_vpc_worker_pool cluster_pool {
116- count = ! var. exists ? var . vpc_subnet_count - 1 : 0
135+ count = ! var. exists ? local . vpc_subnet_count - 1 : 0
117136
118137 cluster = ibm_container_vpc_cluster. cluster [0 ]. id
119138 worker_pool_name = " ${ local . cluster_name } -wp-${ format (" %02s" , count. index + 1 )} "
@@ -128,8 +147,21 @@ resource ibm_container_vpc_worker_pool cluster_pool {
128147 }
129148}
130149
150+ resource ibm_is_security_group_rule rule_tcp_k8s {
151+ count = ! var. exists ? local. vpc_subnet_count : 0
152+
153+ group = local. security_group_id
154+ direction = " inbound"
155+ remote = local. ipv4_cidr_blocks [count . index ]
156+
157+ tcp {
158+ port_min = 30000
159+ port_max = 32767
160+ }
161+ }
162+
131163data ibm_container_vpc_cluster config {
132- depends_on = [ibm_container_vpc_cluster . cluster , null_resource. create_dirs ]
164+ depends_on = [ibm_container_vpc_cluster . cluster , null_resource. create_dirs , ibm_is_security_group_rule . rule_tcp_k8s ]
133165
134166 name = local. cluster_name
135167 alb_type = " public"
0 commit comments