anycloud 0.0.3 → 0.0.5
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/cli/commands/config/edit.js +15 -0
- package/dist/cli/commands/config/edit.js.map +1 -1
- package/dist/cli/commands/config/list.js +53 -18
- package/dist/cli/commands/config/list.js.map +1 -1
- package/dist/cli/commands/config/new.js +21 -0
- package/dist/cli/commands/config/new.js.map +1 -1
- package/dist/cli/commands/config/remove.js +10 -0
- package/dist/cli/commands/config/remove.js.map +1 -1
- package/dist/cli/commands/credentials/delete.js +10 -0
- package/dist/cli/commands/credentials/delete.js.map +1 -1
- package/dist/cli/commands/credentials/edit.js +16 -0
- package/dist/cli/commands/credentials/edit.js.map +1 -1
- package/dist/cli/commands/credentials/list.js +35 -13
- package/dist/cli/commands/credentials/list.js.map +1 -1
- package/dist/cli/commands/credentials/new.js +25 -0
- package/dist/cli/commands/credentials/new.js.map +1 -1
- package/dist/cli/commands/daemon/index.js +8 -6
- package/dist/cli/commands/daemon/index.js.map +1 -1
- package/dist/cli/commands/list.js +70 -19
- package/dist/cli/commands/list.js.map +1 -1
- package/dist/cli/commands/login.js +10 -0
- package/dist/cli/commands/login.js.map +1 -1
- package/dist/cli/commands/logs.js +95 -10
- package/dist/cli/commands/logs.js.map +1 -1
- package/dist/cli/commands/run.js +110 -0
- package/dist/cli/commands/run.js.map +1 -0
- package/dist/cli/commands/serve.js +15 -0
- package/dist/cli/commands/serve.js.map +1 -0
- package/dist/cli/commands/status.js +113 -0
- package/dist/cli/commands/status.js.map +1 -0
- package/dist/cli/commands/terminate.js +122 -8
- package/dist/cli/commands/terminate.js.map +1 -1
- package/dist/cli/commands/upgrade.js +66 -8
- package/dist/cli/commands/upgrade.js.map +1 -1
- package/dist/cli/index.js +6 -4
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/services/api-client.js +51 -49
- package/dist/cli/services/api-client.js.map +1 -1
- package/dist/cli/services/config.js +2 -0
- package/dist/cli/services/config.js.map +1 -1
- package/dist/cli/services/non-interactive.js +3 -3
- package/dist/cli/services/non-interactive.js.map +1 -1
- package/dist/cli/services/oauth.js +4 -5
- package/dist/cli/services/oauth.js.map +1 -1
- package/dist/cli/utils/env-parser.js +27 -0
- package/dist/cli/utils/env-parser.js.map +1 -0
- package/dist/cli/utils/output.js +42 -0
- package/dist/cli/utils/output.js.map +1 -1
- package/dist/daemon/cluster.js +122 -17
- package/dist/daemon/cluster.js.map +1 -1
- package/dist/daemon/docker.js +62 -21
- package/dist/daemon/docker.js.map +1 -1
- package/dist/daemon/preemption.js +127 -0
- package/dist/daemon/preemption.js.map +1 -0
- package/dist/daemon/server.js +128 -16
- package/dist/daemon/server.js.map +1 -1
- package/dist/shared/assets/clouds/azure/regions-per-type.json +21584 -1117
- package/dist/shared/id-generator.js +20 -0
- package/dist/shared/id-generator.js.map +1 -0
- package/dist/shared/types.js +5 -1
- package/dist/shared/types.js.map +1 -1
- package/package.json +16 -8
- package/dist/cli/commands/daemon/start.js +0 -32
- package/dist/cli/commands/daemon/start.js.map +0 -1
- package/dist/cli/commands/job.js +0 -71
- package/dist/cli/commands/job.js.map +0 -1
- package/dist/cli/commands/new.js +0 -15
- package/dist/cli/commands/new.js.map +0 -1
|
@@ -1,17 +1,131 @@
|
|
|
1
1
|
import { Command } from 'commander';
|
|
2
|
-
import
|
|
3
|
-
import {
|
|
2
|
+
import prompts from 'prompts';
|
|
3
|
+
import { terminateDeployment, listDeployments, } from '../services/api-client.js';
|
|
4
|
+
import { getGitHubToken } from '../services/auth.js';
|
|
5
|
+
import { resolveDeploymentProfile, loadDeploymentProfiles, resolveAllDeploymentProfiles, } from '../services/config.js';
|
|
6
|
+
import { printInfo, printError, createSpinner } from '../utils/output.js';
|
|
7
|
+
import { isNonInteractive, getConfigFromEnv, getEnvOptional, } from '../services/non-interactive.js';
|
|
8
|
+
import packageJson from '../../../package.json' with { type: 'json' };
|
|
4
9
|
export function createTerminateCommand() {
|
|
5
10
|
return new Command('terminate')
|
|
6
11
|
.description('Terminate a deployment')
|
|
7
|
-
.argument('
|
|
8
|
-
.
|
|
9
|
-
.
|
|
12
|
+
.argument('[id]', 'Deployment ID (optional - will prompt to select if not provided)')
|
|
13
|
+
.option('--config <name>', 'Config name from anycloud.json')
|
|
14
|
+
.addHelpText('after', `
|
|
15
|
+
Examples:
|
|
16
|
+
$ anycloud terminate abc123-def456-ghi789
|
|
17
|
+
$ anycloud terminate abc123-def456-ghi789 --config my-app
|
|
18
|
+
$ anycloud terminate
|
|
19
|
+
|
|
20
|
+
Output:
|
|
21
|
+
Terminating: abc123-def456-ghi789
|
|
22
|
+
Using config: my-app
|
|
23
|
+
✓ Deployment terminated successfully!
|
|
24
|
+
`)
|
|
25
|
+
.action(async (id, options) => {
|
|
10
26
|
try {
|
|
11
|
-
|
|
27
|
+
let deploymentId = id;
|
|
28
|
+
let configName = options?.config;
|
|
29
|
+
// If no ID provided, fetch and prompt for selection
|
|
30
|
+
if (!deploymentId) {
|
|
31
|
+
// Check for environment variable in non-interactive mode
|
|
32
|
+
if (isNonInteractive()) {
|
|
33
|
+
deploymentId = getEnvOptional('ANYCLOUD_DEPLOYMENT_ID');
|
|
34
|
+
if (!deploymentId) {
|
|
35
|
+
printError('Non-interactive mode: Deployment ID required.\n' +
|
|
36
|
+
' Provide ID as argument or set ANYCLOUD_DEPLOYMENT_ID environment variable.');
|
|
37
|
+
process.exit(1);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
// Get GitHub token
|
|
42
|
+
const accessToken = await getGitHubToken();
|
|
43
|
+
// Get all deployment configs with resolved credentials
|
|
44
|
+
const anycloudConfigs = await resolveAllDeploymentProfiles();
|
|
45
|
+
if (Object.keys(anycloudConfigs).length === 0) {
|
|
46
|
+
printError('No deployment profiles found in anycloud.json');
|
|
47
|
+
printInfo('Please create anycloud.json with deployment profiles.');
|
|
48
|
+
process.exit(1);
|
|
49
|
+
}
|
|
50
|
+
// List all deployments
|
|
51
|
+
const loadingSpinner = createSpinner('Loading deployments...').start();
|
|
52
|
+
const deployments = await listDeployments(anycloudConfigs, accessToken, packageJson.version);
|
|
53
|
+
loadingSpinner.stop();
|
|
54
|
+
if (deployments.length === 0) {
|
|
55
|
+
printError('No deployments found.');
|
|
56
|
+
printInfo('Create a deployment first using: anycloud run --config <config-name>');
|
|
57
|
+
process.exit(1);
|
|
58
|
+
}
|
|
59
|
+
// Prompt for deployment selection
|
|
60
|
+
const selection = await prompts({
|
|
61
|
+
type: 'select',
|
|
62
|
+
name: 'deployment',
|
|
63
|
+
message: 'Select deployment to terminate:',
|
|
64
|
+
choices: deployments.map((deployment) => {
|
|
65
|
+
const hasSpot = deployment.cloudConfigs.some((config) => config.spot === true);
|
|
66
|
+
const spotText = hasSpot ? ' | Spot' : '';
|
|
67
|
+
return {
|
|
68
|
+
title: deployment.id,
|
|
69
|
+
value: deployment.id,
|
|
70
|
+
description: `${deployment.configName} | ${deployment.size} VMs${spotText}`,
|
|
71
|
+
};
|
|
72
|
+
}),
|
|
73
|
+
});
|
|
74
|
+
if (!selection.deployment) {
|
|
75
|
+
process.exit(0); // User cancelled
|
|
76
|
+
}
|
|
77
|
+
deploymentId = selection.deployment;
|
|
78
|
+
// Auto-detect config from the selected deployment if not provided
|
|
79
|
+
const selectedDeployment = deployments.find((d) => d.id === deploymentId);
|
|
80
|
+
if (selectedDeployment && !configName) {
|
|
81
|
+
configName = selectedDeployment.configName;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
printInfo(`Terminating: ${deploymentId}`);
|
|
86
|
+
// Determine config name if not already set
|
|
87
|
+
// Check for environment variable in non-interactive mode
|
|
88
|
+
if (!configName && isNonInteractive()) {
|
|
89
|
+
configName = getConfigFromEnv();
|
|
90
|
+
if (!configName) {
|
|
91
|
+
printError('Non-interactive mode: Config name required.\n' +
|
|
92
|
+
' Provide --config flag or set ANYCLOUD_CONFIG environment variable.');
|
|
93
|
+
process.exit(1);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
// If --config not provided and not in non-interactive mode, prompt for config selection
|
|
97
|
+
if (!configName) {
|
|
98
|
+
const profiles = await loadDeploymentProfiles();
|
|
99
|
+
const profileNames = Object.keys(profiles);
|
|
100
|
+
if (profileNames.length === 0) {
|
|
101
|
+
printError('No deployment profiles found in anycloud.json');
|
|
102
|
+
printInfo('Please create anycloud.json with deployment profiles.');
|
|
103
|
+
process.exit(1);
|
|
104
|
+
}
|
|
105
|
+
const selection = await prompts({
|
|
106
|
+
type: 'select',
|
|
107
|
+
name: 'profile',
|
|
108
|
+
message: 'Select config:',
|
|
109
|
+
choices: profileNames.map((name) => ({
|
|
110
|
+
title: name,
|
|
111
|
+
value: name,
|
|
112
|
+
description: `${profiles[name].length} config(s)`,
|
|
113
|
+
})),
|
|
114
|
+
});
|
|
115
|
+
if (!selection.profile) {
|
|
116
|
+
process.exit(0); // User cancelled
|
|
117
|
+
}
|
|
118
|
+
configName = selection.profile;
|
|
119
|
+
}
|
|
120
|
+
printInfo(`Using config: ${configName}`);
|
|
121
|
+
// Get GitHub token
|
|
122
|
+
const accessToken = await getGitHubToken();
|
|
123
|
+
// Resolve deployment profile and credentials
|
|
124
|
+
const cloudConfigs = await resolveDeploymentProfile(configName);
|
|
12
125
|
// Terminate deployment
|
|
13
|
-
const
|
|
14
|
-
|
|
126
|
+
const spinner = createSpinner('Terminating deployment...').start();
|
|
127
|
+
const response = await terminateDeployment(deploymentId, cloudConfigs, accessToken, configName, packageJson.version);
|
|
128
|
+
spinner.succeed('Deployment terminated successfully!');
|
|
15
129
|
if (response.message) {
|
|
16
130
|
printInfo(response.message);
|
|
17
131
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"terminate.js","sourceRoot":"","sources":["../../../src/cli/commands/terminate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,
|
|
1
|
+
{"version":3,"file":"terminate.js","sourceRoot":"","sources":["../../../src/cli/commands/terminate.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,19 +1,77 @@
|
|
|
1
1
|
import { Command } from 'commander';
|
|
2
|
+
import prompts from 'prompts';
|
|
2
3
|
import { upgradeDeployment } from '../services/api-client.js';
|
|
3
|
-
import {
|
|
4
|
+
import { printInfo, printError, createSpinner } from '../utils/output.js';
|
|
5
|
+
import { getGitHubToken } from '../services/auth.js';
|
|
6
|
+
import { resolveDeploymentProfile, loadDeploymentProfiles, } from '../services/config.js';
|
|
7
|
+
import { isNonInteractive, getConfigFromEnv, } from '../services/non-interactive.js';
|
|
8
|
+
import { DeploymentType } from '../../shared/types.js';
|
|
9
|
+
import packageJson from '../../../package.json' with { type: 'json' };
|
|
4
10
|
export function createUpgradeCommand() {
|
|
5
11
|
return new Command('upgrade')
|
|
6
|
-
.description('Upgrade a deployment to a new container image')
|
|
7
|
-
.argument('<
|
|
12
|
+
.description('Upgrade a server deployment to a new container image')
|
|
13
|
+
.argument('<id>', 'Deployment ID')
|
|
8
14
|
.argument('<image>', 'New container image (e.g., nginx:latest, ghcr.io/user/repo:v2)')
|
|
9
|
-
.
|
|
10
|
-
.
|
|
15
|
+
.option('--config <name>', 'Config name from anycloud.json')
|
|
16
|
+
.addHelpText('after', `
|
|
17
|
+
Examples:
|
|
18
|
+
$ anycloud upgrade abc123-def456-ghi789 nginx:latest
|
|
19
|
+
$ anycloud upgrade abc123-def456-ghi789 myapp:v2.0 --config prod
|
|
20
|
+
|
|
21
|
+
Output:
|
|
22
|
+
Upgrading: abc123-def456-ghi789
|
|
23
|
+
New image: nginx:latest
|
|
24
|
+
Using config: prod
|
|
25
|
+
✓ Deployment upgraded successfully!
|
|
26
|
+
`)
|
|
27
|
+
.action(async (id, image, options) => {
|
|
11
28
|
try {
|
|
12
|
-
printInfo(`Upgrading
|
|
29
|
+
printInfo(`Upgrading: ${id}`);
|
|
13
30
|
printInfo(`New image: ${image}`);
|
|
31
|
+
// Determine config name
|
|
32
|
+
let configName = options.config;
|
|
33
|
+
// Check for environment variable in non-interactive mode
|
|
34
|
+
if (!configName && isNonInteractive()) {
|
|
35
|
+
configName = getConfigFromEnv();
|
|
36
|
+
if (!configName) {
|
|
37
|
+
printError('Non-interactive mode: Config name required.\n' +
|
|
38
|
+
' Provide --config flag or set ANYCLOUD_CONFIG environment variable.');
|
|
39
|
+
process.exit(1);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
// If --config not provided and not in non-interactive mode, prompt for config selection
|
|
43
|
+
if (!configName) {
|
|
44
|
+
const profiles = await loadDeploymentProfiles();
|
|
45
|
+
const profileNames = Object.keys(profiles);
|
|
46
|
+
if (profileNames.length === 0) {
|
|
47
|
+
printError('No deployment profiles found in anycloud.json');
|
|
48
|
+
printInfo('Please create anycloud.json with deployment profiles.');
|
|
49
|
+
process.exit(1);
|
|
50
|
+
}
|
|
51
|
+
const selection = await prompts({
|
|
52
|
+
type: 'select',
|
|
53
|
+
name: 'profile',
|
|
54
|
+
message: 'Select config:',
|
|
55
|
+
choices: profileNames.map((name) => ({
|
|
56
|
+
title: name,
|
|
57
|
+
value: name,
|
|
58
|
+
description: `${profiles[name].length} config(s)`,
|
|
59
|
+
})),
|
|
60
|
+
});
|
|
61
|
+
if (!selection.profile) {
|
|
62
|
+
process.exit(0); // User cancelled
|
|
63
|
+
}
|
|
64
|
+
configName = selection.profile;
|
|
65
|
+
}
|
|
66
|
+
printInfo(`Using config: ${configName}`);
|
|
67
|
+
// Get GitHub token
|
|
68
|
+
const accessToken = await getGitHubToken();
|
|
69
|
+
// Resolve deployment profile and credentials
|
|
70
|
+
const cloudConfigs = await resolveDeploymentProfile(configName);
|
|
14
71
|
// Upgrade deployment
|
|
15
|
-
const
|
|
16
|
-
|
|
72
|
+
const spinner = createSpinner('Upgrading deployment...').start();
|
|
73
|
+
const response = await upgradeDeployment(id, image, cloudConfigs, configName, accessToken, DeploymentType.Server, packageJson.version);
|
|
74
|
+
spinner.succeed('Deployment upgraded successfully!');
|
|
17
75
|
if (response.message) {
|
|
18
76
|
printInfo(response.message);
|
|
19
77
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upgrade.js","sourceRoot":"","sources":["../../../src/cli/commands/upgrade.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"upgrade.js","sourceRoot":"","sources":["../../../src/cli/commands/upgrade.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/index.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { Command } from 'commander';
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
3
|
+
import { createServeCommand } from './commands/serve.js';
|
|
4
|
+
import { createRunCommand } from './commands/run.js';
|
|
5
5
|
import { createListCommand } from './commands/list.js';
|
|
6
|
+
import { createStatusCommand } from './commands/status.js';
|
|
6
7
|
import { createLogsCommand } from './commands/logs.js';
|
|
7
8
|
import { createTerminateCommand } from './commands/terminate.js';
|
|
8
9
|
import { createUpgradeCommand } from './commands/upgrade.js';
|
|
@@ -19,9 +20,10 @@ program
|
|
|
19
20
|
.version(packageJson.version);
|
|
20
21
|
// Register commands
|
|
21
22
|
program.addCommand(createLoginCommand());
|
|
22
|
-
program.addCommand(
|
|
23
|
-
program.addCommand(
|
|
23
|
+
program.addCommand(createServeCommand());
|
|
24
|
+
program.addCommand(createRunCommand());
|
|
24
25
|
program.addCommand(createListCommand());
|
|
26
|
+
program.addCommand(createStatusCommand());
|
|
25
27
|
program.addCommand(createLogsCommand());
|
|
26
28
|
program.addCommand(createTerminateCommand());
|
|
27
29
|
program.addCommand(createUpgradeCommand());
|
package/dist/cli/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,WAAW,MAAM,oBAAoB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAEnE,0BAA0B;AAC1B,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,UAAU,CAAC;KAChB,WAAW,CAAC,wDAAwD,CAAC;KACrE,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;AAEhC,oBAAoB;AACpB,OAAO,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC,CAAC;AACzC,OAAO,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC,CAAC;AACzC,OAAO,CAAC,UAAU,CAAC,gBAAgB,EAAE,CAAC,CAAC;AACvC,OAAO,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAC;AACxC,OAAO,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC,CAAC;AAC1C,OAAO,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAC;AACxC,OAAO,CAAC,UAAU,CAAC,sBAAsB,EAAE,CAAC,CAAC;AAC7C,OAAO,CAAC,UAAU,CAAC,oBAAoB,EAAE,CAAC,CAAC;AAC3C,OAAO,CAAC,UAAU,CAAC,wBAAwB,EAAE,CAAC,CAAC;AAC/C,OAAO,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC,CAAC;AAC1C,OAAO,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC,CAAC;AAE1C,+BAA+B;AAC/B,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC"}
|
|
@@ -4,63 +4,57 @@ import { exitWithError } from '../utils/output.js';
|
|
|
4
4
|
* Create a new deployment
|
|
5
5
|
* POST /v1/new
|
|
6
6
|
*/
|
|
7
|
-
export async function createDeployment(image,
|
|
7
|
+
export async function createDeployment(image, cloudConfigs, accessToken, configName, deploymentType, daemonVersion, id, env) {
|
|
8
8
|
const payload = {
|
|
9
9
|
image,
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
anycloudConfigs: { [configName]: cloudConfigs },
|
|
11
|
+
configName,
|
|
12
12
|
accessToken,
|
|
13
|
-
|
|
13
|
+
id,
|
|
14
14
|
deploymentType,
|
|
15
|
+
daemonVersion,
|
|
16
|
+
env,
|
|
15
17
|
};
|
|
16
|
-
const
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
message: `Deployment created successfully`,
|
|
34
|
-
};
|
|
35
|
-
}
|
|
36
|
-
catch (error) {
|
|
37
|
-
if (error instanceof Error && error.message.includes('fetch')) {
|
|
38
|
-
exitWithError(`Failed to connect to AnyCloud API at ${CONDUCTOR_URL}\n`);
|
|
39
|
-
}
|
|
40
|
-
throw error;
|
|
41
|
-
}
|
|
18
|
+
const response = await apiRequest('/v1/new', 'POST', payload);
|
|
19
|
+
return {
|
|
20
|
+
id: response.id,
|
|
21
|
+
message: `Deployment created successfully`,
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* List deployments for a specific deployment config
|
|
26
|
+
* POST /v1/list
|
|
27
|
+
*/
|
|
28
|
+
export async function listDeployments(anycloudConfigs, accessToken, daemonVersion) {
|
|
29
|
+
const payload = {
|
|
30
|
+
anycloudConfigs,
|
|
31
|
+
accessToken,
|
|
32
|
+
daemonVersion,
|
|
33
|
+
};
|
|
34
|
+
return await apiRequest('/v1/list', 'POST', payload);
|
|
42
35
|
}
|
|
43
36
|
/**
|
|
44
|
-
* Get deployment
|
|
45
|
-
* POST /v1/
|
|
37
|
+
* Get deployment status logs
|
|
38
|
+
* POST /v1/status
|
|
46
39
|
*/
|
|
47
|
-
export async function
|
|
40
|
+
export async function getDeploymentStatus(id, accessToken, daemonVersion) {
|
|
48
41
|
const payload = {
|
|
49
|
-
|
|
42
|
+
id,
|
|
50
43
|
accessToken,
|
|
51
44
|
daemonVersion,
|
|
52
|
-
status,
|
|
53
45
|
};
|
|
54
|
-
return await apiRequest('/v1/
|
|
46
|
+
return await apiRequest('/v1/status', 'POST', payload);
|
|
55
47
|
}
|
|
56
48
|
/**
|
|
57
|
-
* Get
|
|
49
|
+
* Get Docker container logs
|
|
58
50
|
* POST /v1/logs
|
|
59
51
|
*/
|
|
60
|
-
export async function
|
|
52
|
+
export async function getDockerLogs(id, accessToken, daemonVersion, tail) {
|
|
61
53
|
const payload = {
|
|
62
|
-
|
|
54
|
+
id,
|
|
63
55
|
accessToken,
|
|
56
|
+
daemonVersion,
|
|
57
|
+
tail,
|
|
64
58
|
};
|
|
65
59
|
return await apiRequest('/v1/logs', 'POST', payload);
|
|
66
60
|
}
|
|
@@ -68,16 +62,30 @@ export async function getDeploymentLogs(clusterId, accessToken) {
|
|
|
68
62
|
* Terminate a deployment
|
|
69
63
|
* POST /v1/terminate
|
|
70
64
|
*/
|
|
71
|
-
export async function terminateDeployment(
|
|
72
|
-
const payload = {
|
|
65
|
+
export async function terminateDeployment(id, cloudConfigs, accessToken, configName, daemonVersion) {
|
|
66
|
+
const payload = {
|
|
67
|
+
id,
|
|
68
|
+
anycloudConfigs: { [configName]: cloudConfigs },
|
|
69
|
+
configName,
|
|
70
|
+
accessToken,
|
|
71
|
+
daemonVersion,
|
|
72
|
+
};
|
|
73
73
|
return await apiRequest('/v1/terminate', 'POST', payload);
|
|
74
74
|
}
|
|
75
75
|
/**
|
|
76
76
|
* Upgrade a deployment to a new image
|
|
77
77
|
* POST /v1/upgrade
|
|
78
78
|
*/
|
|
79
|
-
export async function upgradeDeployment(
|
|
80
|
-
const payload = {
|
|
79
|
+
export async function upgradeDeployment(id, image, cloudConfigs, configName, accessToken, deploymentType, daemonVersion) {
|
|
80
|
+
const payload = {
|
|
81
|
+
id,
|
|
82
|
+
image,
|
|
83
|
+
anycloudConfigs: { [configName]: cloudConfigs },
|
|
84
|
+
configName,
|
|
85
|
+
accessToken,
|
|
86
|
+
deploymentType,
|
|
87
|
+
daemonVersion,
|
|
88
|
+
};
|
|
81
89
|
return await apiRequest('/v1/upgrade', 'POST', payload);
|
|
82
90
|
}
|
|
83
91
|
/**
|
|
@@ -109,10 +117,4 @@ async function apiRequest(endpoint, method, body) {
|
|
|
109
117
|
throw error;
|
|
110
118
|
}
|
|
111
119
|
}
|
|
112
|
-
/**
|
|
113
|
-
* Generate a unique app ID for new deployments
|
|
114
|
-
*/
|
|
115
|
-
function generateAppId() {
|
|
116
|
-
return `app-${Date.now()}-${Math.random().toString(36).substring(2, 9)}`;
|
|
117
|
-
}
|
|
118
120
|
//# sourceMappingURL=api-client.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-client.js","sourceRoot":"","sources":["../../../src/cli/services/api-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"api-client.js","sourceRoot":"","sources":["../../../src/cli/services/api-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -80,6 +80,8 @@ function buildCloudConfig(profile, credentials) {
|
|
|
80
80
|
config.minReplicas = profile.minReplicas;
|
|
81
81
|
if (profile.maxReplicas)
|
|
82
82
|
config.maxReplicas = profile.maxReplicas;
|
|
83
|
+
if (profile.spot !== undefined)
|
|
84
|
+
config.spot = profile.spot;
|
|
83
85
|
return config;
|
|
84
86
|
}
|
|
85
87
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/cli/services/config.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/cli/services/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -95,10 +95,10 @@ function getGCPCredentialsFromEnv() {
|
|
|
95
95
|
};
|
|
96
96
|
}
|
|
97
97
|
/**
|
|
98
|
-
* Get
|
|
98
|
+
* Get config name from environment variable
|
|
99
99
|
*/
|
|
100
|
-
export function
|
|
101
|
-
return getEnvOptional('
|
|
100
|
+
export function getConfigFromEnv() {
|
|
101
|
+
return getEnvOptional('ANYCLOUD_CONFIG');
|
|
102
102
|
}
|
|
103
103
|
/**
|
|
104
104
|
* Get credentials name from environment variable
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"non-interactive.js","sourceRoot":"","sources":["../../../src/cli/services/non-interactive.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"non-interactive.js","sourceRoot":"","sources":["../../../src/cli/services/non-interactive.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,7 +7,7 @@ import { printSuccess, printInfo, printError, printHighlight, createSpinner, } f
|
|
|
7
7
|
const DEVICE_CODE_URL = 'https://github.com/login/device/code';
|
|
8
8
|
const TOKEN_POLL_URL = 'https://github.com/login/oauth/access_token';
|
|
9
9
|
const CLIENT_ID = 'Iv1.91e9d535ca6ade31';
|
|
10
|
-
const SCOPE = 'user:email';
|
|
10
|
+
const SCOPE = 'user:email read:packages';
|
|
11
11
|
/**
|
|
12
12
|
* Initiate GitHub OAuth Device Flow
|
|
13
13
|
* Returns an access token after user authorization
|
|
@@ -22,6 +22,8 @@ export async function authenticateWithGitHub() {
|
|
|
22
22
|
console.log('');
|
|
23
23
|
printHighlight(`Your one-time code: ${deviceCodeData.user_code}`);
|
|
24
24
|
console.log('');
|
|
25
|
+
printInfo(`Verification URL: ${deviceCodeData.verification_uri}`);
|
|
26
|
+
console.log('');
|
|
25
27
|
// Step 3: Prompt to open browser
|
|
26
28
|
const shouldOpenBrowser = await prompts({
|
|
27
29
|
type: 'confirm',
|
|
@@ -37,12 +39,9 @@ export async function authenticateWithGitHub() {
|
|
|
37
39
|
printSuccess('Browser opened');
|
|
38
40
|
}
|
|
39
41
|
catch (error) {
|
|
40
|
-
printInfo(
|
|
42
|
+
printInfo('If the browser did not open, use the URL above');
|
|
41
43
|
}
|
|
42
44
|
}
|
|
43
|
-
else {
|
|
44
|
-
printInfo(`Please open this URL in your browser: ${deviceCodeData.verification_uri}`);
|
|
45
|
-
}
|
|
46
45
|
console.log('');
|
|
47
46
|
printInfo('Waiting for authorization...');
|
|
48
47
|
console.log('');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oauth.js","sourceRoot":"","sources":["../../../src/cli/services/oauth.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EACL,YAAY,EACZ,SAAS,EACT,UAAU,EACV,cAAc,EACd,aAAa,GACd,MAAM,oBAAoB,CAAC;AAE5B,qCAAqC;AACrC,MAAM,eAAe,GAAG,sCAAsC,CAAC;AAC/D,MAAM,cAAc,GAAG,6CAA6C,CAAC;AAErE,MAAM,SAAS,GAAG,sBAAsB,CAAC;AACzC,MAAM,KAAK,GAAG,
|
|
1
|
+
{"version":3,"file":"oauth.js","sourceRoot":"","sources":["../../../src/cli/services/oauth.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { readFileSync, existsSync } from 'fs';
|
|
2
|
+
import { resolve } from 'path';
|
|
3
|
+
import { parse as parseDotenv } from 'dotenv';
|
|
4
|
+
/**
|
|
5
|
+
* Parse environment variables from a .env file
|
|
6
|
+
* @param filePath Path to the .env file (relative or absolute)
|
|
7
|
+
* @returns Record of environment variables
|
|
8
|
+
* @throws Error if file doesn't exist or can't be parsed
|
|
9
|
+
*/
|
|
10
|
+
export function parseEnvFile(filePath) {
|
|
11
|
+
const absolutePath = resolve(process.cwd(), filePath);
|
|
12
|
+
if (!existsSync(absolutePath)) {
|
|
13
|
+
throw new Error(`Environment file not found: ${filePath}`);
|
|
14
|
+
}
|
|
15
|
+
try {
|
|
16
|
+
const fileContent = readFileSync(absolutePath, 'utf-8');
|
|
17
|
+
const parsed = parseDotenv(Buffer.from(fileContent));
|
|
18
|
+
if (parsed && typeof parsed === 'object') {
|
|
19
|
+
return parsed;
|
|
20
|
+
}
|
|
21
|
+
return {};
|
|
22
|
+
}
|
|
23
|
+
catch (error) {
|
|
24
|
+
throw new Error(`Failed to parse environment file: ${error.message}`);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=env-parser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"env-parser.js","sourceRoot":"","sources":["../../../src/cli/utils/env-parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,EAAE,KAAK,IAAI,WAAW,EAAE,MAAM,QAAQ,CAAC;AAE9C;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAAC,QAAgB;IAC3C,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,CAAC;IAEtD,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,+BAA+B,QAAQ,EAAE,CAAC,CAAC;IAC7D,CAAC;IAED,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QACxD,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;QAErD,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YACzC,OAAO,MAAgC,CAAC;QAC1C,CAAC;QAED,OAAO,EAAE,CAAC;IACZ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CACb,qCAAsC,KAAe,CAAC,OAAO,EAAE,CAChE,CAAC;IACJ,CAAC;AACH,CAAC"}
|