@@ -27,31 +27,28 @@ locals {
2727 version = " 4.8"
2828 }
2929 }
30- cluster_config_dir = " ${ path . cwd } /.kube"
31- cluster_type_file = " ${ path . cwd } /.tmp/cluster_type.val"
3230 name_prefix = var. name_prefix != " " ? var. name_prefix : var. resource_group_name
3331 name_list = [local . name_prefix , " cluster" ]
3432 cluster_name = var. name != " " ? var. name : join (" -" , local. name_list )
35- tmp_dir = " ${ path . cwd } /.tmp"
36- server_url = data. ibm_container_vpc_cluster . config . public_service_endpoint_url
37- ingress_hostname = data. ibm_container_vpc_cluster . config . ingress_hostname
38- tls_secret = data. ibm_container_vpc_cluster . config . ingress_secret
33+ server_url = lookup (data. ibm_container_vpc_cluster . config , " public_service_endpoint_url" , " " )
34+ ingress_hostname = lookup (data. ibm_container_vpc_cluster . config , " ingress_hostname" , " " )
35+ tls_secret = lookup (data. ibm_container_vpc_cluster . config , " ingress_secret" , " " )
3936 openshift_versions = {
40- for version in data . ibm_container_cluster_versions . cluster_versions . valid_openshift_versions :
37+ for version in lookup ( data. ibm_container_cluster_versions . cluster_versions , " valid_openshift_versions" , []) :
4138 substr (version, 0 , 3 ) => " ${ version } _openshift"
4239 }
4340 cluster_regex = " (${ join (" |" , keys (local. config_values ))} |ocp4).*"
4441 cluster_type_cleaned = regex (local. cluster_regex , var. ocp_version )[0 ] == " ocp4" ? " 4.7" : regex (local. cluster_regex , var. ocp_version )[0 ]
45- cluster_type = local. config_values [local . cluster_type_cleaned ]. type
42+ cluster_type = lookup ( local. config_values [local . cluster_type_cleaned ], " type" , " " )
4643 # value should be ocp4, ocp3, or kubernetes
47- cluster_type_code = local. config_values [local . cluster_type_cleaned ]. type_code
44+ cluster_type_code = lookup ( local. config_values [local . cluster_type_cleaned ], " type_code" , " " )
4845 cluster_type_tag = local. cluster_type == " kubernetes" ? " iks" : " ocp"
4946 cluster_version = local. cluster_type == " openshift" ? " ${ var . ocp_version } _openshift" : " "
5047 vpc_subnet_count = var. vpc_subnet_count
5148 total_workers = var. worker_count * var. vpc_subnet_count
5249 vpc_id = ! var. exists ? data. ibm_is_vpc . vpc [0 ]. id : " "
5350 vpc_subnets = ! var. exists ? var. vpc_subnets : []
54- security_group_id = ! var. exists ? data. ibm_is_vpc . vpc [0 ]. default_security_group : " "
51+ security_group_id = ! var. exists ? lookup ( data. ibm_is_vpc . vpc [0 ], " default_security_group" , " " ) : " "
5552 ipv4_cidr_blocks = ! var. exists ? data. ibm_is_subnet . vpc_subnet [* ]. ipv4_cidr_block : []
5653 kms_config = var. kms_enabled ? [{
5754 instance_id = var.kms_id
@@ -63,7 +60,7 @@ locals {
6360 " hs-crypto"
6461 ]
6562 login = var. login ? var. login : ! var. disable_public_endpoint
66- cluster_config = local. login ? data. ibm_container_cluster_config . cluster [0 ]. config_file_path : " "
63+ cluster_config = local. login ? lookup ( data. ibm_container_cluster_config . cluster [0 ], " config_file_path" , " " ) : " "
6764 acl_rules = [{
6865 name = " allow-all-ingress"
6966 action = " allow"
@@ -85,29 +82,13 @@ locals {
8582 ])
8683}
8784
88- resource null_resource create_dirs {
89- triggers = {
90- always_run = timestamp ()
91- }
92-
93- provisioner "local-exec" {
94- command = " echo 'regex: ${ local . cluster_regex } '"
95- }
96-
97- provisioner "local-exec" {
98- command = " echo 'cluster_type_cleaned: ${ local . cluster_type_cleaned } '"
99- }
100-
101- provisioner "local-exec" {
102- command = " mkdir -p ${ local . tmp_dir } "
103- }
104-
105- provisioner "local-exec" {
106- command = " mkdir -p ${ local . cluster_config_dir } "
107- }
85+ data external dirs {
86+ program = [" bash" , " ${ path . module } /scripts/create-dirs.sh" ]
10887
109- provisioner "local-exec" {
110- command = " echo 'Sync value: ${ var . sync } '"
88+ query = {
89+ tmp_dir = " ${ path . cwd } /.tmp"
90+ cluster_config_dir = " ${ path . cwd } /.kube"
91+ sync = var.sync
11192 }
11293}
11394
@@ -140,17 +121,10 @@ data ibm_resource_group resource_group {
140121}
141122
142123data ibm_container_cluster_versions cluster_versions {
143- depends_on = [null_resource. create_dirs ]
144124
145125 resource_group_id = data. ibm_resource_group . resource_group . id
146126}
147127
148- resource null_resource print_cluster_versions {
149- provisioner "local-exec" {
150- command = " echo 'Cluster versions: ${ jsonencode (data. ibm_container_cluster_versions . cluster_versions . valid_openshift_versions )} '"
151- }
152- }
153-
154128module setup_clis {
155129 source = " github.com/cloud-native-toolkit/terraform-util-clis.git"
156130
@@ -167,14 +141,14 @@ data ibm_is_vpc vpc {
167141data ibm_is_subnet vpc_subnet {
168142 count = ! var. exists ? var. vpc_subnet_count : 0
169143
170- identifier = local. vpc_subnets [count . index ]. id
144+ identifier = lookup ( local. vpc_subnets [count . index ], " id " , " " )
171145}
172146
173147resource null_resource setup_acl_rules {
174148 count = ! var. exists && var. vpc_subnet_count > 0 ? 1 : 0
175149
176150 provisioner "local-exec" {
177- command = " ${ path . module } /scripts/setup-acl-rules.sh '${ data . ibm_is_subnet . vpc_subnet [0 ]. network_acl } ' '${ var . region } ' '${ var . resource_group_name } '"
151+ command = " ${ path . module } /scripts/setup-acl-rules.sh '${ lookup ( data. ibm_is_subnet . vpc_subnet [0 ], " network_acl" , " " ) } ' '${ var . region } ' '${ var . resource_group_name } '"
178152
179153 environment = {
180154 IBMCLOUD_API_KEY = var.ibmcloud_api_key
@@ -271,47 +245,33 @@ resource ibm_is_security_group_rule rule_tcp_k8s {
271245}
272246
273247data ibm_container_vpc_cluster config {
274- depends_on = [ibm_container_vpc_cluster . cluster , null_resource . create_dirs , ibm_is_security_group_rule . rule_tcp_k8s ]
248+ depends_on = [ibm_container_vpc_cluster . cluster , ibm_is_security_group_rule . rule_tcp_k8s ]
275249
276250 name = local. cluster_name
277251 alb_type = var. disable_public_endpoint ? " private" : " public"
278252 resource_group_id = data. ibm_resource_group . resource_group . id
279253}
280254
281- resource "null_resource" "list_tmp" {
282- depends_on = [null_resource. create_dirs ]
283-
284- triggers = {
285- always_run = timestamp ()
286- }
287-
288- provisioner "local-exec" {
289- command = " ls ${ local . tmp_dir } "
290- }
291- }
292-
293-
294255data ibm_container_cluster_config cluster_admin {
295256 count = local. login ? 1 : 0
296- depends_on = [data . ibm_container_vpc_cluster . config , null_resource . list_tmp ]
257+ depends_on = [data . ibm_container_vpc_cluster . config ]
297258
298259 cluster_name_id = local. cluster_name
299260 admin = true
300261 resource_group_id = data. ibm_resource_group . resource_group . id
301- config_dir = local . cluster_config_dir
262+ config_dir = data . external . dirs . result . cluster_config_dir
302263}
303264
304265data ibm_container_cluster_config cluster {
305266 count = local. login ? 1 : 0
306267 depends_on = [
307268 data . ibm_container_vpc_cluster . config ,
308- null_resource. list_tmp ,
309269 data . ibm_container_cluster_config . cluster_admin
310270 ]
311271
312272 cluster_name_id = local. cluster_name
313273 resource_group_id = data. ibm_resource_group . resource_group . id
314- config_dir = local . cluster_config_dir
274+ config_dir = data . external . dirs . result . cluster_config_dir
315275}
316276
317277data "ibm_container_vpc_cluster_worker" "workers" {
0 commit comments