#!/usr/bin/env python3 import json import os import subprocess import sys from pathlib import Path from jinja2 import Environment, FileSystemLoader def get_terraform_outputs(): result = subprocess.run( ["terraform", "output", "-json"], cwd="../terraform", capture_output=True, text=True, ) if result.returncode != 0: print(f"Error running terraform output: {result.stderr}") sys.exit(1) return json.loads(result.stdout) def main(): outputs = get_terraform_outputs() data = { "control_plane_ips": outputs["control_plane_ips"]["value"], "worker_ips": outputs["worker_ips"]["value"], "private_key_file": outputs["ssh_private_key_path"]["value"], } env = Environment(loader=FileSystemLoader(".")) template = env.get_template("inventory.tmpl") inventory = template.render(**data) Path("inventory.ini").write_text(inventory) print("Generated inventory.ini") if __name__ == "__main__": main()