Kubernetes selector implementation in node
Implementation of stringify
, parse
and match
for selectors in the
Kubernetes API.
Stringifies a selector for use in a query parameter.
import { stringify } from "k8s-selector";
import rp from "request-promise";
rp.get({
uri : "http://localhost:8080/api/v1/pods",
json : true,
qs : {
labelSelector : stringify({
matchLabels : {
labelA : "a"
},
matchExpressions : [{
operator : "In",
key : "labelB",
values : ["b", "B"]
}]
})
}
});
Parses a Kubernetes API query param selector.
import assert from "assert";
import { parse } from "k8s-selector";
assert.deepEqual(parse("labelA = a, labelB != b"), {
matchLabels : {
labelA : "a"
},
matchExpressions : [{
operator : "NotIn",
key : "labelB",
values : ["b"]
}]
});
Implementation of Kubernetes selector matching logic.
import assert from "assert";
import { Selector } from "k8s-selector";
const selector = Selector("labelA = a");
assert.strictEqual(selector({ labelA : "a" }), true);