Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

The governed workflow

Runtime knowledge is useful, but it is not deployment authority. landlock-genprof brings direct evidence and derived policy into one candidate, gives that candidate deterministic content identity, and applies it only after a human authorizes that exact identity.

01 · Knowledge sources
Direct evidence

landlock-genprof acquires filesystem, network, and applicable capability evidence.

SPO-derived policy

Security Profiles Operator observes syscalls and produces the real derived SeccompProfile.

Different origins. One candidate.

02 · Candidate SecurityProfileProposal

Direct evidence and the imported SPO artifact converge with provenance preserved.

CandidateDigest

Deterministic content identity. Not authority.

03 · Authorization
Reviewed contentExact digestHuman approval

review exposes the candidate. approve binds authority to that digest only. Changed content cannot inherit an earlier approval.

04 · Apply apply-proposal

Re-reads and revalidates the proposal, re-checks approval, checks implemented backend readiness, and refuses missing, stale, or mismatched authority.

APPLIED ≠ ENFORCEDENFORCED ≠ VERIFIED

Explicit rollback

After apply, the durable ApplyAttempt records controlled Before state, attributable object identity/resourceVersion, observed state, and typed results for each mutation. An operator may explicitly invoke:

kubectl landlock-genprof rollback <apply-attempt> --namespace default

This creates a separate RollbackAttempt and performs guarded inverse mutations only for a current custody-epoch-qualified source. Strict UID/resourceVersion and controlled-state checks, dependency-aware ordering, readiness checks, and policy-reference guards apply before mutation. The operation restores recorded controlled Before state only and remains sequential and nontransactional. Partial, failed/no-effect, and OUTCOME_UNKNOWN results are durable; unknown descendants are not automatically redispatched, while known FAILED_NO_EFFECT records may be reconsidered by a later explicit continuation after fresh checks.

Rollback authority is Kubernetes RBAC plus explicit CLI confirmation, not browser action or a new proposal approval. Bare-Pod delete-then-create rollback and rollback-of-rollback are unsupported.

In SPO mode, the imported SeccompProfile is derived policy—not landlock-genprof observation. Its provenance is preserved, its syscalls do not enter landlock-genprof TrainingHistory, and landlock-genprof invents no confidence for them. The source object grants no authority; the governed candidate still requires normal digest-bound approval. See Import SPO-derived policy and ADR-0008.

Four commands, one authority chain

01

trace

Collect direct evidence for the selected source mode and publish a candidate. In SPO mode, filesystem and network evidence remain landlock-genprof-derived while syscall policy comes from the named SPO-derived SeccompProfile.

kubectl landlock-genprof trace \
  --pod nginx-demo -n default \
  --binary /usr/sbin/nginx \
  --duration 60s
02

review

Inspect the exact mixed-origin candidate, source provenance, applicable confidence, artifact readiness, and the candidate digest.

kubectl landlock-genprof review \
  nginx-demo
03

approve

Record explicit human authority for the digest printed by review. A later candidate must be reviewed and approved again.

kubectl landlock-genprof approve \
  nginx-demo \
  --expected-digest sha256:<from-review>
04

apply-proposal

Apply only a valid, current approval. Enforcement remains the responsibility of PodLock/Landlock, the CNI, and SPO with the kubelet/runtime.

kubectl landlock-genprof \
  apply-proposal nginx-demo

Before tracing, use kubectl landlock-genprof doctor for host prerequisites. After application, use backend-specific checks to distinguish API application, enforcement, and behavioral verification. The usage guide documents the complete lifecycle and the narrower semantics of explain, diff, and verify.

Continue