#!/bin/bash read -r -d '' script <<'EOF' to_entries|map({(.key|tostring):.value.value})|add as $input | $input.k8s_node_names|to_entries|map({(.value):{ ansible_host:$input.k8s_node_public_ips[.key], private_ip:$input.k8s_node_private_ips[.key]} }) as $nodes | { ansible_host:$input.k8s_master_ip.public_ip, private_ip:$input.k8s_master_ip.private_ip, } as $master | {_meta:{ hostvars:([{"k8s-master": $master}]+$nodes|add)}, all:(["k8s-master"] + ($input.k8s_node_names)), k8s:(["k8s-master"] + ($input.k8s_node_names)), "k8s-nodes":$input.k8s_node_names, } EOF set -euo pipefail (cd .. && terraform output -json) | jq "$script"