@namzu/sandbox 26.0.0 → 27.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.
Files changed (83) hide show
  1. package/CHANGELOG.md +47 -0
  2. package/README.md +20 -7
  3. package/dist/backends/firecracker/protocol.d.ts +46 -0
  4. package/dist/backends/firecracker/protocol.d.ts.map +1 -1
  5. package/dist/backends/firecracker/protocol.js +31 -0
  6. package/dist/backends/firecracker/protocol.js.map +1 -1
  7. package/dist/backends/firecracker/transport.d.ts +15 -1
  8. package/dist/backends/firecracker/transport.d.ts.map +1 -1
  9. package/dist/backends/firecracker/transport.js +16 -0
  10. package/dist/backends/firecracker/transport.js.map +1 -1
  11. package/dist/backends/kubernetes/allocation.d.ts +115 -0
  12. package/dist/backends/kubernetes/allocation.d.ts.map +1 -0
  13. package/dist/backends/kubernetes/allocation.js +130 -0
  14. package/dist/backends/kubernetes/allocation.js.map +1 -0
  15. package/dist/backends/kubernetes/egress-policy.d.ts +111 -35
  16. package/dist/backends/kubernetes/egress-policy.d.ts.map +1 -1
  17. package/dist/backends/kubernetes/egress-policy.js +81 -41
  18. package/dist/backends/kubernetes/egress-policy.js.map +1 -1
  19. package/dist/backends/kubernetes/identity.d.ts +129 -0
  20. package/dist/backends/kubernetes/identity.d.ts.map +1 -1
  21. package/dist/backends/kubernetes/identity.js +150 -0
  22. package/dist/backends/kubernetes/identity.js.map +1 -1
  23. package/dist/backends/kubernetes/index.d.ts +23 -1
  24. package/dist/backends/kubernetes/index.d.ts.map +1 -1
  25. package/dist/backends/kubernetes/index.js +22 -3
  26. package/dist/backends/kubernetes/index.js.map +1 -1
  27. package/dist/backends/kubernetes/objects.d.ts +76 -0
  28. package/dist/backends/kubernetes/objects.d.ts.map +1 -1
  29. package/dist/backends/kubernetes/objects.js +61 -0
  30. package/dist/backends/kubernetes/objects.js.map +1 -1
  31. package/dist/backends/kubernetes/per-sandbox-fence.d.ts +194 -0
  32. package/dist/backends/kubernetes/per-sandbox-fence.d.ts.map +1 -0
  33. package/dist/backends/kubernetes/per-sandbox-fence.js +522 -0
  34. package/dist/backends/kubernetes/per-sandbox-fence.js.map +1 -0
  35. package/dist/backends/kubernetes/per-sandbox-policy.d.ts +45 -3
  36. package/dist/backends/kubernetes/per-sandbox-policy.d.ts.map +1 -1
  37. package/dist/backends/kubernetes/per-sandbox-policy.js +98 -8
  38. package/dist/backends/kubernetes/per-sandbox-policy.js.map +1 -1
  39. package/dist/backends/kubernetes/sandbox.d.ts +4 -9
  40. package/dist/backends/kubernetes/sandbox.d.ts.map +1 -1
  41. package/dist/backends/kubernetes/sandbox.js +4 -9
  42. package/dist/backends/kubernetes/sandbox.js.map +1 -1
  43. package/dist/backends/kubernetes/transport.d.ts +108 -1
  44. package/dist/backends/kubernetes/transport.d.ts.map +1 -1
  45. package/dist/backends/kubernetes/transport.js +150 -6
  46. package/dist/backends/kubernetes/transport.js.map +1 -1
  47. package/dist/backends/kubernetes/workspace-allocate.d.ts +206 -0
  48. package/dist/backends/kubernetes/workspace-allocate.d.ts.map +1 -0
  49. package/dist/backends/kubernetes/workspace-allocate.js +332 -0
  50. package/dist/backends/kubernetes/workspace-allocate.js.map +1 -0
  51. package/dist/backends/kubernetes/workspace-observe.d.ts +187 -0
  52. package/dist/backends/kubernetes/workspace-observe.d.ts.map +1 -0
  53. package/dist/backends/kubernetes/workspace-observe.js +343 -0
  54. package/dist/backends/kubernetes/workspace-observe.js.map +1 -0
  55. package/dist/backends/kubernetes/workspace-per-sandbox.d.ts +94 -0
  56. package/dist/backends/kubernetes/workspace-per-sandbox.d.ts.map +1 -0
  57. package/dist/backends/kubernetes/workspace-per-sandbox.js +119 -0
  58. package/dist/backends/kubernetes/workspace-per-sandbox.js.map +1 -0
  59. package/dist/backends/kubernetes/workspace.d.ts +139 -5
  60. package/dist/backends/kubernetes/workspace.d.ts.map +1 -1
  61. package/dist/backends/kubernetes/workspace.js +434 -36
  62. package/dist/backends/kubernetes/workspace.js.map +1 -1
  63. package/dist/index.d.ts +83 -7
  64. package/dist/index.d.ts.map +1 -1
  65. package/dist/index.js +100 -6
  66. package/dist/index.js.map +1 -1
  67. package/package.json +3 -3
  68. package/src/backends/firecracker/protocol.ts +47 -0
  69. package/src/backends/firecracker/transport.ts +31 -0
  70. package/src/backends/kubernetes/allocation.ts +199 -0
  71. package/src/backends/kubernetes/egress-policy.ts +165 -42
  72. package/src/backends/kubernetes/identity.ts +210 -0
  73. package/src/backends/kubernetes/index.ts +61 -2
  74. package/src/backends/kubernetes/objects.ts +98 -0
  75. package/src/backends/kubernetes/per-sandbox-fence.ts +800 -0
  76. package/src/backends/kubernetes/per-sandbox-policy.ts +152 -17
  77. package/src/backends/kubernetes/sandbox.ts +4 -9
  78. package/src/backends/kubernetes/transport.ts +203 -4
  79. package/src/backends/kubernetes/workspace-allocate.ts +607 -0
  80. package/src/backends/kubernetes/workspace-observe.ts +590 -0
  81. package/src/backends/kubernetes/workspace-per-sandbox.ts +179 -0
  82. package/src/backends/kubernetes/workspace.ts +655 -34
  83. package/src/index.ts +193 -3
