Directories
¶
| Path | Synopsis |
|---|---|
|
cmd
|
|
|
landlock-genprof
command
Command landlock-genprof observes a running Kubernetes pod and generates least-privilege security profiles from what it actually saw: a PodLock LandlockProfile always, plus NetworkPolicy/seccomp/Linux capabilities/securityContext outputs behind their own flags.
|
Command landlock-genprof observes a running Kubernetes pod and generates least-privilege security profiles from what it actually saw: a PodLock LandlockProfile always, plus NetworkPolicy/seccomp/Linux capabilities/securityContext outputs behind their own flags. |
|
internal
|
|
|
analysis
Package analysis turns observed behavior (internal/profile) into product-facing, explainable security recommendations.
|
Package analysis turns observed behavior (internal/profile) into product-facing, explainable security recommendations. |
|
exporter/capabilities
Package capabilities converts a Behavior IR (internal/profile) into a Linux capabilities fragment and serializes it to YAML.
|
Package capabilities converts a Behavior IR (internal/profile) into a Linux capabilities fragment and serializes it to YAML. |
|
exporter/networkpolicy
Package networkpolicy converts a Behavior IR (internal/profile) into a Kubernetes NetworkPolicy and serializes it to YAML.
|
Package networkpolicy converts a Behavior IR (internal/profile) into a Kubernetes NetworkPolicy and serializes it to YAML. |
|
exporter/podlock
Package podlock converts a Behavior IR (internal/profile) into the PodLock format (pkg/podlock) and serializes it to YAML.
|
Package podlock converts a Behavior IR (internal/profile) into the PodLock format (pkg/podlock) and serializes it to YAML. |
|
exporter/report
Package report renders a Behavior IR (internal/profile) into a single Markdown review artifact combining all four observed domains (filesystem, network, syscalls, capabilities) for one human review pass, instead of the four-to-five separate files the other exporters each produce on their own.
|
Package report renders a Behavior IR (internal/profile) into a single Markdown review artifact combining all four observed domains (filesystem, network, syscalls, capabilities) for one human review pass, instead of the four-to-five separate files the other exporters each produce on their own. |
|
exporter/seccomp
Package seccomp converts a Behavior IR (internal/profile) into a seccomp profile (pkg/seccomp) and serializes it to JSON.
|
Package seccomp converts a Behavior IR (internal/profile) into a seccomp profile (pkg/seccomp) and serializes it to JSON. |
|
exporter/securitycontext
Package securitycontext composes a Behavior IR (internal/profile) and a reference to a separately-generated seccomp profile into a Kubernetes corev1.SecurityContext fragment, and serializes it to YAML.
|
Package securitycontext composes a Behavior IR (internal/profile) and a reference to a separately-generated seccomp profile into a Kubernetes corev1.SecurityContext fragment, and serializes it to YAML. |
|
exporter/spo
Package spo converts a Behavior IR (internal/profile) into a security-profiles-operator (SPO) SeccompProfile custom resource (pkg/spo) and serializes it to YAML.
|
Package spo converts a Behavior IR (internal/profile) into a security-profiles-operator (SPO) SeccompProfile custom resource (pkg/spo) and serializes it to YAML. |
|
history
Package history persists a training target's observed accesses across multiple `trace --history` runs, in a TrainingHistory custom resource (see internal/history/store.go), so Confidence can finally be computed the way internal/profile.Confidence's own doc comment already describes it: "seen across how many distinct training runs" — not the single-run seenCount proxy internal/policy.confidenceFor computes for lack of any persisted state (see docs/policy-synthesis.md's "Confidence: a deliberately provisional heuristic").
|
Package history persists a training target's observed accesses across multiple `trace --history` runs, in a TrainingHistory custom resource (see internal/history/store.go), so Confidence can finally be computed the way internal/profile.Confidence's own doc comment already describes it: "seen across how many distinct training runs" — not the single-run seenCount proxy internal/policy.confidenceFor computes for lack of any persisted state (see docs/policy-synthesis.md's "Confidence: a deliberately provisional heuristic"). |
|
k8s
Package k8s locates and prepares the target pod for a training run (namespace/pod/container resolution, checking the RBAC permissions the tracer needs).
|
Package k8s locates and prepares the target pod for a training run (namespace/pod/container resolution, checking the RBAC permissions the tracer needs). |
|
policy
Package policy aggregates tracing events (internal/tracer) into a Behavior IR (internal/profile) — one FileAccess per directory, not per file, to avoid overfitting on overly specific paths.
|
Package policy aggregates tracing events (internal/tracer) into a Behavior IR (internal/profile) — one FileAccess per directory, not per file, to avoid overfitting on overly specific paths. |
|
profile
Package profile defines the Behavior IR (intermediate representation): the internal, technology-neutral description of what a workload was observed doing, independent of any specific output format (PodLock, Kubernetes NetworkPolicy, Cilium, ...).
|
Package profile defines the Behavior IR (intermediate representation): the internal, technology-neutral description of what a workload was observed doing, independent of any specific output format (PodLock, Kubernetes NetworkPolicy, Cilium, ...). |
|
proposal
Package proposal persists a training run's generated multi-domain profile as a SecurityProfileProposal custom resource (see internal/proposal/store.go), so it can be reviewed via kubectl/GitOps instead of only as local files.
|
Package proposal persists a training run's generated multi-domain profile as a SecurityProfileProposal custom resource (see internal/proposal/store.go), so it can be reviewed via kubectl/GitOps instead of only as local files. |
|
tracer
Package tracer captures a pod's syscall events during a training run, building on the existing Inspektor Gadget gadgets (trace_open, trace_tcpconnect, trace_bind, trace_exec) rather than writing eBPF programs from scratch.
|
Package tracer captures a pod's syscall events during a training run, building on the existing Inspektor Gadget gadgets (trace_open, trace_tcpconnect, trace_bind, trace_exec) rather than writing eBPF programs from scratch. |
|
pkg
|
|
|
podlock
Package podlock defines the Go types matching the LandlockProfile CRD schema of the PodLock project (github.com/flavio/podlock, Kubewarden ecosystem), so that landlock-genprof generates profiles that are directly usable without further transformation.
|
Package podlock defines the Go types matching the LandlockProfile CRD schema of the PodLock project (github.com/flavio/podlock, Kubewarden ecosystem), so that landlock-genprof generates profiles that are directly usable without further transformation. |
|
seccomp
Package seccomp defines the Go types matching the standard OCI runtime- spec / Kubernetes "localhost" seccomp profile JSON format (see https://kubernetes.io/docs/tutorials/security/seccomp/), so that landlock-genprof generates a profile directly usable without further transformation — same reasoning as pkg/podlock, and confirmed against the exact shape Inspektor Gadget's own advise_seccomp gadget produces (gadgets/advise_seccomp/README.mdx, vendored SDK v0.54.1): this schema is small and stable enough that a hand-rolled type is safer than pulling in a dependency for it.
|
Package seccomp defines the Go types matching the standard OCI runtime- spec / Kubernetes "localhost" seccomp profile JSON format (see https://kubernetes.io/docs/tutorials/security/seccomp/), so that landlock-genprof generates a profile directly usable without further transformation — same reasoning as pkg/podlock, and confirmed against the exact shape Inspektor Gadget's own advise_seccomp gadget produces (gadgets/advise_seccomp/README.mdx, vendored SDK v0.54.1): this schema is small and stable enough that a hand-rolled type is safer than pulling in a dependency for it. |
|
spo
Package spo defines the Go types matching the SeccompProfile CRD schema of security-profiles-operator (SPO, github.com/kubernetes-sigs/security-profiles-operator), so landlock-genprof can generate a SeccompProfile directly usable without further transformation — same reasoning pkg/podlock already documents for PodLock's own CRD.
|
Package spo defines the Go types matching the SeccompProfile CRD schema of security-profiles-operator (SPO, github.com/kubernetes-sigs/security-profiles-operator), so landlock-genprof can generate a SeccompProfile directly usable without further transformation — same reasoning pkg/podlock already documents for PodLock's own CRD. |
Click to show internal directories.
Click to hide internal directories.