@pleri/olam-cli 0.1.146 → 0.1.148
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/commands/auth.d.ts.map +1 -1
- package/dist/commands/auth.js +26 -1
- package/dist/commands/auth.js.map +1 -1
- package/dist/commands/doctor.d.ts +31 -3
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +274 -6
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/services.d.ts +41 -3
- package/dist/commands/services.d.ts.map +1 -1
- package/dist/commands/services.js +221 -13
- package/dist/commands/services.js.map +1 -1
- package/dist/commands/skills-migrate-hooks-back.d.ts +19 -0
- package/dist/commands/skills-migrate-hooks-back.d.ts.map +1 -0
- package/dist/commands/skills-migrate-hooks-back.js +83 -0
- package/dist/commands/skills-migrate-hooks-back.js.map +1 -0
- package/dist/commands/skills-migrate-hooks.d.ts +40 -0
- package/dist/commands/skills-migrate-hooks.d.ts.map +1 -0
- package/dist/commands/skills-migrate-hooks.js +178 -0
- package/dist/commands/skills-migrate-hooks.js.map +1 -0
- package/dist/commands/skills.d.ts.map +1 -1
- package/dist/commands/skills.js +49 -1
- package/dist/commands/skills.js.map +1 -1
- package/dist/commands/substrate-audit-log.d.ts +2 -0
- package/dist/commands/substrate-audit-log.d.ts.map +1 -1
- package/dist/commands/substrate-audit-log.js +13 -0
- package/dist/commands/substrate-audit-log.js.map +1 -1
- package/dist/image-digests.json +7 -7
- package/dist/index.js +4390 -2615
- package/dist/index.js.map +1 -1
- package/dist/lib/auth-refresh-kubernetes.d.ts +62 -0
- package/dist/lib/auth-refresh-kubernetes.d.ts.map +1 -0
- package/dist/lib/auth-refresh-kubernetes.js +127 -0
- package/dist/lib/auth-refresh-kubernetes.js.map +1 -0
- package/dist/lib/kubectl-wrap.d.ts +6 -0
- package/dist/lib/kubectl-wrap.d.ts.map +1 -1
- package/dist/lib/kubectl-wrap.js +6 -1
- package/dist/lib/kubectl-wrap.js.map +1 -1
- package/dist/lib/manifest-refresh.d.ts +8 -1
- package/dist/lib/manifest-refresh.d.ts.map +1 -1
- package/dist/lib/manifest-refresh.js +17 -7
- package/dist/lib/manifest-refresh.js.map +1 -1
- package/dist/lib/peripheral-registry.d.ts +36 -0
- package/dist/lib/peripheral-registry.d.ts.map +1 -0
- package/dist/lib/peripheral-registry.js +55 -0
- package/dist/lib/peripheral-registry.js.map +1 -0
- package/dist/lib/port-forward.d.ts +67 -0
- package/dist/lib/port-forward.d.ts.map +1 -1
- package/dist/lib/port-forward.js +153 -0
- package/dist/lib/port-forward.js.map +1 -1
- package/dist/lib/upgrade-kubernetes.d.ts +35 -11
- package/dist/lib/upgrade-kubernetes.d.ts.map +1 -1
- package/dist/lib/upgrade-kubernetes.js +265 -21
- package/dist/lib/upgrade-kubernetes.js.map +1 -1
- package/dist/mcp-server.js +1196 -412
- package/host-cp/k8s/manifests/auth-service/10-serviceaccount.yaml +8 -0
- package/host-cp/k8s/manifests/auth-service/20-rbac.yaml +34 -0
- package/host-cp/k8s/manifests/auth-service/30-configmap.yaml +24 -0
- package/host-cp/k8s/manifests/auth-service/45-pvc.yaml +25 -0
- package/host-cp/k8s/manifests/auth-service/50-deployment.yaml +114 -0
- package/host-cp/k8s/manifests/auth-service/60-service.yaml +21 -0
- package/host-cp/k8s/manifests/kg-service/10-serviceaccount.yaml +8 -0
- package/host-cp/k8s/manifests/kg-service/20-rbac.yaml +34 -0
- package/host-cp/k8s/manifests/kg-service/30-configmap.yaml +18 -0
- package/host-cp/k8s/manifests/kg-service/45-pvc.yaml +25 -0
- package/host-cp/k8s/manifests/kg-service/50-deployment.yaml +108 -0
- package/host-cp/k8s/manifests/kg-service/60-service.yaml +21 -0
- package/host-cp/k8s/manifests/mcp-auth-service/10-serviceaccount.yaml +8 -0
- package/host-cp/k8s/manifests/mcp-auth-service/20-rbac.yaml +34 -0
- package/host-cp/k8s/manifests/mcp-auth-service/30-configmap.yaml +18 -0
- package/host-cp/k8s/manifests/mcp-auth-service/45-pvc.yaml +25 -0
- package/host-cp/k8s/manifests/mcp-auth-service/50-deployment.yaml +114 -0
- package/host-cp/k8s/manifests/mcp-auth-service/60-service.yaml +21 -0
- package/host-cp/k8s/manifests/memory-service/10-serviceaccount.yaml +8 -0
- package/host-cp/k8s/manifests/memory-service/20-rbac.yaml +34 -0
- package/host-cp/k8s/manifests/memory-service/30-configmap.yaml +20 -0
- package/host-cp/k8s/manifests/memory-service/45-pvc.yaml +25 -0
- package/host-cp/k8s/manifests/memory-service/50-deployment.yaml +116 -0
- package/host-cp/k8s/manifests/memory-service/60-service.yaml +21 -0
- package/host-cp/k8s/templates/auth-service-secret-template.yaml +28 -0
- package/host-cp/k8s/templates/kg-service-secret-template.yaml +28 -0
- package/host-cp/k8s/templates/mcp-auth-service-secret-template.yaml +28 -0
- package/host-cp/k8s/templates/memory-service-secret-template.yaml +29 -0
- package/host-cp/src/plan-chat-service.mjs +22 -3
- package/host-cp/src/server.mjs +4 -4
- package/package.json +1 -1
|
@@ -4,48 +4,102 @@
|
|
|
4
4
|
* Phase 1b C2 of olam-host-suite-phase-1b-k3s-beta-flavour (plan
|
|
5
5
|
* ~/.claude/plans/olam-host-suite-phase-1b-k3s-beta-flavour.md).
|
|
6
6
|
*
|
|
7
|
+
* Phase 2 Phase C extensions:
|
|
8
|
+
* C1 — step 2.5: in-memory ConfigMap substitution for inter-peripheral K8s DNS URLs (D4)
|
|
9
|
+
* C2 — step 2.6: per-peripheral Secret pre-check (iterates PERIPHERALS; D12 pattern)
|
|
10
|
+
* C3 — step 2.7: CoreDNS warm-up wait + extend steps 3/4/5 to iterate peripherals
|
|
11
|
+
*
|
|
12
|
+
* Phase 2 Phase D extensions:
|
|
13
|
+
* D5 — OLAM_PHASE_2_BETA guard removed; all peripherals deploy unconditionally (Phase 2 GA)
|
|
14
|
+
*
|
|
7
15
|
* Decisions consumed:
|
|
16
|
+
* D4 — K8s DNS URL form for inter-peripheral service URLs
|
|
8
17
|
* D10 — context-allowlist + OLAM_K8S_CONTEXT_ACK strict-equality check
|
|
9
18
|
* D12 — Secret pre-check (base64-decode + key-name + placeholder exact match)
|
|
10
19
|
* D14 — --force-refresh-manifests flag + --accept-security-regression guard
|
|
11
20
|
* D15 — kubectl rollout status --timeout=90s; state snapshot on failure
|
|
12
21
|
* D17 — port-forward spawn via flock (spawnPortForward from port-forward.ts)
|
|
13
22
|
* D22 — probeKubernetesApiReachable pre-flight via kubectl-wrap (5s timeout)
|
|
23
|
+
* D27 — audit log entry (phase2.flag_removed) emitted per upgrade run
|
|
14
24
|
*
|
|
15
|
-
* Step order:
|
|
16
|
-
* 0
|
|
17
|
-
* 1
|
|
18
|
-
* 2
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
+
* Step order (Phase D — kubernetes substrate, Phase 2 GA):
|
|
26
|
+
* 0 probeKubernetesApiReachable — 5s timeout kubectl cluster-info
|
|
27
|
+
* 1 D10 context-allowlist + OLAM_K8S_CONTEXT_ACK strict-equality byte-for-byte
|
|
28
|
+
* 2 D12 Secret pre-check (olam-host-cp-secret; base64-decode; key-name check)
|
|
29
|
+
* 2.5 C1 in-memory ConfigMap substitution — K8s DNS URLs for inter-peripheral URLs
|
|
30
|
+
* 2.6 C2 per-peripheral Secret pre-check (iterates PERIPHERALS; unconditional — D5)
|
|
31
|
+
* 2.7 C3 CoreDNS warm-up wait (kubectl wait --for=condition=Available deployment/coredns -n kube-system)
|
|
32
|
+
* 3 kubectl apply host-cp manifests + all 4 peripheral manifest dirs (alphabetical)
|
|
33
|
+
* 4 D15 kubectl rollout status (all 5 deployments in parallel)
|
|
34
|
+
* 5 D17 port-forward spawn for host-cp + spawnAllPeripheralPortForwards in parallel
|
|
35
|
+
* 6 verify /health returns X-Olam-Engine: kubernetes
|
|
36
|
+
* 7 emit upgrade.complete instrumentation event
|
|
37
|
+
* 8 success message
|
|
25
38
|
*
|
|
26
39
|
* Manifests NOT auto-rolled-back on failure (D15 spec). Operator must
|
|
27
40
|
* manually intervene; state snapshot is printed on failure.
|
|
28
41
|
*/
|
|
42
|
+
import * as fs from 'node:fs';
|
|
29
43
|
import * as os from 'node:os';
|
|
30
44
|
import * as path from 'node:path';
|
|
45
|
+
import { parse as yamlParse, stringify as yamlStringify } from 'yaml';
|
|
31
46
|
import ora from 'ora';
|
|
32
47
|
import pc from 'picocolors';
|
|
33
48
|
import { printError, printSuccess, printInfo, printWarning } from '../output.js';
|
|
34
49
|
import { kubectlWrap } from './kubectl-wrap.js';
|
|
35
|
-
import { spawnPortForward, probePortForwardLiveness } from './port-forward.js';
|
|
50
|
+
import { spawnPortForward, spawnAllPeripheralPortForwards, probePortForwardLiveness } from './port-forward.js';
|
|
36
51
|
import { emitUpgradeComplete } from './instrumentation.js';
|
|
37
52
|
import { runManifestRefresh } from './manifest-refresh.js';
|
|
38
|
-
import { OLAM_HOME } from './config.js';
|
|
53
|
+
import { OLAM_HOME, OLAM_STATE_DIR } from './config.js';
|
|
54
|
+
import { PERIPHERALS } from './peripheral-registry.js';
|
|
39
55
|
export const OLAM_K8S_MANIFESTS_DIR = path.join(OLAM_HOME, 'k8s', 'manifests');
|
|
40
56
|
export const K8S_NAMESPACE = 'olam';
|
|
41
57
|
export const HOST_CP_SECRET_NAME = 'olam-host-cp-secret';
|
|
42
58
|
export const HOST_CP_DEPLOYMENT_NAME = 'olam-host-cp';
|
|
43
59
|
export const PORT_FORWARD_TARGET = 'service/olam-host-cp';
|
|
44
60
|
export const HOST_CP_HEALTH_URL = 'http://127.0.0.1:19000/health';
|
|
61
|
+
/** Audit log for substrate upgrade events (D18). */
|
|
62
|
+
export const SUBSTRATE_AUDIT_LOG = path.join(OLAM_STATE_DIR, 'substrate-audit.jsonl');
|
|
45
63
|
/** Placeholder values that indicate the Secret has not been configured (D12). */
|
|
46
64
|
const PLACEHOLDER_VALUES = new Set(['OLAM_AUTH_SECRET', 'GH_TOKEN']);
|
|
47
65
|
/** Required keys in the olam-host-cp-secret (D12). */
|
|
48
66
|
const REQUIRED_SECRET_KEYS = ['OLAM_AUTH_SECRET', 'GH_TOKEN'];
|
|
67
|
+
/**
|
|
68
|
+
* Peripheral secret metadata: name and required keys with their placeholder patterns.
|
|
69
|
+
* Placeholder pattern: starts with REPLACE_ME_ (as per the template files in
|
|
70
|
+
* packages/host-cp/k8s/templates/).
|
|
71
|
+
*/
|
|
72
|
+
const PERIPHERAL_SECRETS = [
|
|
73
|
+
{ name: 'auth-service', secretName: 'olam-auth-service-secret', keys: ['OLAM_AUTH_DB_SECRET'] },
|
|
74
|
+
{ name: 'mcp-auth-service', secretName: 'olam-mcp-auth-service-secret', keys: ['OLAM_MCP_AUTH_JWT_SECRET'] },
|
|
75
|
+
{ name: 'kg-service', secretName: 'olam-kg-service-secret', keys: ['OLAM_KG_BEARER_TOKEN'] },
|
|
76
|
+
{ name: 'memory-service', secretName: 'olam-memory-service-secret', keys: ['OLAM_MEMORY_BEARER_SECRET'] },
|
|
77
|
+
];
|
|
78
|
+
/** K8s cluster DNS base domain for the olam namespace. */
|
|
79
|
+
const K8S_DNS_SUFFIX = 'olam.svc.cluster.local';
|
|
80
|
+
/**
|
|
81
|
+
* Build the K8s in-cluster DNS URL for a peripheral service.
|
|
82
|
+
* Form: http://<k8sServiceName>.olam.svc.cluster.local:<port>
|
|
83
|
+
*/
|
|
84
|
+
function buildK8sDnsUrl(k8sServiceName, port) {
|
|
85
|
+
return `http://${k8sServiceName}.${K8S_DNS_SUFFIX}:${port}`;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Append a JSONL audit entry to the substrate audit log (D18).
|
|
89
|
+
* Best-effort: errors are logged to stderr but do not abort the upgrade.
|
|
90
|
+
*/
|
|
91
|
+
function appendSubstrateAuditEntry(entry, stderr) {
|
|
92
|
+
try {
|
|
93
|
+
const line = JSON.stringify(entry) + '\n';
|
|
94
|
+
const dir = path.dirname(SUBSTRATE_AUDIT_LOG);
|
|
95
|
+
if (!fs.existsSync(dir))
|
|
96
|
+
fs.mkdirSync(dir, { recursive: true });
|
|
97
|
+
fs.writeFileSync(SUBSTRATE_AUDIT_LOG, line, { encoding: 'utf8', flag: 'a', mode: 0o600 });
|
|
98
|
+
}
|
|
99
|
+
catch (err) {
|
|
100
|
+
stderr.write(`${pc.yellow('[warn]')} could not write substrate audit log: ${err instanceof Error ? err.message : String(err)}\n`);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
49
103
|
/** D10 — allowed kubectl context patterns. Currently: anything non-empty.
|
|
50
104
|
* The allowlist is enforced by OLAM_K8S_CONTEXT_ACK strict-equality. */
|
|
51
105
|
function isContextAllowed(context) {
|
|
@@ -135,6 +189,122 @@ async function waitForRollout(context, deps, stderr) {
|
|
|
135
189
|
stderr.write(`\n${pc.yellow('note:')} Manifests are NOT auto-rolled-back. Inspect the state above and remediate manually.\n`);
|
|
136
190
|
return false;
|
|
137
191
|
}
|
|
192
|
+
/**
|
|
193
|
+
* Step 2.5 — C1: in-memory ConfigMap substitution for inter-peripheral K8s DNS URLs (D4).
|
|
194
|
+
*
|
|
195
|
+
* Reads the bundled host-cp ConfigMap YAML from manifestsDir/30-configmap.yaml,
|
|
196
|
+
* patches the inter-peripheral URL values to K8s cluster-DNS form, then applies
|
|
197
|
+
* the patched manifest via `kubectl apply -f -` on stdin.
|
|
198
|
+
*
|
|
199
|
+
* Does NOT rewrite any file on disk.
|
|
200
|
+
* Only runs on kubernetes substrate (called after substrate check).
|
|
201
|
+
*
|
|
202
|
+
* Returns null on success; error message string on failure.
|
|
203
|
+
*/
|
|
204
|
+
async function applyConfigMapSubstitution(context, manifestsDir, deps) {
|
|
205
|
+
const wrap = deps.kubectlWrapImpl ?? kubectlWrap;
|
|
206
|
+
const readFileSync = deps.readFileSyncImpl ?? fs.readFileSync;
|
|
207
|
+
const configMapPath = path.join(manifestsDir, '30-configmap.yaml');
|
|
208
|
+
let rawYaml;
|
|
209
|
+
try {
|
|
210
|
+
rawYaml = readFileSync(configMapPath, 'utf8');
|
|
211
|
+
}
|
|
212
|
+
catch (err) {
|
|
213
|
+
return `Failed to read ConfigMap at ${configMapPath}: ${err instanceof Error ? err.message : String(err)}`;
|
|
214
|
+
}
|
|
215
|
+
// Parse → patch data values → re-serialize.
|
|
216
|
+
let parsed;
|
|
217
|
+
try {
|
|
218
|
+
parsed = yamlParse(rawYaml);
|
|
219
|
+
}
|
|
220
|
+
catch (err) {
|
|
221
|
+
return `Failed to parse ConfigMap YAML at ${configMapPath}: ${err instanceof Error ? err.message : String(err)}`;
|
|
222
|
+
}
|
|
223
|
+
const data = (parsed['data'] ?? {});
|
|
224
|
+
// Substitute each peripheral's ConfigMap key to K8s DNS form.
|
|
225
|
+
for (const peripheral of PERIPHERALS) {
|
|
226
|
+
data[peripheral.configMapKeyInHostCp] = buildK8sDnsUrl(peripheral.k8sServiceName, peripheral.port);
|
|
227
|
+
}
|
|
228
|
+
parsed['data'] = data;
|
|
229
|
+
const patchedYaml = yamlStringify(parsed);
|
|
230
|
+
// Apply via stdin pipe (D20 compliance: no value in argv).
|
|
231
|
+
const result = await wrap(['--context', context, 'apply', '-f', '-'], { timeout: 30_000, stdin: patchedYaml });
|
|
232
|
+
if (!result.ok) {
|
|
233
|
+
return `kubectl apply (ConfigMap substitution) failed: ${result.stderr.split('\n')[0] ?? ''}`;
|
|
234
|
+
}
|
|
235
|
+
return null;
|
|
236
|
+
}
|
|
237
|
+
/**
|
|
238
|
+
* Step 2.6 — C2: per-peripheral Secret pre-check.
|
|
239
|
+
*
|
|
240
|
+
* Iterates PERIPHERAL_SECRETS; for each, fetches the Secret via kubectl,
|
|
241
|
+
* base64-decodes each value, and refuses if:
|
|
242
|
+
* (a) Secret does not exist → names the peripheral + Secret resource.
|
|
243
|
+
* (b) Any key is missing → names the peripheral + key.
|
|
244
|
+
* (c) Any value starts with REPLACE_ME_ (placeholder not configured) → names key.
|
|
245
|
+
*
|
|
246
|
+
* Mirrors Phase 1b's D12 host-cp Secret pre-check pattern, generalised to N peripherals.
|
|
247
|
+
*
|
|
248
|
+
* Returns null on success; error message string on first failure.
|
|
249
|
+
*/
|
|
250
|
+
async function checkPeripheralSecrets(context, deps) {
|
|
251
|
+
const wrap = deps.kubectlWrapImpl ?? kubectlWrap;
|
|
252
|
+
for (const { name, secretName, keys } of PERIPHERAL_SECRETS) {
|
|
253
|
+
const result = await wrap([
|
|
254
|
+
'--context', context,
|
|
255
|
+
'get', 'secret', secretName,
|
|
256
|
+
'-n', K8S_NAMESPACE,
|
|
257
|
+
'-o', 'json',
|
|
258
|
+
], { timeout: 15_000 });
|
|
259
|
+
if (!result.ok) {
|
|
260
|
+
return (`Peripheral Secret "${secretName}" (${name}) not found in namespace "${K8S_NAMESPACE}".\n` +
|
|
261
|
+
` Create it first: kubectl --context ${context} apply -f <your-${name}-secret.yaml>\n` +
|
|
262
|
+
` ${result.stderr.split('\n')[0] ?? ''}`);
|
|
263
|
+
}
|
|
264
|
+
let secretJson;
|
|
265
|
+
try {
|
|
266
|
+
secretJson = JSON.parse(result.stdout);
|
|
267
|
+
}
|
|
268
|
+
catch {
|
|
269
|
+
return `Failed to parse Secret JSON for "${secretName}" (${name}): ${result.stdout.slice(0, 200)}`;
|
|
270
|
+
}
|
|
271
|
+
const data = secretJson.data ?? {};
|
|
272
|
+
for (const key of keys) {
|
|
273
|
+
if (!(key in data)) {
|
|
274
|
+
return (`Peripheral Secret "${secretName}" (${name}) is missing required key "${key}".\n` +
|
|
275
|
+
` Keys found: ${Object.keys(data).join(', ') || '(none)'}\n` +
|
|
276
|
+
` Add the key and re-run.`);
|
|
277
|
+
}
|
|
278
|
+
const b64 = data[key] ?? '';
|
|
279
|
+
const decoded = Buffer.from(b64, 'base64').toString('utf8');
|
|
280
|
+
if (decoded.startsWith('REPLACE_ME_')) {
|
|
281
|
+
return (`Peripheral Secret "${secretName}" (${name}) key "${key}" still holds its placeholder value.\n` +
|
|
282
|
+
` Replace the placeholder with a real value, then re-run.`);
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
return null; // all peripheral secrets verified
|
|
287
|
+
}
|
|
288
|
+
/**
|
|
289
|
+
* Step 2.7 — C3: CoreDNS warm-up wait.
|
|
290
|
+
*
|
|
291
|
+
* Runs `kubectl wait --for=condition=Available deployment/coredns -n kube-system --timeout=30s`
|
|
292
|
+
* before step 3 to ensure DNS resolution is available for peripheral service discovery.
|
|
293
|
+
*
|
|
294
|
+
* Returns true on success; false on timeout or failure.
|
|
295
|
+
*/
|
|
296
|
+
async function waitForCoreDns(context, deps) {
|
|
297
|
+
const wrap = deps.kubectlWrapImpl ?? kubectlWrap;
|
|
298
|
+
const result = await wrap([
|
|
299
|
+
'--context', context,
|
|
300
|
+
'wait',
|
|
301
|
+
'--for=condition=Available',
|
|
302
|
+
'deployment/coredns',
|
|
303
|
+
'-n', 'kube-system',
|
|
304
|
+
'--timeout=30s',
|
|
305
|
+
], { timeout: 35_000 });
|
|
306
|
+
return result.ok;
|
|
307
|
+
}
|
|
138
308
|
/**
|
|
139
309
|
* Step 6 — verify /health returns X-Olam-Engine: kubernetes.
|
|
140
310
|
*/
|
|
@@ -214,9 +384,46 @@ export async function runUpgradeKubernetes(opts = {}, deps = {}) {
|
|
|
214
384
|
return { exitCode: 1, summary: 'secret pre-check failed' };
|
|
215
385
|
}
|
|
216
386
|
step2Spinner.succeed(`Secret ${HOST_CP_SECRET_NAME} verified`);
|
|
387
|
+
// ── D5: Phase 2 GA — OLAM_PHASE_2_BETA guard removed (D27) ──────
|
|
388
|
+
// Emit phase2.flag_removed audit log entry per upgrade run (D27).
|
|
389
|
+
appendSubstrateAuditEntry({
|
|
390
|
+
ts: new Date(deps.nowImpl ? deps.nowImpl() : Date.now()).toISOString(),
|
|
391
|
+
op: 'upgrade',
|
|
392
|
+
substrate: 'kubernetes',
|
|
393
|
+
phase2: { flag_removed: true },
|
|
394
|
+
}, stderr);
|
|
395
|
+
// ── Step 2.5: C1 — in-memory ConfigMap substitution (K8s DNS URLs) ──
|
|
396
|
+
const step25Spinner = ora('Patching ConfigMap with K8s DNS URLs (C1/D4)').start();
|
|
397
|
+
const configMapError = await applyConfigMapSubstitution(pinnedContext, manifestsDir, deps);
|
|
398
|
+
if (configMapError !== null) {
|
|
399
|
+
step25Spinner.fail('ConfigMap substitution failed');
|
|
400
|
+
stderr.write(`${pc.red('error:')} ${configMapError}\n`);
|
|
401
|
+
return { exitCode: 1, summary: 'configmap substitution failed' };
|
|
402
|
+
}
|
|
403
|
+
step25Spinner.succeed('ConfigMap patched with K8s DNS URLs');
|
|
404
|
+
// ── Step 2.6: C2 — per-peripheral Secret pre-check ──────────────
|
|
405
|
+
const step26Spinner = ora('Checking peripheral Secrets (C2)').start();
|
|
406
|
+
const peripheralSecretError = await checkPeripheralSecrets(pinnedContext, deps);
|
|
407
|
+
if (peripheralSecretError !== null) {
|
|
408
|
+
step26Spinner.fail('Peripheral Secret pre-check failed');
|
|
409
|
+
stderr.write(`${pc.red('error:')} ${peripheralSecretError}\n`);
|
|
410
|
+
return { exitCode: 1, summary: 'peripheral secret pre-check failed' };
|
|
411
|
+
}
|
|
412
|
+
step26Spinner.succeed('All peripheral Secrets verified');
|
|
413
|
+
// ── Step 2.7: C3 — CoreDNS warm-up wait ────────────────────────
|
|
414
|
+
const step27Spinner = ora('Waiting for CoreDNS (C3, 30s timeout)').start();
|
|
415
|
+
const coreDnsOk = await waitForCoreDns(pinnedContext, deps);
|
|
416
|
+
if (!coreDnsOk) {
|
|
417
|
+
step27Spinner.warn('CoreDNS not Available within 30s — continuing (DNS may be degraded)');
|
|
418
|
+
}
|
|
419
|
+
else {
|
|
420
|
+
step27Spinner.succeed('CoreDNS Available');
|
|
421
|
+
}
|
|
217
422
|
// ── Step 3: kubectl apply ─────────────────────────────────────────
|
|
218
423
|
const step3Spinner = ora('Applying manifests').start();
|
|
219
424
|
const wrap = deps.kubectlWrapImpl ?? kubectlWrap;
|
|
425
|
+
// Always apply host-cp manifests (top-level manifests dir).
|
|
426
|
+
// kubectl -f <dir> does NOT recurse by default — peripheral subdirs are ignored here.
|
|
220
427
|
const applyResult = await wrap(['--context', pinnedContext, 'apply', '-f', manifestsDir], { timeout: 120_000 });
|
|
221
428
|
if (!applyResult.ok) {
|
|
222
429
|
step3Spinner.fail('kubectl apply failed');
|
|
@@ -224,24 +431,61 @@ export async function runUpgradeKubernetes(opts = {}, deps = {}) {
|
|
|
224
431
|
` ${applyResult.stderr.split('\n').slice(0, 5).join('\n ')}\n`);
|
|
225
432
|
return { exitCode: 1, summary: 'kubectl apply failed' };
|
|
226
433
|
}
|
|
227
|
-
|
|
434
|
+
// Apply each peripheral's manifest directory (alphabetical order).
|
|
435
|
+
const peripheralNames = [...PERIPHERALS.map((p) => p.name)].sort();
|
|
436
|
+
for (const name of peripheralNames) {
|
|
437
|
+
const peripheralManifestsDir = path.join(manifestsDir, name);
|
|
438
|
+
const peripheralApplyResult = await wrap(['--context', pinnedContext, 'apply', '-f', peripheralManifestsDir], { timeout: 120_000 });
|
|
439
|
+
if (!peripheralApplyResult.ok) {
|
|
440
|
+
step3Spinner.fail(`kubectl apply failed for peripheral "${name}"`);
|
|
441
|
+
stderr.write(`${pc.red('error:')} kubectl apply failed for peripheral "${name}" (exit ${peripheralApplyResult.exitCode}):\n` +
|
|
442
|
+
` ${peripheralApplyResult.stderr.split('\n').slice(0, 5).join('\n ')}\n`);
|
|
443
|
+
return { exitCode: 1, summary: `kubectl apply failed for peripheral ${name}` };
|
|
444
|
+
}
|
|
445
|
+
}
|
|
446
|
+
step3Spinner.succeed('All manifests applied (host-cp + 4 peripherals)');
|
|
228
447
|
// ── Step 4: D15 — kubectl rollout status (90s timeout, 95s wrap) ──
|
|
229
|
-
|
|
230
|
-
const
|
|
231
|
-
|
|
232
|
-
|
|
448
|
+
// Wait for all 5 deployments in parallel (host-cp + 4 peripherals).
|
|
449
|
+
const step4Spinner = ora('Waiting for rollout (all 5 deployments, 90s each)').start();
|
|
450
|
+
const deploymentNames = [
|
|
451
|
+
HOST_CP_DEPLOYMENT_NAME,
|
|
452
|
+
...PERIPHERALS.map((p) => p.name),
|
|
453
|
+
];
|
|
454
|
+
const rolloutResults = await Promise.all(deploymentNames.map((deploymentName) => (deps.kubectlWrapImpl ?? kubectlWrap)([
|
|
455
|
+
'--context', pinnedContext,
|
|
456
|
+
'rollout', 'status',
|
|
457
|
+
`deployment/${deploymentName}`,
|
|
458
|
+
'-n', K8S_NAMESPACE,
|
|
459
|
+
'--timeout=90s',
|
|
460
|
+
], { timeout: 95_000 })));
|
|
461
|
+
const failedDeployments = deploymentNames.filter((_, i) => !rolloutResults[i]?.ok);
|
|
462
|
+
if (failedDeployments.length > 0) {
|
|
463
|
+
step4Spinner.fail(`Rollout failed for: ${failedDeployments.join(', ')}`);
|
|
464
|
+
// Emit state snapshot for failed deployments (mirrors D15 pattern).
|
|
465
|
+
for (const name of failedDeployments) {
|
|
466
|
+
stderr.write(`${pc.red('error:')} rollout status failed for deployment/${name}.\n`);
|
|
467
|
+
stderr.write(`${pc.dim(`--- kubectl get pods -n ${K8S_NAMESPACE} -o wide ---`)}\n`);
|
|
468
|
+
const podsResult = await wrap(['--context', pinnedContext, 'get', 'pods', '-n', K8S_NAMESPACE, '-o', 'wide'], { timeout: 10_000 });
|
|
469
|
+
stderr.write((podsResult.stdout || podsResult.stderr || '(no output)') + '\n');
|
|
470
|
+
}
|
|
471
|
+
stderr.write(`\n${pc.yellow('note:')} Manifests are NOT auto-rolled-back. Inspect the state above and remediate manually.\n`);
|
|
233
472
|
return { exitCode: 1, summary: 'rollout status timed out' };
|
|
234
473
|
}
|
|
235
|
-
step4Spinner.succeed('
|
|
474
|
+
step4Spinner.succeed('All 5 deployments rolled out');
|
|
236
475
|
// ── Step 5: D17 — port-forward spawn via flock ───────────────────
|
|
476
|
+
// Spawn host-cp and all peripheral port-forwards in parallel.
|
|
237
477
|
const step5Spinner = ora('Establishing port-forward').start();
|
|
238
478
|
const pfSpawn = deps.spawnPortForwardImpl ?? spawnPortForward;
|
|
239
|
-
const
|
|
479
|
+
const spawnAllPeripheral = deps.spawnAllPeripheralPortForwardsImpl ?? spawnAllPeripheralPortForwards;
|
|
480
|
+
const [pfResult] = await Promise.all([
|
|
481
|
+
pfSpawn(pinnedContext, K8S_NAMESPACE, PORT_FORWARD_TARGET, 19000, 19000, deps.portForwardDeps ?? {}),
|
|
482
|
+
spawnAllPeripheral(pinnedContext, K8S_NAMESPACE, deps.peripheralPortForwardDeps ?? {}),
|
|
483
|
+
]);
|
|
240
484
|
if (pfResult.spawned) {
|
|
241
|
-
step5Spinner.succeed(`Port-forward spawned (pid ${pfResult.pid})`);
|
|
485
|
+
step5Spinner.succeed(`Port-forward spawned (pid ${pfResult.pid}) + all peripheral port-forwards`);
|
|
242
486
|
}
|
|
243
487
|
else if (pfResult.reason === 'live') {
|
|
244
|
-
step5Spinner.succeed('Port-forward already live');
|
|
488
|
+
step5Spinner.succeed('Port-forward already live + peripheral port-forwards spawned');
|
|
245
489
|
}
|
|
246
490
|
else {
|
|
247
491
|
step5Spinner.warn('Port-forward lock held by concurrent caller; skipping spawn');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upgrade-kubernetes.js","sourceRoot":"","sources":["../../src/lib/upgrade-kubernetes.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"upgrade-kubernetes.js","sourceRoot":"","sources":["../../src/lib/upgrade-kubernetes.ts"],"names":[],"mappings":"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"}
|