@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 +1 -0
- package/dist/src/tools/appliance-claim-tools.d.ts.map +1 -1
- package/dist/src/tools/appliance-claim-tools.js +57 -181
- package/dist/src/tools/appliance-claim-tools.js.map +1 -1
- package/dist/src/tools/appliance-exec.d.ts +2 -2
- package/dist/src/tools/factory-reset.d.ts +2 -2
- package/dist/src/tools/kubernetes-backend.d.ts +32 -0
- package/dist/src/tools/kubernetes-backend.d.ts.map +1 -0
- package/dist/src/tools/kubernetes-backend.js +156 -0
- package/dist/src/tools/kubernetes-backend.js.map +1 -0
- package/dist/src/tools/renewal-claim.d.ts.map +1 -1
- package/dist/src/tools/renewal-claim.js +4 -6
- package/dist/src/tools/renewal-claim.js.map +1 -1
- package/dist/src/tools/slot-kubernetes.d.ts +0 -2
- package/dist/src/tools/slot-kubernetes.d.ts.map +1 -1
- package/dist/src/tools/slot-kubernetes.js +21 -49
- package/dist/src/tools/slot-kubernetes.js.map +1 -1
- package/package.json +1 -1
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":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
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
|
|
125
|
-
if (
|
|
126
|
-
const
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
const ca = fs.
|
|
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:
|
|
129
|
+
rejectUnauthorized: true
|
|
134
130
|
}
|
|
135
131
|
});
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
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
|
-
//
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
227
|
-
|
|
228
|
-
|
|
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
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
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
|
-
|
|
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
|
-
|
|
519
|
-
|
|
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
|
-
|
|
532
|
-
|
|
533
|
-
|
|
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
|
-
|
|
539
|
-
|
|
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:
|
|
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 =
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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 =
|
|
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
|
-
|
|
666
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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":"
|
|
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
|
-
|
|
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
|
|
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 (
|
|
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":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,
|
|
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":"
|
|
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
|
-
/**
|
|
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
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
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(
|
|
62
|
+
const agent = new Agent({ connect: { ca: fs.readFileSync(backend.caPath), rejectUnauthorized: true } });
|
|
94
63
|
try {
|
|
95
|
-
const response = await fetch(
|
|
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
|
-
|
|
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 (
|
|
117
|
-
|
|
84
|
+
catch (error) {
|
|
85
|
+
const status = error instanceof KubernetesCommandError ? error.status : null;
|
|
86
|
+
if (method === "GET" && status === 404)
|
|
118
87
|
return null;
|
|
119
|
-
|
|
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":"AAAA,
|
|
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.
|
|
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",
|