Skip to main content

Crate kube_cel

Crate kube_cel 

Source
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.