@mark1russell7/kind 0.10.1 → 0.11.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/README.md +7 -0
- package/build/index.d.ts +33 -2
- package/build/index.js +87 -7
- package/build/index.js.map +1 -1
- package/build/{judge-BD4UVQfy.d.ts → judge-4bzoeGIb.d.ts} +18 -3
- package/build/{judge-BbLWVTYj.js → judge-DdeJ1qVd.js} +7 -4
- package/build/{judge-BbLWVTYj.js.map → judge-DdeJ1qVd.js.map} +1 -1
- package/build/judge.d.ts +1 -1
- package/build/judge.js +1 -1
- package/image/app.mjs +7 -2
- package/image/client.mjs +32 -7
- package/package.json +2 -2
|
@@ -132,9 +132,12 @@ type Stack = "service" | "grpc";
|
|
|
132
132
|
* - `ztunnel-restart` deletes the ztunnel pod of each node with its grace. The DaemonSet makes a new pod on each node (T15).
|
|
133
133
|
* - `certificate-expiry` keeps the calls of each client going for the hold. No act of the lab touches a
|
|
134
134
|
* connection. The lab reads the workload certificates of ztunnel at the fault and at the heal (T15).
|
|
135
|
+
* - `cannot-serve` makes the route of one replica fail while a flag file is there, for the hold. The
|
|
136
|
+
* flag also fails the readiness check of the replica (`flag` of the declaration). Before the
|
|
137
|
+
* fault, each client opens its connections again with SIGHUP, thus they spread over the replicas.
|
|
135
138
|
* - `none` injects nothing: a calibration measures the path itself.
|
|
136
139
|
*/
|
|
137
|
-
type TriggerKind = "pod-deletion" | "rolling-update" | "node-drain" | "scale-in" | "crash" | "liveness-restart" | "freeze-process" | "rst" | "blackhole" | "peer-gone-without-close" | "app-stall" | "rollout" | "cpu-throttle" | "authorization-policy" | "idle" | "ztunnel-restart" | "certificate-expiry";
|
|
140
|
+
type TriggerKind = "pod-deletion" | "rolling-update" | "node-drain" | "scale-in" | "crash" | "liveness-restart" | "freeze-process" | "rst" | "blackhole" | "peer-gone-without-close" | "app-stall" | "rollout" | "cpu-throttle" | "authorization-policy" | "idle" | "ztunnel-restart" | "certificate-expiry" | "cannot-serve";
|
|
138
141
|
/**
|
|
139
142
|
* A trigger is its kind and the settings of its fault. The parameter `A` is the form of an amount:
|
|
140
143
|
* a quantity in the format `/2`, a number in the format `/1`.
|
|
@@ -227,10 +230,17 @@ interface Declaration {
|
|
|
227
230
|
readonly tick: Quantity;
|
|
228
231
|
readonly threshold: Quantity;
|
|
229
232
|
} | null;
|
|
233
|
+
/**
|
|
234
|
+
* This flag is the lame-duck state of the HTTP edge. With true or no value, the edge sends
|
|
235
|
+
* `Connection: close` while the service is not ready, thus each caller opens a new connection.
|
|
236
|
+
* With false, the edge keeps each connection open, thus a caller learns only from the endpoints.
|
|
237
|
+
*/
|
|
238
|
+
readonly lameDuck?: boolean | undefined;
|
|
230
239
|
}
|
|
231
240
|
/**
|
|
232
241
|
* A workload is the clients: one pod on each node, each with requests to the ClusterIP. The HTTP client
|
|
233
|
-
* opens a new connection for each request. The gRPC client sends each
|
|
242
|
+
* opens a new connection for each request, or it keeps `connections` open. The gRPC client sends each
|
|
243
|
+
* call on its one channel.
|
|
234
244
|
*/
|
|
235
245
|
interface Workload {
|
|
236
246
|
/** This time is the interval between two requests of one client. The clients do not wait for an answer. */
|
|
@@ -240,6 +250,11 @@ interface Workload {
|
|
|
240
250
|
* gRPC has no deadline at the defaults of grpc-js, thus the client cancels it at this time.
|
|
241
251
|
*/
|
|
242
252
|
readonly timeout: Quantity;
|
|
253
|
+
/**
|
|
254
|
+
* This count is the keep-alive connections of each HTTP client. Each request goes on the next
|
|
255
|
+
* connection in turn. With no value, the client opens a new connection for each request.
|
|
256
|
+
*/
|
|
257
|
+
readonly connections?: number | undefined;
|
|
243
258
|
}
|
|
244
259
|
/**
|
|
245
260
|
* A band is a range of times after a reference event of the run. The format `/1` gives each end
|
|
@@ -1016,4 +1031,4 @@ declare const quantileOf: (sorted: readonly number[], p: number) => number;
|
|
|
1016
1031
|
declare const medianInterval: (sorted: readonly number[]) => [number, number];
|
|
1017
1032
|
//#endregion
|
|
1018
1033
|
export { updatesOf as $, Declaration as $t, TriggerV1 as A, scenario as An, rulesOf as At, RunCheck as B, ztunnelPodsOf as Bt, KindCellResult as C, NodeImage as Cn, outcomesOf as Ct, PredictionV1 as D, kindConfig as Dn, requestsOf as Dt, LoadSample as E, goDuration as En, recordsOf as Et, KIND_NOISE as F, slicesOf as Ft, judgeKind as G, PORT as Gt, checkRun as H, CLIENT as Ht, KindDecision as I, socketsOf as It, propagationOf as J, bandOf as Jt, observationAfter as K, REDIS as Kt, KindVerdict as L, stoppingOf as Lt, upgrade as M, signalsOf as Mt, upgradeCell as N, sliceDropOf as Nt, RunCheckV1 as O, kubeProxyPatch as On, restartOf as Ot, Deleted as P, sliceEmptyOf as Pt, unitOf as Q, Band as Qt, LAST_SLACK as R, transitionOf as Rt, KindCellRecordV1 as S, NODE_IMAGES as Sn, kernelCounts as St, KindVerdictV1 as T, cidrRange as Tn, podsOf as Tt, deletionsOf as U, HEALTH_PORT as Ut, RunFacts as V, ztunnelReplaced as Vt, factsOf as W, LOG_LABEL as Wt, referenceOf as X, secondsOf as Xt, propagationSource as Y, seconds as Yt, reusesReset as Z, showBand as Zt, ClusterManifest as _, Workload as _n, dropOf as _t, STAGES as a, MeshMode as an, RecordLine as at, FORMAT_V1 as b, KindScenario as bn, intakeOf as bt, readRecord as c, RedisDeclaration as cn, SliceLine as ct, calibrationOf as d, ResetReuse as dn, TunnelLine as dt, KindCell as en, Endpoint as et, cellsTable as f, Stack as fn, ZtunnelPodLine as ft, BandV1 as g, WindowPrediction as gn, deletionOf as gt, timeSpread as h, TriggerKind as hn, byNode as ht, quantileOf as i, MeshFlavor as in, PropagationSource as it, judge as j, scenarioProblems as jn, signalOf as jt, RunFactsV1 as k, nodeNames as kn, restartsAt as kt, Judged as l, Reference as ln, SocketLine as lt, predictionText as m, Trigger as mn, byClients as mt, medianInterval as n, KubeletProbe as nn, Line as nt, kindCellRecordSchema as o, PodSettings as on, Request as ot, medianText as p, Template as pn, backendsAt as pt, observationEnd as q, SERVER as qt, middle as r, Mesh as rn, PodLine as rt, kindCellRecordV1Schema as s, Prediction as sn, RulesLine as st, RELATIVE as t, KindRun as tn, HBONE_PORT as tt, TimeSpread as u, Replica as un, TCP_STATE as ut, EnvironmentManifest as v, KUBE_PROXY_MODES as vn, emptyOf as vt, KindCellV1 as w, cidrOverlap as wn, podsAt as wt, KindCellRecord as x, KubeProxyMode as xn, isTunnelState as xt, FORMAT as y, KindConfig as yn, failuresOf as yt, Propagated as z, tunnelsOf as zt };
|
|
1019
|
-
//# sourceMappingURL=judge-
|
|
1034
|
+
//# sourceMappingURL=judge-4bzoeGIb.d.ts.map
|
|
@@ -1162,7 +1162,8 @@ const TRIGGERS = [
|
|
|
1162
1162
|
"authorization-policy",
|
|
1163
1163
|
"idle",
|
|
1164
1164
|
"ztunnel-restart",
|
|
1165
|
-
"certificate-expiry"
|
|
1165
|
+
"certificate-expiry",
|
|
1166
|
+
"cannot-serve"
|
|
1166
1167
|
];
|
|
1167
1168
|
const MODES = [
|
|
1168
1169
|
"iptables",
|
|
@@ -1235,7 +1236,8 @@ const declaration = z.object({
|
|
|
1235
1236
|
watchdog: z.object({
|
|
1236
1237
|
tick: time,
|
|
1237
1238
|
threshold: time
|
|
1238
|
-
}).nullable()
|
|
1239
|
+
}).nullable(),
|
|
1240
|
+
lameDuck: z.boolean().optional()
|
|
1239
1241
|
});
|
|
1240
1242
|
const replica = z.object({
|
|
1241
1243
|
pod: z.string(),
|
|
@@ -1420,7 +1422,8 @@ const recordOf = (a, main) => {
|
|
|
1420
1422
|
declaration: declaration.nullable(),
|
|
1421
1423
|
workload: z.object({
|
|
1422
1424
|
every: time,
|
|
1423
|
-
timeout: time
|
|
1425
|
+
timeout: time,
|
|
1426
|
+
connections: count.optional()
|
|
1424
1427
|
}),
|
|
1425
1428
|
prediction,
|
|
1426
1429
|
calibrates: z.boolean(),
|
|
@@ -1520,4 +1523,4 @@ const readRecord = (data) => {
|
|
|
1520
1523
|
//#endregion
|
|
1521
1524
|
export { signalOf as $, medianInterval as A, emptyOf as B, propagationOf as C, unitOf as D, reusesReset as E, backendsAt as F, outcomesOf as G, intakeOf as H, byClients as I, recordsOf as J, podsAt as K, byNode as L, quantileOf as M, HBONE_PORT as N, updatesOf as O, TCP_STATE as P, rulesOf as Q, deletionOf as R, observationEnd as S, referenceOf as T, isTunnelState as U, failuresOf as V, kernelCounts as W, restartOf as X, requestsOf as Y, restartsAt as Z, checkRun as _, seconds as _t, calibrationOf as a, stoppingOf as at, judgeKind as b, predictionText as c, ztunnelPodsOf as ct, FORMAT_V1 as d, HEALTH_PORT as dt, signalsOf as et, judge as f, LOG_LABEL as ft, LAST_SLACK as g, bandOf as gt, KIND_NOISE as h, SERVER as ht, readRecord as i, socketsOf as it, middle as j, RELATIVE as k, timeSpread as l, ztunnelReplaced as lt, upgradeCell as m, REDIS as mt, kindCellRecordSchema as n, sliceEmptyOf as nt, cellsTable as o, transitionOf as ot, upgrade as p, PORT as pt, podsOf as q, kindCellRecordV1Schema as r, slicesOf as rt, medianText as s, tunnelsOf as st, STAGES as t, sliceDropOf as tt, FORMAT as u, CLIENT as ut, deletionsOf as v, secondsOf as vt, propagationSource as w, observationAfter as x, factsOf as y, showBand as yt, dropOf as z };
|
|
1522
1525
|
|
|
1523
|
-
//# sourceMappingURL=judge-
|
|
1526
|
+
//# sourceMappingURL=judge-DdeJ1qVd.js.map
|