@cat-factory/integrations 0.168.0 → 0.169.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/modules/environments/EnvironmentProvisioningService.d.ts +29 -2
- package/dist/modules/environments/EnvironmentProvisioningService.d.ts.map +1 -1
- package/dist/modules/environments/EnvironmentProvisioningService.js +44 -1
- package/dist/modules/environments/EnvironmentProvisioningService.js.map +1 -1
- package/dist/modules/environments/HttpEnvironmentProvider.d.ts.map +1 -1
- package/dist/modules/environments/HttpEnvironmentProvider.js +11 -0
- package/dist/modules/environments/HttpEnvironmentProvider.js.map +1 -1
- package/dist/modules/environments/environmentReachability.d.ts +44 -0
- package/dist/modules/environments/environmentReachability.d.ts.map +1 -0
- package/dist/modules/environments/environmentReachability.js +86 -0
- package/dist/modules/environments/environmentReachability.js.map +1 -0
- package/dist/modules/environments/environments.logic.d.ts +30 -0
- package/dist/modules/environments/environments.logic.d.ts.map +1 -1
- package/dist/modules/environments/environments.logic.js +71 -0
- package/dist/modules/environments/environments.logic.js.map +1 -1
- package/dist/modules/kubernetes/KubernetesRunnerTransport.d.ts +43 -0
- package/dist/modules/kubernetes/KubernetesRunnerTransport.d.ts.map +1 -1
- package/dist/modules/kubernetes/KubernetesRunnerTransport.js +92 -3
- package/dist/modules/kubernetes/KubernetesRunnerTransport.js.map +1 -1
- package/dist/modules/kubernetes/kubernetes.logic.d.ts +18 -0
- package/dist/modules/kubernetes/kubernetes.logic.d.ts.map +1 -1
- package/dist/modules/kubernetes/kubernetes.logic.js +29 -0
- package/dist/modules/kubernetes/kubernetes.logic.js.map +1 -1
- package/dist/modules/shared/environmentBridge.d.ts +66 -0
- package/dist/modules/shared/environmentBridge.d.ts.map +1 -0
- package/dist/modules/shared/environmentBridge.js +78 -0
- package/dist/modules/shared/environmentBridge.js.map +1 -0
- package/package.json +4 -4
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
// Proving that a provisioned environment can be reached, and keeping the claim and the proof in
|
|
2
|
+
// step as the provider re-states one and the platform re-runs the other.
|
|
3
|
+
//
|
|
4
|
+
// The RULE lives in kernel (`planRouteProbes` / `reduceRouteProof`), which is also where the
|
|
5
|
+
// reasoning is: why the name is tried first, why the provider's order is kept for the addresses,
|
|
6
|
+
// which addresses the platform will not dial, and why an unwired prober records `unproved` rather
|
|
7
|
+
// than a failure. What lives here is the sequencing.
|
|
8
|
+
//
|
|
9
|
+
// Where the URL is turned into coordinates is `@cat-factory/contracts`
|
|
10
|
+
// (`deriveEnvironmentCoordinates`), the ONE deriver, shared with the Tester prompt that states
|
|
11
|
+
// those same coordinates to an agent. A second parser here would let the platform dial one host
|
|
12
|
+
// and tell the agent another.
|
|
13
|
+
import { deriveEnvironmentCoordinates } from '@cat-factory/contracts';
|
|
14
|
+
import { planRouteProbes, recordRefusedAttempt, recordRouteAttempt, reduceRouteProof, unprovedRoute, } from '@cat-factory/kernel';
|
|
15
|
+
/**
|
|
16
|
+
* Dial an environment's name and then, in the provider's order, each address it stated for that
|
|
17
|
+
* name. Stops at the first target that CARRIES and publishes that one.
|
|
18
|
+
*
|
|
19
|
+
* Sequential rather than raced, deliberately. The provider's order is its own statement about
|
|
20
|
+
* which balancer it wants used (an internal one ahead of a public one, say), and racing would
|
|
21
|
+
* publish whichever answered fastest, which is a different question and one nobody asked. The cost
|
|
22
|
+
* is bounded by `MAX_PROBED_ADDRESSES` times the per-probe timeout, against a misdiagnosis that
|
|
23
|
+
* currently costs a whole tester step.
|
|
24
|
+
*
|
|
25
|
+
* With no prober wired the result is `unproved`, never a failure: a facade that cannot open a
|
|
26
|
+
* socket behaves exactly as it did before this existed.
|
|
27
|
+
*
|
|
28
|
+
* A target the plan REFUSED is recorded without a socket being opened. That is the one place the
|
|
29
|
+
* two kinds of target must not be conflated, and why the plan makes a refused one carry no
|
|
30
|
+
* request to dial.
|
|
31
|
+
*/
|
|
32
|
+
export async function proveEnvironmentRoute(url, candidates, deps) {
|
|
33
|
+
const now = deps.clock.now();
|
|
34
|
+
if (!deps.probe)
|
|
35
|
+
return unprovedRoute(now);
|
|
36
|
+
const coords = deriveEnvironmentCoordinates(url);
|
|
37
|
+
const targets = planRouteProbes(coords?.host, coords?.port, candidates);
|
|
38
|
+
const attempts = [];
|
|
39
|
+
for (const target of targets) {
|
|
40
|
+
if (target.kind === 'refused') {
|
|
41
|
+
attempts.push(recordRefusedAttempt(target));
|
|
42
|
+
continue;
|
|
43
|
+
}
|
|
44
|
+
const outcome = await deps.probe(target.request);
|
|
45
|
+
attempts.push(recordRouteAttempt(target, outcome));
|
|
46
|
+
if (outcome.state === 'carried')
|
|
47
|
+
return reduceRouteProof(attempts, target.address, now);
|
|
48
|
+
}
|
|
49
|
+
return reduceRouteProof(attempts, null, now);
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Fold a provider's freshly stated addresses into what is already stored, and decide whether the
|
|
53
|
+
* proof beside them survives.
|
|
54
|
+
*
|
|
55
|
+
* **A provider that says nothing about addresses is not a provider stating none.** `addresses`
|
|
56
|
+
* absent means this response carried no statement (the manifest declares no `addressesPath`, or
|
|
57
|
+
* the call was one whose shape never carries addresses at all, like the no-`status`-template
|
|
58
|
+
* fallback); `[]` means it declared one and the provider answered with nothing. The distinction is
|
|
59
|
+
* the difference between keeping the candidate list and ERASING it, and erasing it is how the
|
|
60
|
+
* feature turns into a hard failure: the balancer list a provider states once on the CREATE
|
|
61
|
+
* response would be wiped by the first readiness poll, leaving the proof to dial only the name it
|
|
62
|
+
* already knows resolves nowhere and the deployer to settle the frame `failed`. Absent keeps what
|
|
63
|
+
* is stored; a statement replaces it. The same rule as everywhere else in this tree: absent is not
|
|
64
|
+
* empty.
|
|
65
|
+
*
|
|
66
|
+
* The proof survives only while BOTH inputs it was derived from are unchanged: the URL it dialled
|
|
67
|
+
* and the candidate list it drew from. Either moving means the stored verdict is about a target
|
|
68
|
+
* that no longer exists, and keeping it there is how a stale `reached` comes to vouch for an
|
|
69
|
+
* address the provider has since replaced. Dropping it costs one re-probe on the next settle.
|
|
70
|
+
*/
|
|
71
|
+
export function foldStatedAddresses(previous, previousUrl, addresses, url) {
|
|
72
|
+
const stored = previous?.candidates ?? [];
|
|
73
|
+
const candidates = addresses ? [...addresses] : [...stored];
|
|
74
|
+
const unchanged = previousUrl === url && sameAddresses(stored, candidates);
|
|
75
|
+
const proof = unchanged ? (previous?.proof ?? null) : null;
|
|
76
|
+
if (candidates.length === 0 && !proof)
|
|
77
|
+
return null;
|
|
78
|
+
return { candidates, proof };
|
|
79
|
+
}
|
|
80
|
+
/** Whether two candidate lists name the same addresses in the same order (labels are cosmetic). */
|
|
81
|
+
function sameAddresses(a, b) {
|
|
82
|
+
if (a.length !== b.length)
|
|
83
|
+
return false;
|
|
84
|
+
return a.every((entry, index) => entry.address === b[index]?.address);
|
|
85
|
+
}
|
|
86
|
+
//# sourceMappingURL=environmentReachability.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"environmentReachability.js","sourceRoot":"","sources":["../../../src/modules/environments/environmentReachability.ts"],"names":[],"mappings":"AAAA,gGAAgG;AAChG,yEAAyE;AACzE,EAAE;AACF,6FAA6F;AAC7F,iGAAiG;AACjG,kGAAkG;AAClG,qDAAqD;AACrD,EAAE;AACF,uEAAuE;AACvE,+FAA+F;AAC/F,gGAAgG;AAChG,8BAA8B;AAE9B,OAAO,EAAE,4BAA4B,EAAE,MAAM,wBAAwB,CAAA;AASrE,OAAO,EACL,eAAe,EACf,oBAAoB,EACpB,kBAAkB,EAClB,gBAAgB,EAChB,aAAa,GACd,MAAM,qBAAqB,CAAA;AAE5B;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,GAA8B,EAC9B,UAAyC,EACzC,IAA0C;IAE1C,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAA;IAC5B,IAAI,CAAC,IAAI,CAAC,KAAK;QAAE,OAAO,aAAa,CAAC,GAAG,CAAC,CAAA;IAC1C,MAAM,MAAM,GAAG,4BAA4B,CAAC,GAAG,CAAC,CAAA;IAChD,MAAM,OAAO,GAAG,eAAe,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,CAAC,CAAA;IACvE,MAAM,QAAQ,GAA8B,EAAE,CAAA;IAC9C,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC9B,QAAQ,CAAC,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAA;YAC3C,SAAQ;QACV,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QAChD,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;QAClD,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS;YAAE,OAAO,gBAAgB,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;IACzF,CAAC;IACD,OAAO,gBAAgB,CAAC,QAAQ,EAAE,IAAI,EAAE,GAAG,CAAC,CAAA;AAC9C,CAAC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,mBAAmB,CACjC,QAAwC,EACxC,WAA0B,EAC1B,SAA2D,EAC3D,GAAkB;IAElB,MAAM,MAAM,GAAG,QAAQ,EAAE,UAAU,IAAI,EAAE,CAAA;IACzC,MAAM,UAAU,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAA;IAC3D,MAAM,SAAS,GAAG,WAAW,KAAK,GAAG,IAAI,aAAa,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;IAC1E,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IAC1D,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAA;IAClD,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,CAAA;AAC9B,CAAC;AAED,mGAAmG;AACnG,SAAS,aAAa,CACpB,CAAgC,EAChC,CAAgC;IAEhC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM;QAAE,OAAO,KAAK,CAAA;IACvC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,KAAK,CAAC,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,CAAA;AACvE,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { ConnectionTestResult, EnvironmentAccessHandle, EnvironmentHandle, EnvironmentManifest, EnvironmentStatus, ProviderConfigField, TeardownConfirmation, TeardownProbe } from '@cat-factory/kernel';
|
|
2
2
|
import type { EnvironmentRecord, UrlSafetyPolicy } from '@cat-factory/kernel';
|
|
3
|
+
import type { EnvironmentAddress, EnvironmentReachability } from '@cat-factory/contracts';
|
|
3
4
|
/**
|
|
4
5
|
* The agent kind that triggers deterministic provisioning, and its counterpart that triggers the
|
|
5
6
|
* deterministic RECLAIM. Re-exported from `@cat-factory/contracts` rather than restated: the
|
|
@@ -175,6 +176,35 @@ export declare function mapStatus(raw: string | undefined, statusMap: {
|
|
|
175
176
|
from: string;
|
|
176
177
|
to: EnvironmentStatus;
|
|
177
178
|
}[] | undefined, fallback: EnvironmentStatus): EnvironmentStatus;
|
|
179
|
+
/**
|
|
180
|
+
* Read a manifest's `addressesPath` off an arbitrary provider response.
|
|
181
|
+
*
|
|
182
|
+
* Three shapes are accepted because a self-rolled management API can reasonably return any of
|
|
183
|
+
* them, and refusing two would push an org into reshaping its API for us: a single address string,
|
|
184
|
+
* an array of strings, or an array of `{ address, label }` objects. Anything else in the array is
|
|
185
|
+
* SKIPPED rather than coerced, so an unexpected element cannot become the literal `[object
|
|
186
|
+
* Object]` in an `--add-host` argument.
|
|
187
|
+
*
|
|
188
|
+
* Nothing here validates the addresses. Which ones a bridge may name is kernel's rule
|
|
189
|
+
* (`isBridgeableAddress`), applied where the bridge is built, and what actually carries is the
|
|
190
|
+
* proof's answer; a provider stating a useless address gets a recorded failed attempt, which is
|
|
191
|
+
* the honest outcome.
|
|
192
|
+
*/
|
|
193
|
+
export declare function extractAddresses(json: unknown, path: string | undefined): EnvironmentAddress[];
|
|
194
|
+
/**
|
|
195
|
+
* Parse the stored reachability blob, or null when there is none and when what is there does not
|
|
196
|
+
* validate.
|
|
197
|
+
*
|
|
198
|
+
* The ONE parse of that column, which is why it is here rather than in each facade's repository:
|
|
199
|
+
* two implementations of one validator is how a D1 row and a Postgres row come to disagree about
|
|
200
|
+
* what they hold. A blob that fails validation reads as ABSENT rather than throwing, because the
|
|
201
|
+
* caller is a projection every environment read goes through and a stale shape written by an older
|
|
202
|
+
* build must not take the whole handle down with it: an unreadable proof and no proof are the same
|
|
203
|
+
* fact to every reader (nothing has been shown to carry).
|
|
204
|
+
*/
|
|
205
|
+
export declare function parseReachability(raw: string | null): EnvironmentReachability | null;
|
|
206
|
+
/** Serialize reachability for the row, or null when there is nothing worth a column. */
|
|
207
|
+
export declare function serializeReachability(value: EnvironmentReachability | null): string | null;
|
|
178
208
|
/** Project a stored record onto the wire handle, optionally with decrypted access. */
|
|
179
209
|
export declare function recordToHandle(record: EnvironmentRecord, access?: EnvironmentAccessHandle | null): EnvironmentHandle;
|
|
180
210
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"environments.logic.d.ts","sourceRoot":"","sources":["../../../src/modules/environments/environments.logic.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,uBAAuB,EACvB,iBAAiB,EACjB,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,oBAAoB,EACpB,aAAa,EACd,MAAM,qBAAqB,CAAA;AAC5B,OAAO,KAAK,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"environments.logic.d.ts","sourceRoot":"","sources":["../../../src/modules/environments/environments.logic.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { connectionFailureResult, STRICT_URL_SAFETY_POLICY } from '@cat-factory/kernel';
|
|
2
|
+
import { environmentReachabilitySchema } from '@cat-factory/contracts';
|
|
3
|
+
import * as v from 'valibot';
|
|
2
4
|
import { safeFetch } from '../shared/safe-fetch.js';
|
|
3
5
|
import { assertSafePublicUrl, publicUrlHost } from '../shared/url-guard.js';
|
|
4
6
|
// Pure helpers for the ephemeral-environment integration: SSRF validation of the
|
|
@@ -334,6 +336,74 @@ export function mapStatus(raw, statusMap, fallback) {
|
|
|
334
336
|
}
|
|
335
337
|
return fallback;
|
|
336
338
|
}
|
|
339
|
+
/**
|
|
340
|
+
* Read a manifest's `addressesPath` off an arbitrary provider response.
|
|
341
|
+
*
|
|
342
|
+
* Three shapes are accepted because a self-rolled management API can reasonably return any of
|
|
343
|
+
* them, and refusing two would push an org into reshaping its API for us: a single address string,
|
|
344
|
+
* an array of strings, or an array of `{ address, label }` objects. Anything else in the array is
|
|
345
|
+
* SKIPPED rather than coerced, so an unexpected element cannot become the literal `[object
|
|
346
|
+
* Object]` in an `--add-host` argument.
|
|
347
|
+
*
|
|
348
|
+
* Nothing here validates the addresses. Which ones a bridge may name is kernel's rule
|
|
349
|
+
* (`isBridgeableAddress`), applied where the bridge is built, and what actually carries is the
|
|
350
|
+
* proof's answer; a provider stating a useless address gets a recorded failed attempt, which is
|
|
351
|
+
* the honest outcome.
|
|
352
|
+
*/
|
|
353
|
+
export function extractAddresses(json, path) {
|
|
354
|
+
if (!path)
|
|
355
|
+
return [];
|
|
356
|
+
const raw = extractByPath(json, path);
|
|
357
|
+
if (typeof raw === 'string')
|
|
358
|
+
return raw.trim() ? [{ address: raw.trim() }] : [];
|
|
359
|
+
if (!Array.isArray(raw))
|
|
360
|
+
return [];
|
|
361
|
+
const out = [];
|
|
362
|
+
for (const entry of raw) {
|
|
363
|
+
if (typeof entry === 'string') {
|
|
364
|
+
if (entry.trim())
|
|
365
|
+
out.push({ address: entry.trim() });
|
|
366
|
+
continue;
|
|
367
|
+
}
|
|
368
|
+
if (!entry || typeof entry !== 'object')
|
|
369
|
+
continue;
|
|
370
|
+
const record = entry;
|
|
371
|
+
const address = typeof record.address === 'string' ? record.address.trim() : '';
|
|
372
|
+
if (!address)
|
|
373
|
+
continue;
|
|
374
|
+
const label = typeof record.label === 'string' ? record.label.trim() : '';
|
|
375
|
+
out.push(label ? { address, label } : { address });
|
|
376
|
+
}
|
|
377
|
+
return out;
|
|
378
|
+
}
|
|
379
|
+
/**
|
|
380
|
+
* Parse the stored reachability blob, or null when there is none and when what is there does not
|
|
381
|
+
* validate.
|
|
382
|
+
*
|
|
383
|
+
* The ONE parse of that column, which is why it is here rather than in each facade's repository:
|
|
384
|
+
* two implementations of one validator is how a D1 row and a Postgres row come to disagree about
|
|
385
|
+
* what they hold. A blob that fails validation reads as ABSENT rather than throwing, because the
|
|
386
|
+
* caller is a projection every environment read goes through and a stale shape written by an older
|
|
387
|
+
* build must not take the whole handle down with it: an unreadable proof and no proof are the same
|
|
388
|
+
* fact to every reader (nothing has been shown to carry).
|
|
389
|
+
*/
|
|
390
|
+
export function parseReachability(raw) {
|
|
391
|
+
if (!raw)
|
|
392
|
+
return null;
|
|
393
|
+
try {
|
|
394
|
+
const parsed = v.safeParse(environmentReachabilitySchema, JSON.parse(raw));
|
|
395
|
+
return parsed.success ? parsed.output : null;
|
|
396
|
+
}
|
|
397
|
+
catch {
|
|
398
|
+
return null;
|
|
399
|
+
}
|
|
400
|
+
}
|
|
401
|
+
/** Serialize reachability for the row, or null when there is nothing worth a column. */
|
|
402
|
+
export function serializeReachability(value) {
|
|
403
|
+
if (!value || (value.candidates.length === 0 && !value.proof))
|
|
404
|
+
return null;
|
|
405
|
+
return JSON.stringify(value);
|
|
406
|
+
}
|
|
337
407
|
/** Project a stored record onto the wire handle, optionally with decrypted access. */
|
|
338
408
|
export function recordToHandle(record, access) {
|
|
339
409
|
return {
|
|
@@ -345,6 +415,7 @@ export function recordToHandle(record, access) {
|
|
|
345
415
|
providerId: record.providerId,
|
|
346
416
|
externalId: record.externalId,
|
|
347
417
|
url: record.url,
|
|
418
|
+
reachability: parseReachability(record.reachability),
|
|
348
419
|
status: record.status,
|
|
349
420
|
...(access ? { access } : {}),
|
|
350
421
|
createdAt: record.createdAt,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"environments.logic.js","sourceRoot":"","sources":["../../../src/modules/environments/environments.logic.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"environments.logic.js","sourceRoot":"","sources":["../../../src/modules/environments/environments.logic.ts"],"names":[],"mappings":"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"}
|
|
@@ -48,6 +48,49 @@ export declare class KubernetesRunnerTransport implements RunnerTransport {
|
|
|
48
48
|
*/
|
|
49
49
|
private podDeathReport;
|
|
50
50
|
private ensurePod;
|
|
51
|
+
/**
|
|
52
|
+
* Delete the pod standing in the way of a replacement, and FAIL on a refusal rather than
|
|
53
|
+
* proceeding to the recreate.
|
|
54
|
+
*
|
|
55
|
+
* The result has to be read. A delete the apiserver refuses (a ServiceAccount with `create` but
|
|
56
|
+
* not `delete`, an admission webhook, a 500) leaves the pod running, and {@link recreatePod}
|
|
57
|
+
* then spends the whole 90-second replacement window collecting 409s before throwing an error
|
|
58
|
+
* that names the CREATE: a step burning a minute and a half of the driver's budget, and an
|
|
59
|
+
* operator sent to the wrong permission. A deployment missing `pods/delete` hits this on every
|
|
60
|
+
* environment-bearing step, so it is a standing misconfiguration rather than a transient.
|
|
61
|
+
*
|
|
62
|
+
* 404 is success: something already removed the pod, which is exactly the state the delete was
|
|
63
|
+
* asking for.
|
|
64
|
+
*/
|
|
65
|
+
private deletePodForReplacement;
|
|
66
|
+
/**
|
|
67
|
+
* Whether the pod already serving this run was created without a host alias the job now needs.
|
|
68
|
+
*
|
|
69
|
+
* `hostAliases` is fixed at pod creation, and a run's pod is created by its FIRST step while the
|
|
70
|
+
* environment it must reach does not exist until the `deployer` several steps later, so the
|
|
71
|
+
* ordinary case for a name-to-address bridge is a pod that predates it. Left unchecked, the
|
|
72
|
+
* re-attach is silent and the tester spends its whole step on connection failures, which is the
|
|
73
|
+
* misreading the bridge exists to stop.
|
|
74
|
+
*
|
|
75
|
+
* Read back off the LIVE pod rather than remembered in this process, which is the one thing this
|
|
76
|
+
* transport can do that the Docker one cannot (`--add-host` is not readable off a container).
|
|
77
|
+
* That also makes the check survive a restart with no cache to lose.
|
|
78
|
+
*
|
|
79
|
+
* A read that FAILS answers false. The alternative is worse in the direction that matters: a
|
|
80
|
+
* transient apiserver blip would delete a healthy pod mid-run, where answering false costs at
|
|
81
|
+
* most the diagnostic the tester was going to produce anyway.
|
|
82
|
+
*/
|
|
83
|
+
private podMissingHostAliases;
|
|
84
|
+
/**
|
|
85
|
+
* Re-create a pod just deleted for a stale host-alias set, tolerating the window in which the
|
|
86
|
+
* apiserver still holds the terminating one.
|
|
87
|
+
*
|
|
88
|
+
* A bare Pod deletes gracefully, so the name stays taken for its termination period and an
|
|
89
|
+
* immediate POST 409s again. Retried rather than failed because the alternative leaves the run
|
|
90
|
+
* attached to the very pod that cannot reach its environment; giving up after the window is an
|
|
91
|
+
* ordinary dispatch failure the engine already recovers by re-driving the step.
|
|
92
|
+
*/
|
|
93
|
+
private recreatePod;
|
|
51
94
|
private waitForPodReady;
|
|
52
95
|
private proxyFetch;
|
|
53
96
|
private apiFetch;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KubernetesRunnerTransport.d.ts","sourceRoot":"","sources":["../../../src/modules/kubernetes/KubernetesRunnerTransport.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,oBAAoB,EAMzB,KAAK,sBAAsB,EAE3B,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,qBAAqB,EAC1B,KAAK,YAAY,EACjB,KAAK,oBAAoB,EACzB,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,cAAc,EACpB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAEL,KAAK,uBAAuB,EAE7B,MAAM,0BAA0B,CAAA;
|
|
1
|
+
{"version":3,"file":"KubernetesRunnerTransport.d.ts","sourceRoot":"","sources":["../../../src/modules/kubernetes/KubernetesRunnerTransport.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,oBAAoB,EAMzB,KAAK,sBAAsB,EAE3B,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,qBAAqB,EAC1B,KAAK,YAAY,EACjB,KAAK,oBAAoB,EACzB,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,cAAc,EACpB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAEL,KAAK,uBAAuB,EAE7B,MAAM,0BAA0B,CAAA;AAgEjC,qBAAa,yBAA0B,YAAW,eAAe;IAM7D,OAAO,CAAC,QAAQ,CAAC,MAAM;IALzB,sFAAsF;IACtF,QAAQ,CAAC,OAAO,iBAAgB;IAChC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqB;IAE5C,YACmB,MAAM,EAAE,sBAAsB,EAC/C,aAAa,EAAE,cAAc;IAC7B;;;;OAIG;IACH,aAAa,CAAC,EAAE,uBAAuB,EAQxC;IAEK,QAAQ,CACZ,GAAG,EAAE,YAAY,EACjB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,IAAI,GAAE,kBAA4B,EAClC,OAAO,CAAC,EAAE,qBAAqB,GAC9B,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC,CAoBxC;IAEK,IAAI,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC,CAqCpD;IAED,qEAAqE;IAC/D,OAAO,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAmB9C;IAED;;;;;;;;OAQG;IACG,OAAO,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAe9D;IAED,mFAAmF;IAC7E,cAAc,IAAI,OAAO,CAAC,oBAAoB,CAAC,CA6BpD;IAID;;;;;;;;;;;;;;;;;OAiBG;YACW,cAAc;YAwCd,SAAS;IAmBvB;;;;;;;;;;;;;OAaG;YACW,uBAAuB;IAerC;;;;;;;;;;;;;;;;OAgBG;YACW,qBAAqB;IAoBnC;;;;;;;;OAQG;YACW,WAAW;YAcX,eAAe;IA+C7B,OAAO,CAAC,UAAU;IAUlB,OAAO,CAAC,QAAQ;CAQjB"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { composePostMortem, connectionFailureResult, CONTAINER_EVICTION_ERROR, containerKeyForRef, getErrorMessage, HARNESS_SHUTDOWN_ERROR, harnessDispatchError, readRunnerDispatchAck, } from '@cat-factory/kernel';
|
|
2
2
|
import { KubernetesApiClient, safeText, } from './KubernetesApiClient.js';
|
|
3
|
-
import { analyzePodStatus, apiBase, apiServerConnectionFailureMessage, buildPodManifest, classifyPodReadiness, describePodTermination, KUBERNETES_TOKEN_KEY, podExitedCleanly, podName, podUrl, podsUrl, proxyUrl, } from './kubernetes.logic.js';
|
|
3
|
+
import { analyzePodStatus, apiBase, apiServerConnectionFailureMessage, buildPodManifest, classifyPodReadiness, podHostAliases, describePodTermination, KUBERNETES_TOKEN_KEY, podExitedCleanly, podName, podUrl, podsUrl, proxyUrl, } from './kubernetes.logic.js';
|
|
4
4
|
// Native Kubernetes runner transport (target k8s 1.35+). One bare Pod per run and IMAGE
|
|
5
5
|
// VARIANT, named deterministically from kernel's `containerKeyForRef`; every step of the run
|
|
6
6
|
// that wants the same image re-attaches to that pod by `ref.jobId`, and a step declaring a
|
|
@@ -40,6 +40,11 @@ const STOP_TIMEOUT_MS = 30_000;
|
|
|
40
40
|
// created (ensurePod 409s) and its image is cached, so the re-drive proceeds.
|
|
41
41
|
const READY_WAIT_MS = 120_000;
|
|
42
42
|
const READY_POLL_INTERVAL_MS = 1_500;
|
|
43
|
+
// How long a replacement pod waits out the terminating one holding its name. A bare Pod deletes
|
|
44
|
+
// gracefully, so the name stays taken for the grace period (30s by default) plus the kubelet's
|
|
45
|
+
// own settle; the window covers a doubled default rather than an arbitrary round number.
|
|
46
|
+
const POD_REPLACE_WAIT_MS = 90_000;
|
|
47
|
+
const POD_REPLACE_POLL_MS = 1_500;
|
|
43
48
|
export class KubernetesRunnerTransport {
|
|
44
49
|
config;
|
|
45
50
|
/** Backend id recorded in run diagnostics (self-hosted runner pool on Kubernetes). */
|
|
@@ -231,11 +236,95 @@ export class KubernetesRunnerTransport {
|
|
|
231
236
|
async ensurePod(name, runId, options) {
|
|
232
237
|
const manifest = buildPodManifest(this.config, runId, name, options);
|
|
233
238
|
const res = await this.apiFetch('POST', podsUrl(this.config), manifest, DISPATCH_TIMEOUT_MS);
|
|
239
|
+
if (res.ok)
|
|
240
|
+
return;
|
|
234
241
|
// 409 AlreadyExists ⇒ the run's pod is already up (a later step or a replay):
|
|
235
242
|
// idempotent re-attach, exactly like CloudflareContainerTransport.
|
|
236
|
-
if (res.
|
|
243
|
+
if (res.status !== 409) {
|
|
244
|
+
throw new Error(`Failed to create runner pod (HTTP ${res.status}): ${await safeText(res)}`);
|
|
245
|
+
}
|
|
246
|
+
if (await this.podMissingHostAliases(name, options)) {
|
|
247
|
+
await this.deletePodForReplacement(name);
|
|
248
|
+
await this.recreatePod(name, manifest);
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
/**
|
|
252
|
+
* Delete the pod standing in the way of a replacement, and FAIL on a refusal rather than
|
|
253
|
+
* proceeding to the recreate.
|
|
254
|
+
*
|
|
255
|
+
* The result has to be read. A delete the apiserver refuses (a ServiceAccount with `create` but
|
|
256
|
+
* not `delete`, an admission webhook, a 500) leaves the pod running, and {@link recreatePod}
|
|
257
|
+
* then spends the whole 90-second replacement window collecting 409s before throwing an error
|
|
258
|
+
* that names the CREATE: a step burning a minute and a half of the driver's budget, and an
|
|
259
|
+
* operator sent to the wrong permission. A deployment missing `pods/delete` hits this on every
|
|
260
|
+
* environment-bearing step, so it is a standing misconfiguration rather than a transient.
|
|
261
|
+
*
|
|
262
|
+
* 404 is success: something already removed the pod, which is exactly the state the delete was
|
|
263
|
+
* asking for.
|
|
264
|
+
*/
|
|
265
|
+
async deletePodForReplacement(name) {
|
|
266
|
+
const res = await this.apiFetch('DELETE', podUrl(this.config, name), undefined, DISPATCH_TIMEOUT_MS);
|
|
267
|
+
if (res.ok || res.status === 404)
|
|
237
268
|
return;
|
|
238
|
-
throw new Error(`
|
|
269
|
+
throw new Error(`Could not delete runner pod '${name}' to give it a host alias it needs (HTTP ` +
|
|
270
|
+
`${res.status}): ${await safeText(res)}. The pod is still running without the alias, so ` +
|
|
271
|
+
`the job would not reach its environment.`);
|
|
272
|
+
}
|
|
273
|
+
/**
|
|
274
|
+
* Whether the pod already serving this run was created without a host alias the job now needs.
|
|
275
|
+
*
|
|
276
|
+
* `hostAliases` is fixed at pod creation, and a run's pod is created by its FIRST step while the
|
|
277
|
+
* environment it must reach does not exist until the `deployer` several steps later, so the
|
|
278
|
+
* ordinary case for a name-to-address bridge is a pod that predates it. Left unchecked, the
|
|
279
|
+
* re-attach is silent and the tester spends its whole step on connection failures, which is the
|
|
280
|
+
* misreading the bridge exists to stop.
|
|
281
|
+
*
|
|
282
|
+
* Read back off the LIVE pod rather than remembered in this process, which is the one thing this
|
|
283
|
+
* transport can do that the Docker one cannot (`--add-host` is not readable off a container).
|
|
284
|
+
* That also makes the check survive a restart with no cache to lose.
|
|
285
|
+
*
|
|
286
|
+
* A read that FAILS answers false. The alternative is worse in the direction that matters: a
|
|
287
|
+
* transient apiserver blip would delete a healthy pod mid-run, where answering false costs at
|
|
288
|
+
* most the diagnostic the tester was going to produce anyway.
|
|
289
|
+
*/
|
|
290
|
+
async podMissingHostAliases(name, options) {
|
|
291
|
+
const needed = podHostAliases(options);
|
|
292
|
+
if (needed.length === 0)
|
|
293
|
+
return false;
|
|
294
|
+
const res = await this.apiFetch('GET', podUrl(this.config, name), undefined, POLL_TIMEOUT_MS);
|
|
295
|
+
if (!res.ok)
|
|
296
|
+
return false;
|
|
297
|
+
const pod = (await res.json());
|
|
298
|
+
const present = new Set();
|
|
299
|
+
for (const alias of Array.isArray(pod?.spec?.hostAliases) ? pod.spec.hostAliases : []) {
|
|
300
|
+
const entry = alias;
|
|
301
|
+
if (typeof entry.ip !== 'string' || !Array.isArray(entry.hostnames))
|
|
302
|
+
continue;
|
|
303
|
+
for (const host of entry.hostnames)
|
|
304
|
+
present.add(`${String(host)}=${entry.ip}`);
|
|
305
|
+
}
|
|
306
|
+
return needed.some((alias) => alias.hostnames.some((host) => !present.has(`${host}=${alias.ip}`)));
|
|
307
|
+
}
|
|
308
|
+
/**
|
|
309
|
+
* Re-create a pod just deleted for a stale host-alias set, tolerating the window in which the
|
|
310
|
+
* apiserver still holds the terminating one.
|
|
311
|
+
*
|
|
312
|
+
* A bare Pod deletes gracefully, so the name stays taken for its termination period and an
|
|
313
|
+
* immediate POST 409s again. Retried rather than failed because the alternative leaves the run
|
|
314
|
+
* attached to the very pod that cannot reach its environment; giving up after the window is an
|
|
315
|
+
* ordinary dispatch failure the engine already recovers by re-driving the step.
|
|
316
|
+
*/
|
|
317
|
+
async recreatePod(name, manifest) {
|
|
318
|
+
const deadline = Date.now() + POD_REPLACE_WAIT_MS;
|
|
319
|
+
for (;;) {
|
|
320
|
+
const res = await this.apiFetch('POST', podsUrl(this.config), manifest, DISPATCH_TIMEOUT_MS);
|
|
321
|
+
if (res.ok)
|
|
322
|
+
return;
|
|
323
|
+
if (res.status !== 409 || Date.now() >= deadline) {
|
|
324
|
+
throw new Error(`Failed to replace runner pod '${name}' (HTTP ${res.status}): ${await safeText(res)}`);
|
|
325
|
+
}
|
|
326
|
+
await new Promise((resolve) => setTimeout(resolve, POD_REPLACE_POLL_MS));
|
|
327
|
+
}
|
|
239
328
|
}
|
|
240
329
|
async waitForPodReady(name) {
|
|
241
330
|
const deadline = Date.now() + READY_WAIT_MS;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KubernetesRunnerTransport.js","sourceRoot":"","sources":["../../../src/modules/kubernetes/KubernetesRunnerTransport.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"KubernetesRunnerTransport.js","sourceRoot":"","sources":["../../../src/modules/kubernetes/KubernetesRunnerTransport.ts"],"names":[],"mappings":"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"}
|
|
@@ -114,6 +114,24 @@ export declare function resolveResources(config: KubernetesRunnerConfig, options
|
|
|
114
114
|
* no inbound shared secret here: access is gated by the SA's `pods/proxy` RBAC.
|
|
115
115
|
*/
|
|
116
116
|
export declare function buildPodManifest(config: KubernetesRunnerConfig, runId: string, name: string, options?: RunnerDispatchOptions): Record<string, unknown>;
|
|
117
|
+
/**
|
|
118
|
+
* The pod's `hostAliases`: the name-to-address mappings a job needs to reach the environments it
|
|
119
|
+
* was handed, grouped by address the way the API shape wants them.
|
|
120
|
+
*
|
|
121
|
+
* The Kubernetes half of the host bridge, and the reason the bridge target is a discriminated
|
|
122
|
+
* value rather than a Docker-only literal. `host-gateway` is a Docker-family token with no
|
|
123
|
+
* Kubernetes equivalent and is dropped here; a name-to-ADDRESS mapping is native
|
|
124
|
+
* (`{ ip, hostnames[] }`) and is exactly what a remote environment whose per-environment DNS
|
|
125
|
+
* record lives in a view this cluster cannot see needs. `addressBridges` owns that split so this
|
|
126
|
+
* transport and the local one cannot disagree about what they dropped.
|
|
127
|
+
*
|
|
128
|
+
* Grouped rather than one entry per host because the API takes a list of addresses each carrying
|
|
129
|
+
* its hostnames, and two names behind one balancer are the ordinary case.
|
|
130
|
+
*/
|
|
131
|
+
export declare function podHostAliases(options?: RunnerDispatchOptions): {
|
|
132
|
+
ip: string;
|
|
133
|
+
hostnames: string[];
|
|
134
|
+
}[];
|
|
117
135
|
/** Coerce an arbitrary id into a valid label value (<=63 chars, alnum/._-). */
|
|
118
136
|
export declare function labelValue(value: string): string;
|
|
119
137
|
/** The readiness verdict from a pod's `status`. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kubernetes.logic.d.ts","sourceRoot":"","sources":["../../../src/modules/kubernetes/kubernetes.logic.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,sBAAsB,EACtB,mBAAmB,EACnB,qBAAqB,EACtB,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"kubernetes.logic.d.ts","sourceRoot":"","sources":["../../../src/modules/kubernetes/kubernetes.logic.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { deploymentImageVariantMessage, isCloudMetadataHost, isPlatformImageVariant, RUNNER_IMAGE_UNWIRED_REASON, UnavailableError, unservablePlatformImageVariant, ValidationError, } from '@cat-factory/kernel';
|
|
2
2
|
import { HARNESS_JOB_PORT, KUBERNETES_RUNNER_TOKEN_SECRET_KEY } from '@cat-factory/contracts';
|
|
3
|
+
import { addressBridges, planEnvironmentBridges } from '../shared/environmentBridge.js';
|
|
3
4
|
// Pure helpers for the native Kubernetes runner backend. No I/O here — URL
|
|
4
5
|
// building, the per-run pod-name derivation, the pod manifest, and the readiness
|
|
5
6
|
// classification are all pure so they unit-test in isolation. The transport
|
|
@@ -283,9 +284,11 @@ export function buildPodManifest(config, runId, name, options) {
|
|
|
283
284
|
},
|
|
284
285
|
...(resources ? { resources } : {}),
|
|
285
286
|
};
|
|
287
|
+
const hostAliases = podHostAliases(options);
|
|
286
288
|
const spec = {
|
|
287
289
|
restartPolicy: 'Never',
|
|
288
290
|
containers: [container],
|
|
291
|
+
...(hostAliases.length ? { hostAliases } : {}),
|
|
289
292
|
...(config.serviceAccountName ? { serviceAccountName: config.serviceAccountName } : {}),
|
|
290
293
|
...(config.imagePullSecretName
|
|
291
294
|
? { imagePullSecrets: [{ name: config.imagePullSecretName }] }
|
|
@@ -305,6 +308,32 @@ export function buildPodManifest(config, runId, name, options) {
|
|
|
305
308
|
spec,
|
|
306
309
|
};
|
|
307
310
|
}
|
|
311
|
+
/**
|
|
312
|
+
* The pod's `hostAliases`: the name-to-address mappings a job needs to reach the environments it
|
|
313
|
+
* was handed, grouped by address the way the API shape wants them.
|
|
314
|
+
*
|
|
315
|
+
* The Kubernetes half of the host bridge, and the reason the bridge target is a discriminated
|
|
316
|
+
* value rather than a Docker-only literal. `host-gateway` is a Docker-family token with no
|
|
317
|
+
* Kubernetes equivalent and is dropped here; a name-to-ADDRESS mapping is native
|
|
318
|
+
* (`{ ip, hostnames[] }`) and is exactly what a remote environment whose per-environment DNS
|
|
319
|
+
* record lives in a view this cluster cannot see needs. `addressBridges` owns that split so this
|
|
320
|
+
* transport and the local one cannot disagree about what they dropped.
|
|
321
|
+
*
|
|
322
|
+
* Grouped rather than one entry per host because the API takes a list of addresses each carrying
|
|
323
|
+
* its hostnames, and two names behind one balancer are the ordinary case.
|
|
324
|
+
*/
|
|
325
|
+
export function podHostAliases(options) {
|
|
326
|
+
const plan = planEnvironmentBridges(options?.environments ?? []);
|
|
327
|
+
const byIp = new Map();
|
|
328
|
+
for (const bridge of addressBridges(plan.bridges)) {
|
|
329
|
+
const hostnames = byIp.get(bridge.ip);
|
|
330
|
+
if (hostnames)
|
|
331
|
+
hostnames.push(bridge.host);
|
|
332
|
+
else
|
|
333
|
+
byIp.set(bridge.ip, [bridge.host]);
|
|
334
|
+
}
|
|
335
|
+
return [...byIp.entries()].map(([ip, hostnames]) => ({ ip, hostnames }));
|
|
336
|
+
}
|
|
308
337
|
/** Coerce an arbitrary id into a valid label value (<=63 chars, alnum/._-). */
|
|
309
338
|
export function labelValue(value) {
|
|
310
339
|
return value
|