EvaluationFailed

Symptom
READY=False, REASON=EvaluationFailed. The Message contains the raw go-jsonnet diagnostic — file name, line, column, and the underlying error.
Cause
The snippet failed to evaluate. Three broad categories:
- Syntax error — unclosed brace, missing comma, bad indent.
- Runtime error —
std.extVar('missing')for an unset variable, division by zero,error '...'thrown explicitly. - Import error —
import 'missing.libsonnet'resolves to nothing in the snippet’s file map or library imports.
Diagnosis
Read the Message — it names the file and line. Reproduce locally:
# Pull the snippet's files into a tempdir, then evaluate.
kubectl --namespace <ns> get jsonnetsnippet <name> --output json | jq -r '.spec.files["main.jsonnet"]' > /tmp/main.jsonnet
jsonnet /tmp/main.jsonnet
For sourceRef-based snippets, fetch the tarball:
SOURCE_URL=$(kubectl --namespace <ns> get gitrepository <name> --output jsonpath='{.status.artifact.url}')
curl -sL "$SOURCE_URL" | tar -xz -C /tmp/snippet
jsonnet /tmp/snippet/<entry-file>
Remediation
Fix the snippet (or its libraries / source) and re-apply.
The diagnostic message can include the on-disk path of the snippet. This is acceptable in-cluster; treat it as sensitive if the condition is exposed to untrusted callers.