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.2", 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§

format
Kubernetes CEL string formatting extension function.
ip
Kubernetes CEL IP and CIDR extension functions.
lists
Kubernetes CEL list extension functions.
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.