#!/usr/bin/env python3 import json import subprocess raw = subprocess.check_output(["kubectl", "get", "deploy", "-A", "-o", "json"]) data = json.loads(raw) skip = {"kube-system", "gpu-operator", "kube-flannel"} for item in data["items"]: ns = item["metadata"]["namespace"] if ns in skip: continue name = item["metadata"]["name"] for container in item["spec"]["template"]["spec"]["containers"]: inline = [] refs = [] for env in container.get("env") or []: if "value" in env: key = env["name"] sens = any(s in key.upper() for s in ("PASS", "SECRET", "TOKEN", "KEY", "PWD", "SALT", "CRED")) inline.append(key + ("*" if sens else "")) else: refs.append(env["name"]) efs = [] for src in container.get("envFrom") or []: if "secretRef" in src: efs.append("secret:" + src["secretRef"]["name"]) elif "configMapRef" in src: efs.append("cm:" + src["configMapRef"]["name"]) print( "{}/{} container={} envFrom={} inline={} valueFrom={}".format( ns, name, container["name"], efs or "-", inline or "-", refs or "-", ) )