# 2026-03-17 13:05 # read_pg_user_secret.py — читает пароль пользователя managed PostgreSQL из k8s Secret. # Используется из Terraform external data source, чтобы apply сам получал актуальный пароль # даже для уже существующего пользователя, созданного вне текущего state. import base64 import json import subprocess import sys def main(): # Читаем query от Terraform external provider из stdin. query = json.load(sys.stdin) namespace = query["namespace"] secret_name = query["secret"] # kubectl уже настроен на удалённой машине; читаем ровно поле data.password. result = subprocess.run( [ "kubectl", "get", "secret", "-n", namespace, secret_name, "-o", "jsonpath={.data.password}", ], check=True, capture_output=True, text=True, ) password = base64.b64decode(result.stdout.strip()).decode() json.dump({"password": password}, sys.stdout) if __name__ == "__main__": main()