Unreleased
In progressChanged
- Refreshed benchmark run to cover the
lsm/socket_connectegress andlsm/bprm_check_securityexec enforcement paths, which landed after the 2026-08-14 measurement.
What changed in each Pahlevan release, and every artifact you can install: a distroless container image on GHCR, a Helm chart, and a single-file Kubernetes manifest. The current release is v2.0.0.
One distroless image contains pahlevan-agent (the per-node DaemonSet),
pahlevan-operator (the leader-elected Deployment), and the
pahlevan CLI. No shell, no package manager, nothing but the binaries.
helm repo add pahlevan https://obsernetics.github.io/pahlevan/charts
helm repo update
helm install pahlevan pahlevan/pahlevan-operator \
-n pahlevan-system --create-namespace
kubectl apply -f https://github.com/obsernetics/pahlevan/releases/latest/download/install.yaml
The manifest carries the CRDs, RBAC, the operator Deployment, and the agent
DaemonSet. Swap latest for v2.0.0 to pin a release.
docker pull ghcr.io/obsernetics/pahlevan:v2.0.0
docker pull ghcr.io/obsernetics/pahlevan:v2.0.0
docker inspect ghcr.io/obsernetics/pahlevan:v2.0.0
# Digest to pin in air-gapped or regulated environments
docker inspect --format '{{index .RepoDigests 0}}' \
ghcr.io/obsernetics/pahlevan:v2.0.0
| Image tag | Meaning |
|---|---|
latest |
Most recent build of the default branch |
v2.0.0 |
Immutable release tag, recommended for production |
main |
Rolling tag for the default branch |
main-<sha> |
Per-commit build of the default branch, useful for bisecting |
Full package reference, including chart values and CRD cleanup, is in docs/packages.md.
Following Keep a Changelog and semantic versioning. The canonical file is CHANGELOG.md.
lsm/socket_connect egress and lsm/bprm_check_security exec enforcement paths, which landed after the 2026-08-14 measurement.Pahlevan 2.0.0 is a redesign. The single all-in-one operator is replaced by a privileged per-node agent plus an unprivileged, leader-elected control plane, and the eBPF data plane moved from placeholder code to real CO-RE programs that observe and deny in the kernel.
pahlevan-agent (privileged DaemonSet, owns the eBPF data plane) and pahlevan-operator (leader-elected Deployment, no host access, runs with hostUsers: false).raw_tracepoint/sys_enter with a ring buffer and in-kernel deduplication per (cgroup, syscall).lsm/file_open with path resolution via bpf_d_path() and graceful degradation when the BPF LSM is unavailable.EPERM.lsm/socket_connect, preceded by a CO-RE kprobe/tcp_connect network monitor for observation.lsm/bprm_check_security.ValidatingAdmissionPolicy hardening for PahlevanPolicy resources.ContainerProfile CRD with profile persistence, a metrics endpoint, and an enforcement counter.AttackSurface CRD for cluster-wide posture aggregation.hack/vm/: reproducible QEMU/KVM harness that provisions a kernel with the BPF LSM enabled for eBPF load, attach, observe, and enforce tests.install.yaml rewritten for the agent plus operator split.pahlevan-agent, pahlevan-operator, pahlevan); the container image is a minimal distroless runtime.go.mod, the Makefile, and the Dockerfile.controller-runtime to 0.22.4, cilium/ebpf to 0.20.0, spf13/cobra to 1.10.1, Ginkgo/Gomega, OpenTelemetry, go-logr, and prometheus/client_golang.go.sum inconsistency from an unused golang.org/x/exp dependency.govulncheck clean.ValidatingAdmissionPolicy.pkg/events package, an orphaned eBPF mock.go, and an unused eBPF manager.PahlevanPolicy CRD, a learning phase, enforcement modes, self-healing, observability, and Helm plus manifest based installation.Apply the manifest, label a workload, and let the learning window do the rest.