Skip to main content

warrantor-admission

AumOS Kubernetes validating admission webhook. Refuses to admit a Pod into the cluster unless it carries a valid AumOS Attestation Envelope (AAE) annotation. The AAE is the signed attestation produced when the workload image (and its runtime config) was measured; without it a pod cannot be trusted to be the thing it claims to be.

The webhook is policy-light by design: it enforces annotation presence and structural validity. The cryptographic verification of the AAE quote is delegated to the attestation verifier in the AumOS agent running on the node — the webhook is the gate, not the verifier.

Annotations

Annotation Meaning
muveraai.com/aae Required. The base64 attestation envelope blob.
muveraai.com/aae-digest Optional. When present, must match sha256:<hex>.

Behaviour

  • Pods in kube-system, kube-public, kube-node-lease are exempt by default (override with allow_namespaces).
  • Optional positive selector: only enforce in namespaces in namespace_selector.
  • Non-Pod resources in an AdmissionReview are passed through (the webhook only enforces Pod).

Usage

from warrantor_admission import AdmissionWebhook

webhook = AdmissionWebhook()
result = webhook.validate_pod(pod_manifest)
if not result.allowed:
    raise RuntimeError(result.reason)

# Or process a full AdmissionReview object:
response = webhook.handle_admission_review(admission_review)
assert response["response"]["allowed"] is True

# Run as a standalone HTTP server:
webhook.serve(port=8443)

Deployment manifests

# 1. Service
apiVersion: v1
kind: Service
metadata:
  name: warrantor-admission
  namespace: warrantor-system
spec:
  selector:
    app: warrantor-admission
  ports:
    - port: 443
      targetPort: 8443

---
# 2. Deployment
apiVersion: apps/v1
kind: Deployment
metadata:
  name: warrantor-admission
  namespace: warrantor-system
spec:
  replicas: 2
  selector:
    matchLabels:
      app: warrantor-admission
  template:
    metadata:
      labels:
        app: warrantor-admission
    spec:
      containers:
        - name: webhook
          image: aumos/admission:1.0.0
          ports:
            - containerPort: 8443
          volumeMounts:
            - name: tls
              mountPath: /tls
              readOnly: true
          env:
            - name: AUMOS_ADMISSION_PORT
              value: "8443"
      volumes:
        - name: tls
          secret:
            secretName: warrantor-admission-tls

---
# 3. ValidatingWebhookConfiguration
apiVersion: admissionregistration.k8s.io/v1
kind: ValidatingWebhookConfiguration
metadata:
  name: warrantor-admission
webhooks:
  - name: admission.muveraai.com
    sideEffects: None
    admissionReviewVersions: ["v1"]
    rules:
      - apiGroups: [""]
        apiVersions: ["v1"]
        resources: ["pods"]
        operations: ["CREATE", "UPDATE"]
    clientConfig:
      service:
        name: warrantor-admission
        namespace: warrantor-system
        path: /validate
      caBundle: <base64 of the CA cert that signed the webhook's serving cert>
    namespaceSelector:
      matchExpressions:
        - key: kubernetes.io/metadata.name
          operator: NotIn
          values: ["kube-system", "kube-public", "kube-node-lease"]

The caBundle value can be produced with ca_bundle_for_webhook(pem).

Development

pip install -e ".[dev]"
pytest
ruff check .

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

warrantor_admission-1.0.0-py3-none-any.whl (7.0 kB view details)

Uploaded Python 3

File details

Details for the file warrantor_admission-1.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for warrantor_admission-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9d81e38f9416bad0511c2f481707a0f847b4b581484d1d26911a92ac1973fef0
MD5 abcf61bf4d6e9187692378e32b1687a3
BLAKE2b-256 273207977a4e0cb81dd4130555b62ec24477764823e83fbdf9dbbfdc13830a6a

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

1.0.0 This release

1 file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page