OpenTelemetry with OTLP support has been added, allowing for better observability and monitoring of admission requests and responses.
The otlp exporter is configured by the common otel environment variables.
telemetry {
logging {
type = "otel"
}
metrics {
enabled = true
}
tracing {
enabled = true
}
}Switch from hashicorp/go-hclog to log/slog for logging.
Allow configuring the initial logger from text to json formats by adding -bootstrap-json-logger
-
Switch from
hashicorp/go-hclogtolog/slogfor Logging The logging library has been changed fromhashicorp/go-hclogto the standard library'slog/slog.- This change may affect how logs are formatted and structured.
-
Move
log_levelconfig totelemetry/logging/levelThelog_levelsetting has been moved under thetelemetry/logging/levelpath to better organize telemetry-related configurations.
- Improved the controller handling of mutation jobs so it can be ensured that jobs mutations are aggregated
-
Controller Signature Refactor The
Job-only signature in the admission controller has been replaced with a newtypes.Payloadstruct.- All mutators and validators now receive a
Payloadobject containing both theJobdefinition and additional context (e.g., client IP, resolved token details). - Any custom integrations using the old
Job-based method signatures must be updated to usetypes.Payload.
- All mutators and validators now receive a
-
OPA Input Changes The embedded OPA validator has been updated to accept a new input structure containing job and caller context.
- Policies and data references relying on the previous input format must be updated accordingly.
-
Remote Webhook Contract Change Webhook mutators and validators now receive a request body with the combined job and context data instead of job-only information.
- Downstream services expecting the old JSON schema must be updated to parse the new
Payloadformat.
- Downstream services expecting the old JSON schema must be updated to parse the new
-
Token Resolution & Context Passing Hooks can now resolve Nomad tokens (with optional policy extraction) and pass the accessor ID, client IP, and other metadata through mutators and validators.
- New configuration flag
resolveTokenenables token resolution for specific hooks to avoid unnecessary overhead when not required. - Enhanced support for use cases like CIDR-based validation, custom ACL logic, and extended audit logging.
- New configuration flag
-
Changelog Initialization Introduced a
CHANGELOG.mdto track significant updates, especially breaking changes and added features.
With these changes, you can now:
- Perform CIDR-based validations by leveraging the client IP.
- Create advanced ACL logic by passing resolved ACL token details (accessor ID, policies) to OPA or remote webhooks.
- Implement more granular auditing or custom workflows by integrating the new, richer
contextdata available in each request.