@@ -0,0 +1,119 @@
1
+ /**
2
+ * Per-sandbox egress on a workspace: the pieces `createKubernetesWorkspace`,
3
+ * `allocateKubernetesWorkspace` and a workspace handle share.
4
+ *
5
+ * ## The shape, and where it differs from a task sandbox
6
+ *
7
+ * - **Label.** The per-sandbox selector label rides on the workspace's
8
+ * directly created `Sandbox` pod template, composed by
9
+ * `composeAdditionalPodLabels` beside the egress profile. Its VALUE is the
10
+ * Sandbox's own name, `namzu-ws-<workspaceId>`: deterministic, known before
11
+ * the POST, and stable across a suspend and a resume, because a resume
12
+ * patches `operatingMode` and the pod template (labels included) is carried
13
+ * by the object, not by the pod.
14
+ * - **Owner.** The `Sandbox` itself. A policy names it in `ownerReferences`
15
+ * with its `metadata.uid`, so deleting the workspace (`destroy({ deleteDisk:
16
+ * true })`, `deleteKubernetesWorkspace`) lets the cluster's garbage
17
+ * collector remove every policy it owns. The default `destroy()` only
18
+ * suspends, keeps the object, and so keeps the policy.
19
+ * - **Name.** `namzu-sbx-<sandbox uid>`, the same rule as a task sandbox. The
20
+ * workspace NAME is deterministic and its uid is not, so a workspace deleted
21
+ * and created again under the same name selects by the same label value
22
+ * and owns a policy of a different name.
23
+ *
24
+ * ## Suspend and resume
25
+ *
26
+ * The behaviour is one rule, applied on every path that is about to run the
27
+ * workspace's pod: a resume, and an open of an existing workspace.
28
+ *
29
+ * 1. The admission fence is re-verified from scratch (never from a memo). A
30
+ * fence that is missing or would not enforce REFUSES the resume, before
31
+ * the patch: the workspace stays suspended, which is the only state that
32
+ * is safe without the fence, and nothing is written.
33
+ * 2. Every per-sandbox policy in the namespace that selects this workspace
34
+ * (name prefix `namzu-sbx-`, selector label value equal to the Sandbox's
35
+ * name) and that this Sandbox does not own (no `ownerReferences` entry of
36
+ * kind `Sandbox` with this name and the uid the cluster reports NOW) is
37
+ * deleted. Such a policy belongs to a workspace that was deleted and
38
+ * created again under the same name and has not been garbage-collected
39
+ * yet; left alone it would grant the new workspace what the old one's
40
+ * consent covered.
41
+ * 3. A policy this Sandbox owns is KEPT, unchanged. A suspend is not a
42
+ * revocation: the grant was admitted by the fence when it was written and
43
+ * the resumed pod carries the same label, so the policy applies to it
44
+ * again. A host that wants the grant gone calls `setNetworkPolicy({
45
+ * allowedHosts: [] })` (which deletes it) before it suspends.
46
+ *
47
+ * A freshly created workspace gets step 2 after the create reply, with the uid
48
+ * the reply carried.
49
+ *
50
+ * ## What is NOT proven here
51
+ *
52
+ * That any of it is enforced. Enforcement is the CNI's data plane: it needs a
53
+ * cluster running Cilium, the same as the task path.
54
+ */
55
+ import { perSandboxEgressLabelKey } from './egress-policy.js';
56
+ import { KubernetesAlreadyGoneError } from './k8s-client.js';
57
+ import { ciliumNetworkPolicyCollectionPath, ciliumNetworkPolicyPath } from './objects.js';
58
+ import { PER_SANDBOX_POLICY_NAME_PREFIX } from './per-sandbox-policy.js';
59
+ /** The profile variant a workspace with per-sandbox egress configured carries. */
60
+ export const KUBERNETES_PER_SANDBOX_PROFILE_VARIANT = 'core/no-network+per-sandbox';
61
+ /**
62
+ * The extra pod-label map a workspace named `sandboxName` contributes to
63
+ * `composeAdditionalPodLabels`, or `undefined` when `perSandbox` is not
64
+ * configured, which is what keeps that workspace's request log unchanged.
65
+ */
66
+ export function perSandboxWorkspaceLabels(egress, sandboxName) {
67
+ const key = perSandboxEgressLabelKey(egress);
68
+ return key === undefined ? undefined : { [key]: sandboxName };
69
+ }
70
+ /** `labels` without the per-sandbox key `extra` carries; `labels` itself when there is none. */
71
+ export function withoutPerSandboxLabel(labels, extra) {
72
+ if (extra === undefined)
73
+ return labels;
74
+ return Object.fromEntries(Object.entries(labels).filter(([key]) => !(key in extra)));
75
+ }
76
+ /**
77
+ * The names of the per-sandbox policies this workspace's label selects and
78
+ * its Sandbox does not own. Read only.
79
+ */
80
+ export async function findForeignPerSandboxPolicies(client, namespace, labelKey, sandboxName, ownerUid, signal) {
81
+ const list = await client.request('GET', ciliumNetworkPolicyCollectionPath(namespace), undefined, signal);
82
+ const foreign = [];
83
+ for (const item of list?.items ?? []) {
84
+ const name = item?.metadata?.name;
85
+ if (typeof name !== 'string' || !name.startsWith(PER_SANDBOX_POLICY_NAME_PREFIX))
86
+ continue;
87
+ if (item?.spec?.endpointSelector?.matchLabels?.[labelKey] !== sandboxName)
88
+ continue;
89
+ const owned = (item.metadata?.ownerReferences ?? []).some((ref) => ref?.kind === 'Sandbox' && ref.name === sandboxName && ref.uid === ownerUid);
90
+ if (!owned)
91
+ foreign.push(name);
92
+ }
93
+ return foreign;
94
+ }
95
+ /**
96
+ * Steps 1 and 2 of the resume rule above: prove the fence, then delete the
97
+ * policies that select this workspace and that its Sandbox does not own.
98
+ * Returns the names it deleted. Throws the fence's own refusal, having
99
+ * written nothing, when the fence does not verify.
100
+ */
101
+ export async function reverifyPerSandboxEgress(options) {
102
+ const { client, namespace, sandboxName, ownerUid, egress, fence, signal } = options;
103
+ await fence.assertApplied(signal);
104
+ const labelKey = perSandboxEgressLabelKey(egress);
105
+ if (labelKey === undefined)
106
+ return [];
107
+ const foreign = await findForeignPerSandboxPolicies(client, namespace, labelKey, sandboxName, ownerUid, signal);
108
+ for (const name of foreign) {
109
+ try {
110
+ await client.request('DELETE', ciliumNetworkPolicyPath(namespace, name), undefined, signal);
111
+ }
112
+ catch (err) {
113
+ if (!(err instanceof KubernetesAlreadyGoneError))
114
+ throw err;
115
+ }
116
+ }
117
+ return foreign;
118
+ }
119
+ //# sourceMappingURL=workspace-per-sandbox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace-per-sandbox.js","sourceRoot":"","sources":["../../../src/backends/kubernetes/workspace-per-sandbox.ts"],"names":[],"mappings":"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"}
@@ -157,10 +157,10 @@
157
157
  * arriving mid-transition awaits the one in progress instead of sending a
