@mark1russell7/kind 0.13.0 → 0.13.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/build/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { $ as unitOf, $n as scenario, $t as REDIS, A as TriggerV1, An as Template, At as recordsOf, B as RunCheck, Bn as KubeProxyMode, Bt as sliceReadyAt, C as KindCellResult, Cn as PodSettings, Ct as intakeOf, D as PredictionV1, Dn as Replica, Dt as periodOf, E as LoadSample, En as Reference, Et as outcomesOf, F as KIND_NOISE, Fn as DATAPLANES, Ft as sessionsAt, G as factsOf, Gn as ZONE_LOST, Gt as transitionOf, H as checkRun, Hn as NodeImage, Ht as slicesOf, I as KindDecision, In as Dataplane, It as signalOf, J as observationEnd, Jn as goDuration, Jt as ztunnelReplaced, K as judgeKind, Kn as cidrOverlap, Kt as tunnelsOf, L as KindVerdict, Ln as KUBE_PROXY_MODES, Lt as signalsOf, M as upgrade, Mn as TriggerKind, Mt as restartOf, N as upgradeCell, Nn as WindowPrediction, Nt as restartsAt, O as RunCheckV1, On as ResetReuse, Ot as podsAt, P as Deleted, Pn as Workload, Pt as rulesOf, Q as reusesReset, Qn as nodeNames, Qt as PORT, R as LAST_SLACK, Rn as KindConfig, Rt as sliceDropOf, S as KindCellRecordV1, Sn as NonePrediction, St as failuresOf, T as KindVerdictV1, Tn as RedisDeclaration, Tt as kernelCounts, U as cyclesOf, Un as ZONE_KEPT, Ut as socketsOf, V as RunFacts, Vn as NODE_IMAGES, Vt as sliceReadyOf, W as deletionsOf, Wn as ZONE_LABEL, Wt as stoppingOf, X as propagationSource, Xn as kindConfig, Xt as HEALTH_PORT, Y as propagationOf, Yn as isKubeProxyMode, Yt as CLIENT, Z as referenceOf, Zn as kubeProxyPatch, Zt as LOG_LABEL, _ as ClusterManifest, _n as KindRun, _t as byClients, a as STAGES, an as overshootBand, at as PodLine, b as FORMAT_V1, bn as MeshFlavor, bt as dropOf, c as readRecord, cn as secondsOf, ct as Request, d as calibrationOf, dn as Band, dt as SliceLine, en as SERVER, er as scenarioProblems, et as updatesOf, f as cellsTable, fn as Cycle, ft as SocketLine, g as BandV1, gn as KindCell, gt as backendsAt, h as timeSpread, hn as Flap, ht as ZtunnelPodLine, i as quantileOf, in as drainBand, it as Period, j as judge, jn as Trigger, jt as requestsOf, k as RunFactsV1, kn as Stack, kt as podsOf, l as Judged, ln as showBand, lt as RulesLine, m as predictionText, mn as EdgeProtocol, mt as TunnelLine, n as medianInterval, nn as backlogEnd, nt as HBONE_PORT, o as kindCellRecordSchema, on as requestBand, ot as PropagationSource, p as medianText, pn as Declaration, pt as TCP_STATE, q as observationAfter, qn as cidrRange, qt as ztunnelPodsOf, r as middle, rn as bandOf, rt as Line, s as kindCellRecordV1Schema, sn as seconds, st as RecordLine, t as RELATIVE, tn as CountBand, tr as zoneOf, tt as Endpoint, u as TimeSpread, un as BacklogTerm, ut as Sessions, v as EnvironmentManifest, vn as KubeletProbe, vt as byNode, w as KindCellV1, wn as Prediction, wt as isTunnelState, x as KindCellRecord, xn as MeshMode, xt as emptyOf, y as FORMAT, yn as Mesh, yt as deletionOf, z as Propagated, zn as KindScenario, zt as sliceEmptyOf } from "./judge-B_wVAwjx.js";
1
+ import { $ as unitOf, $n as goDuration, $t as OUTSIDE, A as TriggerV1, An as Reference, At as recordsOf, B as RunCheck, Bn as DATAPLANES, Bt as sliceReadyAt, C as KindCellResult, Cn as MeshFlavor, Ct as intakeOf, D as PredictionV1, Dn as PodSettings, Dt as periodOf, E as LoadSample, En as PermittedWindow, Et as outcomesOf, F as KIND_NOISE, Fn as Trigger, Ft as sessionsAt, G as factsOf, Gn as KubeProxyMode, Gt as transitionOf, H as checkRun, Hn as KUBE_PROXY_MODES, Ht as slicesOf, I as KindDecision, In as TriggerKind, It as signalOf, J as observationEnd, Jn as ZONE_KEPT, Jt as ztunnelReplaced, K as judgeKind, Kn as NODE_IMAGES, Kt as tunnelsOf, L as KindVerdict, Ln as VipSettings, Lt as signalsOf, M as upgrade, Mn as ResetReuse, Mt as restartOf, N as upgradeCell, Nn as Stack, Nt as restartsAt, O as RunCheckV1, On as Prediction, Ot as podsAt, P as Deleted, Pn as Template, Pt as rulesOf, Q as reusesReset, Qn as cidrRange, Qt as LOG_LABEL, R as LAST_SLACK, Rn as WindowPrediction, Rt as sliceDropOf, S as KindCellRecordV1, Sn as Mesh, St as failuresOf, T as KindVerdictV1, Tn as NonePrediction, Tt as kernelCounts, U as cyclesOf, Un as KindConfig, Ut as socketsOf, V as RunFacts, Vn as Dataplane, Vt as sliceReadyOf, W as deletionsOf, Wn as KindScenario, Wt as stoppingOf, X as propagationSource, Xn as ZONE_LOST, Xt as HEALTH_PORT, Y as propagationOf, Yn as ZONE_LABEL, Yt as CLIENT, Z as referenceOf, Zn as cidrOverlap, Zt as LB_CLASS, _ as ClusterManifest, _n as EdgeProtocol, _t as byClients, a as STAGES, an as backlogEnd, ar as scenarioProblems, at as PodLine, b as FORMAT_V1, bn as KindRun, bt as dropOf, c as readRecord, cn as overshootBand, ct as Request, d as calibrationOf, dn as secondsOf, dt as SliceLine, en as PORT, er as isKubeProxyMode, et as updatesOf, f as cellsTable, fn as showBand, ft as SocketLine, g as BandV1, gn as Declaration, gt as backendsAt, h as timeSpread, hn as Cycle, ht as ZtunnelPodLine, i as quantileOf, in as CountBand, ir as scenario, it as Period, j as judge, jn as Replica, jt as requestsOf, k as RunFactsV1, kn as RedisDeclaration, kt as podsOf, l as Judged, ln as requestBand, lt as RulesLine, m as predictionText, mn as Band, mt as TunnelLine, n as medianInterval, nn as SERVER, nr as kubeProxyPatch, nt as HBONE_PORT, o as kindCellRecordSchema, on as bandOf, or as zoneOf, ot as PropagationSource, p as medianText, pn as BacklogTerm, pt as TCP_STATE, q as observationAfter, qn as NodeImage, qt as ztunnelPodsOf, r as middle, rn as VIP_ANNOTATION, rr as nodeNames, rt as Line, s as kindCellRecordV1Schema, sn as drainBand, st as RecordLine, t as RELATIVE, tn as REDIS, tr as kindConfig, tt as Endpoint, u as TimeSpread, un as seconds, ut as Sessions, v as EnvironmentManifest, vn as Flap, vt as byNode, w as KindCellV1, wn as MeshMode, wt as isTunnelState, x as KindCellRecord, xn as KubeletProbe, xt as emptyOf, y as FORMAT, yn as KindCell, yt as deletionOf, z as Propagated, zn as Workload, zt as sliceEmptyOf } from "./judge-DpdSgpjv.js";
2
2
  import { Quantity } from "@mark1russell7/quantity";
