Hand-authored illustration. The YAML on this page illustrates the shape of the policies kguardian generates for this workload — it is not captured generator output. Exact metadata, rule grouping, and selectors produced by kubectl kguardian gen will differ. Regeneration of this gallery from a live cluster is planned.
Workload
A postgres:16-alpine StatefulSet running in the data namespace. It accepts connections on TCP/5432 from a small set of application pods in the app namespace and emits no outbound traffic apart from DNS lookups for cluster-internal hostnames during startup.
Generated NetworkPolicy
Generated CiliumNetworkPolicy
Generated seccomp profile (excerpt)
Full profile contains 162 syscall names. Representative excerpt:
What kguardian observed
Two distinct ingress sources connected to TCP/5432: order-api and billing-worker, both in the app namespace. Egress was limited to UDP/53 lookups during connection establishment (Postgres resolves pg_hba-related hostnames at startup). The syscall set is heavier than nginx because Postgres performs heavy I/O: file extension/truncation (ftruncate, pwrite64, fdatasync), directory enumeration (getdents64), and process management (clone, wait4) for its background worker model.