158
158
  * second request into the gap the deferred mark opens.
159
159
  */
160
- import type { Sandbox, SandboxDestroyOptions, SandboxExecResult, SandboxFileEntry, SandboxReadFileOptions, SandboxTcpConnectOptions, SandboxTcpConnection, SandboxWalkFilesOptions } from '@namzu/sdk';
160
+ import type { OpenTerminalOptions, Sandbox, SandboxDestroyOptions, SandboxExecOptions, SandboxExecResult, SandboxFileEntry, SandboxReadFileOptions, SandboxTcpConnectOptions, SandboxTcpConnection, SandboxWalkFilesOptions, TerminalSession } from '@namzu/sdk';
161
161
  import { type EgressProfileLabel } from './egress-policy.js';
162
- import { type KubernetesGuestEvidence, type KubernetesGuestRestart, type KubernetesWorkspaceIdentity } from './identity.js';
163
- import { type KubernetesBackendInternalConfig } from './index.js';
162
+ import { type KubernetesGuestEvidence, type KubernetesGuestRestart, type KubernetesPinnedGuestIdentity, type KubernetesWorkspaceExpectedIdentity, type KubernetesWorkspaceIdentity } from './identity.js';
163
+ import { type KubernetesBackendInternalConfig, type SandboxTemplateCopy } from './index.js';
164
164
  import { type SandboxPodTemplate, type SandboxVolumeClaimTemplate } from './objects.js';
