@mark1russell7/kind 0.2.0 → 0.2.2
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 +12 -2
- package/build/index.d.ts +5 -4
- package/build/index.js +38 -10
- package/build/index.js.map +1 -1
- package/build/{judge-D5SBTJ-V.d.ts → judge-Dwa6MqP4.d.ts} +35 -8
- package/build/{judge-DlmmZHcI.js → judge-reWPMVr4.js} +76 -35
- package/build/judge-reWPMVr4.js.map +1 -0
- package/build/judge.d.ts +2 -2
- package/build/judge.js +1 -1
- package/package.json +2 -2
- package/build/judge-DlmmZHcI.js.map +0 -1
package/README.md
CHANGED
|
@@ -54,7 +54,7 @@ The unit of the main value of a run comes from the prediction of its cell:
|
|
|
54
54
|
|
|
55
55
|
These values stay numbers in the two formats:
|
|
56
56
|
|
|
57
|
-
- **A stamp** is a reading of CLOCK_MONOTONIC in milliseconds, a point on a clock, not an amount. The stamps are `start`, `end` and `acts` of a run, `t` of each line, and `first`, `last` and `
|
|
57
|
+
- **A stamp** is a reading of CLOCK_MONOTONIC in milliseconds, a point on a clock, not an amount. The stamps are `start`, `end` and `acts` of a run, `t` of each line, and `first`, `last`, `deletion` and `deletions` of the facts.
|
|
58
58
|
- **A line** stays as its source wrote it. The image writes it, and the record keeps it.
|
|
59
59
|
- **A count** or **a share**: the replicas, the thresholds, the runs and the counts of a verdict. The jitter of a poll and the idle share of a load sample are shares.
|
|
60
60
|
|
|
@@ -99,7 +99,8 @@ From 0.2.0, a cell names its stack (`stack`): its server and its clients. A cell
|
|
|
99
99
|
- The lines of grpc-go name their pod and stamp in milliseconds (`--name`, `--clock ms`). Its line `stopping` gives the intake and the SIGTERM of a pod (`stoppingOf`): then GracefulStop closes the listener and sends GOAWAY.
|
|
100
100
|
- The clients start after the server is ready. Each failed connect of a channel makes the backoff of grpc-js longer, up to 120 s.
|
|
101
101
|
- The target of a run is the replica that answers the most clients. A channel stays on its replica, and the channels go to the replica that stays after a run. Thus a target by name has no client in most runs.
|
|
102
|
-
- The cell has no declaration (`declaration` is null), thus `describeCell` refuses it.
|
|
102
|
+
- The cell has no declaration (`declaration` is null), thus `describeCell` refuses it.
|
|
103
|
+
- From 0.2.2, the trigger `liveness-restart` has a seam in grpc-go. The server gets `--fail-file /tmp/lab-fail`, and the liveness probe is the gRPC probe of the service `liveness` (`probeOf` with a `service`). While the flag file exists, that check answers NOT_SERVING. The readiness probe stays the check of `""`, thus the endpoint stays ready until the kubelet stops the container.
|
|
103
104
|
|
|
104
105
|
A declaration that can be null changes the type `KindCell`. That is a breaking change before 1.0.0, thus the version is 0.2.0.
|
|
105
106
|
|
|
@@ -154,6 +155,15 @@ The plan's `event:clock-jump` has no trigger. A step of CLOCK_REALTIME in the VM
|
|
|
154
155
|
|
|
155
156
|
From 0.1.8, a run can agree with the law but be past its calibrated band (D-EXTEND). A request failed after the window, but before the rules of its node dropped the target. The check of that run tells it (`tail`), and its cell is `extend`. Such a cell does not hold. A request after the drop is still late, thus its run fails the cell.
|
|
156
157
|
|
|
158
|
+
From 0.2.1, a window can be one window for each deleted replica (`each`). A rolling update deletes each old replica in turn, and a client of gRPC can see each of these deletions.
|
|
159
|
+
|
|
160
|
+
- The judge makes one window for each replica of the run (`replicas`) with a deletion after the start of the run. Each window counts from the intake and the deletion of its own replica.
|
|
161
|
+
- A request is late only when it is outside each of these windows. A request after a window and before the rules of its node dropped the replica of that window is a `tail`.
|
|
162
|
+
- The facts of each run give these replicas, with the stamps of their intake and their deletion (`deletions`).
|
|
163
|
+
- `predictionText` adds `of each deleted replica`. A window without `each` stays the window of the target.
|
|
164
|
+
|
|
165
|
+
A preStop sleep that is longer than the grace is a command in the container (`sh -c "sleep 60"`). The API server refuses a sleep action that is longer than the grace.
|
|
166
|
+
|
|
157
167
|
## Tests
|
|
158
168
|
|
|
159
169
|
`pnpm --filter @mark1russell7/kind test` starts the tests of the configuration, the tools, the parser of the rules and the fault mapping. It also starts the tests of the predictions, the verdict and the judge of the real records. They do not need Docker.
|
package/build/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { $ as
|
|
1
|
+
import { $ as RecordLine, $t as KindConfig, A as TriggerV1, At as REDIS, B as RunCheck, Bt as KubeletProbe, C as KindCellResult, Ct as slicesOf, D as PredictionV1, Dt as HEALTH_PORT, E as LoadSample, Et as CLIENT, F as KIND_NOISE, Ft as showBand, G as judgeKind, Gt as Replica, H as checkRun, Ht as Prediction, I as KindDecision, It as Band, J as reusesReset, Jt as Template, K as propagationOf, Kt as ResetReuse, L as KindVerdict, Lt as Declaration, M as upgrade, Mt as bandOf, N as upgradeCell, Nt as seconds, O as RunCheckV1, Ot as LOG_LABEL, P as Deleted, Pt as secondsOf, Q as PodLine, Qt as KUBE_PROXY_MODES, R as LAST_SLACK, Rt as KindCell, S as KindCellRecordV1, St as sliceEmptyOf, T as KindVerdictV1, Tt as transitionOf, U as deletionsOf, Ut as RedisDeclaration, V as RunFacts, Vt as PodSettings, W as factsOf, Wt as Reference, X as Endpoint, Xt as TriggerKind, Y as unitOf, Yt as Trigger, Z as Line, Zt as Workload, _ as ClusterManifest, _t as restartsAt, a as STAGES, an as cidrRange, at as byNode, b as FORMAT_V1, bt as signalsOf, c as readRecord, cn as kubeProxyPatch, ct as emptyOf, d as calibrationOf, dn as scenarioProblems, dt as kernelCounts, en as KindScenario, et as Request, f as cellsTable, ft as outcomesOf, g as BandV1, gt as requestsOf, h as timeSpread, ht as recordsOf, i as quantileOf, in as cidrOverlap, it as byClients, j as judge, jt as SERVER, k as RunFactsV1, kt as PORT, l as Judged, ln as nodeNames, lt as failuresOf, m as predictionText, mt as podsOf, n as medianInterval, nn as NODE_IMAGES, nt as SliceLine, o as kindCellRecordSchema, on as goDuration, ot as deletionOf, p as medianText, pt as podsAt, q as referenceOf, qt as Stack, r as middle, rn as NodeImage, rt as backendsAt, s as kindCellRecordV1Schema, sn as kindConfig, st as dropOf, t as RELATIVE, tn as KubeProxyMode, tt as RulesLine, u as TimeSpread, un as scenario, ut as intakeOf, v as EnvironmentManifest, vt as rulesOf, w as KindCellV1, wt as stoppingOf, x as KindCellRecord, xt as sliceDropOf, y as FORMAT, yt as signalOf, z as Propagated, zt as KindRun } from "./judge-Dwa6MqP4.js";
|
|
2
2
|
import { Quantity } from "@mark1russell7/quantity";
|
|
3
3
|
import { CheckFn, Finding, HealthServer, Poll, Rule, Scenario, ServiceBuilder, ServiceDescription, Stage, Timing, TransportImpl, Verdict } from "@mark1russell7/service";
|
|
4
4
|
import { RedisClient } from "@mark1russell7/service/redis";
|
|
@@ -221,9 +221,10 @@ export declare const namespaceOf: (cell: Pick<KindCell, "name">) => string;
|
|
|
221
221
|
* This function gives a probe of the pod, with each field of the cell. The probe of the service is an
|
|
222
222
|
* HTTP GET of its health server (`path`). The probe of grpc-go (`path` null) is the gRPC probe of the
|
|
223
223
|
* kubelet. It is a Check of the service "" on the port of the server, and the answer is SERVING until
|
|
224
|
-
* GracefulStop.
|
|
224
|
+
* GracefulStop. A gRPC probe can name another service (`service`): the field `service` of `GRPCAction`
|
|
225
|
+
* (`staging/src/k8s.io/api/core/v1/types.go` at v1.37.0, line 2892).
|
|
225
226
|
*/
|
|
226
|
-
export declare const probeOf: (path: string | null, probe: KubeletProbe) => Record<string, unknown>;
|
|
227
|
+
export declare const probeOf: (path: string | null, probe: KubeletProbe, service?: string) => Record<string, unknown>;
|
|
227
228
|
/** These are the objects of Redis: one replica behind a Service, with no persistence. */
|
|
228
229
|
export declare const redisObjects: (namespace: string, image: string) => unknown[];
|
|
229
230
|
/**
|
|
@@ -415,5 +416,5 @@ export declare const toolPath: (tool: Tool, key?: string, cache?: string) => str
|
|
|
415
416
|
*/
|
|
416
417
|
export declare const ensureTool: (tool: Tool, key?: string, cache?: string) => Promise<string>;
|
|
417
418
|
//#endregion
|
|
418
|
-
export { type Band, type BandV1, CLIENT, type Cluster, type ClusterManifest, type Credentials, type Declaration, type DeletionWindow, Endpoint, type EnvironmentManifest, FORMAT, FORMAT_V1, type FaultPlan, HEALTH_PORT, type Judged, KIND_NOISE, KUBE_PROXY_MODES, type KindCell, type KindCellRecord, type KindCellRecordV1, type KindCellResult, type KindCellV1, type KindConfig, type KindDecision, type KindLab, type KindRun, type KindScenario, type KindVerdict, type KindVerdictV1, type KubeProxyMode, type KubeletProbe, LAST_SLACK, LOG_LABEL, Line, type LoadSample, NODE_IMAGES, type NodeImage, PORT, type Parts, PodLine, type PodSettings, type Prediction, type PredictionV1, type Propagated, type Propagation, REDIS, RELATIVE, RecordLine, type RedisDeclaration, type Reference, type Replica, Request, type ResetReuse, RulesLine, type RunCheck, type RunCheckV1, type RunFacts, type RunFactsV1, type RunOptions, SERVER, STAGES, type ServiceRule, SliceLine, type Stack, type Stamp, type Step, type Target, type Template, type TimeSpread, type Tool, type Trigger, type TriggerKind, type TriggerV1, type Verdicts, type Workload, backendsAt, bandOf, byClients, byNode, calibrationOf, cellsTable, checkRun, cidrOverlap, cidrRange, deletionOf, dropOf, emptyOf, factsOf, failuresOf, goDuration, intakeOf, judge, judgeKind, kernelCounts, kindCellRecordSchema, kindCellRecordV1Schema, kindConfig, kubeProxyPatch, medianInterval, medianText, middle, nodeNames, outcomesOf, podsAt, podsOf, predictionText, propagationOf, quantileOf, readRecord, recordsOf, referenceOf, requestsOf, restartsAt, reusesReset, rulesOf, scenario, scenarioProblems, seconds, secondsOf, showBand, signalOf, signalsOf, sliceDropOf, sliceEmptyOf, slicesOf, stoppingOf, timeSpread, transitionOf, unitOf, upgrade, upgradeCell };
|
|
419
|
+
export { type Band, type BandV1, CLIENT, type Cluster, type ClusterManifest, type Credentials, type Declaration, type Deleted, type DeletionWindow, Endpoint, type EnvironmentManifest, FORMAT, FORMAT_V1, type FaultPlan, HEALTH_PORT, type Judged, KIND_NOISE, KUBE_PROXY_MODES, type KindCell, type KindCellRecord, type KindCellRecordV1, type KindCellResult, type KindCellV1, type KindConfig, type KindDecision, type KindLab, type KindRun, type KindScenario, type KindVerdict, type KindVerdictV1, type KubeProxyMode, type KubeletProbe, LAST_SLACK, LOG_LABEL, Line, type LoadSample, NODE_IMAGES, type NodeImage, PORT, type Parts, PodLine, type PodSettings, type Prediction, type PredictionV1, type Propagated, type Propagation, REDIS, RELATIVE, RecordLine, type RedisDeclaration, type Reference, type Replica, Request, type ResetReuse, RulesLine, type RunCheck, type RunCheckV1, type RunFacts, type RunFactsV1, type RunOptions, SERVER, STAGES, type ServiceRule, SliceLine, type Stack, type Stamp, type Step, type Target, type Template, type TimeSpread, type Tool, type Trigger, type TriggerKind, type TriggerV1, type Verdicts, type Workload, backendsAt, bandOf, byClients, byNode, calibrationOf, cellsTable, checkRun, cidrOverlap, cidrRange, deletionOf, deletionsOf, dropOf, emptyOf, factsOf, failuresOf, goDuration, intakeOf, judge, judgeKind, kernelCounts, kindCellRecordSchema, kindCellRecordV1Schema, kindConfig, kubeProxyPatch, medianInterval, medianText, middle, nodeNames, outcomesOf, podsAt, podsOf, predictionText, propagationOf, quantileOf, readRecord, recordsOf, referenceOf, requestsOf, restartsAt, reusesReset, rulesOf, scenario, scenarioProblems, seconds, secondsOf, showBand, signalOf, signalsOf, sliceDropOf, sliceEmptyOf, slicesOf, stoppingOf, timeSpread, transitionOf, unitOf, upgrade, upgradeCell };
|
|
419
420
|
//# sourceMappingURL=index.d.ts.map
|
package/build/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { $ as
|
|
1
|
+
import { $ as HEALTH_PORT, A as byClients, B as podsOf, C as reusesReset, D as middle, E as medianInterval, F as failuresOf, G as signalOf, H as requestsOf, I as intakeOf, J as sliceEmptyOf, K as signalsOf, L as kernelCounts, M as deletionOf, N as dropOf, O as quantileOf, P as emptyOf, Q as CLIENT, R as outcomesOf, S as referenceOf, T as RELATIVE, U as restartsAt, V as recordsOf, W as rulesOf, X as stoppingOf, Y as slicesOf, Z as transitionOf, _ as checkRun, a as calibrationOf, at as seconds, b as judgeKind, c as predictionText, d as FORMAT_V1, et as LOG_LABEL, f as judge, g as LAST_SLACK, h as KIND_NOISE, i as readRecord, it as bandOf, j as byNode, k as backendsAt, l as timeSpread, m as upgradeCell, n as kindCellRecordSchema, nt as REDIS, o as cellsTable, ot as secondsOf, p as upgrade, q as sliceDropOf, r as kindCellRecordV1Schema, rt as SERVER, s as medianText, st as showBand, t as STAGES, tt as PORT, u as FORMAT, v as deletionsOf, w as unitOf, x as propagationOf, y as factsOf, z as podsAt } from "./judge-reWPMVr4.js";
|
|
2
2
|
import { valueIn } from "@mark1russell7/quantity";
|
|
3
3
|
import { execFile, execFileSync } from "node:child_process";
|
|
4
4
|
import { chmodSync, copyFileSync, existsSync, mkdirSync, mkdtempSync, readFileSync, readdirSync, realpathSync, renameSync, rmSync, writeFileSync } from "node:fs";
|
|
@@ -1254,10 +1254,14 @@ const namespaceOf = (cell) => `lab-${createHash("sha256").update(cell.name).dige
|
|
|
1254
1254
|
* This function gives a probe of the pod, with each field of the cell. The probe of the service is an
|
|
1255
1255
|
* HTTP GET of its health server (`path`). The probe of grpc-go (`path` null) is the gRPC probe of the
|
|
1256
1256
|
* kubelet. It is a Check of the service "" on the port of the server, and the answer is SERVING until
|
|
1257
|
-
* GracefulStop.
|
|
1257
|
+
* GracefulStop. A gRPC probe can name another service (`service`): the field `service` of `GRPCAction`
|
|
1258
|
+
* (`staging/src/k8s.io/api/core/v1/types.go` at v1.37.0, line 2892).
|
|
1258
1259
|
*/
|
|
1259
|
-
const probeOf = (path, probe) => ({
|
|
1260
|
-
...path === null ? { grpc: { port: PORT }
|
|
1260
|
+
const probeOf = (path, probe, service) => ({
|
|
1261
|
+
...path === null ? { grpc: service === void 0 ? { port: PORT } : {
|
|
1262
|
+
port: PORT,
|
|
1263
|
+
service
|
|
1264
|
+
} } : { httpGet: {
|
|
1261
1265
|
path,
|
|
1262
1266
|
port: HEALTH_PORT
|
|
1263
1267
|
} },
|
|
@@ -1282,11 +1286,17 @@ const appEnv = (cell) => [{
|
|
|
1282
1286
|
declaration: cell.declaration
|
|
1283
1287
|
})
|
|
1284
1288
|
}, POD_ENV];
|
|
1289
|
+
/** This file is the flag of the trigger `liveness-restart`, in the root of the server process (`run.ts`, the step `flag`). */
|
|
1290
|
+
const FLAG_FILE = "/tmp/lab-fail";
|
|
1285
1291
|
/**
|
|
1286
1292
|
* This function gives the container of the server of a cell. The service runs `app.mjs` of the lab
|
|
1287
1293
|
* image with its declaration. The server grpc-go runs from the image of the harness. Its lines name
|
|
1288
1294
|
* the pod and stamp in milliseconds. Its replies name the pod in the header `x-pod`. Kubernetes
|
|
1289
1295
|
* expands `$(POD_NAME)` in the command.
|
|
1296
|
+
*
|
|
1297
|
+
* The seam of `liveness-restart` in grpc-go is its service `liveness`, which the flag file fails
|
|
1298
|
+
* (`--fail-file`). Thus for that trigger the liveness probe is a Check of `liveness`. The readiness
|
|
1299
|
+
* probe stays a Check of "", which the flag file does not fail.
|
|
1290
1300
|
*/
|
|
1291
1301
|
const serverContainer = (cell, version) => {
|
|
1292
1302
|
const env = {
|
|
@@ -1301,7 +1311,7 @@ const serverContainer = (cell, version) => {
|
|
|
1301
1311
|
readinessProbe: probeOf("/readiness", cell.pod.readiness),
|
|
1302
1312
|
livenessProbe: probeOf("/liveness", cell.pod.liveness)
|
|
1303
1313
|
};
|
|
1304
|
-
|
|
1314
|
+
const seam = cell.trigger.kind === "liveness-restart";
|
|
1305
1315
|
return {
|
|
1306
1316
|
command: [
|
|
1307
1317
|
"grpc-go-server",
|
|
@@ -1310,13 +1320,14 @@ const serverContainer = (cell, version) => {
|
|
|
1310
1320
|
"--name",
|
|
1311
1321
|
"$(POD_NAME)",
|
|
1312
1322
|
"--clock",
|
|
1313
|
-
"ms"
|
|
1323
|
+
"ms",
|
|
1324
|
+
...seam ? ["--fail-file", FLAG_FILE] : []
|
|
1314
1325
|
],
|
|
1315
1326
|
env: [POD_ENV, env],
|
|
1316
1327
|
ports: [{ containerPort: PORT }],
|
|
1317
1328
|
...cell.pod.startup === null ? {} : { startupProbe: probeOf(null, cell.pod.startup) },
|
|
1318
1329
|
readinessProbe: probeOf(null, cell.pod.readiness),
|
|
1319
|
-
livenessProbe: probeOf(null, cell.pod.liveness)
|
|
1330
|
+
livenessProbe: seam ? probeOf(null, cell.pod.liveness, "liveness") : probeOf(null, cell.pod.liveness)
|
|
1320
1331
|
};
|
|
1321
1332
|
};
|
|
1322
1333
|
/** These are the objects of Redis: one replica behind a Service, with no persistence. */
|
|
@@ -1374,11 +1385,28 @@ const redisObjects = (namespace, image) => [{
|
|
|
1374
1385
|
}
|
|
1375
1386
|
}];
|
|
1376
1387
|
/**
|
|
1388
|
+
* This function gives the preStop hook of a sleep, or nothing for no sleep. The hook is the native
|
|
1389
|
+
* sleep action of the kubelet. The API server refuses a sleep action that is longer than the grace
|
|
1390
|
+
* (`validateSleepAction`, `pkg/apis/core/validation/validation.go` at v1.37.0, line 3483). Thus a
|
|
1391
|
+
* longer sleep is a command in the container, `sleep` from `/bin/sh`, as public manifests write it.
|
|
1392
|
+
* The kubelet starts that command with no timeout (`pkg/kubelet/lifecycle/handlers.go`, line 81).
|
|
1393
|
+
*/
|
|
1394
|
+
const preStopOf = (preStop, grace) => {
|
|
1395
|
+
if (preStop === 0) return {};
|
|
1396
|
+
if (preStop <= grace) return { lifecycle: { preStop: { sleep: { seconds: preStop } } } };
|
|
1397
|
+
return { lifecycle: { preStop: { exec: { command: [
|
|
1398
|
+
"/bin/sh",
|
|
1399
|
+
"-c",
|
|
1400
|
+
`sleep ${preStop}`
|
|
1401
|
+
] } } } };
|
|
1402
|
+
};
|
|
1403
|
+
/**
|
|
1377
1404
|
* These are the objects of the server: a Service of type ClusterIP, and the Deployment with the
|
|
1378
1405
|
* settings of the cell. The image is the lab image for the service, or the image of grpc-go.
|
|
1379
1406
|
*/
|
|
1380
1407
|
const serverObjects = (cell, namespace, image, version = 1) => {
|
|
1381
1408
|
const preStop = whole(cell.pod.preStop, "the preStop sleep");
|
|
1409
|
+
const grace = whole(cell.pod.grace, "the grace period");
|
|
1382
1410
|
return [{
|
|
1383
1411
|
apiVersion: "v1",
|
|
1384
1412
|
kind: "Service",
|
|
@@ -1420,7 +1448,7 @@ const serverObjects = (cell, namespace, image, version = 1) => {
|
|
|
1420
1448
|
"lab.systems/version": String(version)
|
|
1421
1449
|
} },
|
|
1422
1450
|
spec: {
|
|
1423
|
-
terminationGracePeriodSeconds:
|
|
1451
|
+
terminationGracePeriodSeconds: grace,
|
|
1424
1452
|
enableServiceLinks: true,
|
|
1425
1453
|
topologySpreadConstraints: [{
|
|
1426
1454
|
maxSkew: 1,
|
|
@@ -1433,7 +1461,7 @@ const serverObjects = (cell, namespace, image, version = 1) => {
|
|
|
1433
1461
|
image,
|
|
1434
1462
|
imagePullPolicy: "Never",
|
|
1435
1463
|
...serverContainer(cell, version),
|
|
1436
|
-
...preStop
|
|
1464
|
+
...preStopOf(preStop, grace)
|
|
1437
1465
|
}]
|
|
1438
1466
|
}
|
|
1439
1467
|
}
|
|
@@ -2457,6 +2485,6 @@ const shardOf = (cells, index, count) => {
|
|
|
2457
2485
|
return out;
|
|
2458
2486
|
};
|
|
2459
2487
|
//#endregion
|
|
2460
|
-
export { CLIENT, CONTROLLER, DOCUMENTED, DRAIN_RULES, FLAG_CHECK, FORMAT, FORMAT_V1, HEALTH_PORT, KEPT_KERNEL, KIND, KIND_NOISE, KUBECTL, KUBE_PROXY_MODES, LAST_SLACK, LOG_LABEL, NODE_IMAGES, O04, O09, O10, O16, PORT, REDIS, REDIS_IMAGE, RELATIVE, ROUTE, RULES_EVERY, SERVER, STAGES, WATCHDOG, backendsAt, backendsOf, bandOf, byClients, byNode, cacheFolder, calibrationOf, capOf, cellsTable, checkRun, cidrOverlap, cidrRange, clientObjects, compose, createCluster, deletes, deletionOf, deletionWindow, describeCell, dropOf, emptyOf, ensureTool, estimatedTime, factsOf, failuresOf, goDuration, intakeAfter, intakeOf, judge, judgeKind, kernelCounts, kindCellRecordSchema, kindCellRecordV1Schema, kindConfig, kubeProxyPatch, kubeletBand, labImage, latchBand, lintCell, localPin, medianInterval, medianText, middle, namespaceOf, nodeNames, openKindLab, outcomesOf, pausedWindow, planOf, platformKey, podsAt, podsOf, predictionText, probeOf, propagationOf, quantileOf, readRecord, recordsOf, redisObjects, referenceOf, removalBand, requestsOf, restartBand, restartsAt, reusesReset, rulesOf, runKindCells, scenario, scenarioOf, scenarioProblems, seconds, secondsOf, serverObjects, sha256, shardOf, showBand, signalOf, signalsOf, sliceDropOf, sliceEmptyOf, slicesOf, stackOf, stageLabImage, stallRemovalBand, stoppingOf, timeSpread, toolPath, transitionOf, unitOf, upgrade, upgradeCell, verdictsOf, writeResult };
|
|
2488
|
+
export { CLIENT, CONTROLLER, DOCUMENTED, DRAIN_RULES, FLAG_CHECK, FORMAT, FORMAT_V1, HEALTH_PORT, KEPT_KERNEL, KIND, KIND_NOISE, KUBECTL, KUBE_PROXY_MODES, LAST_SLACK, LOG_LABEL, NODE_IMAGES, O04, O09, O10, O16, PORT, REDIS, REDIS_IMAGE, RELATIVE, ROUTE, RULES_EVERY, SERVER, STAGES, WATCHDOG, backendsAt, backendsOf, bandOf, byClients, byNode, cacheFolder, calibrationOf, capOf, cellsTable, checkRun, cidrOverlap, cidrRange, clientObjects, compose, createCluster, deletes, deletionOf, deletionWindow, deletionsOf, describeCell, dropOf, emptyOf, ensureTool, estimatedTime, factsOf, failuresOf, goDuration, intakeAfter, intakeOf, judge, judgeKind, kernelCounts, kindCellRecordSchema, kindCellRecordV1Schema, kindConfig, kubeProxyPatch, kubeletBand, labImage, latchBand, lintCell, localPin, medianInterval, medianText, middle, namespaceOf, nodeNames, openKindLab, outcomesOf, pausedWindow, planOf, platformKey, podsAt, podsOf, predictionText, probeOf, propagationOf, quantileOf, readRecord, recordsOf, redisObjects, referenceOf, removalBand, requestsOf, restartBand, restartsAt, reusesReset, rulesOf, runKindCells, scenario, scenarioOf, scenarioProblems, seconds, secondsOf, serverObjects, sha256, shardOf, showBand, signalOf, signalsOf, sliceDropOf, sliceEmptyOf, slicesOf, stackOf, stageLabImage, stallRemovalBand, stoppingOf, timeSpread, toolPath, transitionOf, unitOf, upgrade, upgradeCell, verdictsOf, writeResult };
|
|
2461
2489
|
|
|
2462
2490
|
//# sourceMappingURL=index.js.map
|