Expand description
Kubernetes CEL extension functions for the cel crate.
This crate provides the Kubernetes-specific CEL (Common Expression Language) functions
that are available in Kubernetes CRD validation rules, built on top of the cel crate.
§Usage
use cel::Context;
use kube_cel::register_all;
let mut ctx = Context::default();
register_all(&mut ctx);§CRD Validation Pipeline (feature = validation)
Compile and evaluate x-kubernetes-validations CEL rules client-side,
without an API server.
kube-cel = { version = "0.5", features = ["validation"] }ⓘ
use kube_cel::validation::Validator;
use serde_json::json;
let schema = json!({
"type": "object",
"x-kubernetes-validations": [
{"rule": "self.replicas >= 0", "message": "must be non-negative"}
],
"properties": { "replicas": {"type": "integer"} }
});
let object = json!({"replicas": -1});
let errors = Validator::new().validate(&schema, &object, None);
assert_eq!(errors.len(), 1);For repeated validation against the same schema, pre-compile with
[compilation::compile_schema] and use [validation::Validator::validate_compiled].
Modules§
- encoders
- Base64 encode/decode functions for Kubernetes CEL.
- format
- Kubernetes CEL string formatting extension function.
- ip
- Kubernetes CEL IP and CIDR extension functions.
- jsonpatch
- JSONPatch key escaping for Kubernetes CEL.
- lists
- Kubernetes CEL list extension functions.
- math
- Math extension library for Kubernetes CEL.
- named_
format - Named format validation for Kubernetes CEL.
- quantity
- Kubernetes CEL quantity extension functions.
- regex_
funcs - Kubernetes CEL regex extension functions.
- semver_
funcs - Kubernetes CEL semantic versioning extension functions.
- sets
- Kubernetes CEL sets extension functions.
- strings
- Kubernetes CEL string extension functions.
- urls
- Kubernetes CEL URL extension functions.
Functions§
- register_
all - Register all available Kubernetes CEL extension functions into the given context.