165
165
  import { type KubernetesAttachExecutionOptions, type KubernetesAttachTerminalOptions, type KubernetesDetachedExecOptions, type KubernetesFlushReport, KubernetesFlushUnreachableError, KubernetesFlushUnsupportedError, type KubernetesOpenTerminalOptions, type KubernetesQuiesceReport, KubernetesQuiesceUnsupportedError, type KubernetesReadSessionOptions, type KubernetesSessionOutput, type KubernetesSessionSummary, type KubernetesSessionTerminal, type KubernetesStartDetachedOptions, type KubernetesWorkspaceTerminal } from './transport.js';
166
166
  /**
@@ -217,7 +217,7 @@ export declare class KubernetesWorkspaceMismatchError extends Error {
217
217
  /** The Sandbox found standing under this workspace's name. */
218
218
  readonly sandboxName: string;
219
219
  /** Which configured field the standing object disagrees with. */
220
- readonly field: 'sandboxTemplateName' | 'egressProfile' | 'runtimeClassName';
220
+ readonly field: 'sandboxTemplateName' | 'egressProfile' | 'perSandboxLabel' | 'runtimeClassName';
221
221
  /**
222
222
  * What the configuration asked for. `key=value` for `egressProfile`,
223
223
  * because the KEY is configurable too and the value alone would not
@@ -231,7 +231,7 @@ export declare class KubernetesWorkspaceMismatchError extends Error {
231
231
  /** The Sandbox found standing under this workspace's name. */
