@mark1russell7/machines 0.3.24 → 0.3.26
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 +25 -1
- package/build/index.d.ts +45 -0
- package/build/index.js +1398 -199
- package/build/index.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -62,8 +62,14 @@ The algebra reads these documents. It gives the closed form of each timer, the f
|
|
|
62
62
|
| `CADDY_HTTP2` | `caddy-http2` | Caddy 2.11.7 as an HTTP/2 proxy of gRPC: one connection of a client, its idle close, its replies and its stop | proxy | 12 implemented |
|
|
63
63
|
| `NGINX_GRPC` | `nginx-grpc` | nginx 1.29.6 as an HTTP/2 proxy of gRPC: one connection of a client, its idle close, the read timer of a call, and a stopped worker | proxy | 12 implemented, 1 documented |
|
|
64
64
|
| `TRAEFIK_HTTP2` | `traefik-http2` | Traefik 3.7.15 as an HTTP/2 proxy of gRPC: one connection of a client, its idle close, a reload of its dynamic file and its stop | proxy | 10 implemented, 1 observed |
|
|
65
|
+
| `ISTIO_SIDECAR_OUTBOUND` | `istio-sidecar-outbound` | The client sidecar of Istio 1.31.3: Envoy 1.39.4 between the app and the mesh, its retries, an update of LDS and the SIGKILL | proxy | 31 implemented |
|
|
66
|
+
| `ISTIO_SIDECAR_INBOUND` | `istio-sidecar-inbound` | The server sidecar of Istio 1.31.3: Envoy 1.39.4 between the mesh and the app, the policy, an update of LDS and the SIGKILL | proxy | 31 implemented |
|
|
67
|
+
| `PILOT_AGENT` | `pilot-agent` | pilot-agent of Istio 1.31.3: the drain and the SIGKILL of the Envoy of a sidecar at the stop of its pod | proxy | 12 implemented |
|
|
68
|
+
| `ZTUNNEL_HBONE` | `ztunnel-hbone` | ztunnel 1.31.3 in in-pod mode: one HBONE connection from a client pod to a server pod, its PING, its drain and the close of each flow of the app | proxy | 14 implemented, 3 derived |
|
|
65
69
|
|
|
66
|
-
Thirty documents operate on Linux TCP (`over`).
|
|
70
|
+
Thirty-three documents operate on Linux TCP (`over`). Eight documents operate on no other document. They are Linux TCP, conntrack, the Sentinel, the replication of mongod, aten, the member of Ra, the `RetryAgent` of undici and pilot-agent.
|
|
71
|
+
|
|
72
|
+
The `RetryAgent` is one request above the sockets of a `Client`. Its timer is the delay of a retry. Each retry can go on a new socket. The `conditions` of each document give the range where it holds, for example a range of kernels.
|
|
67
73
|
|
|
68
74
|
The package also gives these parts:
|
|
69
75
|
|
|
@@ -109,6 +115,24 @@ A change to the version of a system changes its sources too. Each fact of the do
|
|
|
109
115
|
|
|
110
116
|
In this repository, a snapshot of the predictions of the cells (`packages/cells/src/__snapshots__/predictions.json`) shows each prediction that a change to a document moves.
|
|
111
117
|
|
|
118
|
+
### 0.3.26
|
|
119
|
+
|
|
120
|
+
- **ztunnel 1.31.3 for T15** (`ztunnel-hbone`). This new document is one HBONE connection of the ambient mesh, from the source at its tag.
|
|
121
|
+
- The PING has a fixed cadence: a PING 10 s after the last PONG, then at most 20 s for its PONG. Both are constants, and data does not put a PING off. Thus a black hole is found 20 s to 30 s later.
|
|
122
|
+
- At the end of a stream or of its connection, ztunnel shuts down the socket of each app: a FIN. A connect to 15008 that fails closes the socket of the app before any byte of an answer.
|
|
123
|
+
- The connect times out at 10 s. At SIGTERM, ztunnel sends GOAWAY and ends what is left at its deadline of 25 s. It has no idle timeout and no maximum age of a connection.
|
|
124
|
+
- The HBONE socket is Linux TCP with a keepalive of 180 s, 180 s and 9 probes, and no TCP_USER_TIMEOUT.
|
|
125
|
+
- The cell T15.defaults.12 cites it. It reads no timer of the document, thus it moves no prediction of the snapshot.
|
|
126
|
+
|
|
127
|
+
### 0.3.25
|
|
128
|
+
|
|
129
|
+
- **The sidecar of Istio 1.31.3 for T15.** Three new documents, each from the source at its tag. `istioSidecar(side)` builds the two sidecars from `envoy-http2`, because the proxy of Istio 1.31.3 has the code of Envoy 1.39.4.
|
|
130
|
+
- Both sides: the route and the stream have no timeout, and the connect timeout is 10 s. An update of LDS drains the changed filter chain. The next response of the chain sends the GOAWAY notice. At the stop, pilot-agent stops Envoy with SIGKILL, thus Envoy sends no GOAWAY then.
|
|
131
|
+
- `istio-sidecar-outbound`: Envoy retries a failed connect, a refused stream, and UNAVAILABLE or CANCELLED 2 times, each on another host. The reset of an open connection and PERMISSION_DENIED get no retry.
|
|
132
|
+
- `istio-sidecar-inbound`: the inbound route of a port of gRPC has no retry policy. A refused connect to the app gives UNAVAILABLE. A DENY policy gives the local reply 403, thus PERMISSION_DENIED.
|
|
133
|
+
- `pilot-agent`: the preStop hook of a native sidecar drains the inbound listeners at the deletion. SIGTERM comes after the app exited, and pilot-agent then stops Envoy with SIGKILL at once.
|
|
134
|
+
- No cell reads these documents yet, thus they move no prediction of the snapshot.
|
|
135
|
+
|
|
112
136
|
### 0.3.24
|
|
113
137
|
|
|
114
138
|
- **The SYN timer of Linux TCP** (`syn_retransmit`). It is a backoff timer: each firing sends the SYN again. The waits 0 to `tcp_syn_linear_timeouts` are 1 s, and then each wait doubles up to `TCP_RTO_MAX`. The source is `tcp_retransmit_timer` in `net/ipv4/tcp_timer.c` of 6.6, and 6.17 has the same waits. At HZ 1000 a wait of 1 s is up to 64 ms late. The models are `linux.syn-wait` and `linux.syn-wait-lateness` of the algebra 0.7.3.
|
package/build/index.d.ts
CHANGED
|
@@ -425,6 +425,33 @@ export declare const CADDY_HTTP2: Machine;
|
|
|
425
425
|
*/
|
|
426
426
|
export declare const ENVOY_HTTP2: Machine;
|
|
427
427
|
//#endregion
|
|
428
|
+
//#region src/proxy/istio.d.ts
|
|
429
|
+
/** A side of a sidecar is the listener of the connection: outbound from the app, or inbound to the app. */
|
|
430
|
+
type SidecarSide = "outbound" | "inbound";
|
|
431
|
+
/**
|
|
432
|
+
* This function gives a document of a sidecar of Istio 1.31.3 for one side, from ENVOY_HTTP2. The
|
|
433
|
+
* Envoy of the sidecar is the code of that document. Istio changes its configuration and its stop:
|
|
434
|
+
* - The route and the stream have no timeout, and the connect timeout of a cluster is 10 s.
|
|
435
|
+
* - The outbound side retries a failed connect, a refused stream, and UNAVAILABLE or CANCELLED: 2 times, each on another host.
|
|
436
|
+
* - The inbound side retries nothing, because the port of the lab is of gRPC.
|
|
437
|
+
* - An update of LDS drains the changed filter chain. Its next response sends the GOAWAY notice.
|
|
438
|
+
* - pilot-agent stops Envoy with SIGKILL at the stop of the pod. Envoy sends no GOAWAY then.
|
|
439
|
+
*/
|
|
440
|
+
export declare const istioSidecar: (side: SidecarSide) => Machine;
|
|
441
|
+
/** This document is the client sidecar of Istio 1.31.3 (`istioSidecar("outbound")`). */
|
|
442
|
+
export declare const ISTIO_SIDECAR_OUTBOUND: Machine;
|
|
443
|
+
/** This document is the server sidecar of Istio 1.31.3 (`istioSidecar("inbound")`). */
|
|
444
|
+
export declare const ISTIO_SIDECAR_INBOUND: Machine;
|
|
445
|
+
/**
|
|
446
|
+
* This document is pilot-agent of Istio 1.31.3: the lifecycle of the Envoy of a sidecar at the stop
|
|
447
|
+
* of its pod. With a native sidecar, the preStop hook drains the inbound listeners at the deletion.
|
|
448
|
+
* The kubelet sends SIGTERM after each container of the app exited. Then pilot-agent stops Envoy with
|
|
449
|
+
* SIGKILL at once, because the drain is done. Without a native sidecar, SIGTERM starts the drain, and
|
|
450
|
+
* the SIGKILL comes terminationDrainDuration later (5 s). With EXIT_ON_ZERO_ACTIVE_CONNECTIONS, it waits the
|
|
451
|
+
* minimum drain, then polls the active connections each 1 s.
|
|
452
|
+
*/
|
|
453
|
+
export declare const PILOT_AGENT: Machine;
|
|
454
|
+
//#endregion
|
|
428
455
|
//#region src/proxy/nginx.d.ts
|
|
429
456
|
/**
|
|
430
457
|
* This document is nginx 1.29.6 as an HTTP/2 proxy of gRPC, for one connection of a client. Its
|
|
@@ -483,6 +510,23 @@ export declare const TOXIPROXY_LINK: Machine;
|
|
|
483
510
|
*/
|
|
484
511
|
export declare const DOCKER_PROXY_LINK: Machine;
|
|
485
512
|
//#endregion
|
|
513
|
+
//#region src/proxy/ztunnel.d.ts
|
|
514
|
+
/**
|
|
515
|
+
* This document is ztunnel 1.31.3 in the ambient mesh of Istio, in in-pod mode. It is one HBONE
|
|
516
|
+
* connection from the ztunnel of a client pod to the port 15008 of a server pod. The flows of the
|
|
517
|
+
* apps are its streams. The agent istio-cni redirects each connection of an app to the listener
|
|
518
|
+
* 15001 of ztunnel, in the network namespace of the pod. Thus the HBONE socket has the address of the pod.
|
|
519
|
+
*
|
|
520
|
+
* The PING of the connection has a fixed cadence: 10 s of sleep, a PING, then at most 20 s for its
|
|
521
|
+
* PONG. Both are constants, and data does not put a PING off. Thus a link that fails is found 20 s to
|
|
522
|
+
* 30 s later.
|
|
523
|
+
*
|
|
524
|
+
* At the end of a stream or of its connection, ztunnel shuts down the socket of the app. The app then
|
|
525
|
+
* gets a FIN. No timer closes an idle connection or an old one. At SIGTERM, ztunnel sends GOAWAY, and
|
|
526
|
+
* it ends what is left at its deadline of 25 s.
|
|
527
|
+
*/
|
|
528
|
+
export declare const ZTUNNEL_HBONE: Machine;
|
|
529
|
+
//#endregion
|
|
486
530
|
//#region src/rabbit/amqplib.d.ts
|
|
487
531
|
/**
|
|
488
532
|
* This document is amqplib 2.2.0 on Node, for one connection to a broker of AMQP 0-9-1 and one channel
|
|
@@ -619,4 +663,5 @@ export declare const undiciFastLateness: (ms: string) => Expr;
|
|
|
619
663
|
*/
|
|
620
664
|
export declare const MACHINES: Readonly<Record<string, Machine>>;
|
|
621
665
|
//#endregion
|
|
666
|
+
export type { SidecarSide };
|
|
622
667
|
//# sourceMappingURL=index.d.ts.map
|