pepr 0.29.2 → 0.30.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/lib.js CHANGED
@@ -50,7 +50,7 @@ var import_kubernetes_fluent_client7 = require("kubernetes-fluent-client");
50
50
  var R = __toESM(require("ramda"));
51
51
 
52
52
  // src/lib/capability.ts
53
- var import_kubernetes_fluent_client5 = require("kubernetes-fluent-client");
53
+ var import_kubernetes_fluent_client6 = require("kubernetes-fluent-client");
54
54
  var import_ramda6 = require("ramda");
55
55
 
56
56
  // src/lib/logger.ts
@@ -981,11 +981,75 @@ var Controller = class _Controller {
981
981
  };
982
982
 
983
983
  // src/lib/watch-processor.ts
984
- var import_kubernetes_fluent_client4 = require("kubernetes-fluent-client");
984
+ var import_kubernetes_fluent_client5 = require("kubernetes-fluent-client");
985
985
  var import_types2 = require("kubernetes-fluent-client/dist/fluent/types");
986
986
 
987
987
  // src/lib/helpers.ts
988
+ var import_kubernetes_fluent_client4 = require("kubernetes-fluent-client");
989
+
990
+ // src/sdk/sdk.ts
991
+ var sdk_exports = {};
992
+ __export(sdk_exports, {
993
+ containers: () => containers,
994
+ getOwnerRefFrom: () => getOwnerRefFrom,
995
+ sanitizeResourceName: () => sanitizeResourceName,
996
+ writeEvent: () => writeEvent
997
+ });
988
998
  var import_kubernetes_fluent_client3 = require("kubernetes-fluent-client");