232
232
  sandboxName: string,
233
233
  /** Which configured field the standing object disagrees with. */
234
- field: 'sandboxTemplateName' | 'egressProfile' | 'runtimeClassName',
234
+ field: 'sandboxTemplateName' | 'egressProfile' | 'perSandboxLabel' | 'runtimeClassName',
235
235
  /**
236
236
  * What the configuration asked for. `key=value` for `egressProfile`,
237
237
  * because the KEY is configurable too and the value alone would not
@@ -350,6 +350,17 @@ export declare class KubernetesWorkspacePreconditionError extends Error {
350
350
  /** The annotation exactly as stored, when there is one. */
351
351
  storedAnnotation?: string | undefined);
352
352
  }
353
+ /**
354
+ * Refuse an epoch this backend cannot honour, at the entry point rather than
355
+ * at the request — the same place {@link resolveRequestTimeoutMs} refuses a
356
+ * timeout, and for the same reason: a configuration that will never work
357
+ * should be named where the caller can still see which call it came from.
358
+ *
359
+ * Non-negative because the stored value is compared as a number and written
360
+ * as a decimal string, and an integer because a fractional epoch would
361
+ * round-trip through the annotation as something other than what was passed.
362
+ */
363
+ export declare function assertHolderEpoch(epoch: number | undefined, where: string): number | undefined;
353
364
  /**
354
365
  * What a start that FAILED is allowed to do to the workspace it was starting
355
366
  * in.
@@ -467,6 +478,29 @@ export interface KubernetesWorkspaceTransitionOptions {
467
478
  * patch a failed start's cleanup sends.
468
479
  */
469
480
  readonly epoch?: number;
481
+ /**
482
+ * The exact Sandbox this call is about, by `metadata.uid` — what a host
483
+ * retained from {@link KubernetesWorkspace.identity} or
484
+ * {@link inspectKubernetesWorkspace}.
485
+ *
486
+ * The workspace id is a deterministic NAME: if the Sandbox the host meant
487
+ * was deleted and another created under the same name, the name now
488
+ * addresses a stranger's disk. With this set, the JSON patch of
489
+ * {@link suspendKubernetesWorkspace} carries `test /metadata/uid` and the
490
+ * DELETE of {@link deleteKubernetesWorkspace} carries `preconditions.uid`,
491
+ * so the API server refuses the write itself. A different owner rejects
492
+ * with {@link KubernetesWorkspaceReplacedError}, changes nothing and is
493
+ * never retried against the new owner; an object already gone still counts
494
+ * as deleted.
495
+ *
496
+ * Read by the two standalone verbs. A handle's own verbs ignore it and
497
+ * fence every write with the uid they bound, which they do without being
498
+ * asked. Omitted, a standalone call is conditioned on nothing about
499
+ * identity, as before. `volumeClaimUids` is not read here: the claims are
500
+ * owned by the Sandbox, so the uid is the identity a write can be
501
+ * conditioned on — check claims with {@link openKubernetesWorkspace}.
502
+ */
503
+ readonly expectedIdentity?: KubernetesWorkspaceExpectedIdentity;
470
504
  /**
471
505
  * Write the SandboxTemplate's CURRENT `spec.podTemplate` onto the
472
506
  * workspace as it wakes, keeping its disk — see
@@ -601,6 +635,25 @@ export interface KubernetesQuiesceOptions {
601
635
  * and still serving.
602
636
  */
603
637
  readonly graceMs?: number;
638
+ /**
639
+ * Look, and touch nothing. With `true` the call resolves (with a report
640
+ * of `rounds: 0`, `stopped: []`, scope `pid-namespace`) only when the
641
+ * guest confirms its whole PID namespace holds nothing but init and the
642
+ * agent, and otherwise rejects with `KubernetesQuiesceBusyError` naming
643
+ * what was seen. It never signals a process, never marks an execution
644
+ * and never waits, so a busy guest is exactly as it was and the caller
645
+ * can retry later.
646
+ *
647
+ * Needs the guest feature `quiesce-idle`: against an older agent the
648
+ * call rejects with `KubernetesQuiesceUnsupportedError` and sends
649
+ * nothing, because that agent would ignore this field and run the
650
+ * stopping quiesce. Cannot be combined with `graceMs` (a `TypeError`).
651
+ * An agent that cannot see its whole namespace, or cannot classify a
652
+ * `/proc` entry, rejects with `KubernetesQuiesceUnconfirmedError`
653
+ * rather than reporting idle. Captured when the call is made, before
654
+ * any await.
655
+ */
656
+ readonly onlyIfIdle?: boolean;
604
657
  readonly signal?: AbortSignal;
