@@ -204,19 +204,39 @@ locals {
204204 }
205205 }
206206
207- # Worker pool OCI resources enriched with desired/custom parameters
207+ # Maps of worker pool OCI resources by pool name enriched with desired/custom parameters for various modes
208208 worker_node_pools = { for k , v in oci_containerengine_node_pool . workers : k => merge (v, lookup (local. worker_pools_final , k, {})) }
209209 worker_virtual_node_pools = { for k , v in oci_containerengine_virtual_node_pool . workers : k => merge (v, lookup (local. worker_pools_final , k, {})) }
210210 worker_instance_pools = { for k , v in oci_core_instance_pool . workers : k => merge (v, lookup (local. worker_pools_final , k, {})) }
211211 worker_cluster_networks = { for k , v in oci_core_cluster_network . workers : k => merge (v, lookup (local. worker_pools_final , k, {})) }
212212 worker_instances = { for k , v in oci_core_instance . workers : k => merge (v, lookup (local. worker_pools_final , k, {})) }
213+
214+ # Combined map of outputs by pool name for all modes excluding 'instance' (output separately)
213215 worker_pools_output = merge (
214216 local. worker_node_pools ,
215217 local. worker_virtual_node_pools ,
216218 local. worker_instance_pools ,
217219 local. worker_cluster_networks ,
218- local. worker_instances
219220 )
220- worker_pool_ids = { for k , v in local . worker_pools_output : k => v . id }
221- worker_instance_ids = { for k , v in local . enabled_instances : k => lookup (lookup (oci_core_instance. workers , k, {}), " id" , " " ) }
221+
222+ # OCIDs of pool resources by pool name for modes: 'node-pool', 'virtual-node-pool', 'instance-pool', 'cluster-network'
223+ worker_pool_ids = { for k , v in local . worker_pools_output : k => v . id }
224+
225+ # Map of pool name to list of instance IP addresses for modes: 'instance'
226+ worker_instance_ips = {
227+ for x , y in {
228+ for k , v in local . worker_instances : replace (k, " /-[^-]*$/" , " " ) => # remove index suffix
229+ { lookup (v, " id" , " " ) = lookup (v, " private_ip" , null ) }... # instances grouped by "pool"
230+ } : x => merge (y... )
231+ }
232+
233+ # Map of pool name to list of instance IP addresses for modes: 'node-pool'
234+ worker_nodepool_ips = {
235+ for k , v in local . worker_node_pools : k => {
236+ for n in lookup (v, " nodes" , []) : lookup (n, " id" , " " ) => lookup (n, " private_ip" , null )
237+ }
238+ }
239+
240+ # Yields {<pool name> = {<instance id> = <instance ip>}} for modes: 'node-pool', 'instance'
241+ worker_pool_ips = merge (local. worker_instance_ips , local. worker_nodepool_ips )
222242}
0 commit comments