@cat-factory/cli 0.10.5 → 0.11.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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"k3s-ingress.js","sourceRoot":"","sources":["../src/k3s-ingress.ts"],"names":[],"mappings":"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"}
@@ -28,7 +28,42 @@ export interface HostDetections {
28
28
  kindClusters: string[];
29
29
  }
30
30
  /** The setup paths the probe can offer. */
31
- export type OfferId = 'use-existing' | 'create-k3d' | 'create-kind' | 'install-k3s';
31
+ export type OfferId = 'use-existing' | 'create-k3d' | 'create-kind' | 'recreate-k3d' | 'recreate-kind' | 'install-k3s';
32
+ /**
33
+ * The DESTRUCTIVE offers, keyed by the runtime each one rebuilds. This is the ONE definition of
34
+ * the recreate set: {@link recreateOfferFor} resolves `--recreate`'s target from it and
35
+ * {@link isRecreateOffer} recognises one, so a `K3sRuntime` with no entry cannot be folded into a
36
+ * neighbour's branch by a two-way ternary.
37
+ *
38
+ * `k3s` has no entry deliberately: it is a HOST SERVICE (a systemd unit installed by `curl | sh`,
39
+ * which this CLI only ever prints), so there is no cluster for the CLI to delete and build again.
40
+ */
41
+ export declare const RECREATE_OFFERS: {
42
+ readonly k3d: 'recreate-k3d';
43
+ readonly kind: 'recreate-kind';
44
+ };
45
+ /** A runtime `--recreate` can target: one with an entry in {@link RECREATE_OFFERS}. */
46
+ export type RecreatableRuntime = keyof typeof RECREATE_OFFERS;
47
+ export type RecreateOfferId = (typeof RECREATE_OFFERS)[RecreatableRuntime];
48
+ /** The recreate offer for a runtime, or `null` when that runtime has no recreate at all. */
49
+ export declare function recreateOfferFor(runtime: K3sRuntime): RecreateOfferId | null;
50
+ /** Whether an offer is one of the destructive ones. */
51
+ export declare function isRecreateOffer(id: OfferId): id is RecreateOfferId;
52
+ /**
53
+ * The k3d/kind cluster a REUSED kubeconfig context names, when the CLI can both name it and build
54
+ * it again. `null` for anything else (a bare k3s host service, a shared cluster, a context whose
55
+ * cluster the runtime no longer reports).
56
+ *
57
+ * This exists because a remedy has to be a command that WORKS. `--recreate`'s target rule is
58
+ * exactly "a k3d/kind cluster this command can name", and on the reuse path nothing else knows
59
+ * which cluster that is: the offer was `use-existing`, so no name was passed. Without this, the
60
+ * missing-host-port remedy printed `cat-factory k3s --recreate` against the DEFAULT name, which
61
+ * `chooseOffer` then refused for any cluster not called `cat-factory`.
62
+ */
63
+ export declare function recreateTargetForContext(d: HostDetections): {
64
+ runtime: RecreatableRuntime;
65
+ clusterName: string;
66
+ } | null;
32
67
  /** One offered setup path, with whether it's currently possible + why not. */
