#!/usr/bin/env python3 """Generate k8s/knoe/knoe-ekosystem-sql.yaml from knoe-db/schema/ekosystem*.sql. Run via: make k8s/knoe/knoe-ekosystem-sql.yaml """ import os ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) SCHEMA_DIR = os.path.join(ROOT, "knoe-db", "schema") OUT = os.path.join(ROOT, "k8s", "knoe", "knoe-ekosystem-sql.yaml") SQL_FILES = ["ekosystem.sql", "ekosystem_objects.sql"] def indent(text, spaces=4): pad = " " * spaces return "\n".join((pad + line) if line else "" for line in text.splitlines()) lines = [ "apiVersion: v1", "kind: ConfigMap", "metadata:", " name: knoe-ekosystem-sql", " namespace: knoe-db", "data:", ] for fname in SQL_FILES: sql = open(os.path.join(SCHEMA_DIR, fname)).read() lines.append(f" {fname}: |") lines.append(indent(sql, 4)) with open(OUT, "w") as f: f.write("\n".join(lines) + "\n") print(f"Wrote {OUT} ({os.path.getsize(OUT)} bytes)")