pepr 0.24.1 → 0.25.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.js +215 -143
- package/dist/controller.js +1 -1
- package/dist/lib/assets/pods.d.ts +4 -0
- package/dist/lib/assets/pods.d.ts.map +1 -1
- package/dist/lib/capability.d.ts.map +1 -1
- package/dist/lib/helpers.d.ts +2 -0
- package/dist/lib/helpers.d.ts.map +1 -1
- package/dist/lib/module.d.ts +2 -0
- package/dist/lib/module.d.ts.map +1 -1
- package/dist/lib/queue.d.ts +18 -0
- package/dist/lib/queue.d.ts.map +1 -0
- package/dist/lib/types.d.ts +13 -0
- package/dist/lib/types.d.ts.map +1 -1
- package/dist/lib/watch-processor.d.ts.map +1 -1
- package/dist/lib.js +92 -12
- package/dist/lib.js.map +3 -3
- package/package.json +1 -1
- package/src/cli.ts +2 -1
- package/src/lib/assets/pods.ts +28 -13
- package/src/lib/assets/yaml.ts +2 -2
- package/src/lib/capability.ts +16 -3
- package/src/lib/helpers.ts +24 -0
- package/src/lib/module.ts +2 -0
- package/src/lib/queue.ts +77 -0
- package/src/lib/types.ts +14 -0
- package/src/lib/watch-processor.ts +38 -15
package/dist/lib/types.d.ts
CHANGED
|
@@ -62,6 +62,7 @@ export type Binding = {
|
|
|
62
62
|
isMutate?: boolean;
|
|
63
63
|
isValidate?: boolean;
|
|
64
64
|
isWatch?: boolean;
|
|
65
|
+
isQueue?: boolean;
|
|
65
66
|
readonly model: GenericClass;
|
|
66
67
|
readonly kind: GroupVersionKind;
|
|
67
68
|
readonly filters: {
|
|
@@ -144,6 +145,18 @@ export type ValidateActionChain<T extends GenericClass> = {
|
|
|
144
145
|
* @returns
|
|
145
146
|
*/
|
|
146
147
|
Watch: (action: WatchAction<T, InstanceType<T>>) => void;
|
|
148
|
+
/**
|
|
149
|
+
* Establish a reconcile for the specified resource. The callback function will be executed after the admission controller has
|
|
150
|
+
* processed the resource and the request has been persisted to the cluster.
|
|
151
|
+
*
|
|
152
|
+
* **Beta Function**: This method is still in early testing and edge cases may still exist.
|
|
153
|
+
*
|
|
154
|
+
* @since 0.14.0
|
|
155
|
+
*
|
|
156
|
+
* @param action
|
|
157
|
+
* @returns
|
|
158
|
+
*/
|
|
159
|
+
Reconcile: (action: WatchAction<T, InstanceType<T>>) => void;
|
|
147
160
|
};
|
|
148
161
|
export type MutateActionChain<T extends GenericClass> = ValidateActionChain<T> & {
|
|
149
162
|
/**
|
package/dist/lib/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/lib/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/lib/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"watch-processor.d.ts","sourceRoot":"","sources":["../../src/lib/watch-processor.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"watch-processor.d.ts","sourceRoot":"","sources":["../../src/lib/watch-processor.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAY1C,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,iBAoC5C;AAED,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,iBAOxE"}
|
package/dist/lib.js
CHANGED
|
@@ -967,6 +967,59 @@ var Controller = class _Controller {
|
|
|
967
967
|
var import_crypto = require("crypto");
|
|
968
968
|
var import_kubernetes_fluent_client3 = require("kubernetes-fluent-client");
|
|
969
969
|
var import_types2 = require("kubernetes-fluent-client/dist/fluent/types");
|
|
970
|
+
|
|
971
|
+
// src/lib/queue.ts
|
|
972
|
+
var Queue = class {
|
|
973
|
+
#queue = [];
|
|
974
|
+
#pendingPromise = false;
|
|
975
|
+
#reconcile;
|
|
976
|
+
constructor() {
|
|
977
|
+
this.#reconcile = async () => await new Promise((resolve) => resolve());
|
|
978
|
+
}
|
|
979
|
+
setReconcile(reconcile) {
|
|
980
|
+
this.#reconcile = reconcile;
|
|
981
|
+
}
|
|
982
|
+
/**
|
|
983
|
+
* Enqueue adds an item to the queue and returns a promise that resolves when the item is
|
|
984
|
+
* reconciled.
|
|
985
|
+
*
|
|
986
|
+
* @param item The object to reconcile
|
|
987
|
+
* @returns A promise that resolves when the object is reconciled
|
|
988
|
+
*/
|
|
989
|
+
enqueue(item) {
|
|
990
|
+
logger_default.debug(`Enqueueing ${item.metadata.namespace}/${item.metadata.name}`);
|
|
991
|
+
return new Promise((resolve, reject) => {
|
|
992
|
+
this.#queue.push({ item, resolve, reject });
|
|
993
|
+
return this.#dequeue();
|
|
994
|
+
});
|
|
995
|
+
}
|
|
996
|
+
/**
|
|
997
|
+
* Dequeue reconciles the next item in the queue
|
|
998
|
+
*
|
|
999
|
+
* @returns A promise that resolves when the webapp is reconciled
|
|
1000
|
+
*/
|
|
1001
|
+
async #dequeue() {
|
|
1002
|
+
if (this.#pendingPromise)
|
|
1003
|
+
return false;
|
|
1004
|
+
const element = this.#queue.shift();
|
|
1005
|
+
if (!element)
|
|
1006
|
+
return false;
|
|
1007
|
+
try {
|
|
1008
|
+
this.#pendingPromise = true;
|
|
1009
|
+
if (this.#reconcile) {
|
|
1010
|
+
await this.#reconcile(element.item);
|
|
1011
|
+
}
|
|
1012
|
+
element.resolve();
|
|
1013
|
+
} catch (e) {
|
|
1014
|
+
element.reject(e);
|
|
1015
|
+
} finally {
|
|
1016
|
+
this.#pendingPromise = false;
|
|
1017
|
+
await this.#dequeue();
|
|
1018
|
+
}
|
|
1019
|
+
}
|
|
1020
|
+
};
|
|
1021
|
+
|
|
1022
|
+
// src/lib/watch-processor.ts
|
|
970
1023
|
var storeUpdates = false;
|
|
971
1024
|
var store = {};
|
|
972
1025
|
async function setupStore(uuid) {
|
|
@@ -1011,16 +1064,32 @@ async function runBinding(binding) {
|
|
|
1011
1064
|
retryMax: 5,
|
|
1012
1065
|
retryDelaySec: 5
|
|
1013
1066
|
};
|
|
1014
|
-
|
|
1015
|
-
|
|
1016
|
-
|
|
1017
|
-
|
|
1018
|
-
|
|
1019
|
-
|
|
1020
|
-
|
|
1067
|
+
let watcher;
|
|
1068
|
+
if (binding.isQueue) {
|
|
1069
|
+
const queue = new Queue();
|
|
1070
|
+
watcher = (0, import_kubernetes_fluent_client3.K8s)(binding.model, binding.filters).Watch(async (obj, type) => {
|
|
1071
|
+
logger_default.debug(obj, `Watch event ${type} received`);
|
|
1072
|
+
if (phaseMatch.includes(type)) {
|
|
1073
|
+
try {
|
|
1074
|
+
queue.setReconcile(async () => await binding.watchCallback?.(obj, type));
|
|
1075
|
+
await queue.enqueue(obj);
|
|
1076
|
+
} catch (e) {
|
|
1077
|
+
logger_default.error(e, "Error executing watch callback");
|
|
1078
|
+
}
|
|
1021
1079
|
}
|
|
1022
|
-
}
|
|
1023
|
-
}
|
|
1080
|
+
}, watchCfg);
|
|
1081
|
+
} else {
|
|
1082
|
+
watcher = (0, import_kubernetes_fluent_client3.K8s)(binding.model, binding.filters).Watch(async (obj, type) => {
|
|
1083
|
+
logger_default.debug(obj, `Watch event ${type} received`);
|
|
1084
|
+
if (phaseMatch.includes(type)) {
|
|
1085
|
+
try {
|
|
1086
|
+
await binding.watchCallback?.(obj, type);
|
|
1087
|
+
} catch (e) {
|
|
1088
|
+
logger_default.error(e, "Error executing watch callback");
|
|
1089
|
+
}
|
|
1090
|
+
}
|
|
1091
|
+
}, watchCfg);
|
|
1092
|
+
}
|
|
1024
1093
|
const cacheSuffix = (0, import_crypto.createHash)("sha224").update(binding.watchCallback.toString()).digest("hex").substring(0, 5);
|
|
1025
1094
|
const cacheID = [watcher.getCacheID(), cacheSuffix].join("-");
|
|
1026
1095
|
watcher.events.on(import_kubernetes_fluent_client3.WatchEvent.RESOURCE_VERSION, (version) => {
|
|
@@ -1493,7 +1562,7 @@ var Capability = class {
|
|
|
1493
1562
|
};
|
|
1494
1563
|
const bindings = this.#bindings;
|
|
1495
1564
|
const prefix = `${this.#name}: ${model.name}`;
|
|
1496
|
-
const commonChain = { WithLabel, WithAnnotation, Mutate, Validate, Watch };
|
|
1565
|
+
const commonChain = { WithLabel, WithAnnotation, Mutate, Validate, Watch, Reconcile };
|
|
1497
1566
|
const isNotEmpty = (value) => Object.keys(value).length > 0;
|
|
1498
1567
|
const log = (message, cbString) => {
|
|
1499
1568
|
const filteredObj = (0, import_ramda6.pickBy)(isNotEmpty, binding.filters);
|
|
@@ -1510,7 +1579,7 @@ var Capability = class {
|
|
|
1510
1579
|
validateCallback
|
|
1511
1580
|
});
|
|
1512
1581
|
}
|
|
1513
|
-
return { Watch };
|
|
1582
|
+
return { Watch, Reconcile };
|
|
1514
1583
|
}
|
|
1515
1584
|
function Mutate(mutateCallback) {
|
|
1516
1585
|
if (registerAdmission) {
|
|
@@ -1521,7 +1590,7 @@ var Capability = class {
|
|
|
1521
1590
|
mutateCallback
|
|
1522
1591
|
});
|
|
1523
1592
|
}
|
|
1524
|
-
return { Watch, Validate };
|
|
1593
|
+
return { Watch, Validate, Reconcile };
|
|
1525
1594
|
}
|
|
1526
1595
|
function Watch(watchCallback) {
|
|
1527
1596
|
if (registerWatch) {
|
|
@@ -1533,6 +1602,17 @@ var Capability = class {
|
|
|
1533
1602
|
});
|
|
1534
1603
|
}
|
|
1535
1604
|
}
|
|
1605
|
+
function Reconcile(watchCallback) {
|
|
1606
|
+
if (registerWatch) {
|
|
1607
|
+
log("Reconcile Action", watchCallback.toString());
|
|
1608
|
+
bindings.push({
|
|
1609
|
+
...binding,
|
|
1610
|
+
isWatch: true,
|
|
1611
|
+
isQueue: true,
|
|
1612
|
+
watchCallback
|
|
1613
|
+
});
|
|
1614
|
+
}
|
|
1615
|
+
}
|
|
1536
1616
|
function InNamespace(...namespaces) {
|
|
1537
1617
|
logger_default.debug(`Add namespaces filter ${namespaces}`, prefix);
|
|
1538
1618
|
binding.filters.namespaces.push(...namespaces);
|