33
68
  export interface Offer {
34
69
  id: OfferId;
@@ -51,7 +86,7 @@ export interface HostState {
51
86
  * `install-k3s` offer's copy — k3s is Linux-only, so on Windows/macOS that path points at
52
87
  * k3s-in-Docker via k3d instead of a `curl | sh` install that can't run there.
53
88
  */
54
- export declare function classifyHost(d: HostDetections, preferred?: K3sRuntime, platform?: NodeJS.Platform): HostState;
89
+ export declare function classifyHost(d: HostDetections, preferred?: K3sRuntime, platform?: NodeJS.Platform, clusterName?: string): HostState;
55
90
  /** Parse `k3d cluster list --output json` (an array of `{ name }`) into cluster names. */
56
91
  export declare function parseK3dClusters(stdout: string): string[];
57
92
  /** Parse `kind get clusters` (newline-separated names; a "No kind clusters" note ⇒ empty). */
@@ -74,5 +109,5 @@ export declare function hasServerVersion(stdout: string): boolean;
74
109
  * `--request-timeout` — a kubeconfig pointing at a down cluster then fails fast instead of hanging
75
110
  * the probe (the {@link HostShell} watchdog is the outer backstop).
76
111
  */
77
- export declare function probeHost(shell: HostShell, preferred?: K3sRuntime, platform?: NodeJS.Platform): Promise<HostState>;
112
+ export declare function probeHost(shell: HostShell, preferred?: K3sRuntime, platform?: NodeJS.Platform, clusterName?: string): Promise<HostState>;
78
113
  //# sourceMappingURL=k3s-probe.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"k3s-probe.d.ts","sourceRoot":"","sources":["../src/k3s-probe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,WAAW,CAAA;AAC3C,OAAO,EAAqB,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAEnE,wFAAwF;AACxF,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,OAAO,CAAA;IAClB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,aAAa,CAAA;IACtB,GAAG,EAAE,aAAa,CAAA;IAClB,IAAI,EAAE,aAAa,CAAA;IACnB,GAAG,EAAE,aAAa,CAAA;IAClB,MAAM,EAAE;QAAE,SAAS,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAA;IAChD,gGAAgG;IAChG,gBAAgB,EAAE,OAAO,CAAA;IACzB,4DAA4D;IAC5D,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,uDAAuD;IACvD,WAAW,EAAE,MAAM,EAAE,CAAA;IACrB,wDAAwD;IACxD,YAAY,EAAE,MAAM,EAAE,CAAA;CACvB;AAED,2CAA2C;AAC3C,MAAM,MAAM,OAAO,GAAG,cAAc,GAAG,YAAY,GAAG,aAAa,GAAG,aAAa,CAAA;AAEnF,8EAA8E;AAC9E,MAAM,WAAW,KAAK;IACpB,EAAE,EAAE,OAAO,CAAA;IACX,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,OAAO,CAAA;IAClB,WAAW,EAAE,OAAO,CAAA;IACpB,iEAAiE;IACjE,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,mGAAmG;AACnG,MAAM,WAAW,SAAS;IACxB,UAAU,EAAE,cAAc,CAAA;IAC1B,MAAM,EAAE,KAAK,EAAE,CAAA;IACf,WAAW,EAAE,OAAO,CAAA;CACrB;AAmBD;;;;;;GAMG;AACH,wBAAgB,YAAY,CAC1B,CAAC,EAAE,cAAc,EACjB,SAAS,GAAE,UAAkB,EAC7B,QAAQ,GAAE,MAAM,CAAC,QAAkB,GAClC,SAAS,CA0DX;AAgBD,0FAA0F;AAC1F,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAYzD;AAED,8FAA8F;AAC9F,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAK1D;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAQ5E;AAED,8FAA8F;AAC9F,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAOxD;AAED;;;;;;;;GAQG;AACH,wBAAsB,SAAS,CAC7B,KAAK,EAAE,SAAS,EAChB,SAAS,GAAE,UAAkB,EAC7B,QAAQ,GAAE,MAAM,CAAC,QAA2B,GAC3C,OAAO,CAAC,SAAS,CAAC,CA0CpB"}
1
+ {"version":3,"file":"k3s-probe.d.ts","sourceRoot":"","sources":["../src/k3s-probe.ts"],"names":[],"mappings":"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"}
package/dist/k3s-probe.js CHANGED
@@ -1,9 +1,66 @@
1
- import {} from './args.js';
1
+ import { OPTION_DEFAULTS } from './args.js';
2
2
  import { COMMAND_NOT_FOUND } from './host-shell.js';
3
+ /** The cluster name the recreate offers key off when `--cluster-name` was not supplied. */
4
+ const DEFAULT_CLUSTER_NAME = OPTION_DEFAULTS.k3sClusterName;
5
+ /**
6
+ * The DESTRUCTIVE offers, keyed by the runtime each one rebuilds. This is the ONE definition of
7
+ * the recreate set: {@link recreateOfferFor} resolves `--recreate`'s target from it and
8
+ * {@link isRecreateOffer} recognises one, so a `K3sRuntime` with no entry cannot be folded into a
9
+ * neighbour's branch by a two-way ternary.
10
+ *
11
+ * `k3s` has no entry deliberately: it is a HOST SERVICE (a systemd unit installed by `curl | sh`,
12
+ * which this CLI only ever prints), so there is no cluster for the CLI to delete and build again.
13
+ */
14
+ export const RECREATE_OFFERS = {
15
+ k3d: 'recreate-k3d',
16
+ kind: 'recreate-kind',
17
+ };
18
+ /** The recreate offer for a runtime, or `null` when that runtime has no recreate at all. */
19
+ export function recreateOfferFor(runtime) {
20
+ return runtime in RECREATE_OFFERS ? RECREATE_OFFERS[runtime] : null;
21
+ }
22
+ /** Whether an offer is one of the destructive ones. */
23
+ export function isRecreateOffer(id) {
24
+ return Object.values(RECREATE_OFFERS).includes(id);
25
+ }
26
+ /** kubeconfig context prefixes k3d/kind assign, paired with the runtime that owns them. */
27
+ const CONTEXT_RUNTIMES = [
28
+ ['k3d-', 'k3d'],
29
+ ['kind-', 'kind'],
30
+ ];
31
+ /**
32
+ * The k3d/kind cluster a REUSED kubeconfig context names, when the CLI can both name it and build
33
+ * it again. `null` for anything else (a bare k3s host service, a shared cluster, a context whose
34
+ * cluster the runtime no longer reports).
35
+ *
36
+ * This exists because a remedy has to be a command that WORKS. `--recreate`'s target rule is
37
+ * exactly "a k3d/kind cluster this command can name", and on the reuse path nothing else knows
38
+ * which cluster that is: the offer was `use-existing`, so no name was passed. Without this, the
39
+ * missing-host-port remedy printed `cat-factory k3s --recreate` against the DEFAULT name, which
40
+ * `chooseOffer` then refused for any cluster not called `cat-factory`.
41
+ */
42
+ export function recreateTargetForContext(d) {
43
+ const context = d.clusterContext;
44
+ if (!context)
45
+ return null;
46
+ for (const [prefix, runtime] of CONTEXT_RUNTIMES) {
47
+ if (!context.startsWith(prefix))
48
+ continue;
49
+ const clusterName = context.slice(prefix.length);
50
+ const known = runtime === 'kind' ? d.kindClusters : d.k3dClusters;
51
+ if (clusterName.length > 0 && known.includes(clusterName))
52
+ return { runtime, clusterName };
53
+ }
54
+ return null;
55
+ }
3
56
  /**
4
57
  * Priority order for picking the recommendation, given the user's preferred runtime. A live cluster
5
58
  * always wins; otherwise the preferred distribution's create/install path is tried first, then the
6
59
  * others as fallbacks. Every list ends with `install-k3s`, which is always available.
60
+ *
61
+ * The `recreate-*` offers appear in NO list, deliberately: they destroy a cluster, and a
62
+ * recommendation is what `--yes` follows when nobody is watching. They are reachable only by an
63
+ * explicit `--recreate` or an interactive pick, so the destructive intent is always stated.
7
64
  */
8
65
  function offerPriority(preferred) {
9
66
  switch (preferred) {
@@ -23,7 +80,7 @@ function offerPriority(preferred) {
23
80
  * `install-k3s` offer's copy — k3s is Linux-only, so on Windows/macOS that path points at
24
81
  * k3s-in-Docker via k3d instead of a `curl | sh` install that can't run there.
25
82
  */
26
- export function classifyHost(d, preferred = 'k3d', platform = 'linux') {
83
+ export function classifyHost(d, preferred = 'k3d', platform = 'linux', clusterName = DEFAULT_CLUSTER_NAME) {
27
84
  const useExisting = {
28
85
  id: 'use-existing',
29
86
  label: d.clusterContext
@@ -67,7 +124,38 @@ export function classifyHost(d, preferred = 'k3d', platform = 'linux') {
67
124
  available: true,
68
125
  recommended: false,
69
126
  };
70
- const offers = [useExisting, createK3d, createKind, installK3s];
127
+ // Recreating is a first-class operation rather than the remedy for any one condition: these
128
+ // clusters are transient and the reasons to want a fresh one are open-ended (wedged, created by
129
+ // hand with the wrong flags, a version bump, a pile of leftover namespaces, or no stated reason
130
+ // at all). What does NOT open up is the TARGET, and that is a safety boundary: it is offered
131
+ // only for a cluster this CLI can both NAME and build again, which is why there is no recreate
132
+ // for `use-existing` (that fires for any reachable kubeconfig, including a shared cluster, and
133
+ // there is no recipe for re-creating "whatever this context points at").
134
+ const recreate = (runtime) => {
135
+ const id = RECREATE_OFFERS[runtime];
136
+ const tooling = runtime === 'kind' ? d.kind : d.k3d;
137
+ const clusters = runtime === 'kind' ? d.kindClusters : d.k3dClusters;
138
+ const known = clusters.includes(clusterName);
139
+ return {
140
+ id,
141
+ label: `Recreate the ${runtime} cluster "${clusterName}" (DESTROYS it and everything on it)`,
142
+ available: d.docker.running && tooling.installed && known,
143
+ recommended: false,
144
+ reason: dockerReason ??
145
+ (!tooling.installed
146
+ ? `${runtime} is not installed`
147
+ : !known
148
+ ? `no ${runtime} cluster named "${clusterName}" exists`
149
+ : undefined),
150
+ };
151
+ };
152
+ const offers = [
153
+ useExisting,
154
+ createK3d,
155
+ createKind,
156
+ ...Object.keys(RECREATE_OFFERS).map(recreate),
157
+ installK3s,
158
+ ];
71
159
  const recommended = offerPriority(preferred).find((id) => offers.find((o) => o.id === id)?.available) ??
72
160
  'install-k3s';
73
161
  for (const o of offers)
@@ -142,7 +230,7 @@ export function hasServerVersion(stdout) {
142
230
  * `--request-timeout` — a kubeconfig pointing at a down cluster then fails fast instead of hanging
143
231
  * the probe (the {@link HostShell} watchdog is the outer backstop).
144
232
  */
145
- export async function probeHost(shell, preferred = 'k3d', platform = process.platform) {
233
+ export async function probeHost(shell, preferred = 'k3d', platform = process.platform, clusterName = DEFAULT_CLUSTER_NAME) {
146
234
  const [kubectlVersion, kubectlContext, k3dVersion, k3dList, kindVersion, kindList, k3sVersion, dockerVersion,] = await Promise.all([
147
235
  shell.run('kubectl', ['version', '--output=json', '--request-timeout=3s']),
148
236
  shell.run('kubectl', ['config', 'current-context']),
@@ -171,6 +259,6 @@ export async function probeHost(shell, preferred = 'k3d', platform = process.pla
171
259
  k3dClusters: k3dList.code === 0 ? parseK3dClusters(k3dList.stdout) : [],
172
260
  kindClusters: kindList.code === 0 ? parseKindClusters(kindList.stdout) : [],
173
261
  };
174
- return classifyHost(detections, preferred, platform);
262
+ return classifyHost(detections, preferred, platform, clusterName);
175
263
  }
176
264
  //# sourceMappingURL=k3s-probe.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"k3s-probe.js","sourceRoot":"","sources":["../src/k3s-probe.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"k3s-probe.js","sourceRoot":"","sources":["../src/k3s-probe.ts"],"names":[],"mappings":"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"}
@@ -1,24 +1,21 @@
1
1
  import { type CliOptions } from './args.js';
2
- import { type HostShell } from './host-shell.js';
2
+ import { type Command, type HostShell } from './host-shell.js';
3
+ import { type IngressReadiness, type TcpProbe } from './k3s-ingress.js';
3
4
  import { type Io } from './io.js';
4
5
  import { type HostState, type OfferId } from './k3s-probe.js';
5
6
  /** The namespace + ServiceAccount + long-lived token Secret the guided setup creates. */
6
7
  export declare const CAT_FACTORY_NAMESPACE = "cat-factory";
7
8
  export declare const SERVICE_ACCOUNT_NAME = "cat-factory";
9
+ /** The apiserver port k3d/kind is asked to publish (the kube default). */
10
+ export declare const DEFAULT_API_PORT = 6443;
8
11
  /**
9
12
  * Watchdog budget (ms) for `k3d cluster create` / `kind create cluster`. These pull node images on
10
13
  * the first run and routinely take 30–90s, so they need far more than the {@link HostShell} default
11
14
  * (10s) — otherwise the watchdog SIGKILLs the create mid-flight and the whole create path fails.
12
15
  */
13
16
  export declare const CLUSTER_CREATE_TIMEOUT_MS = 300000;
14
- /** A single command to run through the {@link HostShell}, optionally with stdin `input`. */
15
- export interface Command {
16
- cmd: string;
17
- args: string[];
18
- input?: string;
19
- /** Per-command watchdog override (ms). Absent ⇒ the {@link HostShell} default applies. */
20
- timeoutMs?: number;
21
- }
17
+ /** Watchdog budget (ms) for `k3d/kind cluster delete`, which tears down containers + volumes. */
18
+ export declare const CLUSTER_DELETE_TIMEOUT_MS = 120000;
22
19
  /**
23
20
  * The resolved local-k3s connection produced by provisioning: the apiserver URL read from the
24
21
  * kubeconfig plus the minted ServiceAccount token. Consumed by the hand-off (slice 3 builds the
@@ -29,9 +26,27 @@ export interface ResolvedConnection {
29
26
  engine: 'local-k3s';
30
27
  /** The provisioned/created cluster name (create paths only; absent for reuse). */
31
28
  clusterName?: string;
29
+ /** The distribution the cluster was created/recreated with; absent when reusing a context. */
30
+ runtime?: 'k3d' | 'kind';
32
31
  apiServerUrl: string;
33
32
  apiToken: string;
34
33
  insecureSkipTlsVerify: true;
34
+ /**
35
+ * What the ingress probe ESTABLISHED, never what the distribution is assumed to do. Everything
36
+ * downstream that would otherwise promise an ingress-derived environment URL (the printed
37
+ * summary, the connect-form deep link) keys off this.
38
+ */
39
+ ingress: IngressReadiness;
40
+ /**
41
+ * The cluster a `--recreate` could name, when there is one: the cluster this run built, or (on
42
+ * the reuse path) the k3d/kind cluster the kubeconfig context resolves to. Absent when no such
43
+ * target exists, and a remedy that would print a recreate has to WITHHOLD it then, because
44
+ * `--recreate` refuses anything it cannot name.
45
+ */
46
+ recreateTarget?: {
47
+ runtime: 'k3d' | 'kind';
48
+ clusterName: string;
49
+ };
35
50
  }
36
51
  /** Raised when a provisioning command fails; carries an actionable message (never the token). */
37
52
  export declare class ProvisionError extends Error {
@@ -57,10 +72,48 @@ export declare class ProvisionError extends Error {
57
72
  * token must be kept private.)
58
73
  */
59
74
  export declare const RBAC_MANIFEST = "apiVersion: v1\nkind: Namespace\nmetadata:\n name: cat-factory\n---\napiVersion: v1\nkind: ServiceAccount\nmetadata:\n name: cat-factory\n namespace: cat-factory\n---\napiVersion: rbac.authorization.k8s.io/v1\nkind: ClusterRole\nmetadata:\n name: cat-factory-env\nrules:\n - apiGroups: ['']\n resources: ['namespaces']\n verbs: ['create', 'get', 'list', 'watch', 'delete']\n - apiGroups: ['']\n resources: ['services', 'configmaps', 'persistentvolumeclaims', 'pods']\n verbs: ['create', 'get', 'list', 'watch', 'patch', 'update', 'delete']\n - apiGroups: ['']\n resources: ['secrets', 'serviceaccounts']\n verbs: ['create', 'get', 'patch', 'update', 'delete']\n - apiGroups: ['']\n resources: ['pods/proxy']\n verbs: ['create', 'get']\n - apiGroups: ['apps']\n resources: ['deployments', 'statefulsets', 'replicasets']\n verbs: ['create', 'get', 'list', 'watch', 'patch', 'update', 'delete']\n - apiGroups: ['batch']\n resources: ['jobs']\n verbs: ['create', 'get', 'list', 'watch', 'patch', 'update', 'delete']\n - apiGroups: ['networking.k8s.io']\n resources: ['ingresses']\n verbs: ['create', 'get', 'list', 'watch', 'patch', 'update', 'delete']\n - apiGroups: ['gateway.networking.k8s.io']\n resources: ['gateways', 'httproutes']\n verbs: ['create', 'get', 'list', 'watch', 'patch', 'update', 'delete']\n---\napiVersion: rbac.authorization.k8s.io/v1\nkind: ClusterRoleBinding\nmetadata:\n name: cat-factory-env\nroleRef:\n apiGroup: rbac.authorization.k8s.io\n kind: ClusterRole\n name: cat-factory-env\nsubjects:\n - kind: ServiceAccount\n name: cat-factory\n namespace: cat-factory\n---\napiVersion: v1\nkind: Secret\nmetadata:\n name: cat-factory-token\n namespace: cat-factory\n annotations:\n kubernetes.io/service-account.name: cat-factory\ntype: kubernetes.io/service-account-token\n";
60
- /** `k3d cluster create <name> --api-port <port>` — publishes the apiserver on the host port. */
61
- export declare function k3dCreateCommand(name: string, apiPort?: number): Command;
62
- /** `kind create cluster --name <name>`. */
63
- export declare function kindCreateCommand(name: string): Command;
75
+ /**
76
+ * `k3d cluster create <name> --api-port <p> -p <ingress>:80@loadbalancer`.
77
+ *
78
+ * The `-p` is the half that used to be missing, and it can only be supplied HERE: k3d forwards
79
+ * exactly the host ports it was asked for when the load-balancer container was created, and
80
+ * Docker cannot publish a new one onto a running container. A cluster created without it can
81
+ * never serve an ingress-derived URL, however correct the rest of the configuration is.
82
+ *
83
+ * A default k3d cluster DOES bundle an ingress controller (k3s installs Traefik through a
84
+ * HelmChart manifest, verified against k3d 5.7.5 / k3s v1.30.6), so the create path publishes a
85
+ * port and installs nothing.
86
+ */
87
+ export declare function k3dCreateCommand(name: string, apiPort?: number, ingressPort?: number): Command;
88
+ /**
89
+ * The kind cluster config fed to `kind create cluster --config -`.
90
+ *
91
+ * Both settings are create-time-only and both are needed before any ingress controller can work:
92
+ * `extraPortMappings` is kind's equivalent of k3d's `-p`, and `ingress-ready=true` is the node
93
+ * label every published kind ingress recipe selects on.
94
+ *
95
+ * What this deliberately does NOT do is install a controller. kind, unlike k3d, ships none, and
96
+ * the ways to get one (a third-party manifest fetched from the internet, or the separate
97
+ * `cloud-provider-kind` host process) are both choices about what runs on the operator's machine
98
+ * that a guided setup should not make silently. So the create path lays the irreversible half and
99
+ * the probe then reports the controller as verified-missing with the exact command, which a
100
+ * re-run turns into a verified-ready.
101
+ */
102
+ export declare function kindClusterConfig(ingressPort?: number): string;
103
+ /** `kind create cluster --name <name> --config -`, with the ingress config on stdin. */
104
+ export declare function kindCreateCommand(name: string, ingressPort?: number): Command;
105
+ /**
106
+ * The create command for either distribution, so every caller (the create path, the recreate leg,
107
+ * and the printed guidance) issues the SAME line. The printed one used to be hand-written and had
108
+ * therefore lost the `-p` publish flag, telling an operator to build exactly the cluster whose
109
+ * missing host port the next run then asked them to recreate.
110
+ */
111
+ export declare function clusterCreateCommand(runtime: 'k3d' | 'kind', name: string, ingressPort?: number): Command;
112
+ /** `k3d cluster delete <name>` / `kind delete cluster --name <name>`. Destroys the cluster. */
113
+ export declare function clusterDeleteCommand(runtime: 'k3d' | 'kind', name: string): Command;
114
+ /** Namespaces on the target context, read so a destructive prompt can name what is on it. */
115
+ export declare function listNamespacesCommand(context?: string): Command;
116
+ export declare function parseUserNamespaces(stdout: string): string[];
64
117
  /** The kubeconfig context name k3d/kind assigns to a cluster it creates. */
65
118
  export declare function contextName(runtime: 'k3d' | 'kind', name: string): string;
66
119
  /** `kubectl apply -f -` with the RBAC manifest on stdin (idempotent), targeting `context`. */
@@ -84,8 +137,12 @@ export declare function looksLocalCluster(context: string | undefined, apiServer
84
137
  export interface ProvisionDeps {
85
138
  shell: HostShell;
86
139
  io: Io;
140
+ /** TCP reachability seam, used to establish that a host ingress port is actually served. */
141
+ tcp: TcpProbe;
87
142
  /** Delay between token-Secret read attempts (real setTimeout; a no-op in tests). */
88
143
  sleep?: (ms: number) => Promise<void>;
144
+ /** Clock the ingress settle wait is measured against (default `Date.now`); see `probeIngress`. */
145
+ now?: () => number;
89
146
  /**
90
147
  * How many times to poll the freshly-applied token Secret for a populated `.data.token` before
91
148
  * giving up (500ms between attempts). Absent ⇒ {@link DEFAULT_TOKEN_READ_ATTEMPTS} (a snappy
@@ -94,12 +151,29 @@ export interface ProvisionDeps {
94
151
  */
95
152
  tokenReadAttempts?: number;
96
153
  }
154
+ /** The host port a Docker failure names as already bound, when it names one. */
155
+ export declare function boundPortFromDetail(detail: string): number | undefined;
156
+ /**
157
+ * An extra hint appended to a create failure that looks like a host-port collision.
158
+ *
159
+ * A create asks for TWO host ports, so the hint READS which one Docker refused out of its own
160
+ * message instead of naming the apiserver port, which it used to do unconditionally and would
161
+ * misattribute an ingress-port collision. Port 80 is taken often enough on Windows and macOS that
162
+ * an opaque `k3d cluster create` failure here is the likely first experience, so the hint names
163
+ * the flag that moves it.
164
+ */
165
+ export declare function portCollisionHint(ingressPort: number): (detail: string) => string;
166
+ /** The distribution behind a create/recreate offer; `null` for the reuse path. */
167
+ export declare function offerRuntime(chosen: OfferId): 'k3d' | 'kind' | null;
168
+ /** The ingress host port a run targets: `--ingress-port`, else {@link DEFAULT_INGRESS_PORT}. */
169
+ export declare function resolveIngressPort(options: CliOptions): number;
97
170
  /**
98
- * Provision (or reuse) a local cluster for the chosen offer, create the least-privilege
99
- * ServiceAccount + RBAC, mint a long-lived token, and read the apiserver URL — returning the
100
- * resolved `local-k3s` connection. Every MUTATING step (cluster create, RBAC apply) is behind an
101
- * explicit confirm unless `--yes`. Idempotent: an existing cluster/SA is reused, not duplicated
102
- * (`kubectl apply` and `k3d/kind` reuse). `install-k3s` is NOT handled here it is guidance-only.
171
+ * Provision (create, recreate or reuse) a local cluster for the chosen offer, create the
172
+ * least-privilege ServiceAccount + RBAC, mint a long-lived token, read the apiserver URL, and
173
+ * PROBE whether an ingress-derived environment URL can actually be served, returning the resolved
174
+ * `local-k3s` connection. Every MUTATING step (cluster create/delete, RBAC apply) is behind an
175
+ * explicit confirm unless `--yes`. Idempotent apart from `recreate-*`: an existing cluster/SA is
176
+ * reused, not duplicated. `install-k3s` is NOT handled here (guidance-only).
103
177
  */
104
178
  export declare function provisionCluster(chosen: Exclude<OfferId, 'install-k3s'>, state: HostState, options: CliOptions, deps: ProvisionDeps): Promise<ResolvedConnection>;
105
179
  //# sourceMappingURL=k3s-provision.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"k3s-provision.d.ts","sourceRoot":"","sources":["../src/k3s-provision.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAmB,MAAM,WAAW,CAAA;AAC5D,OAAO,EAAE,KAAK,SAAS,EAAoB,MAAM,iBAAiB,CAAA;AAClE,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,SAAS,CAAA;AACjC,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,OAAO,EAAE,MAAM,gBAAgB,CAAA;AAE7D,yFAAyF;AACzF,eAAO,MAAM,qBAAqB,gBAAgB,CAAA;AAClD,eAAO,MAAM,oBAAoB,gBAAgB,CAAA;AAKjD;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,SAAU,CAAA;AAEhD,4FAA4F;AAC5F,MAAM,WAAW,OAAO;IACtB,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,0FAA0F;IAC1F,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED;;;;;GAKG;AACH,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,WAAW,CAAA;IACnB,kFAAkF;IAClF,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,YAAY,EAAE,MAAM,CAAA;IACpB,QAAQ,EAAE,MAAM,CAAA;IAChB,qBAAqB,EAAE,IAAI,CAAA;CAC5B;AAED,iGAAiG;AACjG,qBAAa,cAAe,SAAQ,KAAK;CAAG;AAE5C;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,aAAa,o1DA8DzB,CAAA;AAMD,gGAAgG;AAChG,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,MAAyB,GAAG,OAAO,CAM1F;AAED,2CAA2C;AAC3C,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAMvD;AAED,4EAA4E;AAC5E,wBAAgB,WAAW,CAAC,OAAO,EAAE,KAAK,GAAG,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAEzE;AAYD,8FAA8F;AAC9F,wBAAgB,gBAAgB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAE1D;AAED,0FAA0F;AAC1F,wBAAgB,gBAAgB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAgB1D;AAED,mEAAmE;AACnE,wBAAgB,oBAAoB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAQ9D;AAED,iGAAiG;AACjG,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAElD;AAeD,oGAAoG;AACpG,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEzD;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAY5F;AAMD,kFAAkF;AAClF,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,SAAS,CAAA;IAChB,EAAE,EAAE,EAAE,CAAA;IACN,oFAAoF;IACpF,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACrC;;;;;OAKG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAC3B;AA+DD;;;;;;GAMG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,OAAO,CAAC,OAAO,EAAE,aAAa,CAAC,EACvC,KAAK,EAAE,SAAS,EAChB,OAAO,EAAE,UAAU,EACnB,IAAI,EAAE,aAAa,GAClB,OAAO,CAAC,kBAAkB,CAAC,CA0E7B"}
1
+ {"version":3,"file":"k3s-provision.d.ts","sourceRoot":"","sources":["../src/k3s-provision.ts"],"names":[],"mappings":"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"}