Pod Security Fields
Lookup material for the Pod Security level of a discovered workload. For what the level means and how it relates to Kyverno results, see Pod Security level.
Workload Trust is available only in private, self-managed AIControls installations, on premises or in a cloud cluster that you run. It needs a dedicated cluster that you run, with Kyverno, Kyverno Runtime, and cluster OIDC and RBAC access in place. Nirmata-hosted (SaaS) workspaces don't include it. See Feature availability.
API fields
The workload detail response, GET /api/v1/workload-trust/{namespace}/{kind}/{name}, returns the level in discovery.podSecurity. The agent identity detail response returns the same object in workloadDiscovery.podSecurity. The field is absent when discovery read no pod template for the workload.
| Field | Type | Meaning |
|---|---|---|
level | string | The highest level the pod template meets: privileged, baseline, or restricted. |
violations | array of strings | The IDs of the checks that keep the template from the next level up. Omitted when the level is restricted. |
checkVersion | string | The Pod Security Standards version that discovery applied, for example v1.37. |
evaluatedAtUnix | integer | When discovery evaluated the template, in Unix seconds. |
How the level is chosen
level | Rule | violations lists |
|---|---|---|
privileged | The template fails any Baseline check. | The failing Baseline checks. |
baseline | The template passes Baseline and fails a Restricted check. | The failing Restricted checks. |
restricted | The template passes both. | Nothing. |
violations is sorted by check ID and holds at most 20 entries of at most 64 characters each.
Check IDs
The IDs come from the upstream Pod Security Admission checks.
| Check ID | Level | What it forbids |
|---|---|---|
privileged | Baseline | Privileged containers. |
hostNamespaces | Baseline | hostNetwork, hostPID, and hostIPC. |
hostPathVolumes | Baseline | hostPath volumes. |
hostPorts | Baseline | Host ports. |
hostProbesAndHostLifecycle | Baseline | Probe and lifecycle hooks that set a host field. |
capabilities_baseline | Baseline | Added capabilities outside the default set. |
procMount | Baseline | An unmasked /proc mount. |
seccompProfile_baseline | Baseline | An Unconfined seccomp profile. |
seLinuxOptions | Baseline | Custom SELinux types, users, and roles. |
appArmorProfile | Baseline | An Unconfined AppArmor profile. |
sysctls | Baseline | Sysctls outside the safe set. |
windowsHostProcess | Baseline | Windows HostProcess containers. |
allowPrivilegeEscalation | Restricted | Containers that don't set allowPrivilegeEscalation to false. |
capabilities_restricted | Restricted | Containers that don't drop ALL capabilities. |
runAsNonRoot | Restricted | Containers that don't require a non-root user. |
runAsUser | Restricted | Running as user ID 0. |
seccompProfile_restricted | Restricted | A missing seccomp profile. |
restrictedVolumes | Restricted | Volume types outside the Restricted allow list. |
procMount_restricted | Restricted | A non-default /proc mount. |
Storage
Discovery stores the level on the workload's row in the discovered_workloads table, in the pod_security column, as JSON with the level, violations, checkVersion, and evaluatedAt fields. It never stores the pod template. A scan that reads no pod template clears the column.