999
+ function containers(request, containerType) {
1000
+ const containers2 = request.Raw.spec?.containers || [];
1001
+ const initContainers = request.Raw.spec?.initContainers || [];
1002
+ const ephemeralContainers = request.Raw.spec?.ephemeralContainers || [];
1003
+ if (containerType === "containers") {
1004
+ return containers2;
1005
+ }
1006
+ if (containerType === "initContainers") {
1007
+ return initContainers;
1008
+ }
1009
+ if (containerType === "ephemeralContainers") {
1010
+ return ephemeralContainers;
1011
+ }
1012
+ return [...containers2, ...initContainers, ...ephemeralContainers];
1013
+ }
1014
+ async function writeEvent(cr, event, eventType, eventReason, reportingComponent, reportingInstance) {
1015
+ logger_default.debug(cr.metadata, `Writing event: ${event.message}`);
1016
+ await (0, import_kubernetes_fluent_client3.K8s)(import_kubernetes_fluent_client3.kind.CoreEvent).Create({
1017
+ type: eventType,
1018
+ reason: eventReason,
1019
+ ...event,
1020
+ // Fixed values
1021
+ metadata: {
1022
+ namespace: cr.metadata.namespace,
1023
+ generateName: cr.metadata.name
1024
+ },
1025
+ involvedObject: {
1026
+ apiVersion: cr.apiVersion,
1027
+ kind: cr.kind,
1028
+ name: cr.metadata.name,
1029
+ namespace: cr.metadata.namespace,
1030
+ uid: cr.metadata.uid
1031
+ },
1032
+ firstTimestamp: /* @__PURE__ */ new Date(),
1033
+ reportingComponent,
1034
+ reportingInstance
1035
+ });
1036
+ }
1037
+ function getOwnerRefFrom(cr) {
1038
+ const { name, uid } = cr.metadata;
1039
+ return [
1040
+ {
1041
+ apiVersion: cr.apiVersion,
1042
+ kind: cr.kind,
1043
+ uid,
1044
+ name
1045
+ }
1046
+ ];
1047
+ }
1048
+ function sanitizeResourceName(name) {
1049
+ return name.toLowerCase().replace(/[^a-z0-9]+/g, "-").slice(0, 250).replace(/^[^a-z]+|[^a-z]+$/g, "");
1050
+ }
1051
+
1052
+ // src/lib/helpers.ts
989
1053
  function checkOverlap(bindingFilters, objectFilters) {
990
1054
  if (Object.keys(bindingFilters).length === 0) {
991
1055
  return true;
@@ -1098,8 +1162,10 @@ var Queue = class {
1098
1162
 
1099
1163
  // src/lib/watch-processor.ts
1100
1164
  var watchCfg = {
1101
- retryMax: 5,
1102
- retryDelaySec: 5
1165
+ retryMax: process.env.PEPR_RETRYMAX ? parseInt(process.env.PEPR_RETRYMAX, 10) : 5,
1166
+ retryDelaySec: process.env.PEPR_RETRYDELAYSECONDS ? parseInt(process.env.PEPR_RETRYDELAYSECONDS, 10) : 5,
1167
+ resyncIntervalSec: process.env.PEPR_RESYNCINTERVALSECONDS ? parseInt(process.env.PEPR_RESYNCINTERVALSECONDS, 10) : 300,
1168
+ allowWatchBookmarks: process.env.PEPR_ALLOWWATCHBOOKMARKS ? process.env.PEPR_ALLOWWATCHBOOKMARKS === "true" : false
1103
1169
  };
1104
1170
  var eventToPhaseMap = {
1105
1171
  ["CREATE" /* Create */]: [import_types2.WatchPhase.Added],
@@ -1115,6 +1181,7 @@ function setupWatch(capabilities) {
1115
1181
  }
1116
1182
  async function runBinding(binding, capabilityNamespaces) {
1117
1183
  const phaseMatch = eventToPhaseMap[binding.event] || eventToPhaseMap["*" /* Any */];
1184
+ logger_default.debug({ watchCfg }, "Effective WatchConfig");
1118
1185
  const watchCallback = async (obj, type) => {
1119
1186
  if (phaseMatch.includes(type)) {
1120
1187
  try {
@@ -1131,7 +1198,7 @@ async function runBinding(binding, capabilityNamespaces) {
1131
1198
  };
1132
1199
  const queue = new Queue();
1133
1200
  queue.setReconcile(watchCallback);
1134
- const watcher = (0, import_kubernetes_fluent_client4.K8s)(binding.model, binding.filters).Watch(async (obj, type) => {
1201
+ const watcher = (0, import_kubernetes_fluent_client5.K8s)(binding.model, binding.filters).Watch(async (obj, type) => {
1135
1202
  logger_default.debug(obj, `Watch event ${type} received`);
1136
1203
  if (binding.isQueue) {
1137
1204
  await queue.enqueue(obj, type);
@@ -1139,30 +1206,30 @@ async function runBinding(binding, capabilityNamespaces) {
1139
1206
  await watchCallback(obj, type);
1140
1207
  }
1141
1208
  }, watchCfg);
1142
- watcher.events.on(import_kubernetes_fluent_client4.WatchEvent.GIVE_UP, (err) => {
1209
+ watcher.events.on(import_kubernetes_fluent_client5.WatchEvent.GIVE_UP, (err) => {
1143
1210
  logger_default.error(err, "Watch failed after 5 attempts, giving up");
1144
1211
  process.exit(1);
1145
1212
  });
1146
- watcher.events.on(import_kubernetes_fluent_client4.WatchEvent.CONNECT, () => logEvent(import_kubernetes_fluent_client4.WatchEvent.CONNECT));
1213
+ watcher.events.on(import_kubernetes_fluent_client5.WatchEvent.CONNECT, () => logEvent(import_kubernetes_fluent_client5.WatchEvent.CONNECT));
1147
1214
  watcher.events.on(
1148
- import_kubernetes_fluent_client4.WatchEvent.BOOKMARK,
1149
- (obj) => logEvent(import_kubernetes_fluent_client4.WatchEvent.BOOKMARK, "Changes up to the given resourceVersion have been sent.", obj)
1215
+ import_kubernetes_fluent_client5.WatchEvent.BOOKMARK,
1216
+ (obj) => logEvent(import_kubernetes_fluent_client5.WatchEvent.BOOKMARK, "Changes up to the given resourceVersion have been sent.", obj)
1150
1217
  );
1151
- watcher.events.on(import_kubernetes_fluent_client4.WatchEvent.DATA_ERROR, (err) => logEvent(import_kubernetes_fluent_client4.WatchEvent.DATA_ERROR, err.message));
1218
+ watcher.events.on(import_kubernetes_fluent_client5.WatchEvent.DATA_ERROR, (err) => logEvent(import_kubernetes_fluent_client5.WatchEvent.DATA_ERROR, err.message));
1152
1219
  watcher.events.on(
1153
- import_kubernetes_fluent_client4.WatchEvent.RESOURCE_VERSION,
1154
- (resourceVersion) => logEvent(import_kubernetes_fluent_client4.WatchEvent.RESOURCE_VERSION, `Resource version: ${resourceVersion}`)
1220
+ import_kubernetes_fluent_client5.WatchEvent.RESOURCE_VERSION,
1221
+ (resourceVersion) => logEvent(import_kubernetes_fluent_client5.WatchEvent.RESOURCE_VERSION, `Resource version: ${resourceVersion}`)
1155
1222
  );
1156
1223
  watcher.events.on(
1157
- import_kubernetes_fluent_client4.WatchEvent.RECONNECT,
1158
- (err, retryCount) => logEvent(import_kubernetes_fluent_client4.WatchEvent.RECONNECT, `Reconnecting after ${retryCount} attempts`, err)
1224
+ import_kubernetes_fluent_client5.WatchEvent.RECONNECT,
1225
+ (err, retryCount) => logEvent(import_kubernetes_fluent_client5.WatchEvent.RECONNECT, `Reconnecting after ${retryCount} attempts`, err)
1159
1226
  );
1160
- watcher.events.on(import_kubernetes_fluent_client4.WatchEvent.RECONNECT_PENDING, () => logEvent(import_kubernetes_fluent_client4.WatchEvent.RECONNECT_PENDING));
1161
- watcher.events.on(import_kubernetes_fluent_client4.WatchEvent.GIVE_UP, (err) => logEvent(import_kubernetes_fluent_client4.WatchEvent.GIVE_UP, err.message));
1162
- watcher.events.on(import_kubernetes_fluent_client4.WatchEvent.ABORT, (err) => logEvent(import_kubernetes_fluent_client4.WatchEvent.ABORT, err.message));
1163
- watcher.events.on(import_kubernetes_fluent_client4.WatchEvent.OLD_RESOURCE_VERSION, (err) => logEvent(import_kubernetes_fluent_client4.WatchEvent.OLD_RESOURCE_VERSION, err));
1164
- watcher.events.on(import_kubernetes_fluent_client4.WatchEvent.RESYNC, (err) => logEvent(import_kubernetes_fluent_client4.WatchEvent.RESYNC, err.message));
1165
- watcher.events.on(import_kubernetes_fluent_client4.WatchEvent.NETWORK_ERROR, (err) => logEvent(import_kubernetes_fluent_client4.WatchEvent.NETWORK_ERROR, err.message));
1227
+ watcher.events.on(import_kubernetes_fluent_client5.WatchEvent.RECONNECT_PENDING, () => logEvent(import_kubernetes_fluent_client5.WatchEvent.RECONNECT_PENDING));
1228
+ watcher.events.on(import_kubernetes_fluent_client5.WatchEvent.GIVE_UP, (err) => logEvent(import_kubernetes_fluent_client5.WatchEvent.GIVE_UP, err.message));
1229
+ watcher.events.on(import_kubernetes_fluent_client5.WatchEvent.ABORT, (err) => logEvent(import_kubernetes_fluent_client5.WatchEvent.ABORT, err.message));
1230
+ watcher.events.on(import_kubernetes_fluent_client5.WatchEvent.OLD_RESOURCE_VERSION, (err) => logEvent(import_kubernetes_fluent_client5.WatchEvent.OLD_RESOURCE_VERSION, err));
1231
+ watcher.events.on(import_kubernetes_fluent_client5.WatchEvent.RESYNC, (err) => logEvent(import_kubernetes_fluent_client5.WatchEvent.RESYNC, err.message));
1232
+ watcher.events.on(import_kubernetes_fluent_client5.WatchEvent.NETWORK_ERROR, (err) => logEvent(import_kubernetes_fluent_client5.WatchEvent.NETWORK_ERROR, err.message));
1166
1233
  try {
1167
1234
  await watcher.start();
1168
1235
  } catch (err) {
@@ -1607,7 +1674,7 @@ var Capability = class {
1607
1674
  * @returns
1608
1675
  */
1609
1676
  When = (model, kind4) => {
1610
- const matchedKind = (0, import_kubernetes_fluent_client5.modelToGroupVersionKind)(model.name);
1677
+ const matchedKind = (0, import_kubernetes_fluent_client6.modelToGroupVersionKind)(model.name);
1611
1678
  if (!matchedKind && !kind4) {
1612
1679
  throw new Error(`Kind not specified for ${model.name}`);
1613
1680
  }
@@ -1712,68 +1779,6 @@ var Capability = class {
1712
1779
  };
1713
1780
  };
1714
1781
  };
1715
-
1716
- // src/sdk/sdk.ts
1717
- var sdk_exports = {};
1718
- __export(sdk_exports, {
1719
- containers: () => containers,
1720
- getOwnerRefFrom: () => getOwnerRefFrom,
1721
- sanitizeResourceName: () => sanitizeResourceName,
1722
- writeEvent: () => writeEvent
1723
- });
1724
- var import_kubernetes_fluent_client6 = require("kubernetes-fluent-client");
1725
- function containers(request, containerType) {
1726
- const containers2 = request.Raw.spec?.containers || [];
1727
- const initContainers = request.Raw.spec?.initContainers || [];
1728
- const ephemeralContainers = request.Raw.spec?.ephemeralContainers || [];
1729
- if (containerType === "containers") {
1730
- return containers2;
1731
- }
1732
- if (containerType === "initContainers") {
1733
- return initContainers;
1734
- }
1735
- if (containerType === "ephemeralContainers") {
1736
- return ephemeralContainers;
1737
- }
1738
- return [...containers2, ...initContainers, ...ephemeralContainers];
1739
- }
1740
- async function writeEvent(cr, event, eventType, eventReason, reportingComponent, reportingInstance) {
1741
- logger_default.debug(cr.metadata, `Writing event: ${event.message}`);
1742
- await (0, import_kubernetes_fluent_client6.K8s)(import_kubernetes_fluent_client6.kind.CoreEvent).Create({
1743
- type: eventType,
1744
- reason: eventReason,
1745
- ...event,
1746
- // Fixed values
1747
- metadata: {
1748
- namespace: cr.metadata.namespace,
1749
- generateName: cr.metadata.name
1750
- },
1751
- involvedObject: {
1752
- apiVersion: cr.apiVersion,
1753
- kind: cr.kind,
1754
- name: cr.metadata.name,
1755
- namespace: cr.metadata.namespace,
1756
- uid: cr.metadata.uid
1757
- },
1758
- firstTimestamp: /* @__PURE__ */ new Date(),
1759
- reportingComponent,
1760
- reportingInstance
1761
- });
1762
- }
1763
- function getOwnerRefFrom(cr) {
1764
- const { name, uid } = cr.metadata;
1765
- return [
1766
- {
1767
- apiVersion: cr.apiVersion,
1768
- kind: cr.kind,
1769
- uid,
1770
- name
1771
- }
1772
- ];
1773
- }
1774
- function sanitizeResourceName(name) {
1775
- return name.toLowerCase().replace(/[^a-z0-9]+/g, "-").slice(0, 250).replace(/^[^a-z]+|[^a-z]+$/g, "");
1776
- }
1777
1782
  // Annotate the CommonJS export names for ESM import in node:
1778
1783
  0 && (module.exports = {
1779
1784
  Capability,