@namzu/sandbox 26.0.0 → 28.0.0
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/CHANGELOG.md +62 -7
- package/README.md +20 -7
- package/dist/backends/firecracker/protocol.d.ts +46 -0
- package/dist/backends/firecracker/protocol.d.ts.map +1 -1
- package/dist/backends/firecracker/protocol.js +31 -0
- package/dist/backends/firecracker/protocol.js.map +1 -1
- package/dist/backends/firecracker/transport.d.ts +15 -1
- package/dist/backends/firecracker/transport.d.ts.map +1 -1
- package/dist/backends/firecracker/transport.js +16 -0
- package/dist/backends/firecracker/transport.js.map +1 -1
- package/dist/backends/kubernetes/allocation.d.ts +115 -0
- package/dist/backends/kubernetes/allocation.d.ts.map +1 -0
- package/dist/backends/kubernetes/allocation.js +130 -0
- package/dist/backends/kubernetes/allocation.js.map +1 -0
- package/dist/backends/kubernetes/egress-policy.d.ts +111 -35
- package/dist/backends/kubernetes/egress-policy.d.ts.map +1 -1
- package/dist/backends/kubernetes/egress-policy.js +81 -41
- package/dist/backends/kubernetes/egress-policy.js.map +1 -1
- package/dist/backends/kubernetes/identity.d.ts +129 -0
- package/dist/backends/kubernetes/identity.d.ts.map +1 -1
- package/dist/backends/kubernetes/identity.js +150 -0
- package/dist/backends/kubernetes/identity.js.map +1 -1
- package/dist/backends/kubernetes/index.d.ts +23 -1
- package/dist/backends/kubernetes/index.d.ts.map +1 -1
- package/dist/backends/kubernetes/index.js +22 -3
- package/dist/backends/kubernetes/index.js.map +1 -1
- package/dist/backends/kubernetes/objects.d.ts +76 -0
- package/dist/backends/kubernetes/objects.d.ts.map +1 -1
- package/dist/backends/kubernetes/objects.js +61 -0
- package/dist/backends/kubernetes/objects.js.map +1 -1
- package/dist/backends/kubernetes/per-sandbox-fence.d.ts +194 -0
- package/dist/backends/kubernetes/per-sandbox-fence.d.ts.map +1 -0
- package/dist/backends/kubernetes/per-sandbox-fence.js +522 -0
- package/dist/backends/kubernetes/per-sandbox-fence.js.map +1 -0
- package/dist/backends/kubernetes/per-sandbox-policy.d.ts +45 -3
- package/dist/backends/kubernetes/per-sandbox-policy.d.ts.map +1 -1
- package/dist/backends/kubernetes/per-sandbox-policy.js +98 -8
- package/dist/backends/kubernetes/per-sandbox-policy.js.map +1 -1
- package/dist/backends/kubernetes/sandbox.d.ts +4 -9
- package/dist/backends/kubernetes/sandbox.d.ts.map +1 -1
- package/dist/backends/kubernetes/sandbox.js +4 -9
- package/dist/backends/kubernetes/sandbox.js.map +1 -1
- package/dist/backends/kubernetes/transport.d.ts +108 -1
- package/dist/backends/kubernetes/transport.d.ts.map +1 -1
- package/dist/backends/kubernetes/transport.js +150 -6
- package/dist/backends/kubernetes/transport.js.map +1 -1
- package/dist/backends/kubernetes/workspace-allocate.d.ts +206 -0
- package/dist/backends/kubernetes/workspace-allocate.d.ts.map +1 -0
- package/dist/backends/kubernetes/workspace-allocate.js +332 -0
- package/dist/backends/kubernetes/workspace-allocate.js.map +1 -0
- package/dist/backends/kubernetes/workspace-observe.d.ts +187 -0
- package/dist/backends/kubernetes/workspace-observe.d.ts.map +1 -0
- package/dist/backends/kubernetes/workspace-observe.js +343 -0
- package/dist/backends/kubernetes/workspace-observe.js.map +1 -0
- package/dist/backends/kubernetes/workspace-per-sandbox.d.ts +94 -0
- package/dist/backends/kubernetes/workspace-per-sandbox.d.ts.map +1 -0
- package/dist/backends/kubernetes/workspace-per-sandbox.js +119 -0
- package/dist/backends/kubernetes/workspace-per-sandbox.js.map +1 -0
- package/dist/backends/kubernetes/workspace.d.ts +139 -5
- package/dist/backends/kubernetes/workspace.d.ts.map +1 -1
- package/dist/backends/kubernetes/workspace.js +434 -36
- package/dist/backends/kubernetes/workspace.js.map +1 -1
- package/dist/index.d.ts +83 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +100 -6
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
- package/src/backends/firecracker/protocol.ts +47 -0
- package/src/backends/firecracker/transport.ts +31 -0
- package/src/backends/kubernetes/allocation.ts +199 -0
- package/src/backends/kubernetes/egress-policy.ts +165 -42
- package/src/backends/kubernetes/identity.ts +210 -0
- package/src/backends/kubernetes/index.ts +61 -2
- package/src/backends/kubernetes/objects.ts +98 -0
- package/src/backends/kubernetes/per-sandbox-fence.ts +800 -0
- package/src/backends/kubernetes/per-sandbox-policy.ts +152 -17
- package/src/backends/kubernetes/sandbox.ts +4 -9
- package/src/backends/kubernetes/transport.ts +203 -4
- package/src/backends/kubernetes/workspace-allocate.ts +607 -0
- package/src/backends/kubernetes/workspace-observe.ts +590 -0
- package/src/backends/kubernetes/workspace-per-sandbox.ts +179 -0
- package/src/backends/kubernetes/workspace.ts +655 -34
- package/src/index.ts +193 -3
package/dist/index.js
CHANGED
|
@@ -56,6 +56,8 @@ import { buildAciStandbyPoolBackend } from './backends/aci-standby-pool/index.js
|
|
|
56
56
|
import { buildDockerBackend, resolveLayout } from './backends/docker/index.js';
|
|
57
57
|
import { buildFirecrackerBackend } from './backends/firecracker/index.js';
|
|
58
58
|
import { buildKubernetesBackend, readKubernetesTaskCapacity as readTaskCapacityOnCluster, releaseKubernetesTaskSandboxes as releaseTaskSandboxesOnCluster, } from './backends/kubernetes/index.js';
|
|
59
|
+
import { allocateKubernetesWorkspace as allocateWorkspaceOnCluster, recoverKubernetesWorkspaceAllocation as recoverAllocationOnCluster, resolveKubernetesExecutionProfile as resolveProfileOnCluster, } from './backends/kubernetes/workspace-allocate.js';
|
|
60
|
+
import { inspectKubernetesWorkspace as inspectWorkspaceOnCluster, openKubernetesWorkspace as openWorkspaceOnCluster, reconcileKubernetesWorkspace as reconcileWorkspaceOnCluster, } from './backends/kubernetes/workspace-observe.js';
|
|
59
61
|
import { createKubernetesWorkspace as buildKubernetesWorkspace, deleteKubernetesWorkspace as deleteWorkspaceOnCluster, listKubernetesWorkspaces as listWorkspacesOnCluster, suspendKubernetesWorkspace as suspendWorkspaceOnCluster, } from './backends/kubernetes/workspace.js';
|
|
60
62
|
import { resolveProviderEgress } from './egress/profile-wiring.js';
|
|
61
63
|
// Re-export the default container-path constants the prompt-template
|
|
@@ -93,16 +95,17 @@ export { READ_FILE_STREAM_FEATURE, } from './backends/firecracker/protocol.js';
|
|
|
93
95
|
// `KubernetesOwnerUidMissingError` is the fourth, and the only one raised
|
|
94
96
|
// from an ACQUIRE — the object this backend created reported no uid, so a
|
|
95
97
|
// policy written for it would be an orphan.
|
|
96
|
-
// `KubernetesWorkspacePerSandboxEgressConfigError` is
|
|
97
|
-
// option
|
|
98
|
-
// `setNetworkPolicy
|
|
98
|
+
// `KubernetesWorkspacePerSandboxEgressConfigError` is deprecated: it used to
|
|
99
|
+
// refuse the same option on `createKubernetesWorkspace`, whose handle now
|
|
100
|
+
// carries `setNetworkPolicy`, so nothing throws it any more.
|
|
99
101
|
// See `backends/kubernetes/per-sandbox-policy.ts` — and, for
|
|
100
102
|
// `KubernetesNetworkPolicyHostError`, which the config-level translation
|
|
101
103
|
// refuses the same entries with, `backends/kubernetes/egress-policy.ts`.
|
|
102
104
|
export { KubernetesPerSandboxEgressConfigError } from './backends/kubernetes/egress-policy.js';
|
|
103
105
|
export { KubernetesWorkspacePerSandboxEgressConfigError } from './backends/kubernetes/egress-policy.js';
|
|
104
106
|
export { DEFAULT_PER_SANDBOX_EGRESS_LABEL_KEY } from './backends/kubernetes/egress-policy.js';
|
|
105
|
-
export {
|
|
107
|
+
export { KUBERNETES_PER_SANDBOX_PROFILE_VARIANT } from './backends/kubernetes/workspace-per-sandbox.js';
|
|
108
|
+
export { KubernetesAdmissionFenceInertError, KubernetesAdmissionFenceMissingError, KubernetesAdmissionFenceUnreadableError, KubernetesNetworkPolicyHostError, KubernetesOwnerUidMissingError, KubernetesPerSandboxPolicyNotRemovedError, KubernetesPermittedHostsError, KubernetesPermittedHostsParamError, PER_SANDBOX_POLICY_NAME_PREFIX, } from './backends/kubernetes/per-sandbox-policy.js';
|
|
106
109
|
// The default label key `KubernetesEgressConfig.profile` is written under.
|
|
107
110
|
// Exported because an operator has to name that key's DOMAIN in the
|
|
108
111
|
// controller's `allowed-label-domains` allowlist before a profiled claim is
|
|
@@ -129,6 +132,10 @@ export { KubernetesIngressPolicyError } from './backends/kubernetes/ingress-poli
|
|
|
129
132
|
export { KubernetesPrivilegeProbeError, } from './backends/kubernetes/privilege-probe.js';
|
|
130
133
|
export { KubernetesSandboxDestroyedError, KubernetesSandboxGoneError, } from './backends/kubernetes/sandbox.js';
|
|
131
134
|
export { KubernetesAgentAddressUnresolvableError,
|
|
135
|
+
// The guest agent compared its boot id with a pinned request's and refused
|
|
136
|
+
// before dispatching anything. Reaches a caller as
|
|
137
|
+
// `KubernetesGuestPinRefusedError` through a pinned view.
|
|
138
|
+
KubernetesAgentGuestMismatchError,
|
|
132
139
|
// A guest that has fenced itself refuses one CALL here, not the
|
|
133
140
|
// workspace: the Firecracker tier's mapping of the same refusal retires
|
|
134
141
|
// the sandbox, which on a workspace would take the pod away from every
|
|
@@ -141,8 +148,8 @@ export { AgentSessionDetachedError } from './backends/firecracker/transport.js';
|
|
|
141
148
|
// frames use. Same reason as the two feature strings above: a host asserting
|
|
142
149
|
// what an image can do should name the string rather than repeat the literal.
|
|
143
150
|
export { SESSIONS_FEATURE, } from './backends/firecracker/protocol.js';
|
|
144
|
-
export { KubernetesQuiesceUnconfirmedError, KubernetesQuiesceUnsupportedError, } from './backends/kubernetes/transport.js';
|
|
145
|
-
export { QUIESCE_FEATURE, } from './backends/firecracker/protocol.js';
|
|
151
|
+
export { KubernetesQuiesceBusyError, KubernetesQuiesceUnconfirmedError, KubernetesQuiesceUnsupportedError, } from './backends/kubernetes/transport.js';
|
|
152
|
+
export { QUIESCE_FEATURE, PINNED_GUEST_FEATURE, QUIESCE_IDLE_FEATURE, } from './backends/firecracker/protocol.js';
|
|
146
153
|
export { KubernetesFlushUnconfirmedError, KubernetesFlushUnreachableError, KubernetesFlushUnsupportedError, } from './backends/kubernetes/transport.js';
|
|
147
154
|
export { FLUSH_FEATURE } from './backends/firecracker/protocol.js';
|
|
148
155
|
// The API-request bound and the error it raises. Exported because
|
|
@@ -203,12 +210,23 @@ export { DEFAULT_STREAM_HEARTBEAT_MS } from './backends/kubernetes/index.js';
|
|
|
203
210
|
// `Role` carries no more than this backend needs compares against the same
|
|
204
211
|
// constant rather than against a list copied out of a page.
|
|
205
212
|
export { KUBERNETES_CLAIMANT_RBAC_RULES, } from './backends/kubernetes/rbac.js';
|
|
213
|
+
export { KubernetesExecutionProfileDriftError, KubernetesWorkspaceAllocationConflictError, KubernetesWorkspaceAllocationMismatchError, } from './backends/kubernetes/allocation.js';
|
|
214
|
+
export { ALLOCATION_ID_ANNOTATION_KEY, ALLOCATION_SCOPE_ANNOTATION_KEY, EXECUTION_PROFILE_ANNOTATION_KEY, } from './backends/kubernetes/objects.js';
|
|
215
|
+
export { KubernetesWorkspaceReadyTimeoutError } from './backends/kubernetes/workspace-observe.js';
|
|
216
|
+
// Pinning one guest: `workspace.pinGuest(identity)` and the two errors a host
|
|
217
|
+
// catches by class — an identity that cannot pin (nothing was created) and a
|
|
218
|
+
// pinned call that was refused (nothing ran).
|
|
219
|
+
export { KubernetesGuestPinRefusedError, KubernetesPinIncompleteError, } from './backends/kubernetes/identity.js';
|
|
206
220
|
export {
|
|
207
221
|
// The command's outcome is unknown AND the guest it ran in is gone. A
|
|
208
222
|
// subclass of `RemoteCancellationUnknownError`, so a host catching the
|
|
209
223
|
// base class keeps catching it; what it adds is which guest the command
|
|
210
224
|
// started on and which one is there now.
|
|
211
225
|
KubernetesWorkspaceGuestGoneError,
|
|
226
|
+
// The workspace a host retained is not what stands under its name:
|
|
227
|
+
// another Sandbox uid, no Sandbox, another claim uid or owner. Raised by
|
|
228
|
+
// `openKubernetesWorkspace` before anything is created, woken or written.
|
|
229
|
+
KubernetesWorkspaceIdentityMismatchError,
|
|
212
230
|
// A different Sandbox now stands under the workspace's deterministic
|
|
213
231
|
// name, or none does. The handle refuses rather than following it — the
|
|
214
232
|
// disk behind the name is not the disk it was opened on.
|
|
@@ -578,6 +596,82 @@ export async function deleteKubernetesWorkspace(config, workspaceId, options) {
|
|
|
578
596
|
export async function suspendKubernetesWorkspace(config, workspaceId, options) {
|
|
579
597
|
await suspendWorkspaceOnCluster(kubernetesInternalConfig(config), workspaceId, options);
|
|
580
598
|
}
|
|
599
|
+
/**
|
|
600
|
+
* Resolve and fingerprint what a workspace created from `config` would run —
|
|
601
|
+
* the pod template with this backend's overlays, the template's disks, the
|
|
602
|
+
* egress policy translated from `config.egress` and the ingress settings —
|
|
603
|
+
* without creating anything. One GET: the SandboxTemplate — plus, when
|
|
604
|
+
* `config.egress.perSandbox` is configured, the reads that prove its admission
|
|
605
|
+
* fence (a configuration whose fence does not enforce is refused and yields no
|
|
606
|
+
* fingerprint), and the result then carries `variant:
|
|
607
|
+
* 'core/no-network+per-sandbox'`.
|
|
608
|
+
*
|
|
609
|
+
* Persist the result, then pass its `fingerprint` as
|
|
610
|
+
* `allocation.executionProfile` to {@link allocateKubernetesWorkspace}.
|
|
611
|
+
*/
|
|
612
|
+
export async function resolveKubernetesExecutionProfile(config, options) {
|
|
613
|
+
return await resolveProfileOnCluster(kubernetesInternalConfig(config), options);
|
|
614
|
+
}
|
|
615
|
+
/**
|
|
616
|
+
* Create a workspace exactly once, bound to the allocation the host recorded
|
|
617
|
+
* first. Unlike `createKubernetesWorkspace` it never adopts a same-name
|
|
618
|
+
* object (typed `KubernetesWorkspaceAllocationConflictError`, nothing
|
|
619
|
+
* touched), never resumes compute, and never retries the create.
|
|
620
|
+
*
|
|
621
|
+
* `{ outcome: 'created' }` carries a receipt with the new Sandbox's uid — an
|
|
622
|
+
* acknowledgement, not readiness. `{ outcome: 'unknown' }` means the request
|
|
623
|
+
* was sent and no usable reply came back; settle it with
|
|
624
|
+
* `recoverKubernetesWorkspaceAllocation`.
|
|
625
|
+
*/
|
|
626
|
+
export async function allocateKubernetesWorkspace(config, options) {
|
|
627
|
+
return await allocateWorkspaceOnCluster(kubernetesInternalConfig(config), options);
|
|
628
|
+
}
|
|
629
|
+
/**
|
|
630
|
+
* After an `unknown` allocation: one read-only GET, answered as `created`
|
|
631
|
+
* (with the receipt), `absent` or `different`. See
|
|
632
|
+
* `KubernetesWorkspaceAllocationRecovery` for what `absent` does and does not
|
|
633
|
+
* promise.
|
|
634
|
+
*/
|
|
635
|
+
export async function recoverKubernetesWorkspaceAllocation(config, options) {
|
|
636
|
+
return await recoverAllocationOnCluster(kubernetesInternalConfig(config), options);
|
|
637
|
+
}
|
|
638
|
+
/**
|
|
639
|
+
* Look at a workspace by id: its Sandbox uid, volume-claim uids, live pod,
|
|
640
|
+
* operating mode and holder epoch. GET requests only — it never creates,
|
|
641
|
+
* wakes, patches or deletes — and it resolves `undefined` when no Sandbox
|
|
642
|
+
* stands under the id.
|
|
643
|
+
*
|
|
644
|
+
* `epoch` is required: a workspace held at a higher epoch belongs to another
|
|
645
|
+
* process, and a superseded host is refused with
|
|
646
|
+
* `KubernetesWorkspacePreconditionError` rather than shown it.
|
|
647
|
+
*/
|
|
648
|
+
export async function inspectKubernetesWorkspace(config, workspaceId, options) {
|
|
649
|
+
return await inspectWorkspaceOnCluster(kubernetesInternalConfig(config), workspaceId, options);
|
|
650
|
+
}
|
|
651
|
+
/**
|
|
652
|
+
* Authenticate the identity a host retained against what stands under the
|
|
653
|
+
* workspace id, and with `waitForReady` wait — under one `readyTimeoutMs`
|
|
654
|
+
* deadline — for its volume claims and its guest. Never creates, wakes or
|
|
655
|
+
* writes; a suspended workspace is returned as suspended.
|
|
656
|
+
*
|
|
657
|
+
* A different Sandbox or claim is `KubernetesWorkspaceIdentityMismatchError`;
|
|
658
|
+
* a `resourceVersion` or `Ready` condition that moves while waiting is
|
|
659
|
+
* ordinary progress and never is. Running out of time is
|
|
660
|
+
* `KubernetesWorkspaceReadyTimeoutError`, and cancelling rejects with the
|
|
661
|
+
* signal's reason.
|
|
662
|
+
*/
|
|
663
|
+
export async function openKubernetesWorkspace(config, options) {
|
|
664
|
+
return await openWorkspaceOnCluster(kubernetesInternalConfig(config), options);
|
|
665
|
+
}
|
|
666
|
+
/**
|
|
667
|
+
* After a restart, what became of the workspace a host retained: `live`,
|
|
668
|
+
* `suspended`, `absent` or `replaced`. One GET-only pass; a different Sandbox
|
|
669
|
+
* or claim is the answer `replaced`, not an error, and a read that did not
|
|
670
|
+
* answer rejects rather than reading as `absent`.
|
|
671
|
+
*/
|
|
672
|
+
export async function reconcileKubernetesWorkspace(config, options) {
|
|
673
|
+
return await reconcileWorkspaceOnCluster(kubernetesInternalConfig(config), options);
|
|
674
|
+
}
|
|
581
675
|
/**
|
|
582
676
|
* Recover a crashed host's task-path claims: LIST every `SandboxClaim`
|
|
583
677
|
* carrying `options.labelSelector`, `DELETE` each, and report what was
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@namzu/sandbox",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "28.0.0",
|
|
4
4
|
"description": "Pluggable sandbox provider for @namzu/sdk. Process-level isolation (bubblewrap on Linux, Seatbelt on macOS, via @anthropic-ai/sandbox-runtime) for developer dev loops; container-level isolation (HTTP worker + a loopback-bound egress proxy that allows by resolved address and brokers outbound credentials so they never enter the sandbox) for multi-tenant production. Backend selected at construction time; the SDK consumes both through the same SandboxProvider interface.",
|
|
5
5
|
"license": "FSL-1.1-MIT",
|
|
6
6
|
"engines": {
|
|
@@ -52,7 +52,7 @@
|
|
|
52
52
|
"provenance": true
|
|
53
53
|
},
|
|
54
54
|
"peerDependencies": {
|
|
55
|
-
"@namzu/sdk": "^
|
|
55
|
+
"@namzu/sdk": "^53.0.0"
|
|
56
56
|
},
|
|
57
57
|
"dependencies": {
|
|
58
58
|
"ws": "8.21.3"
|
|
@@ -63,7 +63,7 @@
|
|
|
63
63
|
"typescript": "^5.5.0",
|
|
64
64
|
"vitest": "^4.1.11",
|
|
65
65
|
"yaml": "^2.9.0",
|
|
66
|
-
"@namzu/sdk": "^
|
|
66
|
+
"@namzu/sdk": "^53.0.0"
|
|
67
67
|
},
|
|
68
68
|
"scripts": {
|
|
69
69
|
"build": "tsc --build",
|
|
@@ -459,6 +459,48 @@ export interface KillSessionRequest {
|
|
|
459
459
|
*/
|
|
460
460
|
export const QUIESCE_FEATURE = 'quiesce'
|
|
461
461
|
|
|
462
|
+
/**
|
|
463
|
+
* The `healthz` feature string an agent advertises when its `quiesce` op
|
|
464
|
+
* accepts `{ idleOnly: true }`: look at the guest, signal and mark nothing,
|
|
465
|
+
* and refuse with `quiesce_busy` unless the whole PID namespace is idle.
|
|
466
|
+
*
|
|
467
|
+
* It is its own string, not implied by {@link QUIESCE_FEATURE}, because an
|
|
468
|
+
* agent that predates it IGNORES unknown body fields: sent `idleOnly` it
|
|
469
|
+
* would run the stopping quiesce and kill the work the caller asked not to
|
|
470
|
+
* touch. A host therefore sends the field only to a guest that advertised
|
|
471
|
+
* this, and an older guest (which advertises `quiesce` alone) keeps working
|
|
472
|
+
* for the stopping mode unchanged.
|
|
473
|
+
*/
|
|
474
|
+
export const QUIESCE_IDLE_FEATURE = 'quiesce-idle'
|
|
475
|
+
|
|
476
|
+
/**
|
|
477
|
+
* The `healthz` feature string an agent advertises when it serves the
|
|
478
|
+
* `pinned` op: one ordinary request wrapped with the guest boot id the
|
|
479
|
+
* caller expects, dispatched only if the agent's own id equals it.
|
|
480
|
+
*
|
|
481
|
+
* A distinct op rather than an extra field on every request, because an
|
|
482
|
+
* agent that predates it IGNORES unknown fields and would serve a pinned
|
|
483
|
+
* request on whatever guest it happens to be, which is precisely what a
|
|
484
|
+
* pin exists to prevent. An older agent answers `unknown_op: pinned`
|
|
485
|
+
* instead, and a host that checked this feature first never sends it.
|
|
486
|
+
*/
|
|
487
|
+
export const PINNED_GUEST_FEATURE = 'pinned-guest'
|
|
488
|
+
|
|
489
|
+
/** What the `pinned` op carries: the expected guest and the request to run on it. */
|
|
490
|
+
export interface PinnedRequest {
|
|
491
|
+
/** The agent process the caller authenticated. Refused when the agent's own id differs. */
|
|
492
|
+
readonly expectedGuestBootId: string
|
|
493
|
+
/** One ordinary request. Never `pinned` or `healthz`. */
|
|
494
|
+
readonly request: { readonly op: string; readonly body?: unknown }
|
|
495
|
+
}
|
|
496
|
+
|
|
497
|
+
/**
|
|
498
|
+
* The refusal an agent answers a pinned request with when its own boot id
|
|
499
|
+
* is not the one expected. The `error` text is `guest_mismatch:<its id>` and
|
|
500
|
+
* the same id is on the frame's `guestBootId`; nothing was dispatched.
|
|
501
|
+
*/
|
|
502
|
+
export const GUEST_MISMATCH_REFUSAL = 'guest_mismatch'
|
|
503
|
+
|
|
462
504
|
/** Stop everything. `graceMs` bounds ONE round's SIGTERM window. */
|
|
463
505
|
export interface QuiesceRequest {
|
|
464
506
|
/**
|
|
@@ -468,6 +510,11 @@ export interface QuiesceRequest {
|
|
|
468
510
|
* 1000ms. It is NOT the pod's `terminationGracePeriodSeconds`.
|
|
469
511
|
*/
|
|
470
512
|
readonly graceMs?: number
|
|
513
|
+
/**
|
|
514
|
+
* Only look: signal nothing, mark nothing, wait for nothing. Requires
|
|
515
|
+
* {@link QUIESCE_IDLE_FEATURE}, and cannot be combined with `graceMs`.
|
|
516
|
+
*/
|
|
517
|
+
readonly idleOnly?: boolean
|
|
471
518
|
}
|
|
472
519
|
|
|
473
520
|
/**
|
|
@@ -83,6 +83,7 @@ import {
|
|
|
83
83
|
type GuestReplyIdentity,
|
|
84
84
|
type KillSessionRequest,
|
|
85
85
|
MIN_STREAM_HEARTBEAT_MS,
|
|
86
|
+
type PinnedRequest,
|
|
86
87
|
type QuiesceRequest,
|
|
87
88
|
READ_FILE_STREAM_FEATURE,
|
|
88
89
|
type ReadFileRequest,
|
|
@@ -243,6 +244,10 @@ export type AgentRequest = (
|
|
|
243
244
|
// whose `healthz` named {@link FLUSH_FEATURE}.
|
|
244
245
|
| { readonly op: 'flush'; readonly body: FlushRequest }
|
|
245
246
|
| { readonly op: 'healthz' }
|
|
247
|
+
// The pin envelope. Never built by a caller: {@link
|
|
248
|
+
// VsockTransportOptions.pinnedGuestBootId} wraps every other request in
|
|
249
|
+
// it at the one point a credential is folded in.
|
|
250
|
+
| { readonly op: 'pinned'; readonly body: PinnedRequest }
|
|
246
251
|
) &
|
|
247
252
|
// Intersected, not repeated per arm: the credential is orthogonal to
|
|
248
253
|
// the op, and every arm may carry it. Optional and additive, so a host
|
|
@@ -441,6 +446,16 @@ export interface VsockTransportOptions {
|
|
|
441
446
|
* bind token — cannot change when the container is restarted in place.
|
|
442
447
|
*/
|
|
443
448
|
readonly onGuestReply?: (reply: GuestReplyIdentity) => void
|
|
449
|
+
/**
|
|
450
|
+
* Pin every request this transport sends (every op but `healthz`) to the
|
|
451
|
+
* guest agent process with this boot id: each is wrapped in the `pinned`
|
|
452
|
+
* op, which the agent refuses before dispatch when its own id differs.
|
|
453
|
+
*
|
|
454
|
+
* The caller must have checked {@link PINNED_GUEST_FEATURE} first: an
|
|
455
|
+
* older agent answers `unknown_op: pinned` and runs nothing, which is the
|
|
456
|
+
* safe failure, but it is not a message anyone should have to decode.
|
|
457
|
+
*/
|
|
458
|
+
readonly pinnedGuestBootId?: string
|
|
444
459
|
/**
|
|
445
460
|
* The largest `writeFile` body this transport will accept, in raw
|
|
446
461
|
* bytes. Default {@link DEFAULT_MAX_WRITE_FILE_BYTES} (1 GiB).
|
|
@@ -915,6 +930,7 @@ export class VsockAgentTransport {
|
|
|
915
930
|
private guestFeatureList?: readonly string[]
|
|
916
931
|
private readonly permanentDialFailure?: (error: unknown) => boolean
|
|
917
932
|
private readonly onExecTiming?: (timing: FirecrackerTransportTiming) => void
|
|
933
|
+
private readonly pinnedGuestBootId?: string
|
|
918
934
|
|
|
919
935
|
constructor(handle: SandboxAgentHandle, options: VsockTransportOptions = {}) {
|
|
920
936
|
this.handle = handle
|
|
@@ -935,6 +951,9 @@ export class VsockAgentTransport {
|
|
|
935
951
|
}
|
|
936
952
|
this.permanentDialFailure = options.permanentDialFailure
|
|
937
953
|
this.onExecTiming = options.onExecTiming
|
|
954
|
+
if (options.pinnedGuestBootId !== undefined) {
|
|
955
|
+
this.pinnedGuestBootId = options.pinnedGuestBootId
|
|
956
|
+
}
|
|
938
957
|
}
|
|
939
958
|
|
|
940
959
|
/**
|
|
@@ -1271,6 +1290,18 @@ export class VsockAgentTransport {
|
|
|
1271
1290
|
* a request built for those arms passes through unchanged.
|
|
1272
1291
|
*/
|
|
1273
1292
|
private withCredential(req: AgentRequest): AgentRequest {
|
|
1293
|
+
const pinned = this.pinnedGuestBootId
|
|
1294
|
+
if (pinned !== undefined && req.op !== 'healthz' && req.op !== 'pinned') {
|
|
1295
|
+
const { token: _token, op, ...rest } = req as AgentRequest & { token?: string }
|
|
1296
|
+
const inner = { op, ...('body' in rest ? { body: (rest as { body?: unknown }).body } : {}) }
|
|
1297
|
+
const wrapped: AgentRequest = {
|
|
1298
|
+
op: 'pinned',
|
|
1299
|
+
body: { expectedGuestBootId: pinned, request: inner },
|
|
1300
|
+
}
|
|
1301
|
+
return this.handle.kind === 'tcp' && this.handle.token !== undefined
|
|
1302
|
+
? { ...wrapped, token: this.handle.token }
|
|
1303
|
+
: wrapped
|
|
1304
|
+
}
|
|
1274
1305
|
if (this.handle.kind === 'tcp' && this.handle.token !== undefined) {
|
|
1275
1306
|
return { ...req, token: this.handle.token }
|
|
1276
1307
|
}
|
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* What an allocated workspace carries, and what it takes to refuse one that
|
|
3
|
+
* is not the allocation a host expects.
|
|
4
|
+
*
|
|
5
|
+
* `allocateKubernetesWorkspace` records three facts on the Sandbox in the one
|
|
6
|
+
* create request — see {@link ALLOCATION_ID_ANNOTATION_KEY},
|
|
7
|
+
* {@link ALLOCATION_SCOPE_ANNOTATION_KEY} and
|
|
8
|
+
* {@link EXECUTION_PROFILE_ANNOTATION_KEY}. A host that persisted the same
|
|
9
|
+
* three before the create can later hand them back as `expectedAllocation`
|
|
10
|
+
* to `inspectKubernetesWorkspace`, `openKubernetesWorkspace` and
|
|
11
|
+
* `reconcileKubernetesWorkspace`, and a Sandbox standing under the name that
|
|
12
|
+
* does not carry them is refused with
|
|
13
|
+
* {@link KubernetesWorkspaceAllocationMismatchError}, whoever made it.
|
|
14
|
+
*
|
|
15
|
+
* This file imports nothing from the workspace modules: both the read side
|
|
16
|
+
* (`workspace-observe.ts`) and the create side (`workspace-allocate.ts`) need
|
|
17
|
+
* it, and neither may import the other.
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
import {
|
|
21
|
+
POD_TEMPLATE_HASH_ANNOTATION_KEY,
|
|
22
|
+
type SandboxResource,
|
|
23
|
+
canonicalFingerprint,
|
|
24
|
+
readAllocation,
|
|
25
|
+
} from './objects.js'
|
|
26
|
+
|
|
27
|
+
/** The longest allocation id or scope fingerprint accepted, in UTF-16 units. */
|
|
28
|
+
export const MAX_ALLOCATION_FIELD_LENGTH = 1024
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* The allocation a host expects a workspace to belong to.
|
|
32
|
+
*
|
|
33
|
+
* - `id` — the host's immutable allocation id.
|
|
34
|
+
* - `scopeFingerprint` — the host's opaque scope string. Compared for
|
|
35
|
+
* equality only.
|
|
36
|
+
* - `executionProfile` — optional. The fingerprint
|
|
37
|
+
* `resolveKubernetesExecutionProfile` returned. On `allocate` it is what
|
|
38
|
+
* the profile resolved NOW must still equal (a profile that moved since
|
|
39
|
+
* the host persisted it refuses the create); on `inspect`, `open` and
|
|
40
|
+
* `reconcile` it is compared with the annotation stored at creation.
|
|
41
|
+
* Omitted on the read side, the profile annotation is not compared.
|
|
42
|
+
*/
|
|
43
|
+
export interface KubernetesWorkspaceAllocation {
|
|
44
|
+
readonly id: string
|
|
45
|
+
readonly scopeFingerprint: string
|
|
46
|
+
readonly executionProfile?: string
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
/** The allocation a workspace reports; fields are `undefined` where the annotation is absent. */
|
|
50
|
+
export interface KubernetesObservedAllocation {
|
|
51
|
+
readonly id: string | undefined
|
|
52
|
+
readonly scopeFingerprint: string | undefined
|
|
53
|
+
readonly executionProfile: string | undefined
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* Which part of the expected allocation did not hold.
|
|
58
|
+
*
|
|
59
|
+
* - `allocation-id`, `scope-fingerprint`, `execution-profile` — the
|
|
60
|
+
* annotation is absent or differs.
|
|
61
|
+
* - `template-content` — the pod template the Sandbox carries now does not
|
|
62
|
+
* hash to the revision annotation written with it (the copy was edited
|
|
63
|
+
* after creation), or that annotation is gone.
|
|
64
|
+
*/
|
|
65
|
+
export type KubernetesWorkspaceAllocationMismatch =
|
|
66
|
+
| 'allocation-id'
|
|
67
|
+
| 'scope-fingerprint'
|
|
68
|
+
| 'execution-profile'
|
|
69
|
+
| 'template-content'
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* A Sandbox stands under the workspace's name and is not the allocation the
|
|
73
|
+
* host expected: its annotations differ, or its copied pod template is not
|
|
74
|
+
* the content that was recorded. Nothing was created, woken or written to
|
|
75
|
+
* reach this. Terminal: retrying finds the same object.
|
|
76
|
+
*/
|
|
77
|
+
export class KubernetesWorkspaceAllocationMismatchError extends Error {
|
|
78
|
+
override readonly name = 'KubernetesWorkspaceAllocationMismatchError'
|
|
79
|
+
|
|
80
|
+
constructor(
|
|
81
|
+
readonly workspaceId: string,
|
|
82
|
+
readonly sandboxName: string,
|
|
83
|
+
readonly mismatch: KubernetesWorkspaceAllocationMismatch,
|
|
84
|
+
/** What the host expected for the thing that differs. */
|
|
85
|
+
readonly expected: string | undefined,
|
|
86
|
+
/** What the object carries; `undefined` when the annotation is absent. */
|
|
87
|
+
readonly actual: string | undefined,
|
|
88
|
+
) {
|
|
89
|
+
super(
|
|
90
|
+
`kubernetes: workspace ${workspaceId} (Sandbox ${sandboxName}) is not the allocation this host expected — ${mismatch}: expected ${JSON.stringify(
|
|
91
|
+
expected,
|
|
92
|
+
)}, found ${JSON.stringify(
|
|
93
|
+
actual,
|
|
94
|
+
)}. Nothing was created, woken or written. Whatever stands under the name was not allocated for this request, or was altered after it was.`,
|
|
95
|
+
)
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
/** A Sandbox already stands under the workspace's name; `allocate` never adopts it. */
|
|
100
|
+
export class KubernetesWorkspaceAllocationConflictError extends Error {
|
|
101
|
+
override readonly name = 'KubernetesWorkspaceAllocationConflictError'
|
|
102
|
+
|
|
103
|
+
constructor(
|
|
104
|
+
readonly workspaceId: string,
|
|
105
|
+
readonly sandboxName: string,
|
|
106
|
+
) {
|
|
107
|
+
super(
|
|
108
|
+
`kubernetes: cannot allocate workspace ${workspaceId}: a Sandbox named ${sandboxName} already exists. allocateKubernetesWorkspace never adopts, wakes or modifies an existing object, so nothing was changed. If an earlier allocate of this same allocation got no reply, find out with recoverKubernetesWorkspaceAllocation (read-only); otherwise the name belongs to something else.`,
|
|
109
|
+
)
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
/**
|
|
114
|
+
* The execution profile resolved now is not the one the host captured, so
|
|
115
|
+
* nothing was created. The host's persisted record is stale (a template, an
|
|
116
|
+
* overlay or a policy changed) and has to be captured again on purpose.
|
|
117
|
+
*/
|
|
118
|
+
export class KubernetesExecutionProfileDriftError extends Error {
|
|
119
|
+
override readonly name = 'KubernetesExecutionProfileDriftError'
|
|
120
|
+
|
|
121
|
+
constructor(
|
|
122
|
+
readonly workspaceId: string,
|
|
123
|
+
readonly expected: string,
|
|
124
|
+
readonly actual: string,
|
|
125
|
+
) {
|
|
126
|
+
super(
|
|
127
|
+
`kubernetes: cannot allocate workspace ${workspaceId}: the execution profile resolves to ${actual} now, but the allocation captured ${expected}. Nothing was created. Resolve the profile again, persist it, and allocate against the new one.`,
|
|
128
|
+
)
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
/** Refuse an allocation that cannot be stored or compared as given. */
|
|
133
|
+
export function assertAllocation(allocation: KubernetesWorkspaceAllocation, where: string): void {
|
|
134
|
+
const check = (label: string, value: unknown): void => {
|
|
135
|
+
if (typeof value !== 'string' || value === '' || value.length > MAX_ALLOCATION_FIELD_LENGTH) {
|
|
136
|
+
throw new TypeError(
|
|
137
|
+
`kubernetes: ${where} needs ${label} to be a non-empty string of at most ${MAX_ALLOCATION_FIELD_LENGTH} characters, got ${
|
|
138
|
+
typeof value === 'string' ? `${value.length} characters` : typeof value
|
|
139
|
+
}.`,
|
|
140
|
+
)
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
if (typeof allocation !== 'object' || allocation === null) {
|
|
144
|
+
throw new TypeError(`kubernetes: ${where} needs an allocation: { id, scopeFingerprint }.`)
|
|
145
|
+
}
|
|
146
|
+
check('allocation.id', allocation.id)
|
|
147
|
+
check('allocation.scopeFingerprint', allocation.scopeFingerprint)
|
|
148
|
+
if (allocation.executionProfile !== undefined) {
|
|
149
|
+
check('allocation.executionProfile', allocation.executionProfile)
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
/** What the Sandbox's annotations say its allocation is. */
|
|
154
|
+
export function observedAllocation(sandbox: SandboxResource): KubernetesObservedAllocation {
|
|
155
|
+
return readAllocation(sandbox.metadata)
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
/**
|
|
159
|
+
* The first way `sandbox` is not the expected allocation, or `undefined`.
|
|
160
|
+
*
|
|
161
|
+
* Order: id, scope, profile (when expected), then the copied template. The
|
|
162
|
+
* template check recomputes the canonical hash of the `spec.podTemplate` the
|
|
163
|
+
* Sandbox carries and compares it with the revision annotation written in the
|
|
164
|
+
* same create — it detects a copy edited afterwards, and it does not compare
|
|
165
|
+
* against the SandboxTemplate as it is now (a template edit that reaches
|
|
166
|
+
* only later workspaces is not drift of THIS one).
|
|
167
|
+
*/
|
|
168
|
+
export function firstAllocationMismatch(
|
|
169
|
+
sandbox: SandboxResource,
|
|
170
|
+
expected: KubernetesWorkspaceAllocation,
|
|
171
|
+
): { kind: KubernetesWorkspaceAllocationMismatch; expected?: string; actual?: string } | undefined {
|
|
172
|
+
const actual = readAllocation(sandbox.metadata)
|
|
173
|
+
const differs = (
|
|
174
|
+
kind: KubernetesWorkspaceAllocationMismatch,
|
|
175
|
+
want: string,
|
|
176
|
+
have: string | undefined,
|
|
177
|
+
) => ({ kind, expected: want, ...(have !== undefined ? { actual: have } : {}) })
|
|
178
|
+
if (actual.id !== expected.id) return differs('allocation-id', expected.id, actual.id)
|
|
179
|
+
if (actual.scopeFingerprint !== expected.scopeFingerprint) {
|
|
180
|
+
return differs('scope-fingerprint', expected.scopeFingerprint, actual.scopeFingerprint)
|
|
181
|
+
}
|
|
182
|
+
if (
|
|
183
|
+
expected.executionProfile !== undefined &&
|
|
184
|
+
actual.executionProfile !== expected.executionProfile
|
|
185
|
+
) {
|
|
186
|
+
return differs('execution-profile', expected.executionProfile, actual.executionProfile)
|
|
187
|
+
}
|
|
188
|
+
const recorded = sandbox.metadata?.annotations?.[POD_TEMPLATE_HASH_ANNOTATION_KEY]
|
|
189
|
+
const podTemplate = sandbox.spec?.podTemplate
|
|
190
|
+
const current = podTemplate === undefined ? undefined : canonicalFingerprint(podTemplate)
|
|
191
|
+
if (recorded === undefined || current !== recorded) {
|
|
192
|
+
return {
|
|
193
|
+
kind: 'template-content',
|
|
194
|
+
...(recorded !== undefined ? { expected: recorded } : {}),
|
|
195
|
+
...(current !== undefined ? { actual: current } : {}),
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
return undefined
|
|
199
|
+
}
|