3
3
  import { CheckFn, Coupling, Finding, HealthServer, Poll, Scenario, ServiceBuilder, ServiceDescription, Stage, StopWay, Timing, TransportImpl, Verdict } from "@mark1russell7/service";
4
4
  import { BuildImage } from "@mark1russell7/harness";
@@ -212,8 +212,8 @@ export declare const hostsOf: (text: string, cluster: string) => ClusterHosts;
212
212
  * Each one acts in the network namespace of each replica, with each client pod as a peer. A REJECT
213
213
  * resets only the sender of the segment that it matches, thus the rule goes where the segments of
214
214
  * the clients arrive.
215
- * - `clients` is the process of each client pod. Only a signal and a sysctl take it: the gap of the
216
- * trigger `idle`, and a sysctl of the namespace of each client pod.
215
+ * - `clients` is the process of each client pod. Only a signal, a sysctl and a drop of DNS take it.
216
+ * They are the gap of `idle`, a sysctl of the namespace of each client pod, and `dns-blackhole`.
217
217
  */
218
218
  type Target = "server" | "redis" | "kube-proxy" | "servers" | "clients";
219
219
  /** A step is one act of a fault, in the sequence of the plan. */
@@ -273,6 +273,10 @@ type Step = {
273
273
  } | {
274
274
  readonly do: "place";
275
275
  readonly onTarget: number;
276
+ } | {
277
+ readonly do: "dns";
278
+ readonly target: Target;
279
+ readonly on: boolean;
276
280
  };
