@cardelli/ambit 0.4.3 → 0.4.4
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/esm/cli/commands/deploy/index.js +81 -2
- package/esm/deno.js +1 -1
- package/esm/lib/args.d.ts +1 -0
- package/esm/lib/args.d.ts.map +1 -1
- package/esm/lib/args.js +2 -0
- package/esm/providers/fly.d.ts +17 -0
- package/esm/providers/fly.d.ts.map +1 -1
- package/esm/providers/fly.js +39 -0
- package/package.json +1 -1
|
@@ -84,6 +84,26 @@ const stageDeploy = async (out, fly, deployConfig, opts) => {
|
|
|
84
84
|
image: deployConfig.image,
|
|
85
85
|
config: deployConfig.configPath,
|
|
86
86
|
region: opts.region,
|
|
87
|
+
// VM sizing
|
|
88
|
+
vmSize: opts.vmSize,
|
|
89
|
+
vmCpus: opts.vmCpus,
|
|
90
|
+
vmMemory: opts.vmMemory,
|
|
91
|
+
vmCpuKind: opts.vmCpuKind,
|
|
92
|
+
vmGpuKind: opts.vmGpuKind,
|
|
93
|
+
vmGpus: opts.vmGpus,
|
|
94
|
+
// Build options
|
|
95
|
+
dockerfile: opts.dockerfile,
|
|
96
|
+
buildArg: opts.buildArg,
|
|
97
|
+
buildSecret: opts.buildSecret,
|
|
98
|
+
buildTarget: opts.buildTarget,
|
|
99
|
+
localOnly: opts.localOnly,
|
|
100
|
+
remoteOnly: opts.remoteOnly,
|
|
101
|
+
// Deploy behavior
|
|
102
|
+
env: opts.env,
|
|
103
|
+
strategy: opts.strategy,
|
|
104
|
+
detach: opts.detach,
|
|
105
|
+
waitTimeout: opts.waitTimeout,
|
|
106
|
+
volumeInitialSize: opts.volumeInitialSize,
|
|
87
107
|
},
|
|
88
108
|
};
|
|
89
109
|
const phase = await hydrateDeploy(ctx);
|
|
@@ -147,10 +167,24 @@ const deploy = async (argv) => {
|
|
|
147
167
|
"config",
|
|
148
168
|
"main-port",
|
|
149
169
|
"template",
|
|
170
|
+
// VM sizing
|
|
171
|
+
"vm-size",
|
|
172
|
+
"vm-cpus",
|
|
173
|
+
"vm-memory",
|
|
174
|
+
"vm-cpu-kind",
|
|
175
|
+
"vm-gpu-kind",
|
|
176
|
+
"vm-gpus",
|
|
177
|
+
// Build options
|
|
178
|
+
"dockerfile",
|
|
179
|
+
"build-target",
|
|
180
|
+
"strategy",
|
|
181
|
+
"wait-timeout",
|
|
182
|
+
"volume-initial-size",
|
|
150
183
|
],
|
|
151
|
-
boolean: ["help", "yes", "json"],
|
|
152
|
-
alias: { y: "yes" },
|
|
184
|
+
boolean: ["help", "yes", "json", "local-only", "remote-only", "detach"],
|
|
185
|
+
alias: { y: "yes", e: "env" },
|
|
153
186
|
default: { "main-port": "80" },
|
|
187
|
+
collect: ["build-arg", "build-secret", "env"],
|
|
154
188
|
};
|
|
155
189
|
const args = parseArgs(argv, opts);
|
|
156
190
|
checkArgs(args, opts, "ambit deploy", 1);
|
|
@@ -199,6 +233,29 @@ ${bold("TEMPLATE MODE")}
|
|
|
199
233
|
owner/repo/path@branch Fetch a specific branch
|
|
200
234
|
owner/repo/path@commit Fetch a specific commit
|
|
201
235
|
|
|
236
|
+
${bold("VM SIZING")}
|
|
237
|
+
--vm-size <size> VM size preset (see "fly platform vm-sizes")
|
|
238
|
+
--vm-cpus <n> Number of CPUs
|
|
239
|
+
--vm-memory <mb> Memory in megabytes
|
|
240
|
+
--vm-cpu-kind <kind> CPU kind: "shared" or "performance"
|
|
241
|
+
--vm-gpu-kind <model> GPU model (a100-pcie-40gb, a100-sxm4-80gb, l40s, a10)
|
|
242
|
+
--vm-gpus <n> Number of GPUs
|
|
243
|
+
|
|
244
|
+
${bold("BUILD OPTIONS")} (config/template mode only)
|
|
245
|
+
--dockerfile <path> Path to Dockerfile
|
|
246
|
+
--build-arg <K=V> Build-time variable (repeatable)
|
|
247
|
+
--build-secret <K=V> Build-time secret (repeatable)
|
|
248
|
+
--build-target <stage> Target build stage for multi-stage Dockerfiles
|
|
249
|
+
--local-only Build locally using local Docker daemon
|
|
250
|
+
--remote-only Build on remote builder (default)
|
|
251
|
+
|
|
252
|
+
${bold("DEPLOY BEHAVIOR")}
|
|
253
|
+
-e, --env <K=V> Environment variable (repeatable)
|
|
254
|
+
--strategy <name> Deploy strategy: canary, rolling, bluegreen, immediate
|
|
255
|
+
--detach Return immediately without monitoring
|
|
256
|
+
--wait-timeout <dur> Time to wait for machines to become healthy (default: 5m0s)
|
|
257
|
+
--volume-initial-size <gb> Initial volume size in GB on first deploy
|
|
258
|
+
|
|
202
259
|
${bold("SAFETY")}
|
|
203
260
|
Always deploys with --no-public-ips and --flycast.
|
|
204
261
|
Post-deploy audit releases any public IPs and verifies Flycast allocation.
|
|
@@ -275,6 +332,28 @@ ${bold("EXAMPLES")}
|
|
|
275
332
|
routerId,
|
|
276
333
|
flyAppName,
|
|
277
334
|
routerPrivateIp,
|
|
335
|
+
// VM sizing
|
|
336
|
+
vmSize: args["vm-size"],
|
|
337
|
+
vmCpus: args["vm-cpus"] ? Number(args["vm-cpus"]) : undefined,
|
|
338
|
+
vmMemory: args["vm-memory"],
|
|
339
|
+
vmCpuKind: args["vm-cpu-kind"],
|
|
340
|
+
vmGpuKind: args["vm-gpu-kind"],
|
|
341
|
+
vmGpus: args["vm-gpus"] ? Number(args["vm-gpus"]) : undefined,
|
|
342
|
+
// Build options
|
|
343
|
+
dockerfile: args.dockerfile,
|
|
344
|
+
buildArg: args["build-arg"],
|
|
345
|
+
buildSecret: args["build-secret"],
|
|
346
|
+
buildTarget: args["build-target"],
|
|
347
|
+
localOnly: args["local-only"],
|
|
348
|
+
remoteOnly: args["remote-only"],
|
|
349
|
+
// Deploy behavior
|
|
350
|
+
env: args.env,
|
|
351
|
+
strategy: args.strategy,
|
|
352
|
+
detach: args.detach,
|
|
353
|
+
waitTimeout: args["wait-timeout"],
|
|
354
|
+
volumeInitialSize: args["volume-initial-size"]
|
|
355
|
+
? Number(args["volume-initial-size"])
|
|
356
|
+
: undefined,
|
|
278
357
|
});
|
|
279
358
|
};
|
|
280
359
|
// =============================================================================
|
package/esm/deno.js
CHANGED
package/esm/lib/args.d.ts
CHANGED
|
@@ -10,5 +10,6 @@ export declare const checkArgs: (args: Record<string, unknown>, opts: {
|
|
|
10
10
|
string?: readonly string[] | string[];
|
|
11
11
|
boolean?: readonly string[] | string[];
|
|
12
12
|
alias?: Record<string, string | string[]>;
|
|
13
|
+
collect?: readonly string[] | string[];
|
|
13
14
|
}, command: string, maxPositional?: number) => void;
|
|
14
15
|
//# sourceMappingURL=args.d.ts.map
|
package/esm/lib/args.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"args.d.ts","sourceRoot":"","sources":["../../src/lib/args.ts"],"names":[],"mappings":"AAMA;;;;;;;GAOG;AACH,eAAO,MAAM,SAAS,GACpB,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,MAAM;IACJ,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;IACtC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;IACvC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"args.d.ts","sourceRoot":"","sources":["../../src/lib/args.ts"],"names":[],"mappings":"AAMA;;;;;;;GAOG;AACH,eAAO,MAAM,SAAS,GACpB,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,MAAM;IACJ,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;IACtC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;IACvC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC;IAC1C,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;CACxC,EACD,SAAS,MAAM,EACf,sBAAiB,KAChB,IA6BF,CAAC"}
|
package/esm/lib/args.js
CHANGED
|
@@ -16,6 +16,8 @@ export const checkArgs = (args, opts, command, maxPositional = 0) => {
|
|
|
16
16
|
known.add(k);
|
|
17
17
|
for (const k of opts.boolean ?? [])
|
|
18
18
|
known.add(k);
|
|
19
|
+
for (const k of opts.collect ?? [])
|
|
20
|
+
known.add(k);
|
|
19
21
|
for (const [k, v] of Object.entries(opts.alias ?? {})) {
|
|
20
22
|
known.add(k);
|
|
21
23
|
for (const a of Array.isArray(v) ? v : [v])
|
package/esm/providers/fly.d.ts
CHANGED
|
@@ -28,6 +28,23 @@ export interface SafeDeployOptions {
|
|
|
28
28
|
config?: string;
|
|
29
29
|
region?: string;
|
|
30
30
|
routerId?: string;
|
|
31
|
+
vmSize?: string;
|
|
32
|
+
vmCpus?: number;
|
|
33
|
+
vmMemory?: string;
|
|
34
|
+
vmCpuKind?: string;
|
|
35
|
+
vmGpuKind?: string;
|
|
36
|
+
vmGpus?: number;
|
|
37
|
+
dockerfile?: string;
|
|
38
|
+
buildArg?: string[];
|
|
39
|
+
buildSecret?: string[];
|
|
40
|
+
buildTarget?: string;
|
|
41
|
+
localOnly?: boolean;
|
|
42
|
+
remoteOnly?: boolean;
|
|
43
|
+
env?: string[];
|
|
44
|
+
strategy?: string;
|
|
45
|
+
detach?: boolean;
|
|
46
|
+
waitTimeout?: string;
|
|
47
|
+
volumeInitialSize?: number;
|
|
31
48
|
}
|
|
32
49
|
export interface FlyProvider {
|
|
33
50
|
auth: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fly.d.ts","sourceRoot":"","sources":["../../src/providers/fly.ts"],"names":[],"mappings":"AAUA,OAAO,EACL,KAAK,MAAM,EACX,KAAK,UAAU,EAIf,KAAK,KAAK,EAEV,KAAK,UAAU,EAIhB,MAAM,mBAAmB,CAAC;AAa3B;;;;GAIG;AACH,qBAAa,cAAe,SAAQ,KAAK;IACvC,+CAA+C;IAC/C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;gBAEZ,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAMxC;AAMD,MAAM,MAAM,WAAW,GAAG,eAAe,GAAG,eAAe,GAAG,eAAe,CAAC;AAE9E,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,WAAW,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAMD,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAMD,MAAM,WAAW,iBAAiB;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"fly.d.ts","sourceRoot":"","sources":["../../src/providers/fly.ts"],"names":[],"mappings":"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"}
|
package/esm/providers/fly.js
CHANGED
|
@@ -409,6 +409,45 @@ export const createFlyProvider = (token) => {
|
|
|
409
409
|
if (options.region) {
|
|
410
410
|
args.push("--primary-region", options.region);
|
|
411
411
|
}
|
|
412
|
+
// VM sizing
|
|
413
|
+
if (options.vmSize)
|
|
414
|
+
args.push("--vm-size", options.vmSize);
|
|
415
|
+
if (options.vmCpus)
|
|
416
|
+
args.push("--vm-cpus", String(options.vmCpus));
|
|
417
|
+
if (options.vmMemory)
|
|
418
|
+
args.push("--vm-memory", options.vmMemory);
|
|
419
|
+
if (options.vmCpuKind)
|
|
420
|
+
args.push("--vm-cpu-kind", options.vmCpuKind);
|
|
421
|
+
if (options.vmGpuKind)
|
|
422
|
+
args.push("--vm-gpu-kind", options.vmGpuKind);
|
|
423
|
+
if (options.vmGpus)
|
|
424
|
+
args.push("--vm-gpus", String(options.vmGpus));
|
|
425
|
+
// Build options (only meaningful when not using --image)
|
|
426
|
+
if (!options.image) {
|
|
427
|
+
if (options.dockerfile)
|
|
428
|
+
args.push("--dockerfile", options.dockerfile);
|
|
429
|
+
if (options.buildTarget)
|
|
430
|
+
args.push("--build-target", options.buildTarget);
|
|
431
|
+
if (options.localOnly)
|
|
432
|
+
args.push("--local-only");
|
|
433
|
+
if (options.remoteOnly)
|
|
434
|
+
args.push("--remote-only");
|
|
435
|
+
for (const arg of options.buildArg ?? [])
|
|
436
|
+
args.push("--build-arg", arg);
|
|
437
|
+
for (const secret of options.buildSecret ?? [])
|
|
438
|
+
args.push("--build-secret", secret);
|
|
439
|
+
}
|
|
440
|
+
// Deploy behavior
|
|
441
|
+
for (const e of options.env ?? [])
|
|
442
|
+
args.push("--env", e);
|
|
443
|
+
if (options.strategy)
|
|
444
|
+
args.push("--strategy", options.strategy);
|
|
445
|
+
if (options.detach)
|
|
446
|
+
args.push("--detach");
|
|
447
|
+
if (options.waitTimeout)
|
|
448
|
+
args.push("--wait-timeout", options.waitTimeout);
|
|
449
|
+
if (options.volumeInitialSize)
|
|
450
|
+
args.push("--volume-initial-size", String(options.volumeInitialSize));
|
|
412
451
|
const result = await run(args);
|
|
413
452
|
if (!result.ok) {
|
|
414
453
|
throw new FlyDeployError(flyAppName, result.stderr);
|