@calltelemetry/ct-lab-mcp 0.8.86 → 0.8.87

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 CHANGED
@@ -94,6 +94,7 @@ than use the legacy Node VMID/name slot state when the bridge is unavailable.
94
94
  - **Remote Appliance CLI Control**: Mediated execution of `cli.sh` commands over SSH (port 2222) for status inspection, health diagnostics, Ecto migrations, table vacuums, and container logs.
95
95
  - **Leased Remote Development**: `lab_dev` is a canonical-only façade for the `ct-local-dev-v1` profile. It supports strict `doctor`, `plan`, `prepare`, `start`, `status`, `sync`, `stop`, and `cleanup` actions bound to one asset, lease, Linear issue, operation ID, and reviewed receipt chain. It accepts no guest commands, remote paths, or mock fallback.
96
96
  - **Physical-slot claim custody**: Proxmox claim creation requires the actual canonical node, explicit VMID and VM name in `ct-lab`, with a finite TTL. A shared Kubernetes Lease mutex serializes the physical host/node/VMID; its durable reservation stays occupied through unknown, partial and retiring outcomes. The source stamps a nonce and effective creation-request hash, then independently reads the original CRD UID before binding. Whole effective immutable CRD fields and creation labels are rehashed on bind, retry and deletion; only the declared lifecycle fields and stale label can change. A matching name alone grants no custody.
97
+ - **One configured Kubernetes claim backend**: ApplianceClaim CRUD and physical-slot Lease operations share one backend resolver. Local stdio deployments must set an absolute `LAB_CLAIM_KUBECONFIG`, the exact `LAB_CLAIM_K8S_CONTEXT`, and an HTTPS-origin `LAB_CLAIM_K8S_SERVER`; the selected kubeconfig is validated against that server before a request. In-cluster deployments must set the context/server and provide the service-account token and CA for that same cluster. Cross-cluster deployments use the explicit kubeconfig path. The process never falls back to `KUBECONFIG`, `~/.kube/config`, or an embedded server, and a missing or mismatched binding is refused before claim or reservation effects. The Flux-managed consumer manifest `ct-infrastructure/clusters/doks-nyc1/apps/ct-lab/deploy-ct-lab-mcp.yaml` is a companion rollout change: the image-roll workflow refuses to update it until all three backend variables are present, and the kubeconfig path must be mounted from the selected cluster's protected configuration.
97
98
  - **Original UID deletion**: `delete_appliance_claim` requires `expectedUid` from the independently observed original claim. It sends UID/resourceVersion `DeleteOptions` preconditions and leaves the physical reservation retiring. The qualified operator/controller must independently prove original guest, owned-volume and original-UID absence before terminal release; an error or expiry-looking record never permits clearing protection.
98
99
  - **Guarded image import**: `claimed_import_qcow` creates a bare claim, then invokes the canonical `vm provision --source published-qcow` lifecycle. Its actual default bridge keeps host CPU semantics; portable first-power qualification uses the separate explicit canonical source route. Returned, thrown and uncertain import errors retain both claim and reservation protection and preserve diagnostics. This path requires the qualified controller and operator successors; a source pin alone does not establish deployed readiness.
99
100
  - **Legacy SDK effects**: Direct SDK guest creation/clone/power/config/destruction, unguarded script guest writes and generic guest SSH authentication/commands are unavailable without the implemented canonical lifecycle. No caller flag or environment switch enables the retired effects. The historical purge daemon reports `authority_required` with zero releases/destruction and keeps all protection records. Provider inventory reads and implemented typed canonical operations remain available.
