runtime.kubernetes block in fracta.yaml. The
quickest way to get a working tree is fracta init --scaffold k8s, which
materializes a starter set of manifests and a deployment/ directory under
your project root. See the Kubernetes deployment guide
for the full setup walkthrough.
Mounting operator-supplied auth helpers
The agent image is auth-agnostic: it ships an empty/opt/fracta/auth-helpers/
directory on PATH and nothing else auth-specific. Operators bring their own
token-fetching scripts (Bedrock STS, gcloud, secret-mounted files, custom
proxies) and mount them into that directory at runtime via a ConfigMap volume.
Resolver command: references in the controlplane config are resolved on
PATH inside the container, so you reference helpers by bare name regardless
of where the file lives on the host.
End-to-end example
-
Edit (or replace) the starter helper at
deployment/auth-helpers/fetch-token-exampleso it prints a token for your auth provider on stdout. Examples for Bedrock STS, gcloud Vertex tokens, mounted Anthropic API keys, and custom HTTP proxies are in the file’s header comments. Rename the file to whatever yourcommand:references will use (e.g.fetch-bedrock-token,fetch-vertex-token). -
Package
deployment/auth-helpers/into a ConfigMap: -
Reference the ConfigMap from
fracta.yaml(the scaffold ships this block already; shown here for reference): -
Restart the controlplane after re-applying the ConfigMap so spawned
agents pick up the new helpers:
/opt/fracta/auth-helpers/<name>. No image rebuild required.
Workspace-local helpers in ${PWD}/.fracta/auth-helpers/ shadow image-baked
ones for per-agent overrides.
Adding a new auth provider
Once the ConfigMap workflow is wired up, adding a new provider is a matter of dropping a script and updating one config block. For example, to add Vertex AI alongside an existing setup:deployment/k8s/manifests/fracta-controlplane.yaml) under
auth.credentials.profiles:
Diagnostic log line
Every agent pod logs the following at startup:present=falsemeans the controlplane didn’t project a credentials file — the agent will fail any auth-bearing call.auth-helpers=[none]means no helpers are visible on PATH; check the ConfigMap mount.
Field reference
extra_volumes accepts a list of full corev1.Volume objects — anything
you can express in a Kubernetes Pod spec works here: ConfigMap, Secret,
hostPath, emptyDir, projected, CSI, etc.
extra_volume_mounts accepts a list of corev1.VolumeMount objects. Each
mount’s name MUST reference one of:
- An entry in
extra_volumesdeclared in the same config. - A built-in volume name the runtime always defines:
workspace,agent-config,auth-secret.
Path resolution inside the container
The agent image entrypoint sets:command: references should use bare names (e.g. fetch-bedrock-token),
not absolute paths — the bare name is found via PATH and the precedence
above means workspace-local overrides “just work”.
Application
The runtime appendsextra_volumes to every pod spec’s volumes and
extra_volume_mounts to the main agent container’s volumeMounts. The
workspace-init init container does not receive any extras — auth
helpers have no init-time use case, and keeping the init container’s mount
set minimal preserves a clean, opt-in injection path.
This applies uniformly to:
Spawn()(Job-backed agents — the default lifecycle).SpawnStreamPod()(long-lived stream pods used by Codex / OpenCode).

