@mark1russell7/kind 0.14.0 → 0.14.1
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 +6 -0
- package/build/index.d.ts +79 -6
- package/build/index.js +161 -26
- package/build/index.js.map +1 -1
- package/build/{judge-Cp3MzMk1.d.ts → judge-DLn2PLxb.d.ts} +13 -2
- package/build/{judge-C6XgY2Pk.js → judge-DjtNaAVO.js} +41 -7
- package/build/{judge-C6XgY2Pk.js.map → judge-DjtNaAVO.js.map} +1 -1
- package/build/judge.d.ts +1 -1
- package/build/judge.js +1 -1
- package/image/agent.mjs +15 -0
- package/image/npm-lock.json +22 -0
- package/image/package.json +1 -0
- package/package.json +3 -3
|
@@ -736,6 +736,12 @@ interface KindCell<A = Quantity> {
|
|
|
736
736
|
* send messages to one topic and look up its owner. Without it, the cell has no broker.
|
|
737
737
|
*/
|
|
738
738
|
readonly pulsar?: PulsarSettings | undefined;
|
|
739
|
+
/**
|
|
740
|
+
* This count is the CPUs, 1 or less, that a process outside the cluster keeps busy before each run
|
|
741
|
+
* (SYS-95). The load starts after the baseline of the environment. Thus this cell tests that the
|
|
742
|
+
* quiet gate refuses a loaded VM, and each of its runs is void when the gate holds.
|
|
743
|
+
*/
|
|
744
|
+
readonly plannedLoad?: number | undefined;
|
|
739
745
|
}
|
|
740
746
|
/** These are the settings of the broker of a cell (`KindCell.pulsar`). */
|
|
741
747
|
interface PulsarSettings {
|
|
@@ -1322,12 +1328,17 @@ declare const judgeKind: (cell: KindCell, runs: readonly KindRun[]) => KindVerdi
|
|
|
1322
1328
|
declare const FORMAT = "systems.kind-cell-record/2";
|
|
1323
1329
|
/** This format is the first format. Its bands, its medians and its times are numbers. */
|
|
1324
1330
|
declare const FORMAT_V1 = "systems.kind-cell-record/1";
|
|
1325
|
-
/**
|
|
1331
|
+
/**
|
|
1332
|
+
* A load sample is what the VM did in 4 s before a run: when (a stamp of the wall clock in
|
|
1333
|
+
* milliseconds), its idle share, and its busiest processes. A sample of the gate has `needed`, the
|
|
1334
|
+
* idle share of the gate at that time. A baseline sample has no `needed`.
|
|
1335
|
+
*/
|
|
1326
1336
|
interface LoadSample {
|
|
1327
1337
|
readonly t: number;
|
|
1328
1338
|
readonly idle: number;
|
|
1329
1339
|
readonly top: readonly string[];
|
|
1330
1340
|
readonly foreign: readonly string[];
|
|
1341
|
+
readonly needed?: number | undefined;
|
|
1331
1342
|
}
|
|
1332
1343
|
/** A cluster manifest is what a run records about its cluster: the versions, the images, the nodes and the mode as read back. */
|
|
1333
1344
|
interface ClusterManifest {
|
|
@@ -1572,4 +1583,4 @@ declare const judgeReconnects: (prediction: ReconnectsPrediction, run: {
|
|
|
1572
1583
|
}, noise: number) => Reconnects;
|
|
1573
1584
|
//#endregion
|
|
1574
1585
|
export { factsOf as $, DATAPLANES as $n, transitionOf as $t, KindCellResult as A, KubeletProbe as An, failuresOf as At, upgradeCell as B, ReconnectsPrediction as Bn, restartOf as Bt, BandV1 as C, Band as Cn, ZtunnelPodLine as Ct, FORMAT_V1 as D, Flap as Dn, deletionOf as Dt, FORMAT as E, EdgeProtocol as En, byNode as Et, RunCheckV1 as F, NonePrediction as Fn, periodOf as Ft, LAST_SLACK as G, Stack as Gn, signalsOf as Gt, KIND_NOISE as H, Reference as Hn, rulesOf as Ht, RunFactsV1 as I, PermittedWindow as In, podsAt as It, RunCheck as J, TriggerKind as Jn, sliceReadyAt as Jt, Propagated as K, Template as Kn, sliceDropOf as Kt, TriggerV1 as L, PodSettings as Ln, podsOf as Lt, KindVerdictV1 as M, Mesh as Mn, isTunnelState as Mt, LoadSample as N, MeshFlavor as Nn, kernelCounts as Nt, KindCellRecord as O, KindCell as On, dropOf as Ot, PredictionV1 as P, MeshMode as Pn, outcomesOf as Pt, deletionsOf as Q, Workload as Qn, stoppingOf as Qt, judge as R, Prediction as Rn, recordsOf as Rt, timeSpread as S, Backoff as Sn, TunnelLine as St, EnvironmentManifest as T, Declaration as Tn, byClients as Tt, KindDecision as U, Replica as Un, sessionsAt as Ut, Deleted as V, RedisDeclaration as Vn, restartsAt as Vt, KindVerdict as W, ResetReuse as Wn, signalOf as Wt, checkRun as X, VipSettings as Xn, slicesOf as Xt, RunFacts as Y, VipAnnouncerName as Yn, sliceReadyOf as Yt, cyclesOf as Z, WindowPrediction as Zn, socketsOf as Zt, TimeSpread as _, requestBand as _n, scenario as _r, RulesLine as _t, judgeReconnects as a, LB_CLASS as an, NODE_IMAGES as ar, referenceOf as at, medianText as b, showBand as bn, SocketLine as bt, RELATIVE as c, PORT as cn, ZONE_LABEL as cr, updatesOf as ct, quantileOf as d, VIP_ANNOTATION as dn, cidrRange as dr, Line as dt, tunnelsOf as en, Dataplane as er, judgeKind as et, STAGES as f, CountBand as fn, goDuration as fr, Period as ft, Judged as g, overshootBand as gn, nodeNames as gr, Request as gt, readRecord as h, drainBand as hn, kubeProxyPatch as hr, RecordLine as ht, Try as i, HEALTH_PORT as in, KubeProxyMode as ir, propagationSource as it, KindCellV1 as j, MemberlistSettings as jn, intakeOf as jt, KindCellRecordV1 as k, KindRun as kn, emptyOf as kt, medianInterval as l, REDIS as ln, ZONE_LOST as lr, Endpoint as lt, kindCellRecordV1Schema as m, bandOf as mn, kindConfig as mr, PropagationSource as mt, Return as n, ztunnelReplaced as nn, KindConfig as nr, observationEnd as nt, latestReturn as o, LOG_LABEL as on, NodeImage as or, reusesReset as ot, kindCellRecordSchema as p, backlogEnd as pn, isKubeProxyMode as pr, PodLine as pt, ReconnectsFacts as q, Trigger as qn, sliceEmptyOf as qt, Schedule as r, CLIENT as rn, KindScenario as rr, propagationOf as rt, triesOf as s, OUTSIDE as sn, ZONE_KEPT as sr, unitOf as st, Reconnects as t, ztunnelPodsOf as tn, KUBE_PROXY_MODES as tr, observationAfter as tt, middle as u, SERVER as un, cidrOverlap as ur, HBONE_PORT as ut, calibrationOf as v, seconds as vn, scenarioProblems as vr, Sessions as vt, ClusterManifest as w, Cycle as wn, backendsAt as wt, predictionText as x, BacklogTerm as xn, TCP_STATE as xt, cellsTable as y, secondsOf as yn, zoneOf as yr, SliceLine as yt, upgrade as z, PulsarSettings as zn, requestsOf as zt };
|
|
1575
|
-
//# sourceMappingURL=judge-
|
|
1586
|
+
//# sourceMappingURL=judge-DLn2PLxb.d.ts.map
|
|
@@ -1985,6 +1985,32 @@ const run = z.object({
|
|
|
1985
1985
|
dropped: z.record(z.string(), count),
|
|
1986
1986
|
notes: z.array(z.string()).optional()
|
|
1987
1987
|
});
|
|
1988
|
+
/**
|
|
1989
|
+
* This schema accepts the substrate of a record (`Substrate` of the harness). The entry ./judge loads
|
|
1990
|
+
* no module of the harness, thus the schema is here. Its test holds it to the layers and the clouds of
|
|
1991
|
+
* the harness.
|
|
1992
|
+
*/
|
|
1993
|
+
const substrateSchema = z.object({
|
|
1994
|
+
layer: z.enum([
|
|
1995
|
+
"E0",
|
|
1996
|
+
"E1",
|
|
1997
|
+
"E2",
|
|
1998
|
+
"E3",
|
|
1999
|
+
"E4",
|
|
2000
|
+
"E5",
|
|
2001
|
+
"E6"
|
|
2002
|
+
]),
|
|
2003
|
+
cloud: z.enum([
|
|
2004
|
+
"azure",
|
|
2005
|
+
"aws",
|
|
2006
|
+
"unknown"
|
|
2007
|
+
]),
|
|
2008
|
+
vendor: z.string().nullable(),
|
|
2009
|
+
kernel: z.string().nullable(),
|
|
2010
|
+
hz: z.number().nullable(),
|
|
2011
|
+
kvm: z.boolean().nullable(),
|
|
2012
|
+
image: z.string().nullable()
|
|
2013
|
+
});
|
|
1988
2014
|
const manifest = z.object({
|
|
1989
2015
|
env: count,
|
|
1990
2016
|
scenario: z.object({
|
|
@@ -1999,10 +2025,12 @@ const manifest = z.object({
|
|
|
1999
2025
|
}).nullable(),
|
|
2000
2026
|
cni: z.enum(["kindnet", "cilium"]),
|
|
2001
2027
|
podSubnet: z.string(),
|
|
2002
|
-
serviceSubnet: z.string()
|
|
2003
|
-
|
|
2028
|
+
serviceSubnet: z.string(),
|
|
2029
|
+
zoned: z.boolean().optional()
|
|
2030
|
+
}).transform(({ dataplane, zoned, ...rest }) => ({
|
|
2004
2031
|
...rest,
|
|
2005
|
-
dataplane: dataplane ?? rest.kubeProxy?.mode ?? "cilium"
|
|
2032
|
+
dataplane: dataplane ?? rest.kubeProxy?.mode ?? "cilium",
|
|
2033
|
+
...zoned === true ? { zoned } : {}
|
|
2006
2034
|
})),
|
|
2007
2035
|
cluster: z.object({
|
|
2008
2036
|
kind: z.string(),
|
|
@@ -2018,13 +2046,18 @@ const manifest = z.object({
|
|
|
2018
2046
|
os: z.string()
|
|
2019
2047
|
}))
|
|
2020
2048
|
}),
|
|
2021
|
-
images: z.record(z.string(), z.string())
|
|
2049
|
+
images: z.record(z.string(), z.string()),
|
|
2050
|
+
substrate: substrateSchema.optional()
|
|
2051
|
+
}).transform(({ substrate, ...rest }) => substrate === void 0 ? rest : {
|
|
2052
|
+
...rest,
|
|
2053
|
+
substrate
|
|
2022
2054
|
});
|
|
2023
2055
|
const load = z.object({
|
|
2024
2056
|
t: z.number(),
|
|
2025
2057
|
idle: z.number(),
|
|
2026
2058
|
top: z.array(z.string()),
|
|
2027
|
-
foreign: z.array(z.string())
|
|
2059
|
+
foreign: z.array(z.string()),
|
|
2060
|
+
needed: z.number().optional()
|
|
2028
2061
|
});
|
|
2029
2062
|
/**
|
|
2030
2063
|
* This function gives the schema of a record whose amounts have one form. The schema `a` is for a
|
|
@@ -2213,7 +2246,8 @@ const recordOf = (a, main) => {
|
|
|
2213
2246
|
pulsar: z.object({
|
|
2214
2247
|
clients: count,
|
|
2215
2248
|
probe: time
|
|
2216
|
-
}).optional()
|
|
2249
|
+
}).optional(),
|
|
2250
|
+
plannedLoad: z.number().optional()
|
|
2217
2251
|
});
|
|
2218
2252
|
const facts = z.object({
|
|
2219
2253
|
failures: count,
|
|
@@ -2342,4 +2376,4 @@ const readRecord = (data) => {
|
|
|
2342
2376
|
//#endregion
|
|
2343
2377
|
export { rulesOf as $, judgeReconnects as A, overshootBand as At, emptyOf as B, observationEnd as C, PORT as Ct, reusesReset as D, backlogEnd as Dt, referenceOf as E, VIP_ANNOTATION as Et, backendsAt as F, outcomesOf as G, intakeOf as H, byClients as I, podsOf as J, periodOf as K, byNode as L, triesOf as M, seconds as Mt, HBONE_PORT as N, secondsOf as Nt, unitOf as O, bandOf as Ot, TCP_STATE as P, showBand as Pt, restartsAt as Q, deletionOf as R, observationAfter as S, OUTSIDE as St, propagationSource as T, SERVER as Tt, isTunnelState as U, failuresOf as V, kernelCounts as W, requestsOf as X, recordsOf as Y, restartOf as Z, checkRun as _, quantileOf as _t, calibrationOf as a, sliceReadyAt as at, factsOf as b, LB_CLASS as bt, predictionText as c, socketsOf as ct, FORMAT_V1 as d, tunnelsOf as dt, sessionsAt as et, judge as f, ztunnelPodsOf as ft, LAST_SLACK as g, middle as gt, KIND_NOISE as h, medianInterval$1 as ht, readRecord as i, sliceEmptyOf as it, latestReturn as j, requestBand as jt, updatesOf as k, drainBand as kt, timeSpread as l, stoppingOf as lt, upgradeCell as m, RELATIVE as mt, kindCellRecordSchema as n, signalsOf as nt, cellsTable as o, sliceReadyOf as ot, upgrade as p, ztunnelReplaced as pt, podsAt as q, kindCellRecordV1Schema as r, sliceDropOf as rt, medianText as s, slicesOf as st, STAGES as t, signalOf as tt, FORMAT as u, transitionOf as ut, cyclesOf as v, CLIENT as vt, propagationOf as w, REDIS as wt, judgeKind as x, LOG_LABEL as xt, deletionsOf as y, HEALTH_PORT as yt, dropOf as z };
|
|
2344
2378
|
|
|
2345
|
-
//# sourceMappingURL=judge-
|
|
2379
|
+
//# sourceMappingURL=judge-DjtNaAVO.js.map
|