@mark1russell7/machines 0.3.26 → 0.3.27
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 +8 -1
- package/build/index.d.ts +2 -1
- package/build/index.js +42 -1
- package/build/index.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -65,7 +65,7 @@ The algebra reads these documents. It gives the closed form of each timer, the f
|
|
|
65
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
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
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 |
|
|
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 | 15 implemented, 3 derived |
|
|
69
69
|
|
|
70
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
71
|
|
|
@@ -115,6 +115,13 @@ A change to the version of a system changes its sources too. Each fact of the do
|
|
|
115
115
|
|
|
116
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.
|
|
117
117
|
|
|
118
|
+
### 0.3.27
|
|
119
|
+
|
|
120
|
+
- **The SIGKILL at the end of the grace** (`ztunnel-hbone`). The document has the grace of the ztunnel pod as a knob (`grace`, 30 s from the chart) and a timer from SIGTERM.
|
|
121
|
+
- The drain ends at the first of the deadline and the grace. The transition `zt.deadline` has the guard `deadline < grace`, and the new transition `zt.killed` has the guard `grace <= deadline`.
|
|
122
|
+
- At the SIGKILL, the kernel closes each socket of ztunnel: a FIN, or a reset when bytes are unread. The source is the kubelet and the CRI of Kubernetes v1.37.0.
|
|
123
|
+
- The cells T15.border-off.85 and .86 read both timers. A new knob and a new timer are a feature, thus the version is a PATCH before 1.0.0.
|
|
124
|
+
|
|
118
125
|
### 0.3.26
|
|
119
126
|
|
|
120
127
|
- **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.
|
package/build/index.d.ts
CHANGED
|
@@ -523,7 +523,8 @@ export declare const DOCKER_PROXY_LINK: Machine;
|
|
|
523
523
|
*
|
|
524
524
|
* At the end of a stream or of its connection, ztunnel shuts down the socket of the app. The app then
|
|
525
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.
|
|
526
|
+
* it ends what is left at its deadline of 25 s. A deadline longer than the grace of 30 s does not
|
|
527
|
+
* come. The kubelet sends SIGKILL to ztunnel at the end of the grace, and the kernel closes each socket.
|
|
527
528
|
*/
|
|
528
529
|
export declare const ZTUNNEL_HBONE: Machine;
|
|
529
530
|
//#endregion
|
package/build/index.js
CHANGED
|
@@ -15154,7 +15154,8 @@ const I = "istio 1.31.3";
|
|
|
15154
15154
|
*
|
|
15155
15155
|
* At the end of a stream or of its connection, ztunnel shuts down the socket of the app. The app then
|
|
15156
15156
|
* gets a FIN. No timer closes an idle connection or an old one. At SIGTERM, ztunnel sends GOAWAY, and
|
|
15157
|
-
* it ends what is left at its deadline of 25 s.
|
|
15157
|
+
* it ends what is left at its deadline of 25 s. A deadline longer than the grace of 30 s does not
|
|
15158
|
+
* come. The kubelet sends SIGKILL to ztunnel at the end of the grace, and the kernel closes each socket.
|
|
15158
15159
|
*/
|
|
15159
15160
|
const ZTUNNEL_HBONE = machineSchema.parse({
|
|
15160
15161
|
format: "mark1russell7.machine/1",
|
|
@@ -15229,6 +15230,10 @@ const ZTUNNEL_HBONE = machineSchema.parse({
|
|
|
15229
15230
|
ref: `${Z} src/proxy/h2/server.rs:170-172 and src/proxy/outbound.rs:121 at SIGTERM the accept loops stop, and the HBONE server sends GOAWAY`,
|
|
15230
15231
|
rung: "implemented"
|
|
15231
15232
|
},
|
|
15233
|
+
{
|
|
15234
|
+
ref: `${I} manifests/charts/ztunnel/values.yaml:102 and templates/daemonset.yaml:215 the grace of the ztunnel pod is 30 s. kubernetes v1.37.0 pkg/kubelet/kuberuntime/kuberuntime_container.go:864-915, :1424-1427 the kubelet stops the container with that grace, and staging/src/k8s.io/cri-api/pkg/apis/runtime/v1/api.proto:69-72 the runtime kills it at the end of the grace`,
|
|
15235
|
+
rung: "implemented"
|
|
15236
|
+
},
|
|
15232
15237
|
{
|
|
15233
15238
|
ref: `${Z} src/proxy/connection_manager.rs:133, :364-376 and src/proxy/inbound.rs:273-280 a CONNECT that a policy denies gets 401. At a change of a policy, ztunnel checks each open inbound connection again and closes each one that it now denies`,
|
|
15234
15239
|
rung: "implemented"
|
|
@@ -15313,6 +15318,10 @@ const ZTUNNEL_HBONE = machineSchema.parse({
|
|
|
15313
15318
|
kind: "timer",
|
|
15314
15319
|
note: "The deadline of the drain after SIGTERM"
|
|
15315
15320
|
},
|
|
15321
|
+
"timer.grace": {
|
|
15322
|
+
kind: "timer",
|
|
15323
|
+
note: "The end of the grace of the pod after SIGTERM: the kubelet kills ztunnel"
|
|
15324
|
+
},
|
|
15316
15325
|
"tx.ping": {
|
|
15317
15326
|
kind: "tx",
|
|
15318
15327
|
note: "A PING of HTTP/2"
|
|
@@ -15370,6 +15379,13 @@ const ZTUNNEL_HBONE = machineSchema.parse({
|
|
|
15370
15379
|
default: 25,
|
|
15371
15380
|
note: "config.rs:810-827: unset, thus the grace of 30 s of the chart less 5 s"
|
|
15372
15381
|
},
|
|
15382
|
+
grace: {
|
|
15383
|
+
key: "terminationGracePeriodSeconds",
|
|
15384
|
+
scope: "pod",
|
|
15385
|
+
unit: "s",
|
|
15386
|
+
default: 30,
|
|
15387
|
+
note: "values.yaml:102 of the chart of ztunnel"
|
|
15388
|
+
},
|
|
15373
15389
|
keepidle: {
|
|
15374
15390
|
key: "the TCP keepalive idle of ztunnel",
|
|
15375
15391
|
scope: "process",
|
|
@@ -15472,6 +15488,19 @@ const ZTUNNEL_HBONE = machineSchema.parse({
|
|
|
15472
15488
|
arms: ["app.stop"],
|
|
15473
15489
|
fires: "timer.deadline",
|
|
15474
15490
|
note: "app.rs:391-399: from SIGTERM"
|
|
15491
|
+
},
|
|
15492
|
+
grace: {
|
|
15493
|
+
duration: {
|
|
15494
|
+
knob: "grace",
|
|
15495
|
+
unit: "s"
|
|
15496
|
+
},
|
|
15497
|
+
lateness: {
|
|
15498
|
+
knob: "slack",
|
|
15499
|
+
unit: "s"
|
|
15500
|
+
},
|
|
15501
|
+
arms: ["app.stop"],
|
|
15502
|
+
fires: "timer.grace",
|
|
15503
|
+
note: "kuberuntime_container.go:864-915 and api.proto:69-72: the grace of the pod from SIGTERM, then the kill"
|
|
15475
15504
|
}
|
|
15476
15505
|
},
|
|
15477
15506
|
realizes: {
|
|
@@ -15602,10 +15631,22 @@ const ZTUNNEL_HBONE = machineSchema.parse({
|
|
|
15602
15631
|
to: "ended",
|
|
15603
15632
|
on: "timer.deadline",
|
|
15604
15633
|
timer: "deadline",
|
|
15634
|
+
guard: "deadline < grace",
|
|
15605
15635
|
emits: ["tx.close", "tx.app-fin"],
|
|
15606
15636
|
note: "ztunnel ends what is left itself, before the SIGKILL of the kubelet",
|
|
15607
15637
|
source: "app.rs:391-399, pool.rs:345-347"
|
|
15608
15638
|
},
|
|
15639
|
+
{
|
|
15640
|
+
id: "zt.killed",
|
|
15641
|
+
from: "draining",
|
|
15642
|
+
to: "ended",
|
|
15643
|
+
on: "timer.grace",
|
|
15644
|
+
timer: "grace",
|
|
15645
|
+
guard: "grace <= deadline",
|
|
15646
|
+
emits: ["tx.app-fin"],
|
|
15647
|
+
note: "The kubelet kills ztunnel at the end of the grace, before its deadline. The kernel closes each socket: a FIN, or a reset when bytes are unread",
|
|
15648
|
+
source: "kuberuntime_container.go:864-915, api.proto:69-72, tcp.c:2781-2807"
|
|
15649
|
+
},
|
|
15609
15650
|
{
|
|
15610
15651
|
id: "zt.del-workload",
|
|
15611
15652
|
from: [
|