@telorun/k8s-runner 0.14.0 → 0.15.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/README.md +93 -14
- package/dist/config.d.ts +44 -9
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +51 -4
- package/dist/config.js.map +1 -1
- package/dist/k8s/backend.d.ts +4 -0
- package/dist/k8s/backend.d.ts.map +1 -1
- package/dist/k8s/backend.js +55 -17
- package/dist/k8s/backend.js.map +1 -1
- package/dist/k8s/client.d.ts +7 -1
- package/dist/k8s/client.d.ts.map +1 -1
- package/dist/k8s/client.js +3 -1
- package/dist/k8s/client.js.map +1 -1
- package/dist/k8s/pod-status.d.ts +5 -0
- package/dist/k8s/pod-status.d.ts.map +1 -1
- package/dist/k8s/pod-status.js +7 -0
- package/dist/k8s/pod-status.js.map +1 -1
- package/dist/k8s/routing/create-or-replace.d.ts +5 -0
- package/dist/k8s/routing/create-or-replace.d.ts.map +1 -0
- package/dist/k8s/routing/create-or-replace.js +15 -0
- package/dist/k8s/routing/create-or-replace.js.map +1 -0
- package/dist/k8s/routing/gateway-router.d.ts +5 -0
- package/dist/k8s/routing/gateway-router.d.ts.map +1 -0
- package/dist/k8s/routing/gateway-router.js +178 -0
- package/dist/k8s/routing/gateway-router.js.map +1 -0
- package/dist/k8s/routing/index.d.ts +24 -0
- package/dist/k8s/routing/index.d.ts.map +1 -0
- package/dist/k8s/routing/index.js +27 -0
- package/dist/k8s/routing/index.js.map +1 -0
- package/dist/k8s/routing/ingress-router.d.ts +13 -0
- package/dist/k8s/routing/ingress-router.d.ts.map +1 -0
- package/dist/k8s/routing/ingress-router.js +125 -0
- package/dist/k8s/routing/ingress-router.js.map +1 -0
- package/dist/k8s/routing/route-health.d.ts +34 -0
- package/dist/k8s/routing/route-health.d.ts.map +1 -0
- package/dist/k8s/routing/route-health.js +77 -0
- package/dist/k8s/routing/route-health.js.map +1 -0
- package/dist/k8s/routing/routing-mode.d.ts +45 -0
- package/dist/k8s/routing/routing-mode.d.ts.map +1 -0
- package/dist/k8s/routing/routing-mode.js +141 -0
- package/dist/k8s/routing/routing-mode.js.map +1 -0
- package/dist/k8s/routing/session-endpoints.d.ts +25 -0
- package/dist/k8s/routing/session-endpoints.d.ts.map +1 -0
- package/dist/k8s/routing/session-endpoints.js +36 -0
- package/dist/k8s/routing/session-endpoints.js.map +1 -0
- package/dist/k8s/routing/session-router.d.ts +57 -0
- package/dist/k8s/routing/session-router.d.ts.map +1 -0
- package/dist/k8s/routing/session-router.js +2 -0
- package/dist/k8s/routing/session-router.js.map +1 -0
- package/dist/k8s/routing/session-service.d.ts +14 -0
- package/dist/k8s/routing/session-service.d.ts.map +1 -0
- package/dist/k8s/routing/session-service.js +42 -0
- package/dist/k8s/routing/session-service.js.map +1 -0
- package/dist/k8s/watch-session.d.ts +3 -0
- package/dist/k8s/watch-session.d.ts.map +1 -1
- package/dist/k8s/watch-session.js +82 -75
- package/dist/k8s/watch-session.js.map +1 -1
- package/dist/k8s/workspace-configmap.d.ts.map +1 -1
- package/dist/k8s/workspace-configmap.js +3 -12
- package/dist/k8s/workspace-configmap.js.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +34 -1
- package/dist/server.js.map +1 -1
- package/package.json +2 -2
- package/src/config.ts +116 -13
- package/src/k8s/backend.ts +73 -23
- package/src/k8s/client.ts +17 -1
- package/src/k8s/pod-status.ts +8 -0
- package/src/k8s/routing/create-or-replace.ts +16 -0
- package/src/k8s/routing/gateway-router.test.ts +236 -0
- package/src/k8s/routing/gateway-router.ts +219 -0
- package/src/k8s/routing/index.ts +44 -0
- package/src/k8s/routing/ingress-router.test.ts +236 -0
- package/src/k8s/routing/ingress-router.ts +157 -0
- package/src/k8s/routing/route-health.test.ts +215 -0
- package/src/k8s/routing/route-health.ts +95 -0
- package/src/k8s/routing/routing-mode.test.ts +218 -0
- package/src/k8s/routing/routing-mode.ts +191 -0
- package/src/k8s/routing/session-endpoints.ts +45 -0
- package/src/k8s/routing/session-router.ts +59 -0
- package/src/k8s/routing/session-service.ts +55 -0
- package/src/k8s/watch-session.ts +82 -64
- package/src/k8s/workspace-configmap.ts +3 -15
- package/src/server.ts +38 -1
- package/dist/k8s/ingress.d.ts +0 -15
- package/dist/k8s/ingress.d.ts.map +0 -1
- package/dist/k8s/ingress.js +0 -102
- package/dist/k8s/ingress.js.map +0 -1
- package/src/k8s/ingress.test.ts +0 -146
- package/src/k8s/ingress.ts +0 -127
package/README.md
CHANGED
|
@@ -27,9 +27,10 @@ serving an anonymous tier, the ceiling *is* the policy.
|
|
|
27
27
|
|
|
28
28
|
Per session the runner resolves the image, creates a Pod (`telo run`), watches it
|
|
29
29
|
for status, attaches a PTY over the Pod `attach` subresource for the interactive
|
|
30
|
-
`/io` channel, and — when
|
|
31
|
-
per-session Service
|
|
32
|
-
an ownerReference to
|
|
30
|
+
`/io` channel, and — when a routing base domain is configured — creates a
|
|
31
|
+
per-session Service plus routing objects (an Ingress, or one HTTPRoute per port)
|
|
32
|
+
at `<port>-<sessionId>.<base-domain>`, garbage-collected via an ownerReference to
|
|
33
|
+
the Pod.
|
|
33
34
|
|
|
34
35
|
**Every session runs the plain kernel image.** A body-fetch initContainer untars
|
|
35
36
|
the staged bundle into a writable `/app` emptyDir and the session container runs
|
|
@@ -105,7 +106,7 @@ agent's port the **manifest wins**: the session starts without the agent and say
|
|
|
105
106
|
so on its stream, rather than refusing to run the user's app over a container
|
|
106
107
|
they never asked for and cannot decline. Nothing else is arranged: the pod's containers
|
|
107
108
|
share one network namespace, so the port simply joins the session's own Service
|
|
108
|
-
and
|
|
109
|
+
and routing objects and answers at `<agentPort>-<sessionId>.<base-domain>`. The `running`
|
|
109
110
|
status carries it as an `agent` endpoint beside `endpoints` — separate, because
|
|
110
111
|
`endpoints` are the ports the user's applications declared, and an
|
|
111
112
|
operator-launched container is not one of them. It is reachable without auth for
|
|
@@ -212,10 +213,10 @@ transport whose kind does not emit one would silently get no routing.
|
|
|
212
213
|
one-shot app completed is not a change. It touches the named app's entry manifest
|
|
213
214
|
through the same path everything else uses, so it needs no signalling into the
|
|
214
215
|
container, no shared PID namespace and no `exec` — **RBAC gains only `configmaps:
|
|
215
|
-
get, create` and `update` on services
|
|
216
|
-
changes an app's declared port set can re-patch its routing. Without that,
|
|
217
|
-
`ports:` entry leaves the app bound to a port with no
|
|
218
|
-
event.
|
|
216
|
+
get, create` and `update` on services and routing objects**, the latter so a reload
|
|
217
|
+
that changes an app's declared port set can re-patch its routing. Without that,
|
|
218
|
+
adding a `ports:` entry leaves the app bound to a port with no route, no error and
|
|
219
|
+
no event.
|
|
219
220
|
|
|
220
221
|
Changing the app set costs a pod recreate because a pod's container list is fixed
|
|
221
222
|
at creation. That is the only editing action in the design that costs a pod, and
|
|
@@ -296,8 +297,14 @@ outcome than a URL that silently reaches the wrong app.
|
|
|
296
297
|
| `RUNNER_INIT_IMAGE` | `busybox:stable` | Bundle-fetch initContainer image (wget + tar) |
|
|
297
298
|
| `RUNNER_IMAGE_PULL_SECRET` | _(unset)_ | dockerconfig Secret (in `telo-sessions`) the kubelet pulls session images with — needed only for a kernel or catalog image in a private registry |
|
|
298
299
|
| `RUNNER_RUNTIME_CLASS` | _(unset → runc)_ | Sandbox RuntimeClass (gvisor/kata) |
|
|
299
|
-
| `
|
|
300
|
-
| `
|
|
300
|
+
| `SESSION_ROUTING_MODE` | `auto` | `auto` \| `ingress` \| `gateway` \| `none`. See [Routing layer](#routing-layer) |
|
|
301
|
+
| `SESSION_ROUTING_BASE_DOMAIN` | _(unset → logs-only)_ | Wildcard base for per-session hosts |
|
|
302
|
+
| `SESSION_ROUTE_READY_TIMEOUT_SECONDS` | `60` | How long a published route may go unclaimed before the session reports it `unprogrammed` |
|
|
303
|
+
| `SESSION_INGRESS_CLASS` | _(unset → cluster default)_ | IngressClass for session Ingresses (ingress mode) |
|
|
304
|
+
| `SESSION_INGRESS_TLS_SECRET` | _(unset → no TLS block)_ | `kubernetes.io/tls` Secret (in `telo-sessions`) the session Ingress presents; must cover `*.<base-domain>`. Set for Cloudflare Full (Strict) / any origin-cert upstream. **Ingress mode only** — refused at boot in gateway mode, where the cert belongs to the Gateway listener |
|
|
305
|
+
| `SESSION_GATEWAY_NAME` | _(unset)_ | Gateway each session's HTTPRoute attaches to. Required in gateway mode |
|
|
306
|
+
| `SESSION_GATEWAY_NAMESPACE` | _(= session namespace)_ | Namespace of that Gateway |
|
|
307
|
+
| `SESSION_GATEWAY_SECTION_NAME` | _(unset → any listener)_ | Listener name, when only one should carry session traffic |
|
|
301
308
|
| `RUNNER_MAX_CPU` | `50m` | CPU ceiling |
|
|
302
309
|
| `RUNNER_MAX_MEMORY` | `100Mi` | Memory ceiling |
|
|
303
310
|
| `RUNNER_MAX_TTL_SECONDS` | `3600` | Wall-clock TTL (Pod `activeDeadlineSeconds`) |
|
|
@@ -375,22 +382,94 @@ For a kernel image or an operator catalog image held in a **private registry**,
|
|
|
375
382
|
create the dockerconfigjson Secret in `telo-sessions` yourself and point
|
|
376
383
|
`session.imagePullSecret` at it; the kubelet pulls with it.
|
|
377
384
|
|
|
385
|
+
### Routing layer
|
|
386
|
+
|
|
387
|
+
Session hosts are `<port>-<sessionId>.<base-domain>` — a single label, so one
|
|
388
|
+
wildcard DNS record and one wildcard cert cover every session. **Both current
|
|
389
|
+
routing APIs are supported**, because clusters ship Ingress, Gateway API, or
|
|
390
|
+
both, and hardcoding either leaves the runner unroutable on the rest.
|
|
391
|
+
|
|
392
|
+
`sessionRouting.mode` picks the layer:
|
|
393
|
+
|
|
394
|
+
| mode | behaviour |
|
|
395
|
+
| --- | --- |
|
|
396
|
+
| `auto` (default) | Resolve from what is **configured**, then from what the cluster serves |
|
|
397
|
+
| `ingress` | `networking.k8s.io/v1` Ingress |
|
|
398
|
+
| `gateway` | `gateway.networking.k8s.io` HTTPRoute (`v1`, falling back to `v1beta1`) |
|
|
399
|
+
| `none` | Publish nothing — logs-only even with a base domain set |
|
|
400
|
+
|
|
401
|
+
`auto` reads configuration before installation, and that order is the point: a
|
|
402
|
+
named Gateway wins, then a configured IngressClass, then a **default-marked**
|
|
403
|
+
IngressClass (`ingressclass.kubernetes.io/is-default-class` — the cluster has
|
|
404
|
+
nominated where an unqualified Ingress goes, and unqualified is what this runner
|
|
405
|
+
creates), and only then does it look at what merely exists. **Gateway API CRDs are frequently present without being the intended
|
|
406
|
+
path**, so "the API exists" is not evidence of intent. Where two usable layers
|
|
407
|
+
exist and nothing was configured, the runner **refuses to start** rather than
|
|
408
|
+
guessing — a wrong guess publishes routing objects nothing reconciles, which
|
|
409
|
+
produces a healthy pod and a 404 on every URL, with nothing reported anywhere.
|
|
410
|
+
|
|
411
|
+
```bash
|
|
412
|
+
# Gateway API
|
|
413
|
+
helm install telo-runner ./chart \
|
|
414
|
+
--set sessionRouting.mode=gateway \
|
|
415
|
+
--set sessionRouting.baseDomain=telo.run \
|
|
416
|
+
--set sessionRouting.gateway.name=public \
|
|
417
|
+
--set sessionRouting.gateway.namespace=gateway-system \
|
|
418
|
+
--set sessionRouting.dataPlaneNamespace=gateway-system
|
|
419
|
+
```
|
|
420
|
+
|
|
421
|
+
The Gateway needs a listener whose hostname covers `*.<base-domain>` and whose
|
|
422
|
+
`allowedRoutes.namespaces` admits `telo-sessions`. A route it does not admit is
|
|
423
|
+
reported per session with the controller's own reason (`NotAllowedByListeners`).
|
|
424
|
+
|
|
425
|
+
**Upgrading from `sessionIngress.*`** is a breaking values change and the chart
|
|
426
|
+
refuses the old keys rather than ignoring them — Helm drops unknown values
|
|
427
|
+
silently, so an un-migrated file would otherwise boot a runner that logs
|
|
428
|
+
`session routing disabled (logs-only)` and drops every session URL.
|
|
429
|
+
|
|
430
|
+
> **One HTTPRoute per port.** Gateway API scopes `hostnames` to the whole route
|
|
431
|
+
> while a rule matches on path, never host — so a single route carrying every
|
|
432
|
+
> session hostname would send them all to whichever rule matched `/` first. An
|
|
433
|
+
> Ingress rule owns its host, which is why that layer needs only one object.
|
|
434
|
+
|
|
435
|
+
**`sessionRouting.dataPlaneNamespace` is not optional when routing is on.** The
|
|
436
|
+
session NetworkPolicy admits traffic from that namespace only; without it the
|
|
437
|
+
route programs correctly and the workload is still unreachable.
|
|
438
|
+
|
|
439
|
+
### Route verification
|
|
440
|
+
|
|
441
|
+
The runner already dials each declared port from its own network — that proves
|
|
442
|
+
the app is **listening** and says nothing about whether traffic can **reach** it.
|
|
443
|
+
So it separately verifies that what it published was actually programmed, and
|
|
444
|
+
reports each host as `pending` → `programmed` / `unprogrammed` on the session
|
|
445
|
+
event stream (`type: "route"`). Reported, never fatal: a slow controller and an
|
|
446
|
+
absent one look alike for the first few seconds.
|
|
447
|
+
|
|
448
|
+
Gateway API answers this precisely, from the `Accepted` / `ResolvedRefs`
|
|
449
|
+
conditions a controller writes. Ingress has no rejection signal — a controller
|
|
450
|
+
that refuses a rule simply never writes status — so there an unclaimed route is
|
|
451
|
+
caught by the timeout rather than by a reason the cluster gave.
|
|
452
|
+
|
|
378
453
|
### Origin TLS (Cloudflare et al.)
|
|
379
454
|
|
|
455
|
+
**Ingress mode only.** Under Gateway API the origin certificate belongs to the
|
|
456
|
+
Gateway listener's own `certificateRefs`; setting `SESSION_INGRESS_TLS_SECRET`
|
|
457
|
+
alongside `mode: gateway` is refused at boot rather than silently ignored.
|
|
458
|
+
|
|
380
459
|
To have the per-session Ingress present an origin cert (so an upstream like
|
|
381
460
|
Cloudflare in **Full (Strict)** mode validates the origin), give the chart a
|
|
382
461
|
`kubernetes.io/tls` Secret in `telo-sessions`. The cert must cover the wildcard
|
|
383
|
-
`*.<
|
|
462
|
+
`*.<sessionRouting.baseDomain>` — session hosts are a single label
|
|
384
463
|
(`<port>-<sessionId>.<base-domain>`). Two ways:
|
|
385
464
|
|
|
386
465
|
```bash
|
|
387
466
|
# A — reference a Secret you manage in telo-sessions (cert-manager, your own sync)
|
|
388
|
-
helm install telo-runner ./chart --set
|
|
467
|
+
helm install telo-runner ./chart --set sessionRouting.ingress.tls.secretName=telo-origin-tls
|
|
389
468
|
|
|
390
469
|
# B — let the chart create the Secret from your cert + key
|
|
391
470
|
helm install telo-runner ./chart \
|
|
392
|
-
--set-file
|
|
393
|
-
--set-file
|
|
471
|
+
--set-file sessionRouting.ingress.tls.cert=origin.pem \
|
|
472
|
+
--set-file sessionRouting.ingress.tls.key=origin.key
|
|
394
473
|
```
|
|
395
474
|
|
|
396
475
|
Either wires `SESSION_INGRESS_TLS_SECRET`, and the runner stamps a `spec.tls`
|
package/dist/config.d.ts
CHANGED
|
@@ -34,12 +34,53 @@ export interface LimitCeilings {
|
|
|
34
34
|
/** Per-Pod ephemeral-storage limit, e.g. "512Mi". */
|
|
35
35
|
ephemeralStorage: string;
|
|
36
36
|
}
|
|
37
|
+
/**
|
|
38
|
+
* Which routing layer the runner publishes per-session routes on.
|
|
39
|
+
*
|
|
40
|
+
* - `auto` — resolve from what is CONFIGURED, then from what the cluster
|
|
41
|
+
* serves; refuse at boot when the answer is genuinely ambiguous.
|
|
42
|
+
* - `ingress` — `networking.k8s.io/v1` Ingress.
|
|
43
|
+
* - `gateway` — `gateway.networking.k8s.io/v1` HTTPRoute.
|
|
44
|
+
* - `none` — publish nothing; the session is logs-only even with a base
|
|
45
|
+
* domain set.
|
|
46
|
+
*/
|
|
47
|
+
export type SessionRoutingMode = "auto" | "ingress" | "gateway" | "none";
|
|
48
|
+
/** The Gateway a session's HTTPRoute attaches to. Never detected: picking one of
|
|
49
|
+
* several Gateways is the same guess as picking one of two routing APIs, and a
|
|
50
|
+
* route attached to the wrong Gateway fails exactly as silently as no route. */
|
|
51
|
+
export interface GatewayParentConfig {
|
|
52
|
+
name: string;
|
|
53
|
+
/** Defaults to the session namespace — mirroring Gateway API's own
|
|
54
|
+
* `parentRefs[].namespace` default, which is the route's own namespace. */
|
|
55
|
+
namespace: string;
|
|
56
|
+
/** Optional listener name, when the Gateway has several and only one should
|
|
57
|
+
* carry session traffic. */
|
|
58
|
+
sectionName?: string;
|
|
59
|
+
}
|
|
60
|
+
export interface SessionRoutingConfig {
|
|
61
|
+
mode: SessionRoutingMode;
|
|
62
|
+
/** Wildcard base domain for per-session hosts; unset → logs-only whatever the
|
|
63
|
+
* mode, since without it no host can be constructed at all. */
|
|
64
|
+
baseDomain?: string;
|
|
65
|
+
/** IngressClass for created session Ingresses (ingress mode). */
|
|
66
|
+
ingressClassName?: string;
|
|
67
|
+
/** `kubernetes.io/tls` Secret (in the session namespace) the per-session
|
|
68
|
+
* Ingress presents so an upstream (e.g. Cloudflare Full (Strict)) can validate
|
|
69
|
+
* the origin. Must cover `*.<baseDomain>`. INGRESS MODE ONLY — under Gateway
|
|
70
|
+
* API the certificate belongs to the Gateway's listener, so setting this in
|
|
71
|
+
* gateway mode is refused at boot rather than silently ignored. */
|
|
72
|
+
tlsSecretName?: string;
|
|
73
|
+
gateway?: GatewayParentConfig;
|
|
74
|
+
/** How long a published route may go unclaimed by any controller before it is
|
|
75
|
+
* reported `unprogrammed`. */
|
|
76
|
+
routeReadyTimeoutMs: number;
|
|
77
|
+
}
|
|
37
78
|
export interface K8sRunnerConfig extends RunnerCoreConfig {
|
|
38
79
|
/** Identity advertised on `/v1/capabilities` — studio labels the runner
|
|
39
80
|
* with these. */
|
|
40
81
|
displayName: string;
|
|
41
82
|
description: string;
|
|
42
|
-
/** Namespace where session Pods/Services
|
|
83
|
+
/** Namespace where session Pods/Services and routing objects are created. */
|
|
43
84
|
sessionNamespace: string;
|
|
44
85
|
/** Default image for spawned session Pods (telorun/node). Baked into the runner
|
|
45
86
|
* image as `RUNNER_IMAGE` at build time (the kernel version the runner was
|
|
@@ -53,14 +94,8 @@ export interface K8sRunnerConfig extends RunnerCoreConfig {
|
|
|
53
94
|
imagePullSecret?: string;
|
|
54
95
|
/** Optional sandbox RuntimeClass (gvisor/kata). Unset → cluster default (runc). */
|
|
55
96
|
runtimeClass?: string;
|
|
56
|
-
/**
|
|
57
|
-
|
|
58
|
-
/** Optional IngressClass name for created session Ingresses. */
|
|
59
|
-
sessionIngressClassName?: string;
|
|
60
|
-
/** Optional `kubernetes.io/tls` Secret (in the session namespace) the per-session
|
|
61
|
-
* Ingress presents so an upstream (e.g. Cloudflare Full (Strict)) can validate
|
|
62
|
-
* the origin. Must cover the wildcard `*.<sessionIngressBaseDomain>`. Unset → no TLS block. */
|
|
63
|
-
sessionIngressTlsSecretName?: string;
|
|
97
|
+
/** How per-session routes are published. */
|
|
98
|
+
sessionRouting: SessionRoutingConfig;
|
|
64
99
|
/** Runner's own in-cluster base URL, used to build the bundle fetch URL the
|
|
65
100
|
* initContainer curls (e.g. http://k8s-runner.telo-runner:8062). */
|
|
66
101
|
selfUrl: string;
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,iBAAiB,EACjB,KAAK,gBAAgB,EACrB,KAAK,SAAS,EACf,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,iBAAiB,EAAE,CAAC;AAE7B;;;;;;;GAOG;AACH,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,OAAO,CAAC;IACjB,yEAAyE;IACzE,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,SAAS,CAAC;IAClB,6CAA6C;IAC7C,KAAK,EAAE,MAAM,CAAC;IACd,wCAAwC;IACxC,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED;;;;;GAKG;AACH,MAAM,WAAW,aAAa;IAC5B,2CAA2C;IAC3C,GAAG,EAAE,MAAM,CAAC;IACZ,gDAAgD;IAChD,MAAM,EAAE,MAAM,CAAC;IACf,6DAA6D;IAC7D,UAAU,EAAE,MAAM,CAAC;IACnB,qDAAqD;IACrD,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,eAAgB,SAAQ,gBAAgB;IACvD;sBACkB;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,iBAAiB,EACjB,KAAK,gBAAgB,EACrB,KAAK,SAAS,EACf,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,iBAAiB,EAAE,CAAC;AAE7B;;;;;;;GAOG;AACH,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,OAAO,CAAC;IACjB,yEAAyE;IACzE,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,SAAS,CAAC;IAClB,6CAA6C;IAC7C,KAAK,EAAE,MAAM,CAAC;IACd,wCAAwC;IACxC,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED;;;;;GAKG;AACH,MAAM,WAAW,aAAa;IAC5B,2CAA2C;IAC3C,GAAG,EAAE,MAAM,CAAC;IACZ,gDAAgD;IAChD,MAAM,EAAE,MAAM,CAAC;IACf,6DAA6D;IAC7D,UAAU,EAAE,MAAM,CAAC;IACnB,qDAAqD;IACrD,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;;;;;GASG;AACH,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,CAAC;AAIzE;;iFAEiF;AACjF,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb;gFAC4E;IAC5E,SAAS,EAAE,MAAM,CAAC;IAClB;iCAC6B;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,kBAAkB,CAAC;IACzB;oEACgE;IAChE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iEAAiE;IACjE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;wEAIoE;IACpE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,mBAAmB,CAAC;IAC9B;mCAC+B;IAC/B,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,eAAgB,SAAQ,gBAAgB;IACvD;sBACkB;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,6EAA6E;IAC7E,gBAAgB,EAAE,MAAM,CAAC;IACzB;;oFAEgF;IAChF,YAAY,EAAE,MAAM,CAAC;IACrB,yEAAyE;IACzE,SAAS,EAAE,MAAM,CAAC;IAClB;;sDAEkD;IAClD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,mFAAmF;IACnF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,4CAA4C;IAC5C,cAAc,EAAE,oBAAoB,CAAC;IACrC;yEACqE;IACrE,OAAO,EAAE,MAAM,CAAC;IAChB,sEAAsE;IACtE,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,aAAa,CAAC;IACtB;;;6BAGyB;IACzB,SAAS,EAAE,aAAa,CAAC;IACzB,+EAA+E;IAC/E,gBAAgB,EAAE,sBAAsB,CAAC;CAC1C;AAyGD,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,GAAG,eAAe,CAmD3E"}
|
package/dist/config.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { loadCoreConfig, parseBool, parsePositiveInt, RunnerConfigError, } from "@telorun/runner-core";
|
|
2
2
|
export { RunnerConfigError };
|
|
3
|
+
const ROUTING_MODES = ["auto", "ingress", "gateway", "none"];
|
|
3
4
|
const DEFAULT_PORT = 8062;
|
|
4
5
|
/** Compile a single optional regex env var into a one-element `RegExp[]`. */
|
|
5
6
|
function parseTagRegex(raw, field) {
|
|
@@ -13,6 +14,53 @@ function parseTagRegex(raw, field) {
|
|
|
13
14
|
throw new RunnerConfigError(`${field} is not a valid regular expression: ${err.message}`);
|
|
14
15
|
}
|
|
15
16
|
}
|
|
17
|
+
/** Parse the routing mode, THROWING on an unrecognized one rather than degrading
|
|
18
|
+
* to a default — a typo'd mode that silently fell back to `auto` is the same
|
|
19
|
+
* class of failure this whole mechanism exists to remove. */
|
|
20
|
+
function parseRoutingMode(raw) {
|
|
21
|
+
const v = raw?.trim();
|
|
22
|
+
if (!v)
|
|
23
|
+
return "auto";
|
|
24
|
+
if (ROUTING_MODES.includes(v))
|
|
25
|
+
return v;
|
|
26
|
+
throw new RunnerConfigError(`SESSION_ROUTING_MODE must be one of ${ROUTING_MODES.join(" | ")} (got '${v}').`);
|
|
27
|
+
}
|
|
28
|
+
function loadSessionRoutingConfig(env, sessionNamespace) {
|
|
29
|
+
const mode = parseRoutingMode(env.SESSION_ROUTING_MODE);
|
|
30
|
+
const gatewayName = env.SESSION_GATEWAY_NAME?.trim() || undefined;
|
|
31
|
+
const tlsSecretName = env.SESSION_INGRESS_TLS_SECRET?.trim() || undefined;
|
|
32
|
+
// A certificate configured for a layer that will never present it is a silent
|
|
33
|
+
// downgrade to plaintext origin traffic, so it is refused rather than ignored.
|
|
34
|
+
// This is only the FAST PATH, for the mode that states the layer outright: the
|
|
35
|
+
// authoritative refusal is at routing resolution, because under `auto` a named
|
|
36
|
+
// Gateway decides the layer and nothing here can see that yet.
|
|
37
|
+
if (mode === "gateway" && tlsSecretName) {
|
|
38
|
+
throw new RunnerConfigError("SESSION_INGRESS_TLS_SECRET is set but SESSION_ROUTING_MODE=gateway. Under Gateway API the " +
|
|
39
|
+
"origin certificate belongs to the Gateway listener's own `tls.certificateRefs`, not to the " +
|
|
40
|
+
"per-session route. Move the Secret reference to the Gateway and unset this.");
|
|
41
|
+
}
|
|
42
|
+
if (mode === "gateway" && !gatewayName) {
|
|
43
|
+
throw new RunnerConfigError("SESSION_ROUTING_MODE=gateway requires SESSION_GATEWAY_NAME — the Gateway each session's " +
|
|
44
|
+
"HTTPRoute attaches to. Set it (and SESSION_GATEWAY_NAMESPACE when the Gateway is not in " +
|
|
45
|
+
`'${sessionNamespace}').`);
|
|
46
|
+
}
|
|
47
|
+
return {
|
|
48
|
+
mode,
|
|
49
|
+
baseDomain: env.SESSION_ROUTING_BASE_DOMAIN?.trim() || undefined,
|
|
50
|
+
ingressClassName: env.SESSION_INGRESS_CLASS?.trim() || undefined,
|
|
51
|
+
tlsSecretName,
|
|
52
|
+
...(gatewayName
|
|
53
|
+
? {
|
|
54
|
+
gateway: {
|
|
55
|
+
name: gatewayName,
|
|
56
|
+
namespace: env.SESSION_GATEWAY_NAMESPACE?.trim() || sessionNamespace,
|
|
57
|
+
sectionName: env.SESSION_GATEWAY_SECTION_NAME?.trim() || undefined,
|
|
58
|
+
},
|
|
59
|
+
}
|
|
60
|
+
: {}),
|
|
61
|
+
routeReadyTimeoutMs: parsePositiveInt(env.SESSION_ROUTE_READY_TIMEOUT_SECONDS, 60, "SESSION_ROUTE_READY_TIMEOUT_SECONDS") * 1000,
|
|
62
|
+
};
|
|
63
|
+
}
|
|
16
64
|
function loadBaseImageCatalogConfig(env) {
|
|
17
65
|
return {
|
|
18
66
|
enabled: parseBool(env.RUNNER_BASE_IMAGE_CATALOG_ENABLED, true, "RUNNER_BASE_IMAGE_CATALOG_ENABLED"),
|
|
@@ -34,18 +82,17 @@ export function loadK8sRunnerConfig(env) {
|
|
|
34
82
|
throw new RunnerConfigError("RUNNER_SELF_URL env var is required. Set it to the runner's in-cluster base URL " +
|
|
35
83
|
"(e.g. http://k8s-runner.telo-runner.svc:8062) so session initContainers can fetch the bundle.");
|
|
36
84
|
}
|
|
85
|
+
const sessionNamespace = env.RUNNER_SESSION_NAMESPACE?.trim() || "telo-sessions";
|
|
37
86
|
return {
|
|
38
87
|
...loadCoreConfig(env, { port: DEFAULT_PORT }),
|
|
39
88
|
displayName: env.RUNNER_DISPLAY_NAME?.trim() || "Telo Runner",
|
|
40
89
|
description: env.RUNNER_DESCRIPTION?.trim() || "Runs the Telo application in a cloud environment",
|
|
41
|
-
sessionNamespace
|
|
90
|
+
sessionNamespace,
|
|
42
91
|
defaultImage: env.RUNNER_IMAGE?.trim() || "telorun/node:latest-slim",
|
|
43
92
|
initImage: env.RUNNER_INIT_IMAGE?.trim() || "busybox:stable",
|
|
44
93
|
imagePullSecret: env.RUNNER_IMAGE_PULL_SECRET?.trim() || undefined,
|
|
45
94
|
runtimeClass: env.RUNNER_RUNTIME_CLASS?.trim() || undefined,
|
|
46
|
-
|
|
47
|
-
sessionIngressClassName: env.SESSION_INGRESS_CLASS?.trim() || undefined,
|
|
48
|
-
sessionIngressTlsSecretName: env.SESSION_INGRESS_TLS_SECRET?.trim() || undefined,
|
|
95
|
+
sessionRouting: loadSessionRoutingConfig(env, sessionNamespace),
|
|
49
96
|
selfUrl: selfUrl.replace(/\/+$/, ""),
|
|
50
97
|
managedByLabel: env.RUNNER_MANAGED_BY?.trim() || "telo-k8s-runner",
|
|
51
98
|
// Sized for a pod that RESOLVES ITS OWN module closure. They used to be
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,SAAS,EACT,gBAAgB,EAChB,iBAAiB,GAGlB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,iBAAiB,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/k8s/backend.d.ts
CHANGED
|
@@ -2,11 +2,15 @@ import type { RunnerBackend } from "@telorun/runner-core";
|
|
|
2
2
|
import type { BundleStore } from "../bundle-store.js";
|
|
3
3
|
import type { K8sRunnerConfig } from "../config.js";
|
|
4
4
|
import type { KubeClient } from "./client.js";
|
|
5
|
+
import { type SessionRouter } from "./routing/index.js";
|
|
5
6
|
export { podFailureMessage } from "./pod-status.js";
|
|
6
7
|
export interface K8sBackendDeps {
|
|
7
8
|
kube: KubeClient;
|
|
8
9
|
config: K8sRunnerConfig;
|
|
9
10
|
bundleStore: BundleStore;
|
|
11
|
+
/** How this cluster publishes session routes, resolved once at boot. Absent →
|
|
12
|
+
* logs-only: no base domain, or `SESSION_ROUTING_MODE=none`. */
|
|
13
|
+
router?: SessionRouter;
|
|
10
14
|
}
|
|
11
15
|
export declare function createKubernetesBackend(deps: K8sBackendDeps): RunnerBackend;
|
|
12
16
|
//# sourceMappingURL=backend.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backend.d.ts","sourceRoot":"","sources":["../../src/k8s/backend.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAOV,aAAa,EACd,MAAM,sBAAsB,CAAC;AAG9B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAGpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"backend.d.ts","sourceRoot":"","sources":["../../src/k8s/backend.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAOV,aAAa,EACd,MAAM,sBAAsB,CAAC;AAG9B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAGpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAML,KAAK,aAAa,EACnB,MAAM,oBAAoB,CAAC;AAc5B,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAepD,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,UAAU,CAAC;IACjB,MAAM,EAAE,eAAe,CAAC;IACxB,WAAW,EAAE,WAAW,CAAC;IACzB;qEACiE;IACjE,MAAM,CAAC,EAAE,aAAa,CAAC;CACxB;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,cAAc,GAAG,aAAa,CA8a3E"}
|
package/dist/k8s/backend.js
CHANGED
|
@@ -2,7 +2,7 @@ import { PassThrough, Writable } from "node:stream";
|
|
|
2
2
|
import { relayDebugStream, SessionStartError, watchReachability } from "@telorun/runner-core";
|
|
3
3
|
import { clampLimits } from "../limits.js";
|
|
4
4
|
import { apiFailure, apiReason, withCause } from "./api-error.js";
|
|
5
|
-
import {
|
|
5
|
+
import { buildSessionService, endpointsFor, hostForPort, watchRouteHealth, } from "./routing/index.js";
|
|
6
6
|
import { buildAppPod, buildSessionPod, INSPECT_PORT } from "./pod-spec.js";
|
|
7
7
|
import { deletePod, is404, msg, podFailureMessage, podStatus, podPhase, provisionMessage, terminalStatus, } from "./pod-status.js";
|
|
8
8
|
import { startWatchSession } from "./watch-session.js";
|
|
@@ -14,7 +14,7 @@ const RESIZE_CHANNEL = 4;
|
|
|
14
14
|
const START_DEADLINE_MS = 120_000;
|
|
15
15
|
const WATCH_REARM_DELAY_MS = 2_000;
|
|
16
16
|
export function createKubernetesBackend(deps) {
|
|
17
|
-
const { kube, config, bundleStore } = deps;
|
|
17
|
+
const { kube, config, bundleStore, router } = deps;
|
|
18
18
|
const ns = config.sessionNamespace;
|
|
19
19
|
async function probe(probeConfig) {
|
|
20
20
|
try {
|
|
@@ -42,7 +42,7 @@ export function createKubernetesBackend(deps) {
|
|
|
42
42
|
// outlives its runs — so it takes its own path rather than accreting
|
|
43
43
|
// branches through this one.
|
|
44
44
|
if (spec.mode === "watch") {
|
|
45
|
-
return startWatchSession({ kube, config }, spec);
|
|
45
|
+
return startWatchSession({ kube, config, router }, spec);
|
|
46
46
|
}
|
|
47
47
|
return startRunSession(spec);
|
|
48
48
|
}
|
|
@@ -112,7 +112,9 @@ export function createKubernetesBackend(deps) {
|
|
|
112
112
|
let startDeadline;
|
|
113
113
|
let podIP;
|
|
114
114
|
const debugAbort = new AbortController();
|
|
115
|
-
|
|
115
|
+
// Aborts every background watcher this session started: the per-port
|
|
116
|
+
// reachability probes and the route-health watch.
|
|
117
|
+
const watchersAbort = new AbortController();
|
|
116
118
|
const stdin = new PassThrough();
|
|
117
119
|
const stdout = new Writable({
|
|
118
120
|
write(chunk, encoding, cb) {
|
|
@@ -134,7 +136,7 @@ export function createKubernetesBackend(deps) {
|
|
|
134
136
|
clearStartDeadline();
|
|
135
137
|
abortWatch();
|
|
136
138
|
debugAbort.abort();
|
|
137
|
-
|
|
139
|
+
watchersAbort.abort();
|
|
138
140
|
bundleStore.drop(spec.sessionId);
|
|
139
141
|
spec.onStatus(status);
|
|
140
142
|
try {
|
|
@@ -154,7 +156,7 @@ export function createKubernetesBackend(deps) {
|
|
|
154
156
|
if (readyFlipped || finished)
|
|
155
157
|
return;
|
|
156
158
|
readyFlipped = true;
|
|
157
|
-
spec.onStatus({ kind: "running", endpoints: endpointsFor(config, spec.sessionId, app.ports) });
|
|
159
|
+
spec.onStatus({ kind: "running", endpoints: endpointsFor(config, spec.sessionId, app.ports, Boolean(router)) });
|
|
158
160
|
};
|
|
159
161
|
let resolveRunning;
|
|
160
162
|
let rejectRunning;
|
|
@@ -278,9 +280,41 @@ export function createKubernetesBackend(deps) {
|
|
|
278
280
|
// Attach failure isn't fatal — status still flows; surface the degraded PTY.
|
|
279
281
|
spec.onOutput(appName, Buffer.from(`\r\n[runner] failed to attach PTY: ${apiReason(err)}\r\n`), "tty");
|
|
280
282
|
}
|
|
281
|
-
if (
|
|
282
|
-
|
|
283
|
-
|
|
283
|
+
if (router && app.ports.length > 0) {
|
|
284
|
+
let published = [];
|
|
285
|
+
try {
|
|
286
|
+
published = await publishRoutes(deps, router, spec.sessionId, podName, podUid, app.ports);
|
|
287
|
+
}
|
|
288
|
+
catch (err) {
|
|
289
|
+
// A publish failure is reported on the ROUTE channel, not only as a
|
|
290
|
+
// terminal line: the endpoints were already advertised on the `running`
|
|
291
|
+
// status, so leaving this to a log line is the silence this whole change
|
|
292
|
+
// exists to remove.
|
|
293
|
+
const reason = `could not publish the session route: ${apiReason(err)}`;
|
|
294
|
+
for (const p of app.ports) {
|
|
295
|
+
if (p.protocol !== "tcp")
|
|
296
|
+
continue;
|
|
297
|
+
spec.onRoute(appName, {
|
|
298
|
+
host: hostForPort(config, spec.sessionId, p.port),
|
|
299
|
+
port: p.port,
|
|
300
|
+
state: "unprogrammed",
|
|
301
|
+
reason,
|
|
302
|
+
});
|
|
303
|
+
}
|
|
304
|
+
spec.onOutput(appName, Buffer.from(`\r\n[runner] ${reason}\r\n`), "tty");
|
|
305
|
+
}
|
|
306
|
+
// Verify the routing layer actually PROGRAMMED what we published. Without
|
|
307
|
+
// this a cluster whose routing objects nothing reconciles is indistinguishable
|
|
308
|
+
// from a healthy one: reachability below dials the pod directly and stays
|
|
309
|
+
// green while every public URL 404s.
|
|
310
|
+
void watchRouteHealth({
|
|
311
|
+
router,
|
|
312
|
+
sessionId: spec.sessionId,
|
|
313
|
+
routes: published,
|
|
314
|
+
onState: (route, state, reason) => spec.onRoute(appName, { host: route.host, port: route.port, state, reason }),
|
|
315
|
+
onReadError: (err) => spec.onOutput(appName, Buffer.from(`\r\n[runner] could not read route status: ${apiReason(err)}\r\n`), "tty"),
|
|
316
|
+
signal: watchersAbort.signal,
|
|
317
|
+
timeoutMs: config.sessionRouting.routeReadyTimeoutMs,
|
|
284
318
|
});
|
|
285
319
|
}
|
|
286
320
|
// The Running watch event usually carries `podIP`; if it lagged, read the
|
|
@@ -318,7 +352,7 @@ export function createKubernetesBackend(deps) {
|
|
|
318
352
|
if (tcpPorts.length > 0) {
|
|
319
353
|
void (async () => {
|
|
320
354
|
const ip = await resolvePodIP();
|
|
321
|
-
if (
|
|
355
|
+
if (watchersAbort.signal.aborted)
|
|
322
356
|
return;
|
|
323
357
|
if (!ip) {
|
|
324
358
|
// Couldn't resolve the pod IP to probe — report unverified rather than
|
|
@@ -331,7 +365,7 @@ export function createKubernetesBackend(deps) {
|
|
|
331
365
|
host: ip,
|
|
332
366
|
ports: tcpPorts,
|
|
333
367
|
onState: (port, state) => spec.onReachability(appName, port, state),
|
|
334
|
-
signal:
|
|
368
|
+
signal: watchersAbort.signal,
|
|
335
369
|
});
|
|
336
370
|
})();
|
|
337
371
|
}
|
|
@@ -392,16 +426,20 @@ export function createKubernetesBackend(deps) {
|
|
|
392
426
|
}
|
|
393
427
|
return { probe, start, reapOrphans };
|
|
394
428
|
}
|
|
395
|
-
|
|
429
|
+
/** Create the session Service and publish its routes on whichever layer the
|
|
430
|
+
* cluster resolved to. Returns the hosts published, for the route watch. */
|
|
431
|
+
async function publishRoutes(deps, router, sessionId, podName, podUid, ports) {
|
|
396
432
|
const { kube, config } = deps;
|
|
397
433
|
const ns = config.sessionNamespace;
|
|
398
434
|
const service = buildSessionService(config, sessionId, podName, podUid, ports);
|
|
399
435
|
await kube.core.createNamespacedService({ namespace: ns, body: service });
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
436
|
+
return router.publish({
|
|
437
|
+
sessionId,
|
|
438
|
+
serviceName: service.metadata.name,
|
|
439
|
+
podName,
|
|
440
|
+
podUid,
|
|
441
|
+
ports,
|
|
442
|
+
});
|
|
405
443
|
}
|
|
406
444
|
async function clusterReachable(kube) {
|
|
407
445
|
try {
|
package/dist/k8s/backend.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backend.js","sourceRoot":"","sources":["../../src/k8s/backend.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"backend.js","sourceRoot":"","sources":["../../src/k8s/backend.ts"],"names":[],"mappings":"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"}
|
package/dist/k8s/client.d.ts
CHANGED
|
@@ -1,8 +1,14 @@
|
|
|
1
|
-
import { Attach, CoreV1Api, KubeConfig, NetworkingV1Api, Watch } from "@kubernetes/client-node";
|
|
1
|
+
import { ApisApi, Attach, CoreV1Api, CustomObjectsApi, KubeConfig, NetworkingV1Api, Watch } from "@kubernetes/client-node";
|
|
2
2
|
export interface KubeClient {
|
|
3
3
|
kc: KubeConfig;
|
|
4
4
|
core: CoreV1Api;
|
|
5
5
|
networking: NetworkingV1Api;
|
|
6
|
+
/** Gateway API has no typed client in `@kubernetes/client-node`, so HTTPRoutes
|
|
7
|
+
* are read and written as unstructured custom objects. */
|
|
8
|
+
custom: CustomObjectsApi;
|
|
9
|
+
/** API-group discovery, used to decide whether Gateway API is served at all
|
|
10
|
+
* when the routing mode is `auto`. */
|
|
11
|
+
apis: ApisApi;
|
|
6
12
|
attach: Attach;
|
|
7
13
|
watch: Watch;
|
|
8
14
|
}
|
package/dist/k8s/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/k8s/client.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/k8s/client.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,MAAM,EACN,SAAS,EACT,gBAAgB,EAChB,UAAU,EACV,eAAe,EACf,KAAK,EACN,MAAM,yBAAyB,CAAC;AAEjC,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,UAAU,CAAC;IACf,IAAI,EAAE,SAAS,CAAC;IAChB,UAAU,EAAE,eAAe,CAAC;IAC5B;+DAC2D;IAC3D,MAAM,EAAE,gBAAgB,CAAC;IACzB;2CACuC;IACvC,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,KAAK,CAAC;CACd;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,IAAI,UAAU,CAgB7C"}
|
package/dist/k8s/client.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Attach, CoreV1Api, KubeConfig, NetworkingV1Api, Watch } from "@kubernetes/client-node";
|
|
1
|
+
import { ApisApi, Attach, CoreV1Api, CustomObjectsApi, KubeConfig, NetworkingV1Api, Watch, } from "@kubernetes/client-node";
|
|
2
2
|
/**
|
|
3
3
|
* Loads kube config — in-cluster (projected ServiceAccount token + CA) when
|
|
4
4
|
* running as a Pod, falling back to the local kubeconfig for out-of-cluster
|
|
@@ -16,6 +16,8 @@ export function createKubeClient() {
|
|
|
16
16
|
kc,
|
|
17
17
|
core: kc.makeApiClient(CoreV1Api),
|
|
18
18
|
networking: kc.makeApiClient(NetworkingV1Api),
|
|
19
|
+
custom: kc.makeApiClient(CustomObjectsApi),
|
|
20
|
+
apis: kc.makeApiClient(ApisApi),
|
|
19
21
|
attach: new Attach(kc),
|
|
20
22
|
watch: new Watch(kc),
|
|
21
23
|
};
|
package/dist/k8s/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/k8s/client.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/k8s/client.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,MAAM,EACN,SAAS,EACT,gBAAgB,EAChB,UAAU,EACV,eAAe,EACf,KAAK,GACN,MAAM,yBAAyB,CAAC;AAgBjC;;;;GAIG;AACH,MAAM,UAAU,gBAAgB;IAC9B,MAAM,EAAE,GAAG,IAAI,UAAU,EAAE,CAAC;IAC5B,IAAI,OAAO,CAAC,GAAG,CAAC,uBAAuB,EAAE,CAAC;QACxC,EAAE,CAAC,eAAe,EAAE,CAAC;IACvB,CAAC;SAAM,CAAC;QACN,EAAE,CAAC,eAAe,EAAE,CAAC;IACvB,CAAC;IACD,OAAO;QACL,EAAE;QACF,IAAI,EAAE,EAAE,CAAC,aAAa,CAAC,SAAS,CAAC;QACjC,UAAU,EAAE,EAAE,CAAC,aAAa,CAAC,eAAe,CAAC;QAC7C,MAAM,EAAE,EAAE,CAAC,aAAa,CAAC,gBAAgB,CAAC;QAC1C,IAAI,EAAE,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC;QAC/B,MAAM,EAAE,IAAI,MAAM,CAAC,EAAE,CAAC;QACtB,KAAK,EAAE,IAAI,KAAK,CAAC,EAAE,CAAC;KACrB,CAAC;AACJ,CAAC"}
|
package/dist/k8s/pod-status.d.ts
CHANGED
|
@@ -24,5 +24,10 @@ export declare function containerExitCode(obj: unknown): number | null;
|
|
|
24
24
|
export declare function podFailureMessage(obj: unknown): string;
|
|
25
25
|
export declare function deletePod(kube: KubeClient, ns: string, name: string): Promise<void>;
|
|
26
26
|
export declare function is404(err: unknown): boolean;
|
|
27
|
+
/** A name-already-taken rejection — what makes a create idempotent by falling
|
|
28
|
+
* through to a replace. Reads the status through `statusCode` like every other
|
|
29
|
+
* classification here, so an `ECONNREFUSED` or a `DOMException`'s legacy number
|
|
30
|
+
* in `code` cannot be mistaken for one. */
|
|
31
|
+
export declare function isConflict(err: unknown): boolean;
|
|
27
32
|
export declare function msg(err: unknown): string;
|
|
28
33
|
//# sourceMappingURL=pod-status.d.ts.map
|