277
281
  /**
278
282
  * A fault plan is the steps of a run:
@@ -343,6 +347,16 @@ export declare const SPREAD_LEAD: Quantity;
343
347
  * Only a sysctl of the namespace (`net.`) and a whole number reach it.
344
348
  */
345
349
  export declare const sysctlCommand: (key: string, value: string) => string[];
350
+ /** This port is the port of a DNS server: each answer of the cluster DNS comes from it. */
351
+ export declare const DNS_PORT = 53;
352
+ /**
353
+ * This function gives the commands of the injector that drop each answer of a DNS server in its
354
+ * network namespace, on UDP and on TCP. With `on` false, they remove the drops. The rules go in
355
+ * INPUT, thus each query still goes out, and CoreDNS answers it. Only the answer is lost. A send of
356
+ * the resolver gets no error, as for a DNS server with no route back. The rules match the source port,
357
+ * thus each DNS server of the namespace is in the fault.
358
+ */
359
+ export declare const dnsCommands: (on: boolean) => string[][];
346
360
  /**
347
361
  * This function gives the commands of the injector that put a stateful middlebox in its network
348
362
  * namespace, with each peer, on the local port `port`. With `idle` null, they remove it.
@@ -567,6 +581,14 @@ interface LdsSpec {
567
581
  readonly pid: number;
568
582
  }>;
569
583
  }
584
+ /** An outside spec is the clients outside the cluster: their target, interval, timeout and count, and the address whose MAC they watch. */
585
+ interface OutsideSpec {
586
+ readonly target: string;
587
+ readonly every: Quantity;
588
+ readonly timeout: Quantity;
589
+ readonly count: number;
590
+ readonly arp: string;
591
+ }
570
592
  /** A kind lab is the instruments of one cluster: a sidecar pair on each node, the watcher of the API and the prober. */
571
593
  interface KindLab {
572
594
  readonly cluster: Cluster;
@@ -593,6 +615,13 @@ interface KindLab {
593
615
  }): Promise<void>;
594
616
  probe(netns: readonly number[]): Promise<void>;
595
617
  stopProbe(): Promise<void>;
618
+ /**
619
+ * This method starts the clients outside the cluster of a VIP (`KindCell.vip`). Each one is a
620
+ * container of the lab image on the Docker network of the nodes, and runs `client.mjs`. Its lines
621
+ * have the node `outside`, and a line `arp` at each change of the MAC address of the VIP. A
622
+ * call stops the clients of the last call first. With null, it only stops them.
623
+ */
624
+ outside(spec: OutsideSpec | null): Promise<void>;
596
625
  /** This method asks each agent to poll the backends of a Service in the rules of its node, `every` apart, or to stop with null. */