@@ -1 +1 @@
1
- {"version":3,"file":"appliance-claim-tools.d.ts","sourceRoot":"","sources":["../../../src/tools/appliance-claim-tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"appliance-claim-tools.d.ts","sourceRoot":"","sources":["../../../src/tools/appliance-claim-tools.ts"],"names":[],"mappings":"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"}
@@ -8,15 +8,13 @@
8
8
  * managed by ct-appliance-operator in Kubernetes (namespace: ct-lab).
9
9
  */
10
10
  import { z } from "zod";
11
- import { execFile } from "node:child_process";
12
- import { promisify } from "node:util";
13
11
  import { fetch, Agent } from "undici";
14
12
  import * as fs from "node:fs";
15
13
  import { ProxmoxErrorCode, createToolErrorResult } from "../types/mcp.js";
16
14
  import { logger } from "../utils/logger.js";
17
15
  import { createPhysicalClaim, deletePhysicalClaim, UnreservedClaimError } from "./physical-slot.js";
16
+ import { resolveLabKubernetesBackend, runLabKubectl } from "./kubernetes-backend.js";
18
17
  import { proxmoxClaimNode, PROXMOX_HOST_CLAIM_NODES, } from "./proxmox-host-policy.js";
19
- const execFileAsync = promisify(execFile);
20
18
  export const RECOGNIZED_CHANNELS = ["stable", "beta", "rc", "candidate", "dev", "edge"];
21
19
  export function resolveAndValidateChannel(version, trainOrChannel) {
22
20
  const isPrerelease = version.includes("-rc") || version.includes("-dev") || version.includes("-beta") || version.includes("-candidate");
@@ -118,41 +116,41 @@ export function normalizeClaimNode(node) {
118
116
  return "esxi";
119
117
  return proxmoxClaimNode(raw);
120
118
  }
121
- const K8S_IN_CLUSTER_TOKEN = "/var/run/secrets/kubernetes.io/serviceaccount/token";
122
- const K8S_IN_CLUSTER_CA = "/var/run/secrets/kubernetes.io/serviceaccount/ca.crt";
123
119
  export async function queryKubernetesApi(path, options = {}) {
124
- const isCluster = fs.existsSync(K8S_IN_CLUSTER_TOKEN);
125
- if (isCluster) {
126
- const host = process.env.KUBERNETES_SERVICE_HOST || "kubernetes.default.svc";
127
- const port = process.env.KUBERNETES_SERVICE_PORT || "443";
128
- const token = fs.readFileSync(K8S_IN_CLUSTER_TOKEN, "utf-8").trim();
129
- const ca = fs.existsSync(K8S_IN_CLUSTER_CA) ? fs.readFileSync(K8S_IN_CLUSTER_CA) : undefined;
120
+ const backend = resolveLabKubernetesBackend();
121
+ if (backend.mode === "in-cluster") {
122
+ const token = fs.readFileSync(backend.tokenPath, "utf-8").trim();
123
+ if (!token)
124
+ throw new Error("in-cluster Kubernetes token is unavailable");
125
+ const ca = fs.readFileSync(backend.caPath);
130
126
  const agent = new Agent({
131
127
  connect: {
132
128
  ca,
133
- rejectUnauthorized: false
129
+ rejectUnauthorized: true
134
130
  }
135
131
  });
136
- const url = `https://${host}:${port}${path}`;
137
- const res = await fetch(url, {
138
- method: options.method || "GET",
139
- headers: {
140
- Authorization: `Bearer ${token}`,
141
- // A custom resource only accepts merge-patch/json-patch for PATCH; plain
142
- // application/json is rejected with 415.
143
- "Content-Type": options.contentType ?? ((options.method || "GET") === "PATCH" ? "application/merge-patch+json" : "application/json")
144
- },
145
- body: options.body ? JSON.stringify(options.body) : undefined,
146
- dispatcher: agent,
147
- ...(options.timeoutMs ? { signal: AbortSignal.timeout(options.timeoutMs) } : {}),
148
- });
149
- if (!res.ok) {
150
- const errText = await res.text().catch(() => "");
151
- throw new Error(`Kubernetes API error (${res.status}): ${errText}`);
132
+ try {
133
+ const res = await fetch(`${backend.server}${path}`, {
134
+ method: options.method || "GET",
135
+ headers: {
136
+ Authorization: `Bearer ${token}`,
137
+ // A custom resource only accepts merge-patch/json-patch for PATCH; plain
138
+ // application/json is rejected with 415.
139
+ "Content-Type": options.contentType ?? ((options.method || "GET") === "PATCH" ? "application/merge-patch+json" : "application/json")
140
+ },
141
+ body: options.body === undefined ? undefined : JSON.stringify(options.body),
142
+ dispatcher: agent,
143
+ signal: AbortSignal.timeout(options.timeoutMs ?? 10_000),
144
+ });
145
+ if (!res.ok)
146
+ throw new Error(`Kubernetes API request failed (${res.status})`);
147
+ return res.json();
148
+ }
149
+ finally {
150
+ await agent.close();
152
151
  }
153
- return res.json();
154
152
  }
155
- // Fallback to kubectl
153
+ // The caller must use runLabKubectl, which validates the same explicit binding.
156
154
  return null;
157
155
  }
158
156
  export function independentClaimVerb(operation, args) {
@@ -192,7 +190,7 @@ export async function verifyIndependentClaimAccess(verb, namespace = "ct-lab", n
192
190
  && !review?.status?.evaluationError;
193
191
  }
194
192
  const resource = attributes.name ? `applianceclaims.calltelemetry.com/${attributes.name}` : "applianceclaims.calltelemetry.com";
195
- const { stdout } = await execFileAsync("kubectl", ["auth", "can-i", verb, resource, `--namespace=${namespace}`], { timeout: 10_000 });
193
+ const { stdout } = await runLabKubectl(["auth", "can-i", verb, resource, `--namespace=${namespace}`], { timeoutMs: 10_000 });
196
194
  return stdout.trim() === "yes";
197
195
  }
198
196
  catch {
@@ -208,40 +206,15 @@ export async function handleListApplianceClaims(args, _context) {
208
206
  const { namespace, phase, claimType } = parsed.data;
209
207
  try {
210
208
  let items = [];
211
- // Try in-cluster API first
212
209
  const apiPath = `/apis/calltelemetry.com/v1alpha1/namespaces/${namespace}/applianceclaims`;
213
- let apiRes = null;
214
- let apiError = null;
215
- try {
216
- apiRes = await queryKubernetesApi(apiPath);
217
- }
218
- catch (err) {
219
- apiError = err.message;
220
- logger.warn(`In-cluster Kubernetes API call to '${apiPath}' failed: ${err.message}`);
221
- }
210
+ const apiRes = await queryKubernetesApi(apiPath);
222
211
  if (apiRes && apiRes.items) {
223
212
  items = apiRes.items;
224
213
  }
225
214
  else {
226
- // Execute via kubectl fallback
227
- try {
228
- const { stdout } = await execFileAsync("kubectl", [
229
- "get",
230
- "applianceclaims",
231
- "-n",
232
- namespace,
233
- "-o",
234
- "json"
235
- ]);
236
- const parsedK8s = JSON.parse(stdout);
237
- items = parsedK8s.items || [];
238
- }
239
- catch (kubectlErr) {
240
- if (apiError) {
241
- throw new Error(`In-cluster Kubernetes API error: ${apiError}. Kubectl fallback error: ${kubectlErr.message}`);
242
- }
243
- throw kubectlErr;
244
- }
215
+ const { stdout } = await runLabKubectl(["get", "applianceclaims", "-n", namespace, "-o", "json"]);
216
+ const parsedK8s = JSON.parse(stdout);
217
+ items = parsedK8s.items || [];
245
218
  }
246
219
  if (phase) {
247
220
  items = items.filter((item) => item.status?.phase === phase);
@@ -289,40 +262,11 @@ export async function handleGetApplianceClaim(args, _context) {
289
262
  }
290
263
  const { name, namespace } = parsed.data;
291
264
  try {
292
- let claim = null;
293
265
  const apiPath = `/apis/calltelemetry.com/v1alpha1/namespaces/${namespace}/applianceclaims/${name}`;
294
- let apiRes = null;
295
- let apiError = null;
296
- try {
297
- apiRes = await queryKubernetesApi(apiPath);
298
- }
299
- catch (err) {
300
- apiError = err.message;
301
- logger.warn(`In-cluster Kubernetes API call to '${apiPath}' failed: ${err.message}`);
302
- }
303
- if (apiRes && apiRes.metadata) {
304
- claim = apiRes;
305
- }
306
- else {
307
- try {
308
- const { stdout } = await execFileAsync("kubectl", [
309
- "get",
310
- "applianceclaim",
311
- name,
312
- "-n",
313
- namespace,
314
- "-o",
315
- "json"
316
- ]);
317
- claim = JSON.parse(stdout);
318
- }
319
- catch (kubectlErr) {
320
- if (apiError) {
321
- throw new Error(`In-cluster Kubernetes API error: ${apiError}. Kubectl fallback error: ${kubectlErr.message}`);
322
- }
323
- throw kubectlErr;
324
- }
325
- }
266
+ const apiRes = await queryKubernetesApi(apiPath);
267
+ const claim = apiRes?.metadata
268
+ ? apiRes
269
+ : JSON.parse((await runLabKubectl(["get", "applianceclaim", name, "-n", namespace, "-o", "json"])).stdout);
326
270
  return {
327
271
  content: [
328
272
  {
@@ -489,22 +433,9 @@ export async function handlePauseApplianceClaim(args, _context) {
489
433
  if (paused && pausedReason) {
490
434
  mergePatch.spec.pausedReason = pausedReason;
491
435
  }
492
- let patchRes = null;
493
- let patchError = null;
494
- try {
495
- patchRes = await queryKubernetesApi(apiPath, {
496
- method: "PATCH",
497
- body: mergePatch
498
- });
499
- }
500
- catch (err) {
501
- patchError = err.message;
502
- logger.warn(`In-cluster Kubernetes API patch of '${apiPath}' failed: ${err.message}`);
503
- }
436
+ const patchRes = await queryKubernetesApi(apiPath, { method: "PATCH", body: mergePatch });
504
437
  let kubectlUsed = false;
505
438
  if (!patchRes) {
506
- // queryKubernetesApi returns null when it falls back to kubectl.
507
- const contentType = paused ? "merge" : "merge";
508
439
  const patchArgs = [
509
440
  "patch",
510
441
  "applianceclaim",
@@ -515,29 +446,20 @@ export async function handlePauseApplianceClaim(args, _context) {
515
446
  "-p",
516
447
  JSON.stringify(mergePatch)
517
448
  ];
518
- try {
519
- await execFileAsync("kubectl", patchArgs);
520
- kubectlUsed = true;
521
- }
522
- catch (kubectlErr) {
523
- if (patchError) {
524
- throw new Error(`In-cluster Kubernetes API error: ${patchError}. Kubectl fallback error: ${kubectlErr.message}`);
525
- }
526
- throw kubectlErr;
527
- }
449
+ await runLabKubectl(patchArgs);
450
+ kubectlUsed = true;
528
451
  }
529
452
  // Readback: verify the live paused state rather than trusting the patch ack.
530
453
  let liveSpecPaused = null;
531
- let readbackError = null;
532
- try {
533
- const readback = await queryKubernetesApi(apiPath);
534
- if (readback) {
535
- liveSpecPaused = readback?.spec?.paused ?? null;
536
- }
454
+ const readback = await queryKubernetesApi(apiPath);
455
+ if (readback) {
456
+ liveSpecPaused = readback?.spec?.paused ?? null;
537
457
  }
538
- catch (err) {
539
- readbackError = err.message;
458
+ else {
459
+ const live = JSON.parse((await runLabKubectl(["get", "applianceclaim", name, "-n", namespace, "-o", "json"])).stdout);
460
+ liveSpecPaused = live?.spec?.paused ?? null;
540
461
  }
462
+ const readbackError = null;
541
463
  return {
542
464
  content: [
543
465
  {
@@ -551,7 +473,7 @@ export async function handlePauseApplianceClaim(args, _context) {
551
473
  liveSpecPaused,
552
474
  readbackError,
553
475
  semantics: "Paused claims: TTL expiry suspended, no lifecycle actions, deletion still outranks pause, pause never purges (ADR 0755).",
554
- note: patchError ? `in-cluster patch error: ${patchError}` : undefined
476
+ note: undefined
555
477
  }, null, 2)
556
478
  }
557
479
  ]
@@ -615,15 +537,9 @@ export async function handleRenewApplianceClaim(args, _context) {
615
537
  const { name, namespace, extendHours, dryRun } = parsed.data;
616
538
  const apiPath = `/apis/calltelemetry.com/v1alpha1/namespaces/${namespace}/applianceclaims/${name}`;
617
539
  try {
618
- let claim = null;
619
- try {
620
- claim = await queryKubernetesApi(apiPath);
621
- }
622
- catch (err) {
623
- logger.warn(`In-cluster read of '${apiPath}' failed: ${err.message}`);
624
- }
540
+ let claim = await queryKubernetesApi(apiPath);
625
541
  if (!claim) {
626
- const { stdout } = await execFileAsync("kubectl", ["get", "applianceclaim", name, "-n", namespace, "-o", "json"]);
542
+ const { stdout } = await runLabKubectl(["get", "applianceclaim", name, "-n", namespace, "-o", "json"]);
627
543
  claim = JSON.parse(stdout);
628
544
  }
629
545
  const plan = planClaimRenewal(claim, extendHours);
@@ -632,43 +548,15 @@ export async function handleRenewApplianceClaim(args, _context) {
632
548
  }
633
549
  if (!dryRun) {
634
550
  const mergePatch = { spec: { ttlHours: plan.newTtlHours } };
635
- let patchRes = null;
636
- let patchError = null;
637
- try {
638
- patchRes = await queryKubernetesApi(apiPath, { method: "PATCH", body: mergePatch });
639
- }
640
- catch (err) {
641
- patchError = err.message;
642
- logger.warn(`In-cluster patch of '${apiPath}' failed: ${err.message}`);
643
- }
551
+ const patchRes = await queryKubernetesApi(apiPath, { method: "PATCH", body: mergePatch });
644
552
  if (!patchRes) {
645
- try {
646
- await execFileAsync("kubectl", [
647
- "patch", "applianceclaim", name, "-n", namespace, "--type=merge", "-p", JSON.stringify(mergePatch)
648
- ]);
649
- }
650
- catch (kubectlErr) {
651
- throw new Error(patchError
652
- ? `In-cluster Kubernetes API error: ${patchError}. Kubectl fallback error: ${kubectlErr.message}`
653
- : kubectlErr.message);
654
- }
553
+ await runLabKubectl(["patch", "applianceclaim", name, "-n", namespace, "--type=merge", "-p", JSON.stringify(mergePatch)]);
655
554
  }
656
555
  // Verify the live object rather than trusting the patch ack.
657
- let live = null;
658
- try {
659
- live = await queryKubernetesApi(apiPath);
660
- }
661
- catch {
662
- /* readback is best effort over the API; kubectl below */
663
- }
556
+ let live = await queryKubernetesApi(apiPath);
664
557
  if (!live) {
665
- try {
666
- const { stdout } = await execFileAsync("kubectl", ["get", "applianceclaim", name, "-n", namespace, "-o", "json"]);
667
- live = JSON.parse(stdout);
668
- }
669
- catch {
670
- /* leave null */
671
- }
558
+ const { stdout } = await runLabKubectl(["get", "applianceclaim", name, "-n", namespace, "-o", "json"]);
559
+ live = JSON.parse(stdout);
672
560
  }
673
561
  if (live && live.spec?.ttlHours !== plan.newTtlHours) {
674
562
  return createToolErrorResult(ProxmoxErrorCode.UPSTREAM_API_ERROR, `Renewal patch did not persist: live spec.ttlHours=${live.spec?.ttlHours} (expected ${plan.newTtlHours}). The deployed CRD may prune the field.`);
@@ -737,21 +625,9 @@ export async function patchApplianceClaimSpec(name, spec, namespace = "ct-lab")
737
625
  }
738
626
  const apiPath = `/apis/calltelemetry.com/v1alpha1/namespaces/${namespace}/applianceclaims/${name}`;
739
627
  const mergePatch = { spec };
740
- let patched = null;
741
- let apiError = null;
742
- try {
743
- patched = await queryKubernetesApi(apiPath, { method: "PATCH", body: mergePatch });
744
- }
745
- catch (err) {
746
- apiError = err.message;
747
- }
628
+ const patched = await queryKubernetesApi(apiPath, { method: "PATCH", body: mergePatch });
748
629
  if (!patched) {
749
- try {
750
- await execFileAsync("kubectl", ["patch", "applianceclaim", name, "-n", namespace, "--type=merge", "-p", JSON.stringify(mergePatch)]);
751
- }
752
- catch (kubectlErr) {
753
- throw new Error(apiError ? `In-cluster Kubernetes API error: ${apiError}. Kubectl fallback error: ${kubectlErr.message}` : kubectlErr.message);
754
- }
630
+ await runLabKubectl(["patch", "applianceclaim", name, "-n", namespace, "--type=merge", "-p", JSON.stringify(mergePatch)]);
755
631
  }
756
632
  }
757
633
  //# sourceMappingURL=appliance-claim-tools.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"appliance-claim-tools.js","sourceRoot":"","sources":["../../../src/tools/appliance-claim-tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"appliance-claim-tools.js","sourceRoot":"","sources":["../../../src/tools/appliance-claim-tools.ts"],"names":[],"mappings":"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"}
@@ -51,8 +51,8 @@ export declare const ApplianceExecInputSchema: z.ZodEffects<z.ZodObject<{
51
51
  port?: number | undefined;
52
52
  target?: string | undefined;
53
53
  ip?: string | undefined;
54
- params?: Record<string, unknown> | undefined;
55
54
  timeoutMs?: number | undefined;
55
+ params?: Record<string, unknown> | undefined;
56
56
  commandType?: string | undefined;
57
57
  args?: Record<string, unknown> | undefined;
58
58
  connectTimeoutMs?: number | undefined;
@@ -75,8 +75,8 @@ export declare const ApplianceExecInputSchema: z.ZodEffects<z.ZodObject<{
75
75
  port?: number | undefined;
76
76
  target?: string | undefined;
77
77
  ip?: string | undefined;
78
- params?: Record<string, unknown> | undefined;
79
78
  timeoutMs?: number | undefined;
79
+ params?: Record<string, unknown> | undefined;
80
80
  commandType?: string | undefined;
81
81
  args?: Record<string, unknown> | undefined;
82
82
  connectTimeoutMs?: number | undefined;
@@ -32,9 +32,9 @@ export declare const FactoryResetInputSchema: z.ZodObject<{
32
32
  timeoutMs: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
33
33
  }, "strip", z.ZodTypeAny, {
34
34
  targetIp: string;
35
+ timeoutMs: number;
35
36
  licenseTier: string;
36
37
  licenseDays: number;
37
- timeoutMs: number;
38
38
  applyLicense: boolean;
39
39
  runMigrations: boolean;
40
40
  assertHealth: boolean;
@@ -42,9 +42,9 @@ export declare const FactoryResetInputSchema: z.ZodObject<{
42
42
  }, {
43
43
  targetIp: string;
44
44
  version?: string | undefined;
45
+ timeoutMs?: number | undefined;
45
46
  licenseTier?: string | undefined;
46
47
  licenseDays?: number | undefined;
47
- timeoutMs?: number | undefined;
48
48
  applyLicense?: boolean | undefined;
49
49
  runMigrations?: boolean | undefined;
50
50
  assertHealth?: boolean | undefined;
@@ -0,0 +1,32 @@
1
+ export type LabKubernetesBackend = {
2
+ mode: "in-cluster";
3
+ context: string;
4
+ server: string;
5
+ tokenPath: string;
6
+ caPath: string;
7
+ } | {
8
+ mode: "kubeconfig";
9
+ context: string;
10
+ server: string;
11
+ kubeconfigPath: string;
12
+ };
13
+ export declare class KubernetesCommandError extends Error {
14
+ readonly status: number | null;
15
+ constructor(status: number | null, reason?: string);
16
+ }
17
+ export interface KubernetesCommandOptions {
18
+ input?: string | Buffer;
19
+ timeoutMs?: number;
20
+ maxBufferBytes?: number;
21
+ }
22
+ /**
23
+ * Select exactly one backend. Local tools must receive the LAB_CLAIM_* tuple;
24
+ * KUBECONFIG, ~/.kube/config, and an embedded DOKS endpoint are never defaults.
25
+ */
26
+ export declare function resolveLabKubernetesBackend(env?: NodeJS.ProcessEnv, existsSync?: (path: string) => boolean): LabKubernetesBackend;
27
+ /** Run a local kubectl operation only after the selected kubeconfig is proven to match LAB_CLAIM_K8S_SERVER. */
28
+ export declare function runLabKubectl(args: string[], options?: KubernetesCommandOptions): Promise<{
29
+ stdout: string;
30
+ stderr: string;
31
+ }>;
32
+ //# sourceMappingURL=kubernetes-backend.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kubernetes-backend.d.ts","sourceRoot":"","sources":["../../../src/tools/kubernetes-backend.ts"],"names":[],"mappings":"AAUA,MAAM,MAAM,oBAAoB,GAC5B;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAC1F;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAA;CAAE,CAAC;AAEpF,qBAAa,sBAAuB,SAAQ,KAAK;aACnB,MAAM,EAAE,MAAM,GAAG,IAAI;gBAArB,MAAM,EAAE,MAAM,GAAG,IAAI,EAAE,MAAM,SAAmB;CAG7E;AAED,MAAM,WAAW,wBAAwB;IACvC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAsBD;;;GAGG;AACH,wBAAgB,2BAA2B,CACzC,GAAG,GAAE,MAAM,CAAC,UAAwB,EACpC,UAAU,GAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAuB,GACpD,oBAAoB,CAmBtB;AAsFD,gHAAgH;AAChH,wBAAsB,aAAa,CACjC,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,GAAE,wBAA6B,GACrC,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAY7C"}
@@ -0,0 +1,156 @@
1
+ /** Shared, fail-closed Kubernetes target for claim CRUD and physical-slot custody. */
2
+ import { execFile } from "node:child_process";
3
+ import * as fs from "node:fs";
4
+ import { isAbsolute } from "node:path";
5
+ const SERVICE_ACCOUNT_TOKEN = "/var/run/secrets/kubernetes.io/serviceaccount/token";
6
+ const SERVICE_ACCOUNT_CA = "/var/run/secrets/kubernetes.io/serviceaccount/ca.crt";
7
+ const MAX_CONFIG_BYTES = 1_048_576;
8
+ const DEFAULT_TIMEOUT_MS = 10_000;
9
+ export class KubernetesCommandError extends Error {
10
+ status;
11
+ constructor(status, reason = "request failed") {
12
+ super(`Kubernetes command ${reason} (${status ?? "unknown"})`);
13
+ this.status = status;
14
+ }
15
+ }
16
+ function configuredContext(env) {
17
+ const context = env.LAB_CLAIM_K8S_CONTEXT?.trim();
18
+ if (!context || context.length > 128 || /[\u0000-\u0020\u007f]/.test(context)) {
19
+ throw new Error("LAB_CLAIM_K8S_CONTEXT is required and must be a safe context name");
20
+ }
21
+ return context;
22
+ }
23
+ function configuredServer(env) {
24
+ const raw = env.LAB_CLAIM_K8S_SERVER?.trim();
25
+ if (!raw)
26
+ throw new Error("LAB_CLAIM_K8S_SERVER is required; implicit Kubernetes endpoints are refused");
27
+ let parsed;
28
+ try {
29
+ parsed = new URL(raw);
30
+ }
31
+ catch {
32
+ throw new Error("LAB_CLAIM_K8S_SERVER must be a valid HTTPS origin");
33
+ }
34
+ if (parsed.protocol !== "https:" || !parsed.hostname || parsed.username || parsed.password
35
+ || parsed.pathname !== "/" || parsed.search || parsed.hash) {
36
+ throw new Error("LAB_CLAIM_K8S_SERVER must be a valid HTTPS origin");
37
+ }
38
+ return parsed.origin;
39
+ }
40
+ /**
41
+ * Select exactly one backend. Local tools must receive the LAB_CLAIM_* tuple;
42
+ * KUBECONFIG, ~/.kube/config, and an embedded DOKS endpoint are never defaults.
43
+ */
44
+ export function resolveLabKubernetesBackend(env = process.env, existsSync = fs.existsSync) {
45
+ const context = configuredContext(env);
46
+ const server = configuredServer(env);
47
+ const configuredKubeconfig = env.LAB_CLAIM_KUBECONFIG?.trim();
48
+ if (configuredKubeconfig) {
49
+ const kubeconfigPath = configuredKubeconfig;
50
+ if (!kubeconfigPath || !isAbsolute(kubeconfigPath) || !existsSync(kubeconfigPath)) {
51
+ throw new Error("LAB_CLAIM_KUBECONFIG must name an existing absolute kubeconfig");
52
+ }
53
+ return { mode: "kubeconfig", context, server, kubeconfigPath };
54
+ }
55
+ if (existsSync(SERVICE_ACCOUNT_TOKEN)) {
56
+ if (!existsSync(SERVICE_ACCOUNT_CA))
57
+ throw new Error("in-cluster Kubernetes CA is unavailable");
58
+ return { mode: "in-cluster", context, server, tokenPath: SERVICE_ACCOUNT_TOKEN, caPath: SERVICE_ACCOUNT_CA };
59
+ }
60
+ throw new Error("LAB_CLAIM_KUBECONFIG is required; ambient kubeconfig defaults are refused");
61
+ }
62
+ function cleanKubectlEnv(env) {
63
+ const childEnv = { ...env };
64
+ for (const key of [
65
+ "KUBECONFIG", "KUBERNETES_MASTER", "KUBECTL_KUBERC",
66
+ "HTTP_PROXY", "HTTPS_PROXY", "ALL_PROXY", "http_proxy", "https_proxy", "all_proxy",
67
+ ])
68
+ delete childEnv[key];
69
+ childEnv.KUBECTL_KUBERC = "false";
70
+ return childEnv;
71
+ }
72
+ function kubectlPrefix(backend) {
73
+ return [
74
+ "--kubeconfig", backend.kubeconfigPath,
75
+ "--context", backend.context,
76
+ "--server", backend.server,
77
+ "--insecure-skip-tls-verify=false",
78
+ "--request-timeout=10s",
79
+ ];
80
+ }
81
+ function classifyStatus(stderr) {
82
+ if (/\(NotFound\)/.test(stderr))
83
+ return 404;
84
+ if (/\(AlreadyExists\)|\(Conflict\)/.test(stderr))
85
+ return 409;
86
+ if (/\(Forbidden\)/.test(stderr))
87
+ return 403;
88
+ if (/\(Unauthorized\)/.test(stderr))
89
+ return 401;
90
+ return null;
91
+ }
92
+ function execFileText(args, options) {
93
+ return new Promise((resolve, reject) => {
94
+ const child = execFile("kubectl", args, {
95
+ env: options.env,
96
+ timeout: options.timeout,
97
+ maxBuffer: options.maxBuffer,
98
+ encoding: "utf8",
99
+ }, (error, stdout, stderr) => {
100
+ if (error) {
101
+ const errorText = Buffer.isBuffer(stderr) ? stderr.toString("utf8") : String(stderr || "");
102
+ const status = classifyStatus(errorText);
103
+ const reason = error.code === "ETIMEDOUT" ? "timed out" : error.code === "ERR_CHILD_PROCESS_STDIO_MAXBUFFER" ? "output exceeded bound" : "failed";
104
+ reject(new KubernetesCommandError(status, reason));
105
+ return;
106
+ }
107
+ resolve({
108
+ stdout: Buffer.isBuffer(stdout) ? stdout.toString("utf8") : String(stdout || ""),
109
+ stderr: Buffer.isBuffer(stderr) ? stderr.toString("utf8") : String(stderr || ""),
110
+ });
111
+ });
112
+ if (options.input !== undefined)
113
+ child.stdin?.end(options.input);
114
+ });
115
+ }
116
+ async function verifyKubeconfigBinding(backend, env) {
117
+ const args = [
118
+ "--kubeconfig", backend.kubeconfigPath,
119
+ "--context", backend.context,
120
+ "config", "view", "--minify", "--raw", "-o", "jsonpath={.clusters[0].cluster}",
121
+ ];
122
+ let cluster;
123
+ try {
124
+ const result = await execFileText(args, { env: cleanKubectlEnv(env), timeout: DEFAULT_TIMEOUT_MS, maxBuffer: MAX_CONFIG_BYTES });
125
+ cluster = JSON.parse(result.stdout);
126
+ }
127
+ catch (error) {
128
+ if (error instanceof KubernetesCommandError)
129
+ throw new Error("LAB_CLAIM kubeconfig context could not be validated");
130
+ throw new Error("LAB_CLAIM kubeconfig context could not be validated");
131
+ }
132
+ if (!cluster || typeof cluster !== "object" || cluster.server !== backend.server) {
133
+ throw new Error("LAB_CLAIM backend server mismatch; Kubernetes request refused before effects");
134
+ }
135
+ if (cluster["insecure-skip-tls-verify"] === true
136
+ || !(cluster["certificate-authority-data"] || cluster["certificate-authority"])
137
+ || cluster["proxy-url"]
138
+ || (cluster["tls-server-name"] && cluster["tls-server-name"] !== new URL(backend.server).hostname)) {
139
+ throw new Error("LAB_CLAIM kubeconfig TLS binding refused before effects");
140
+ }
141
+ }
142
+ /** Run a local kubectl operation only after the selected kubeconfig is proven to match LAB_CLAIM_K8S_SERVER. */
143
+ export async function runLabKubectl(args, options = {}) {
144
+ const backend = resolveLabKubernetesBackend();
145
+ if (backend.mode !== "kubeconfig") {
146
+ throw new Error("kubectl fallback is refused for in-cluster requests; the selected Kubernetes API is authoritative");
147
+ }
148
+ await verifyKubeconfigBinding(backend, process.env);
149
+ return execFileText([...kubectlPrefix(backend), ...args], {
150
+ env: cleanKubectlEnv(process.env),
151
+ timeout: Math.max(1, Math.min(options.timeoutMs ?? DEFAULT_TIMEOUT_MS, 30_000)),
152
+ maxBuffer: Math.max(1024, Math.min(options.maxBufferBytes ?? MAX_CONFIG_BYTES, MAX_CONFIG_BYTES)),
153
+ ...(options.input !== undefined ? { input: options.input } : {}),
154
+ });
155
+ }
156
+ //# sourceMappingURL=kubernetes-backend.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kubernetes-backend.js","sourceRoot":"","sources":["../../../src/tools/kubernetes-backend.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"renewal-claim.d.ts","sourceRoot":"","sources":["../../../src/tools/renewal-claim.ts"],"names":[],"mappings":"AAqBA,oFAAoF;AACpF,MAAM,WAAW,mBAAmB;IAClC,UAAU,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACrC,iEAAiE;IACjE,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClG,sDAAsD;IACtD,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC;CAC7C;AAED,wBAAgB,0BAA0B,IAAI,mBAAmB,CAiChE;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,UAAU,GAAG,gBAAgB,GAAG,WAAW,CAAC;IACpD,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE;QAAE,MAAM,EAAE,OAAO,GAAG,QAAQ,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CAC3E;AAOD,yFAAyF;AACzF,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,GAAG,EAAE,aAAa,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAIzF;AAiBD,mHAAmH;AACnH,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,mBAAmB,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAKlG;AAED,mEAAmE;AACnE,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,mBAAmB,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,KAAK,SAAa,GAAG,OAAO,CAAC,cAAc,GAAG;IAAE,eAAe,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAgBxL;AAED,0FAA0F;AAC1F,wBAAsB,qBAAqB,CAAC,MAAM,EAAE,mBAAmB,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,KAAK,SAAa,GAAG,OAAO,CAAC,cAAc,CAAC,CAa5J;AAED,kHAAkH;AAClH,wBAAsB,oBAAoB,CAAC,MAAM,EAAE,mBAAmB,EAAE,SAAS,EAAE,cAAc,GAAG,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAOlK"}
1
+ {"version":3,"file":"renewal-claim.d.ts","sourceRoot":"","sources":["../../../src/tools/renewal-claim.ts"],"names":[],"mappings":"AAmBA,oFAAoF;AACpF,MAAM,WAAW,mBAAmB;IAClC,UAAU,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACrC,iEAAiE;IACjE,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClG,sDAAsD;IACtD,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC;CAC7C;AAED,wBAAgB,0BAA0B,IAAI,mBAAmB,CAiChE;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,UAAU,GAAG,gBAAgB,GAAG,WAAW,CAAC;IACpD,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE;QAAE,MAAM,EAAE,OAAO,GAAG,QAAQ,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CAC3E;AAOD,yFAAyF;AACzF,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,GAAG,EAAE,aAAa,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAIzF;AAiBD,mHAAmH;AACnH,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,mBAAmB,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAKlG;AAED,mEAAmE;AACnE,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,mBAAmB,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,KAAK,SAAa,GAAG,OAAO,CAAC,cAAc,GAAG;IAAE,eAAe,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAgBxL;AAED,0FAA0F;AAC1F,wBAAsB,qBAAqB,CAAC,MAAM,EAAE,mBAAmB,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,KAAK,SAAa,GAAG,OAAO,CAAC,cAAc,CAAC,CAa5J;AAED,kHAAkH;AAClH,wBAAsB,oBAAoB,CAAC,MAAM,EAAE,mBAAmB,EAAE,SAAS,EAAE,cAAc,GAAG,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAOlK"}
@@ -8,11 +8,9 @@
8
8
  * read-back), checks the physical-slot reservation is still bound to it, runs the canonical renewal, and puts
9
9
  * the claim back if the canonical renewal fails. Any failure fails the renew: no partial renewals.
10
10
  */
11
- import { execFile } from "node:child_process";
12
- import { promisify } from "node:util";
13
11
  import { claimPhysicalSlot, slotLeaseName } from "./physical-slot.js";
14
12
  import { queryKubernetesApi } from "./appliance-claim-tools.js";
15
- const execFileAsync = promisify(execFile);
13
+ import { KubernetesCommandError, runLabKubectl } from "./kubernetes-backend.js";
16
14
  const NS = "ct-lab";
17
15
  const CLAIMS = `/apis/calltelemetry.com/v1alpha1/namespaces/${NS}/applianceclaims`;
18
16
  const LEASES = `/apis/coordination.k8s.io/v1/namespaces/${NS}/leases`;
@@ -23,12 +21,12 @@ export function defaultOperatorClaimClient() {
23
21
  return await queryKubernetesApi(path, options);
24
22
  }
25
23
  catch (error) {
26
- if (String(error?.message).includes("(404)"))
24
+ if (error instanceof KubernetesCommandError ? error.status === 404 : String(error?.message).includes("(404)"))
27
25
  return { __notFound: true };
28
26
  throw error;
29
27
  }
30
28
  };
31
- const kubectl = async (args) => (await execFileAsync("kubectl", args, { timeout: 20_000 })).stdout;
29
+ const kubectl = async (args) => (await runLabKubectl(args, { timeoutMs: 20_000 })).stdout;
32
30
  return {
33
31
  async listClaims() {
34
32
  const api = await viaApi(CLAIMS);
@@ -59,7 +57,7 @@ export function defaultOperatorClaimClient() {
59
57
  return JSON.parse(await kubectl(["get", "leases.coordination.k8s.io", name, "-n", NS, "-o", "json"]));
60
58
  }
61
59
  catch (error) {
62
- if (String(error?.stderr ?? error?.message).includes("NotFound"))
60
+ if (error instanceof KubernetesCommandError && error.status === 404)
63
61
  return null;
64
62
  throw error;
65
63
  }
@@ -1 +1 @@
1
- {"version":3,"file":"renewal-claim.js","sourceRoot":"","sources":["../../../src/tools/renewal-claim.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"renewal-claim.js","sourceRoot":"","sources":["../../../src/tools/renewal-claim.ts"],"names":[],"mappings":"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"}
@@ -6,8 +6,6 @@ export declare class SlotApiError extends Error {
6
6
  readonly status: number | null;
7
7
  constructor(status: number | null, message: string);
8
8
  }
9
- export declare const SLOT_CONTEXT = "do-nyc1-cluster-ny1";
10
- export declare const SLOT_SERVER = "https://28a6e4a4-fbff-4b51-a9bd-6073ffd8cdb2.k8s.ondigitalocean.com";
11
9
  export declare function assertSlotPath(path: string, method: SlotMethod): void;
12
10
  /** Names the denied operation from the request itself. Remote error text is never echoed. */
13
11
  export declare function describeSlotRequest(path: string, method: SlotMethod): string;
@@ -1 +1 @@
1
- {"version":3,"file":"slot-kubernetes.d.ts","sourceRoot":"","sources":["../../../src/tools/slot-kubernetes.ts"],"names":[],"mappings":"AAOA,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,CAAC;AAC3D,MAAM,WAAW,OAAO;IAAG,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC;CAAE;AAC5G,qBAAa,YAAa,SAAQ,KAAK;aACT,MAAM,EAAE,MAAM,GAAG,IAAI;gBAArB,MAAM,EAAE,MAAM,GAAG,IAAI,EAAE,OAAO,EAAE,MAAM;CACnE;AAGD,eAAO,MAAM,YAAY,wBAAwB,CAAC;AAClD,eAAO,MAAM,WAAW,wEAAwE,CAAC;AAGjG,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI,CAUrE;AACD,6FAA6F;AAC7F,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,MAAM,CAO5E;AACD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,MAAM,CAIlG;AAmBD,wBAAgB,aAAa,IAAI,OAAO,CAgCvC"}
1
+ {"version":3,"file":"slot-kubernetes.d.ts","sourceRoot":"","sources":["../../../src/tools/slot-kubernetes.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,CAAC;AAC3D,MAAM,WAAW,OAAO;IAAG,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC;CAAE;AAC5G,qBAAa,YAAa,SAAQ,KAAK;aACT,MAAM,EAAE,MAAM,GAAG,IAAI;gBAArB,MAAM,EAAE,MAAM,GAAG,IAAI,EAAE,OAAO,EAAE,MAAM;CACnE;AAGD,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI,CAUrE;AACD,6FAA6F;AAC7F,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,MAAM,CAO5E;AACD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,MAAM,CAIlG;AAOD,wBAAgB,aAAa,IAAI,OAAO,CAgCvC"}
@@ -1,9 +1,7 @@
1
- /** Fixed namespace transport for physical-slot custody. Never retry an unknown write. */
2
- import { execFile } from "node:child_process";
1
+ /** Shared configured Kubernetes transport for physical-slot custody. Never retry an unknown write. */
3
2
  import * as fs from "node:fs";
4
- import { userInfo } from "node:os";
5
- import { join } from "node:path";
6
3
  import { fetch, Agent } from "undici";
4
+ import { KubernetesCommandError, resolveLabKubernetesBackend, runLabKubectl } from "./kubernetes-backend.js";
7
5
  export class SlotApiError extends Error {
8
6
  status;
9
7
  constructor(status, message) {
@@ -11,10 +9,6 @@ export class SlotApiError extends Error {
11
9
  this.status = status;
12
10
  }
13
11
  }
14
- const TOKEN = "/var/run/secrets/kubernetes.io/serviceaccount/token";
15
- const CA = "/var/run/secrets/kubernetes.io/serviceaccount/ca.crt";
16
- export const SLOT_CONTEXT = "do-nyc1-cluster-ny1";
17
- export const SLOT_SERVER = "https://28a6e4a4-fbff-4b51-a9bd-6073ffd8cdb2.k8s.ondigitalocean.com";
18
12
  const MAX_BYTES = 1_048_576;
19
13
  const COLLECTIONS = ["/apis/coordination.k8s.io/v1/namespaces/ct-lab/leases", "/apis/calltelemetry.com/v1alpha1/namespaces/ct-lab/applianceclaims"];
20
14
  export function assertSlotPath(path, method) {
@@ -57,42 +51,17 @@ function parse(text) {
57
51
  throw new Error("physical slot response is not an object");
58
52
  return value;
59
53
  }
60
- function kubectl(args, body, env, request) {
61
- return new Promise((resolve, reject) => {
62
- const child = execFile("kubectl", args, { env, timeout: 10_000, maxBuffer: MAX_BYTES }, (err, stdout, stderr) => {
63
- if (err) {
64
- // kubectl has no machine-readable HTTP code. Only exact NotFound is absence.
65
- const status = /\(NotFound\)/.test(stderr) ? 404 : /\(AlreadyExists\)|\(Conflict\)/.test(stderr) ? 409 : /\(Forbidden\)/.test(stderr) ? 403 : null;
66
- reject(new SlotApiError(status, request ? slotFailureMessage(status, request.path, request.method) : `physical slot Kubernetes request failed (${status ?? "unknown"}); retain custody`));
67
- }
68
- else
69
- resolve(stdout);
70
- });
71
- if (body !== undefined)
72
- child.stdin?.end(JSON.stringify(body));
73
- });
74
- }
75
54
  export function createSlotApi() {
76
- // The selected transport cannot change after a timeout or failed mutation.
77
- const inCluster = fs.existsSync(TOKEN);
78
- let localReady;
79
- const env = { ...process.env };
80
- for (const key of ["KUBECONFIG", "KUBERNETES_MASTER", "KUBECTL_KUBERC", "HTTP_PROXY", "HTTPS_PROXY", "ALL_PROXY", "http_proxy", "https_proxy", "all_proxy"])
81
- delete env[key];
82
- env.KUBECTL_KUBERC = "false";
83
- const base = ["--kubeconfig", join(userInfo().homedir, ".kube", "config"), "--context", SLOT_CONTEXT, "--server", SLOT_SERVER, "--insecure-skip-tls-verify=false", "--request-timeout=10s"];
84
55
  return { async request(path, method, body) {
85
56
  assertSlotPath(path, method);
86
- if (inCluster) {
87
- if (!fs.existsSync(CA))
88
- throw new Error("physical slot Kubernetes CA unavailable");
89
- const host = process.env.KUBERNETES_SERVICE_HOST || "kubernetes.default.svc";
90
- const port = process.env.KUBERNETES_SERVICE_PORT || "443";
91
- if (!/^[a-zA-Z0-9.-]+$/.test(host) || !/^\d{1,5}$/.test(port))
57
+ const backend = resolveLabKubernetesBackend();
58
+ if (backend.mode === "in-cluster") {
59
+ const token = fs.readFileSync(backend.tokenPath, "utf8").trim();
60
+ if (!token)
92
61
  throw new Error("physical slot Kubernetes service identity refused");
93
- const agent = new Agent({ connect: { ca: fs.readFileSync(CA), rejectUnauthorized: true } });
62
+ const agent = new Agent({ connect: { ca: fs.readFileSync(backend.caPath), rejectUnauthorized: true } });
94
63
  try {
95
- const response = await fetch(`https://${host}:${port}${path}`, { method, headers: { Authorization: `Bearer ${fs.readFileSync(TOKEN, "utf8").trim()}`, "Content-Type": "application/json" }, body: body === undefined ? undefined : JSON.stringify(body), dispatcher: agent, signal: AbortSignal.timeout(10_000) });
64
+ const response = await fetch(`${backend.server}${path}`, { method, headers: { Authorization: `Bearer ${token}`, "Content-Type": "application/json" }, body: body === undefined ? undefined : JSON.stringify(body), dispatcher: agent, signal: AbortSignal.timeout(10_000) });
96
65
  if (response.status === 404 && method === "GET")
97
66
  return null;
98
67
  if (!response.ok)
@@ -103,20 +72,23 @@ export function createSlotApi() {
103
72
  await agent.close();
104
73
  }
105
74
  }
106
- localReady ??= (async () => {
107
- const cluster = parse(await kubectl([...base, "config", "view", "--minify", "--raw", "-o", "jsonpath={.clusters[0].cluster}"], undefined, env));
108
- if (cluster.server !== SLOT_SERVER || cluster["insecure-skip-tls-verify"] === true || !(cluster["certificate-authority-data"] || cluster["certificate-authority"]) || cluster["proxy-url"] || cluster["tls-server-name"] && cluster["tls-server-name"] !== new URL(SLOT_SERVER).hostname)
109
- throw new Error("physical slot fixed cluster TLS binding refused");
110
- })();
111
- await localReady;
112
75
  const command = method === "GET" ? "get" : method === "POST" ? "create" : method === "PUT" ? "replace" : "delete";
113
76
  try {
114
- return parse(await kubectl([...base, command, "--raw", path, ...(body === undefined ? [] : ["-f", "-"])], body, env, { path, method }));
77
+ const result = await runLabKubectl([command, "--raw", path, ...(body === undefined ? [] : ["-f", "-"])], {
78
+ ...(body === undefined ? {} : { input: JSON.stringify(body) }),
79
+ timeoutMs: 10_000,
80
+ maxBufferBytes: MAX_BYTES,
81
+ });
82
+ return parse(result.stdout);
115
83
  }
116
- catch (err) {
117
- if (method === "GET" && err instanceof SlotApiError && err.status === 404)
84
+ catch (error) {
85
+ const status = error instanceof KubernetesCommandError ? error.status : null;
86
+ if (method === "GET" && status === 404)
118
87
  return null;
119
- throw err;
88
+ if (error instanceof KubernetesCommandError) {
89
+ throw new SlotApiError(status, slotFailureMessage(status, path, method));
90
+ }
91
+ throw error;
120
92
  }
121
93
  } };
122
94
  }
@@ -1 +1 @@
1
- {"version":3,"file":"slot-kubernetes.js","sourceRoot":"","sources":["../../../src/tools/slot-kubernetes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"slot-kubernetes.js","sourceRoot":"","sources":["../../../src/tools/slot-kubernetes.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@calltelemetry/ct-lab-mcp",
3
- "version": "0.8.86",
3
+ "version": "0.8.87",
4
4
  "description": "Expanded Model Context Protocol (MCP) server for Call Telemetry lab, fleet, and appliance management across Proxmox VE and VMware ESXi.",
5
5
  "type": "module",
6
6
  "main": "./dist/src/index.js",