605
658
  }
606
659
  /**
@@ -704,6 +757,22 @@ export type KubernetesWorkspaceOrigin = 'created' | 'adopted-running' | 'resumed
704
757
  * contract that every other backend would then have to answer for, and no
705
758
  * `deleteDisk` field on the shared `SandboxDestroyOptions`.
706
759
  */
760
+ /**
761
+ * What {@link KubernetesWorkspace.pinGuest} returns: the data-plane subset of
762
+ * a workspace, every call authenticated against one guest.
763
+ */
764
+ export interface KubernetesPinnedGuest {
765
+ /** The identity this view is pinned to, frozen. */
766
+ readonly expected: KubernetesPinnedGuestIdentity;
767
+ exec(command: string, argv?: string[], options?: SandboxExecOptions): Promise<SandboxExecResult>;
768
+ readFile(path: string, options?: SandboxReadFileOptions): Promise<Buffer>;
769
+ writeFile(path: string, content: string | Buffer): Promise<void>;
770
+ listFiles(rootPath: string): Promise<readonly SandboxFileEntry[]>;
771
+ openTerminal(options: OpenTerminalOptions): Promise<TerminalSession>;
772
+ openTcpConnection(options: SandboxTcpConnectOptions): Promise<SandboxTcpConnection>;
773
+ /** As {@link KubernetesWorkspace.quiesce}, without the lifecycle queue: it is the guest's, not the workspace's. */
774
+ quiesce(options?: KubernetesQuiesceOptions): Promise<KubernetesQuiesceReport>;
775
+ }
707
776
  export interface KubernetesWorkspace extends Sandbox {
708
777
  /**
709
778
  * How this handle came by its workspace — see
@@ -993,8 +1062,38 @@ export interface KubernetesWorkspace extends Sandbox {
993
1062
  * `KubernetesQuiesceUnconfirmedError` when a process would not stop (the
994
1063
  * message names its pid), and with `KubernetesQuiesceUnsupportedError`
995
1064
  * against an image whose agent predates the op.
1065
+ *
1066
+ * `{ onlyIfIdle: true }` is the read-only variant: see
1067
+ * {@link KubernetesQuiesceOptions.onlyIfIdle}. It rejects with
1068
+ * `KubernetesQuiesceBusyError` when anything is running.
996
1069
  */
997
1070
  quiesce(options?: KubernetesQuiesceOptions): Promise<KubernetesQuiesceReport>;
1071
+ /**
1072
+ * A non-owning view of this workspace that talks ONLY to the guest the
1073
+ * caller authenticated, and refuses (never rebinds) if it changed.
1074
+ *
1075
+ * `expected` names the Sandbox, the pod and the agent process
1076
+ * ({@link KubernetesPinnedGuestIdentity}); read them off `identity` after
1077
+ * a call the guest answered. A missing or empty field throws
1078
+ * `KubernetesPinIncompleteError` here, synchronously.
1079
+ *
1080
+ * Every call on the view first compares `identity` with `expected` and
1081
+ * refuses with `KubernetesGuestPinRefusedError` (`identity-changed`)
1082
+ * before dialing; then it sends the request inside the guest agent's
1083
+ * `pinned` envelope, which the agent compares with its own boot id BEFORE
1084
+ * dispatch, so a guest that is not the pinned one runs nothing
1085
+ * (`guest-replaced`, carrying the id of the agent that refused). A guest
1086
+ * agent that does not advertise `pinned-guest` refuses the call
1087
+ * (`guest-unsupported`) instead of serving it unpinned. A fenced agent
1088
+ * that IS the pinned one answers `KubernetesAgentRetiringError`, with its
1089
+ * id on `guestBootId`.
1090
+ *
1091
+ * The view owns nothing: it has no `destroy`, `suspend` or `resume`, never
1092
+ * retires the pod, and a later `suspend()` of this workspace makes its
1093
+ * calls refuse. It reads its pinned values once; mutating `expected`
1094
+ * afterwards changes nothing.
1095
+ */
1096
+ pinGuest(expected: KubernetesPinnedGuestIdentity): KubernetesPinnedGuest;
998
1097
  /**
999
1098
  * Put everything this workspace has written onto its disk, now.
1000
1099
  *
@@ -1338,6 +1437,8 @@ export declare function assertBlockModeWorkspaceDisk(source: string, podTemplate
1338
1437
  export declare function assertAdoptedWorkspaceMatchesConfig(sandboxName: string, namespace: string, podTemplate: SandboxPodTemplate | undefined, expected: {
1339
1438
  readonly sandboxTemplateName: string;
1340
1439
  readonly profile?: EgressProfileLabel;
1440
+ /** The per-sandbox selector label the configuration stamps, key and value. */
1441
+ readonly perSandboxLabel?: EgressProfileLabel;
1341
1442
  readonly runtimeClassName?: string;
1342
1443
  }): void;