597
626
  rules(rule: (ServiceRule & {
598
627
  readonly every: Quantity;
@@ -646,6 +675,123 @@ export declare const openKindLab: (cluster: Cluster, image: string) => Promise<K
646
675
  /** This function pins a Docker image by digest under a local tag that holds the digest, for `kind load` and `imagePullPolicy: Never`. */
647
676
  export declare const localPin: (image: string) => Promise<string>;
648
677
  //#endregion
678
+ //#region src/kubevip.d.ts
679
+ /**
680
+ * This module installs kube-vip 1.3.1 in a kind cluster (SYS-51). The install gives a Service of type
681
+ * LoadBalancer an address on the Docker network of the nodes: the VIP. In ARP mode, one node holds
682
+ * the VIP on its link, and it sends a gratuitous ARP for it each `vip_arpRate`. A Lease elects that
683
+ * node. Each value of the install is in `kubeVipObjects`, with its reason.
684
+ *
685
+ * The lab uses a VIP of a Service, not a VIP of the control plane. A VIP of the control plane needs
686
+ * three control-plane nodes and TLS on port 6443. A VIP of a Service needs one DaemonSet on the
687
+ * workers, and it serves the server of the cell.
688
+ *
689
+ * Each term of the election comes from the source of v1.3.1:
690
+ * - With `svc_election` off, one election of the lease `plndr-svcs-lock` gives each VIP to one
691
+ * node (pkg/manager/worker/common.go, `GlobalLeader`). The lease is in the namespace of the pod.
692
+ * - The election is `leaderelection.RunOrDie` of client-go v0.37.1, with a Lease lock and
693
+ * `ReleaseOnCancel` (pkg/election/election.go). The identity is the name of the node.
694
+ * - A leader that loses its lease stops the process (`OnStoppedLeading`), and the kubelet starts it again.
695
+ * - The ARP manager sends a gratuitous ARP for each VIP at each tick of one ticker of
696
+ * `vip_arpRate`. A new VIP gets its first one at the next tick, not at once (pkg/arp/arp.go).
697
+ */
698
+ /** This version is the release of kube-vip of the lab, from 2026-10-19: the tag of its image. */
699
+ export declare const KUBE_VIP_VERSION = "1.3.1";
700
+ /**
701
+ * This image is kube-vip 1.3.1 for linux/amd64, pinned by the digest of its manifest. The digest of
702
+ * the index of the tag is sha256:1962f9daf226503f7e6b107f595cb28b7917fd2d0113957075e19a3e5a6c1e33.
703
+ * The manifest of one platform loads into kind with no index.
704
+ */
705
+ export declare const KUBE_VIP_IMAGE = "ghcr.io/kube-vip/kube-vip:v1.3.1@sha256:47353c7bde7fec21642cf621bc3fda2b999c051342912efda468999a399be667";
706
+ /** This is the name of kube-vip: of its ServiceAccount, its DaemonSet and its container. */
707
+ export declare const KUBE_VIP = "kube-vip";
708
+ /** This is the Lease of the election of the VIPs of the Services (`svc_leasename`, cmd/kube-vip.go of v1.3.1). */
709
+ export declare const KUBE_VIP_LEASE: {
710
+ readonly namespace: string;
711
+ readonly name: string;
712
+ };
713
+ /**
714
+ * These are the times of the election, as the install sets them. Each one is the default of the
715
+ * flags of v1.3.1 (cmd/kube-vip.go, lines 91–94). They are a lease of 15 s, a renew deadline of 10 s
716
+ * and a retry period of 2 s. The install sets each one in the environment, thus a new default cannot
717
+ * change a cell.
718
+ */
719
+ export declare const KUBE_VIP_ELECTION: {
720
+ readonly lease: Quantity;
721
+ readonly renew: Quantity;
722
+ readonly retry: Quantity;
723
+ };
724
+ /** This time is the interval of the gratuitous ARPs, the default of the flag `arpRate` of v1.3.1 (cmd/kube-vip.go, line 61). */
725
+ export declare const KUBE_VIP_ARP_RATE: Quantity;
726
+ /** This label of a node selects the nodes of kube-vip: the DaemonSet has a pod only on a node with it. */
727
+ export declare const VIP_LABEL = "lab.systems/vip";
728
+ /**
729
+ * This function gives the objects of kube-vip in kube-system. They are its ServiceAccount, its
730
+ * ClusterRole and binding, and its DaemonSet. The rules of the role are those of the manifest that
731
+ * v1.3.1 generates (pkg/kubevip/config_generator.go, lines 95–134). The DaemonSet:
732
+ * - is on the host network, with NET_ADMIN and NET_RAW. It adds the VIP to `eth0` and sends ARP.
733
+ * - has a pod only on a node with `VIP_LABEL`. Thus the lab chooses the holder of the VIP.
734
+ * - sets ARP mode, the Services, one election for all VIPs, and each time of the election.
735
+ * - takes the image from the node (`imagePullPolicy: Never`).
736
+ */
737
+ export declare const kubeVipObjects: (image: string) => unknown[];
738
+ /** This is the Lease of the election, as the API gives it: its holder and its times. */
739
+ interface VipLease {
740
+ readonly holder: string | null;
741
+ readonly acquireTime: string | null;
742
+ readonly renewTime: string | null;
743
+ readonly leaseDurationSeconds: number | null;
744
+ readonly leaseTransitions: number | null;
745
+ }
746
+ /** This function gives the Lease of the election, or null when it is not there yet. */
747
+ export declare const vipLeaseOf: (cluster: Pick<Cluster, "kubectl">) => Promise<VipLease | null>;
748
+ /** This is the Docker network of a cluster: its IPv4 subnet, and the MAC address of each container on it, by name. */
749
+ interface VipNetwork {
750
+ readonly subnet: string;
751
+ readonly macs: Readonly<Record<string, string>>;
752
+ }
753
+ /** This function reads the Docker network of a cluster: its IPv4 subnet, and the MAC address of each container. */
754
+ export declare const vipNetworkOf: (network: string) => Promise<VipNetwork>;
755
+ /**
756
+ * This function gives the VIP of a subnet: the sixth address from its end. Docker gives the address
757
+ * of each container from the start of the subnet, thus no container takes it.
758
+ */
759
+ export declare const vipOf: (subnet: string) => string;
760
+ /** This is a pod of kube-vip that is not deleted: its name, its node, if it is ready, and the restarts of its container. */
761
+ interface KubeVipPod {
762
+ readonly name: string;
763
+ readonly node: string;
764
+ readonly ready: boolean;
765
+ readonly restarts: number;
766
+ }
767
+ /** This function gives the pods of kube-vip that are not deleted. */
768
+ export declare const kubeVipPods: (cluster: Pick<Cluster, "kubectl">) => Promise<KubeVipPod[]>;
769
+ /** This function gives the nodes with a ready pod of kube-vip that is not deleted. */
770
+ export declare const kubeVipReady: (cluster: Pick<Cluster, "kubectl">) => Promise<string[]>;
771
+ /**
772
+ * This function makes `holder` the holder of the VIP, with a ready pod of kube-vip on each node of
773
+ * `nodes`. It gives null, or why it could not in `within` ms. If another node holds the lease, the
774
+ * function takes the label from each other node. The DaemonSet then deletes their pods. The leader
775
+ * gives back its lease at its stop (`ReleaseOnCancel`). The function gives each label back after
776
+ * `holder` takes the lease.
777
+ *
778
+ * A leader that lost its lease restarted its container. The kubelet gives a container a longer
779
+ * back-off at each restart, thus the function first deletes each pod of kube-vip with a restart.
780
+ * The DaemonSet then makes a new pod with no back-off.
781
+ */
782
+ export declare const holdVip: (cluster: Pick<Cluster, "kubectl">, holder: string, nodes: readonly string[], within?: number) => Promise<string | null>;
783
+ /**
784
+ * This function installs kube-vip in a cluster, with its image on each node (`cluster.load`), and
785
+ * makes `holder` the holder of the VIP. A failed install gives the pods of kube-vip and the tail of
786
+ * their logs.
787
+ */
788
+ export declare const installKubeVip: (cluster: Cluster, image: string, holder: string, nodes: readonly string[]) => Promise<void>;
789
+ /**
790
+ * This function waits until the Service of a VIP has the VIP in its status: kube-vip took it. It
791
+ * gives null, or why not in `within` ms.
792
+ */
793
+ export declare const vipServed: (cluster: Pick<Cluster, "kubectl">, namespace: string, service: string, vip: string, within?: number) => Promise<string | null>;
794
+ //#endregion
649
795
  //#region src/lds.d.ts
650
796
  /**
651
797
  * This filter of RE2 selects the two counters of the listener manager of Envoy that an update of LDS
@@ -695,11 +841,22 @@ export declare const namespaceObject: (cell: Pick<KindCell, "mesh">, namespace:
695
841
  export declare const probeOf: (path: string | null, probe: KubeletProbe, service?: string) => Record<string, unknown>;
696
842
  /** These are the objects of Redis: one replica behind a Service, with no persistence. */
697
843
  export declare const redisObjects: (namespace: string, image: string) => unknown[];
844
+ /**
845
+ * This function gives the Service of a VIP (`kubevip.ts`). It is of type LoadBalancer, with the
846
+ * class of kube-vip and the address of the VIP in its annotation. The policy `Cluster` lets each node
847
+ * send a request to a replica on another node. The holder writes the address to the status of the
848
+ * Service. Then kube-proxy has the rules of the address on each node.
849
+ */
850
+ export declare const vipService: (namespace: string, vip: string, ports: readonly unknown[]) => unknown;
698
851
  /**
699
852
  * These are the objects of the server: a Service of type ClusterIP, and the Deployment with the
700
853
  * settings of the cell. The image is the lab image for the service, or the image of grpc-go.
854
+ *
855
+ * With a VIP (`KindCell.vip`), the Service is of type LoadBalancer, with the address `vip` and the
856
+ * class of kube-vip (`vipService`). No replica is in the lost zone. Thus a zone loss takes away
857
+ * only the holder of the VIP.
701
858
  */
702
- export declare const serverObjects: (cell: KindCell, namespace: string, image: string, version?: number) => unknown[];
859
+ export declare const serverObjects: (cell: KindCell, namespace: string, image: string, version?: number, vip?: string | null) => unknown[];
703
860
  /**
704
861
  * These are the objects of the clients: a DaemonSet with one client on each node, the control plane
705
862
  * too. The client of the service is `client.mjs`, and the client of grpc-go is `client-grpc.mjs`.
@@ -883,7 +1040,7 @@ type Verdicts = Readonly<Record<string, Verdict>>;
883
1040
  * - A deletion, a rolling update, a node drain, a scale-in and a rollout delete a pod with its grace.
884
1041
  * - In T07 a pause of kube-proxy comes before a deletion. In T18 the pause is on Redis.
885
1042
  * - The crash of the lab is SIGKILL from the node. Like a crash, it has no preStop hook and no drain.
886
- * - The other faults are on a link, on Redis or on the process. The kubelet can restart a pod after them.
1043
+ * - The other faults are on a link, on Redis, on the DNS of the clients or on the process. The kubelet can restart a pod after them.
887
1044
  * A zone loss freezes the pods of its node and deletes none of them in its hold.
888
1045
  */
889
1046
  export declare const stopOf: (cell: KindCell) => StopWay | null;
@@ -997,5 +1154,5 @@ export declare const toolPath: (tool: Tool, key?: string, cache?: string) => str
997
1154
  */
998
1155
  export declare const ensureTool: (tool: Tool, key?: string, cache?: string) => Promise<string>;
999
1156
  //#endregion
1000
- export { type BacklogTerm, type Band, type BandV1, CLIENT, type CiliumImages, type Cluster, type ClusterHosts, type ClusterManifest, type CountBand, type Credentials, type Cycle, DATAPLANES, DRAIN_RULES, type Dataplane, type Declaration, type Deleted, type DeletionWindow, type EdgeProtocol, type EdsSpec, Endpoint, type EnvironmentManifest, FORMAT, FORMAT_V1, type FaultPlan, type Flap, HBONE_PORT, 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, type LdsSpec, type LeafCertificate, type LearnWindow, Line, type ListenerCounts, type LoadSample, type Mesh, type MeshFlavor, type MeshImages, type MeshMode, NODE_IMAGES, type NodeImage, type NodeLifecycle, type NonePrediction, O04, O09, O10, O16, PORT, type Parts, Period, PodLine, type PodSettings, type Prediction, type PredictionV1, type Propagated, type Propagation, PropagationSource, 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, Sessions, SliceLine, SocketLine, type Stack, type Stamp, type Step, TCP_STATE, type Target, type Template, type TimeSpread, type Tool, type Trigger, type TriggerKind, type TriggerV1, TunnelLine, type Verdicts, type WindowPrediction, type Workload, ZONE_KEPT, ZONE_LABEL, ZONE_LOST, ZtunnelPodLine, backendsAt, backlogEnd, bandOf, byClients, byNode, calibrationOf, cellsTable, checkRun, cidrOverlap, cidrRange, cyclesOf, deletionOf, deletionsOf, drainBand, dropOf, emptyOf, factsOf, failuresOf, goDuration, intakeOf, isKubeProxyMode, isTunnelState, judge, judgeKind, kernelCounts, kindCellRecordSchema, kindCellRecordV1Schema, kindConfig, kubeProxyPatch, medianInterval, medianText, middle, nodeNames, observationAfter, observationEnd, outcomesOf, overshootBand, periodOf, podsAt, podsOf, predictionText, propagationOf, propagationSource, quantileOf, readRecord, recordsOf, referenceOf, requestBand, requestsOf, restartOf, restartsAt, reusesReset, rulesOf, scenario, scenarioProblems, seconds, secondsOf, sessionsAt, showBand, signalOf, signalsOf, sliceDropOf, sliceEmptyOf, sliceReadyAt, sliceReadyOf, slicesOf, socketsOf, stoppingOf, timeSpread, transitionOf, tunnelsOf, unitOf, updatesOf, upgrade, upgradeCell, zoneOf, ztunnelPodsOf, ztunnelReplaced };
1157
+ export { type BacklogTerm, type Band, type BandV1, CLIENT, type CiliumImages, type Cluster, type ClusterHosts, type ClusterManifest, type CountBand, type Credentials, type Cycle, DATAPLANES, DRAIN_RULES, type Dataplane, type Declaration, type Deleted, type DeletionWindow, type EdgeProtocol, type EdsSpec, Endpoint, type EnvironmentManifest, FORMAT, FORMAT_V1, type FaultPlan, type Flap, HBONE_PORT, 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 KubeVipPod, type KubeletProbe, LAST_SLACK, LB_CLASS, LOG_LABEL, type LdsSpec, type LeafCertificate, type LearnWindow, Line, type ListenerCounts, type LoadSample, type Mesh, type MeshFlavor, type MeshImages, type MeshMode, NODE_IMAGES, type NodeImage, type NodeLifecycle, type NonePrediction, O04, O09, O10, O16, OUTSIDE, type OutsideSpec, PORT, type Parts, Period, type PermittedWindow, PodLine, type PodSettings, type Prediction, type PredictionV1, type Propagated, type Propagation, PropagationSource, 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, Sessions, SliceLine, SocketLine, type Stack, type Stamp, type Step, TCP_STATE, type Target, type Template, type TimeSpread, type Tool, type Trigger, type TriggerKind, type TriggerV1, TunnelLine, VIP_ANNOTATION, type Verdicts, type VipLease, type VipNetwork, type VipSettings, type WindowPrediction, type Workload, ZONE_KEPT, ZONE_LABEL, ZONE_LOST, ZtunnelPodLine, backendsAt, backlogEnd, bandOf, byClients, byNode, calibrationOf, cellsTable, checkRun, cidrOverlap, cidrRange, cyclesOf, deletionOf, deletionsOf, drainBand, dropOf, emptyOf, factsOf, failuresOf, goDuration, intakeOf, isKubeProxyMode, isTunnelState, judge, judgeKind, kernelCounts, kindCellRecordSchema, kindCellRecordV1Schema, kindConfig, kubeProxyPatch, medianInterval, medianText, middle, nodeNames, observationAfter, observationEnd, outcomesOf, overshootBand, periodOf, podsAt, podsOf, predictionText, propagationOf, propagationSource, quantileOf, readRecord, recordsOf, referenceOf, requestBand, requestsOf, restartOf, restartsAt, reusesReset, rulesOf, scenario, scenarioProblems, seconds, secondsOf, sessionsAt, showBand, signalOf, signalsOf, sliceDropOf, sliceEmptyOf, sliceReadyAt, sliceReadyOf, slicesOf, socketsOf, stoppingOf, timeSpread, transitionOf, tunnelsOf, unitOf, updatesOf, upgrade, upgradeCell, zoneOf, ztunnelPodsOf, ztunnelReplaced };
1001
1158
  //# sourceMappingURL=index.d.ts.map