ninedeploy 0.18.16 → 0.18.17
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/autoscale.d.ts.map +1 -1
- package/dist/commands/autoscale.js +14 -0
- package/dist/commands/autoscale.js.map +1 -1
- package/dist/commands/sleep.d.ts.map +1 -1
- package/dist/commands/sleep.js +28 -4
- package/dist/commands/sleep.js.map +1 -1
- package/package.json +3 -3
- package/src/commands/autoscale.ts +8 -0
- package/src/commands/sleep.ts +21 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"autoscale.d.ts","sourceRoot":"","sources":["../../src/commands/autoscale.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,eAAe,EACpB,KAAK,oBAAoB,EACzB,KAAK,eAAe,EAErB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAuBrD,MAAM,WAAW,mBAAmB;IAClC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAsBD;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,oBAAoB,CAAC,GAAG,IAAI,CAqBhG;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,eAAe,GAAG,IAAI,GAAG,SAAS,EAC3C,KAAK,EAAE,OAAO,CAAC,oBAAoB,CAAC,GACnC;IAAE,IAAI,EAAE,oBAAoB,CAAA;CAAE,GAAG;IAAE,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAKxD;AAOD,mFAAmF;AACnF,wBAAgB,SAAS,CAAC,MAAM,EAAE,eAAe,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAEpE;
|
|
1
|
+
{"version":3,"file":"autoscale.d.ts","sourceRoot":"","sources":["../../src/commands/autoscale.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,eAAe,EACpB,KAAK,oBAAoB,EACzB,KAAK,eAAe,EAErB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAuBrD,MAAM,WAAW,mBAAmB;IAClC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAsBD;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,oBAAoB,CAAC,GAAG,IAAI,CAqBhG;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,eAAe,GAAG,IAAI,GAAG,SAAS,EAC3C,KAAK,EAAE,OAAO,CAAC,oBAAoB,CAAC,GACnC;IAAE,IAAI,EAAE,oBAAoB,CAAA;CAAE,GAAG;IAAE,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAKxD;AAOD,mFAAmF;AACnF,wBAAgB,SAAS,CAAC,MAAM,EAAE,eAAe,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAEpE;AA4BD,qDAAqD;AACrD,wBAAsB,aAAa,CAAC,MAAM,EAAE,gBAAgB,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,GAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAgBvH;AAED,iDAAiD;AACjD,wBAAsB,YAAY,CAAC,MAAM,EAAE,gBAAgB,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,GAAE,mBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC,CAoCvH;AAED,2CAA2C;AAC3C,wBAAsB,YAAY,CAAC,MAAM,EAAE,gBAAgB,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CASvF"}
|
|
@@ -96,6 +96,8 @@ function printConfig(cfg) {
|
|
|
96
96
|
function printStatus(st) {
|
|
97
97
|
console.log();
|
|
98
98
|
kv('Serving', containers(st.replicas));
|
|
99
|
+
if (st.supportedMetrics)
|
|
100
|
+
kv('Metrics here', st.supportedMetrics.length ? st.supportedMetrics.join(', ') : c.gray('none: the autoscaler holds for this placement'));
|
|
99
101
|
if (!st.enabled)
|
|
100
102
|
return;
|
|
101
103
|
const metric = st.metric ?? 'cpu';
|
|
@@ -155,6 +157,18 @@ export async function autoscaleSet(client, ref, opts = {}) {
|
|
|
155
157
|
success(`Autoscaling on for ${plain(updated.name)}.`);
|
|
156
158
|
printConfig(updated.autoscale);
|
|
157
159
|
info('It applies fully at the next deploy, which creates the spare containers.');
|
|
160
|
+
// Saving an unsupported metric is allowed (it is kept for later); say it will not act.
|
|
161
|
+
const metric = updated.autoscale?.metric;
|
|
162
|
+
let supported;
|
|
163
|
+
try {
|
|
164
|
+
supported = (await client.services.autoscale(id))?.supportedMetrics;
|
|
165
|
+
}
|
|
166
|
+
catch {
|
|
167
|
+
supported = undefined;
|
|
168
|
+
}
|
|
169
|
+
if (metric && supported && !supported.includes(metric)) {
|
|
170
|
+
info(`The ${metric} metric does not act where this service runs; the autoscaler holds until it does.`);
|
|
171
|
+
}
|
|
158
172
|
}
|
|
159
173
|
catch (err) {
|
|
160
174
|
error(message(err));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"autoscale.js","sourceRoot":"","sources":["../../src/commands/autoscale.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"autoscale.js","sourceRoot":"","sources":["../../src/commands/autoscale.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sleep.d.ts","sourceRoot":"","sources":["../../src/commands/sleep.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sleep.d.ts","sourceRoot":"","sources":["../../src/commands/sleep.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AA2BrD,wFAAwF;AACxF,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAOvD;AAED,uEAAuE;AACvE,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAEvE;AAED,iDAAiD;AACjD,wBAAsB,SAAS,CAAC,MAAM,EAAE,gBAAgB,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,GAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAiCnH;AAED,iDAAiD;AACjD,wBAAsB,QAAQ,CAAC,MAAM,EAAE,gBAAgB,EAAE,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAYvG;AAED,uCAAuC;AACvC,wBAAsB,QAAQ,CAAC,MAAM,EAAE,gBAAgB,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAUnF;AAED,uCAAuC;AACvC,wBAAsB,QAAQ,CAAC,MAAM,EAAE,gBAAgB,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CASnF;AAED,wCAAwC;AACxC,wBAAsB,SAAS,CAAC,MAAM,EAAE,gBAAgB,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAepF"}
|
package/dist/commands/sleep.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { SLEEP_AFTER_MAX, SLEEP_AFTER_MIN } from '@ninedeploy/schemas';
|
|
2
|
+
import { NineDeployError } from '@ninedeploy/sdk';
|
|
2
3
|
import { c, error, fmtTime, header, info, kv, spinner, success } from '../lib/format.js';
|
|
3
4
|
import { plain } from './sources.js';
|
|
4
5
|
import { resolveServiceRef } from './uptime.js';
|
|
@@ -41,17 +42,34 @@ export async function sleepShow(client, ref, opts = {}) {
|
|
|
41
42
|
const svc = await load(opts.json, 'Loading the service', () => client.services.get(id));
|
|
42
43
|
const minutes = svc.sleepAfterMinutes ?? null;
|
|
43
44
|
const asleepAt = svc.asleepAt ?? null;
|
|
45
|
+
let observation = null;
|
|
46
|
+
if (svc.serverId != null) {
|
|
47
|
+
try {
|
|
48
|
+
observation = await load(opts.json, 'Loading node idle coverage', () => client.services.sleepStatus(id));
|
|
49
|
+
}
|
|
50
|
+
catch (err) {
|
|
51
|
+
if (!(err instanceof NineDeployError && err.status === 404))
|
|
52
|
+
throw err;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
44
55
|
if (opts.json) {
|
|
45
|
-
console.log(JSON.stringify({ sleepAfterMinutes: minutes, asleepAt }, null, 2));
|
|
56
|
+
console.log(JSON.stringify({ sleepAfterMinutes: minutes, asleepAt, ...(svc.serverId != null ? { observation } : {}) }, null, 2));
|
|
46
57
|
return;
|
|
47
58
|
}
|
|
48
59
|
header(`Scale to zero: ${plain(svc.name)}`);
|
|
49
60
|
kv('When idle', minutes ? sleepSetting(minutes) : c.gray(sleepSetting(minutes)));
|
|
50
|
-
kv('Now', asleepAt ? c.yellow('asleep') : 'awake');
|
|
61
|
+
kv('Now', observation ? plain(observation.phase) : svc.serverId != null ? 'unverified' : asleepAt ? c.yellow('asleep') : 'awake');
|
|
62
|
+
if (observation) {
|
|
63
|
+
kv('Node controller', observation.nodeControllerActive ? 'active' : 'not running');
|
|
64
|
+
if (observation.idleMs != null)
|
|
65
|
+
kv('Verified idle', `${Math.floor(observation.idleMs / 1000)}s / ${Math.floor((observation.requiredMs ?? 0) / 1000)}s`);
|
|
66
|
+
if (observation.holding)
|
|
67
|
+
info(plain(observation.holding));
|
|
68
|
+
}
|
|
51
69
|
if (asleepAt) {
|
|
52
70
|
kv('Went to sleep', fmtTime(asleepAt));
|
|
53
71
|
console.log();
|
|
54
|
-
info('The next request through one of its domains wakes it, or `ninedeploy sleep wake`.');
|
|
72
|
+
info(observation && !observation.nodeControllerActive ? 'Automatic node wake is paused; use `ninedeploy sleep wake` or Start.' : 'The next request through one of its domains wakes it, or `ninedeploy sleep wake`.');
|
|
55
73
|
}
|
|
56
74
|
console.log();
|
|
57
75
|
}
|
|
@@ -110,7 +128,13 @@ export async function sleepWake(client, ref) {
|
|
|
110
128
|
const id = await resolveServiceRef(client, ref);
|
|
111
129
|
if (id === null)
|
|
112
130
|
return;
|
|
113
|
-
const res = await spinner('
|
|
131
|
+
const res = await spinner('Requesting service wake', () => client.services.wake(id));
|
|
132
|
+
if (res.pending) {
|
|
133
|
+
info(res.lifecycle?.phase === 'superseded' ? 'Wake request superseded by a newer action.' :
|
|
134
|
+
`Wake requested; runtime verification is pending${res.lifecycle ? ` (command #${plain(String(res.lifecycle.id))})` : ''}.`);
|
|
135
|
+
info(`Inspect progress with \`ninedeploy services lifecycle ${id}\`.`);
|
|
136
|
+
return;
|
|
137
|
+
}
|
|
114
138
|
success(`${plain(ref)} is awake (${plain(res.status)}).`);
|
|
115
139
|
}
|
|
116
140
|
catch (err) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sleep.js","sourceRoot":"","sources":["../../src/commands/sleep.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"sleep.js","sourceRoot":"","sources":["../../src/commands/sleep.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ninedeploy",
|
|
3
|
-
"version": "0.18.
|
|
3
|
+
"version": "0.18.17",
|
|
4
4
|
"description": "Interactive CLI for NineDeploy self-hosted PaaS",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -23,8 +23,8 @@
|
|
|
23
23
|
"ninedeploy": "./dist/index.js"
|
|
24
24
|
},
|
|
25
25
|
"dependencies": {
|
|
26
|
-
"@ninedeploy/sdk": "0.18.
|
|
27
|
-
"@ninedeploy/schemas": "0.18.
|
|
26
|
+
"@ninedeploy/sdk": "0.18.17",
|
|
27
|
+
"@ninedeploy/schemas": "0.18.17",
|
|
28
28
|
"commander": "^15.0.0",
|
|
29
29
|
"ws": "^8.21.3"
|
|
30
30
|
},
|
|
@@ -128,6 +128,7 @@ function printConfig(cfg: AutoscaleConfig | null | undefined): void {
|
|
|
128
128
|
function printStatus(st: AutoscaleStatusView): void {
|
|
129
129
|
console.log();
|
|
130
130
|
kv('Serving', containers(st.replicas));
|
|
131
|
+
if (st.supportedMetrics) kv('Metrics here', st.supportedMetrics.length ? st.supportedMetrics.join(', ') : c.gray('none: the autoscaler holds for this placement'));
|
|
131
132
|
if (!st.enabled) return;
|
|
132
133
|
const metric = st.metric ?? 'cpu';
|
|
133
134
|
kv('Last value', st.value === null || st.value === undefined ? c.gray('not read yet') : `${fmtMetric(metric, st.value)} per container`);
|
|
@@ -183,6 +184,13 @@ export async function autoscaleSet(client: NineDeployClient, ref: string, opts:
|
|
|
183
184
|
success(`Autoscaling on for ${plain(updated.name)}.`);
|
|
184
185
|
printConfig(updated.autoscale);
|
|
185
186
|
info('It applies fully at the next deploy, which creates the spare containers.');
|
|
187
|
+
// Saving an unsupported metric is allowed (it is kept for later); say it will not act.
|
|
188
|
+
const metric = updated.autoscale?.metric;
|
|
189
|
+
let supported: AutoscaleStatusView['supportedMetrics'];
|
|
190
|
+
try { supported = (await client.services.autoscale(id))?.supportedMetrics; } catch { supported = undefined; }
|
|
191
|
+
if (metric && supported && !supported.includes(metric)) {
|
|
192
|
+
info(`The ${metric} metric does not act where this service runs; the autoscaler holds until it does.`);
|
|
193
|
+
}
|
|
186
194
|
} catch (err) {
|
|
187
195
|
error(message(err));
|
|
188
196
|
}
|
package/src/commands/sleep.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { SLEEP_AFTER_MAX, SLEEP_AFTER_MIN } from '@ninedeploy/schemas';
|
|
2
|
+
import { NineDeployError, type ServiceSleepStatus } from '@ninedeploy/sdk';
|
|
2
3
|
import type { NineDeployClient } from '../client.js';
|
|
3
4
|
import { c, error, fmtTime, header, info, kv, spinner, success } from '../lib/format.js';
|
|
4
5
|
import { plain } from './sources.js';
|
|
@@ -49,17 +50,27 @@ export async function sleepShow(client: NineDeployClient, ref: string, opts: { j
|
|
|
49
50
|
const svc = await load(opts.json, 'Loading the service', () => client.services.get(id));
|
|
50
51
|
const minutes = svc.sleepAfterMinutes ?? null;
|
|
51
52
|
const asleepAt = svc.asleepAt ?? null;
|
|
53
|
+
let observation: ServiceSleepStatus | null = null;
|
|
54
|
+
if (svc.serverId != null) {
|
|
55
|
+
try { observation = await load(opts.json, 'Loading node idle coverage', () => client.services.sleepStatus(id)); }
|
|
56
|
+
catch (err) { if (!(err instanceof NineDeployError && err.status === 404)) throw err; }
|
|
57
|
+
}
|
|
52
58
|
if (opts.json) {
|
|
53
|
-
console.log(JSON.stringify({ sleepAfterMinutes: minutes, asleepAt }, null, 2));
|
|
59
|
+
console.log(JSON.stringify({ sleepAfterMinutes: minutes, asleepAt, ...(svc.serverId != null ? { observation } : {}) }, null, 2));
|
|
54
60
|
return;
|
|
55
61
|
}
|
|
56
62
|
header(`Scale to zero: ${plain(svc.name)}`);
|
|
57
63
|
kv('When idle', minutes ? sleepSetting(minutes) : c.gray(sleepSetting(minutes)));
|
|
58
|
-
kv('Now', asleepAt ? c.yellow('asleep') : 'awake');
|
|
64
|
+
kv('Now', observation ? plain(observation.phase) : svc.serverId != null ? 'unverified' : asleepAt ? c.yellow('asleep') : 'awake');
|
|
65
|
+
if (observation) {
|
|
66
|
+
kv('Node controller', observation.nodeControllerActive ? 'active' : 'not running');
|
|
67
|
+
if (observation.idleMs != null) kv('Verified idle', `${Math.floor(observation.idleMs / 1000)}s / ${Math.floor((observation.requiredMs ?? 0) / 1000)}s`);
|
|
68
|
+
if (observation.holding) info(plain(observation.holding));
|
|
69
|
+
}
|
|
59
70
|
if (asleepAt) {
|
|
60
71
|
kv('Went to sleep', fmtTime(asleepAt));
|
|
61
72
|
console.log();
|
|
62
|
-
info('The next request through one of its domains wakes it, or `ninedeploy sleep wake`.');
|
|
73
|
+
info(observation && !observation.nodeControllerActive ? 'Automatic node wake is paused; use `ninedeploy sleep wake` or Start.' : 'The next request through one of its domains wakes it, or `ninedeploy sleep wake`.');
|
|
63
74
|
}
|
|
64
75
|
console.log();
|
|
65
76
|
} catch (err) {
|
|
@@ -112,7 +123,13 @@ export async function sleepWake(client: NineDeployClient, ref: string): Promise<
|
|
|
112
123
|
try {
|
|
113
124
|
const id = await resolveServiceRef(client, ref);
|
|
114
125
|
if (id === null) return;
|
|
115
|
-
const res = await spinner('
|
|
126
|
+
const res = await spinner('Requesting service wake', () => client.services.wake(id));
|
|
127
|
+
if (res.pending) {
|
|
128
|
+
info(res.lifecycle?.phase === 'superseded' ? 'Wake request superseded by a newer action.' :
|
|
129
|
+
`Wake requested; runtime verification is pending${res.lifecycle ? ` (command #${plain(String(res.lifecycle.id))})` : ''}.`);
|
|
130
|
+
info(`Inspect progress with \`ninedeploy services lifecycle ${id}\`.`);
|
|
131
|
+
return;
|
|
132
|
+
}
|
|
116
133
|
success(`${plain(ref)} is awake (${plain(res.status)}).`);
|
|
117
134
|
} catch (err) {
|
|
118
135
|
error(message(err));
|