1343
1444
  /**
@@ -1364,6 +1465,39 @@ export declare function assertAdoptedWorkspaceMatchesConfig(sandboxName: string,
1364
1465
  * name and nothing reaps for them — see the docs page.
1365
1466
  */
1366
1467
  export declare function createKubernetesWorkspace(config: KubernetesBackendInternalConfig, options: KubernetesWorkspaceOptions): Promise<KubernetesWorkspace>;
1468
+ /**
1469
+ * The pod template a refresh would write, and the revision it stamps beside
1470
+ * it.
1471
+ *
1472
+ * Built once per call and carried as a pair on purpose: the hash is taken
1473
+ * over the template AFTER this backend's overlays, so computing it anywhere
1474
+ * but next to the object it describes is how `templateCurrent` starts
1475
+ * reporting drift that does not exist.
1476
+ */
1477
+ export interface PodTemplateRefresh {
1478
+ readonly podTemplate: SandboxPodTemplate;
1479
+ readonly hash: string;
1480
+ /**
1481
+ * The disks the template declares. Never written — they are CEL-immutable
1482
+ * on a standing Sandbox and are not in the patch — and carried only so
1483
+ * {@link assertRefreshedTemplateClaimsTheSameDisks} can refuse a template
1484
+ * whose disks this workspace cannot have.
1485
+ */
1486
+ readonly volumeClaimTemplates?: readonly SandboxVolumeClaimTemplate[];
1487
+ }
1488
+ /**
1489
+ * The overlays of `buildSandboxBody`'s create body, plus their revision.
1490
+ *
1491
+ * `podLabels` is `composeAdditionalPodLabels`'s map — the egress profile
1492
+ * today — and it is an overlay like the other two rather than an extra: the
1493
+ * patch this feeds replaces `/spec/podTemplate` whole, so a refresh that left
1494
+ * it out would REMOVE the profile label from a workspace created with it. The
1495
+ * replacement pod would come up selected by no per-profile policy, on a path
1496
+ * where nothing re-reads the label, and the hash would disagree with what
1497
+ * every create POSTs, so `templateCurrent` would report drift that no refresh
1498
+ * could clear.
1499
+ */
1500
+ export declare function buildPodTemplateRefresh(template: SandboxTemplateCopy, sandboxTemplateName: string, runtimeClassName?: string, podLabels?: Readonly<Record<string, string>>): PodTemplateRefresh;
1367
1501
  /**
1368
1502
  * One workspace as an INVENTORY reads it: enough to decide what to do with
1369
1503
  * it, and not one field that required waking it up.
@@ -1 +1 @@
1
- {"version":3,"file":"workspace.d.ts","sourceRoot":"","sources":["../../../src/backends/kubernetes/workspace.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workspace.d.ts","sourceRoot":"","sources":["../../../src/backends/kubernetes/workspace.ts"],"names":[],"mappings":"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"}