anycloud 0.0.2 → 0.0.3
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/daemon/index.js +27 -5
- package/dist/cli/commands/daemon/index.js.map +1 -1
- package/dist/cli/commands/daemon/start.js +10 -3
- package/dist/cli/commands/daemon/start.js.map +1 -1
- package/dist/cli/commands/job.js +71 -0
- package/dist/cli/commands/job.js.map +1 -0
- package/dist/cli/commands/new.js +7 -63
- package/dist/cli/commands/new.js.map +1 -1
- package/dist/cli/index.js +2 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/services/api-client.js +2 -1
- package/dist/cli/services/api-client.js.map +1 -1
- package/dist/daemon/docker.js +14 -10
- package/dist/daemon/docker.js.map +1 -1
- package/dist/daemon/server.js +2 -2
- package/dist/daemon/server.js.map +1 -1
- package/dist/shared/types.js +6 -0
- package/dist/shared/types.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,9 +1,31 @@
|
|
|
1
1
|
import { Command } from 'commander';
|
|
2
|
-
import {
|
|
2
|
+
import { startServer } from '../../../daemon/server.js';
|
|
3
|
+
import { log } from '../../../daemon/logger.js';
|
|
3
4
|
export function createDaemonCommand() {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
return new Command('daemon')
|
|
6
|
+
.description('Start the AnyCloud daemon (runs on VMs)')
|
|
7
|
+
.argument('<cluster-secret>', 'Cluster secret for authentication')
|
|
8
|
+
.argument('<conductor-url>', 'URL of the conductor to connect to')
|
|
9
|
+
.requiredOption('--type <type>', 'Deployment type: app or job')
|
|
10
|
+
.action(async (clusterSecret, conductorUrl, options) => {
|
|
11
|
+
try {
|
|
12
|
+
// Validate deployment type
|
|
13
|
+
if (options.type !== 'app' && options.type !== 'job') {
|
|
14
|
+
log.error('Invalid deployment type. Must be either "app" or "job"');
|
|
15
|
+
process.exit(1);
|
|
16
|
+
}
|
|
17
|
+
const deploymentType = options.type;
|
|
18
|
+
log.info('Starting AnyCloud Daemon', {
|
|
19
|
+
deploymentType,
|
|
20
|
+
nodeVersion: process.version,
|
|
21
|
+
});
|
|
22
|
+
await startServer(clusterSecret, conductorUrl);
|
|
23
|
+
log.info('Daemon started successfully');
|
|
24
|
+
}
|
|
25
|
+
catch (error) {
|
|
26
|
+
log.error('Failed to start daemon', error);
|
|
27
|
+
process.exit(1);
|
|
28
|
+
}
|
|
29
|
+
});
|
|
8
30
|
}
|
|
9
31
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/cli/commands/daemon/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/cli/commands/daemon/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,GAAG,EAAE,MAAM,2BAA2B,CAAC;AAGhD,MAAM,UAAU,mBAAmB;IACjC,OAAO,IAAI,OAAO,CAAC,QAAQ,CAAC;SACzB,WAAW,CAAC,yCAAyC,CAAC;SACtD,QAAQ,CAAC,kBAAkB,EAAE,mCAAmC,CAAC;SACjE,QAAQ,CAAC,iBAAiB,EAAE,oCAAoC,CAAC;SACjE,cAAc,CAAC,eAAe,EAAE,6BAA6B,CAAC;SAC9D,MAAM,CACL,KAAK,EACH,aAAqB,EACrB,YAAoB,EACpB,OAAyB,EACzB,EAAE;QACF,IAAI,CAAC;YACH,2BAA2B;YAC3B,IAAI,OAAO,CAAC,IAAI,KAAK,KAAK,IAAI,OAAO,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;gBACrD,GAAG,CAAC,KAAK,CAAC,wDAAwD,CAAC,CAAC;gBACpE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YAED,MAAM,cAAc,GAAG,OAAO,CAAC,IAA2B,CAAC;YAE3D,GAAG,CAAC,IAAI,CAAC,0BAA0B,EAAE;gBACnC,cAAc;gBACd,WAAW,EAAE,OAAO,CAAC,OAAO;aAC7B,CAAC,CAAC;YAEH,MAAM,WAAW,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;YAE/C,GAAG,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;QAC1C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,KAAK,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAAC;YAC3C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CACF,CAAC;AACN,CAAC"}
|
|
@@ -6,14 +6,21 @@ export function createStartCommand() {
|
|
|
6
6
|
.description('Start the AnyCloud daemon')
|
|
7
7
|
.argument('<cluster-secret>', 'Cluster secret for authentication')
|
|
8
8
|
.argument('<conductor-url>', 'URL of the conductor to connect to')
|
|
9
|
-
.
|
|
9
|
+
.requiredOption('--deployment-type <type>', 'Deployment type: app or job')
|
|
10
10
|
.action(async (clusterSecret, conductorUrl, options) => {
|
|
11
11
|
try {
|
|
12
|
+
// Validate deployment type
|
|
13
|
+
if (options.deploymentType !== 'app' &&
|
|
14
|
+
options.deploymentType !== 'job') {
|
|
15
|
+
log.error('Invalid deployment type. Must be either "app" or "job"');
|
|
16
|
+
process.exit(1);
|
|
17
|
+
}
|
|
18
|
+
const deploymentType = options.deploymentType;
|
|
12
19
|
log.info('Starting AnyCloud Daemon', {
|
|
13
|
-
|
|
20
|
+
deploymentType,
|
|
14
21
|
nodeVersion: process.version,
|
|
15
22
|
});
|
|
16
|
-
await startServer(clusterSecret, conductorUrl
|
|
23
|
+
await startServer(clusterSecret, conductorUrl);
|
|
17
24
|
log.info('Daemon started successfully');
|
|
18
25
|
}
|
|
19
26
|
catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start.js","sourceRoot":"","sources":["../../../../src/cli/commands/daemon/start.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,GAAG,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"start.js","sourceRoot":"","sources":["../../../../src/cli/commands/daemon/start.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,GAAG,EAAE,MAAM,2BAA2B,CAAC;AAGhD,MAAM,UAAU,kBAAkB;IAChC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;SACxB,WAAW,CAAC,2BAA2B,CAAC;SACxC,QAAQ,CAAC,kBAAkB,EAAE,mCAAmC,CAAC;SACjE,QAAQ,CAAC,iBAAiB,EAAE,oCAAoC,CAAC;SACjE,cAAc,CAAC,0BAA0B,EAAE,6BAA6B,CAAC;SACzE,MAAM,CACL,KAAK,EACH,aAAqB,EACrB,YAAoB,EACpB,OAAmC,EACnC,EAAE;QACF,IAAI,CAAC;YACH,2BAA2B;YAC3B,IACE,OAAO,CAAC,cAAc,KAAK,KAAK;gBAChC,OAAO,CAAC,cAAc,KAAK,KAAK,EAChC,CAAC;gBACD,GAAG,CAAC,KAAK,CAAC,wDAAwD,CAAC,CAAC;gBACpE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YAED,MAAM,cAAc,GAAG,OAAO,CAAC,cAAqC,CAAC;YAErE,GAAG,CAAC,IAAI,CAAC,0BAA0B,EAAE;gBACnC,cAAc;gBACd,WAAW,EAAE,OAAO,CAAC,OAAO;aAC7B,CAAC,CAAC;YAEH,MAAM,WAAW,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;YAE/C,GAAG,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;QAC1C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,KAAK,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAAC;YAC3C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CACF,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import prompts from 'prompts';
|
|
3
|
+
import { getGitHubToken } from '../services/auth.js';
|
|
4
|
+
import { resolveDeploymentProfile, loadDeploymentProfiles, } from '../services/config.js';
|
|
5
|
+
import { createDeployment } from '../services/api-client.js';
|
|
6
|
+
import { printInfo, printError, createSpinner } from '../utils/output.js';
|
|
7
|
+
import { isNonInteractive, getDeployProfileFromEnv, } from '../services/non-interactive.js';
|
|
8
|
+
export function createJobCommand() {
|
|
9
|
+
return new Command('job')
|
|
10
|
+
.description('Create a new job deployment')
|
|
11
|
+
.argument('<image>', 'Container image (e.g., alpine:latest, ghcr.io/user/job:latest)')
|
|
12
|
+
.option('--deploy <profile>', 'Deployment profile name from anycloud.json')
|
|
13
|
+
.requiredOption('--name <name>', 'Job name')
|
|
14
|
+
.action(async (image, options) => {
|
|
15
|
+
try {
|
|
16
|
+
printInfo(`Creating job deployment for image: ${image}`);
|
|
17
|
+
// Determine deployment profile
|
|
18
|
+
let deployProfile = options.deploy;
|
|
19
|
+
// Check for environment variable in non-interactive mode
|
|
20
|
+
if (!deployProfile && isNonInteractive()) {
|
|
21
|
+
deployProfile = getDeployProfileFromEnv();
|
|
22
|
+
if (!deployProfile) {
|
|
23
|
+
printError('Non-interactive mode: Deployment profile required.\n' +
|
|
24
|
+
' Provide --deploy flag or set ANYCLOUD_DEPLOY_PROFILE environment variable.');
|
|
25
|
+
process.exit(1);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
// If --deploy not provided and not in non-interactive mode, prompt for profile selection
|
|
29
|
+
if (!deployProfile) {
|
|
30
|
+
const profiles = await loadDeploymentProfiles();
|
|
31
|
+
const profileNames = Object.keys(profiles);
|
|
32
|
+
if (profileNames.length === 0) {
|
|
33
|
+
printError('No deployment profiles found in anycloud.json');
|
|
34
|
+
printInfo('Please create anycloud.json with deployment profiles.');
|
|
35
|
+
process.exit(1);
|
|
36
|
+
}
|
|
37
|
+
const selection = await prompts({
|
|
38
|
+
type: 'select',
|
|
39
|
+
name: 'profile',
|
|
40
|
+
message: 'Select deployment profile:',
|
|
41
|
+
choices: profileNames.map((name) => ({
|
|
42
|
+
title: name,
|
|
43
|
+
value: name,
|
|
44
|
+
description: `${profiles[name].length} config(s)`,
|
|
45
|
+
})),
|
|
46
|
+
});
|
|
47
|
+
if (!selection.profile) {
|
|
48
|
+
process.exit(0); // User cancelled
|
|
49
|
+
}
|
|
50
|
+
deployProfile = selection.profile;
|
|
51
|
+
}
|
|
52
|
+
printInfo(`Using deployment profile: ${deployProfile}`);
|
|
53
|
+
// Get GitHub token
|
|
54
|
+
const accessToken = await getGitHubToken();
|
|
55
|
+
// Resolve deployment profile and credentials
|
|
56
|
+
const deployConfig = await resolveDeploymentProfile(deployProfile);
|
|
57
|
+
// Create deployment with hardcoded 'job' type
|
|
58
|
+
const spinner = createSpinner('Creating job deployment...').start();
|
|
59
|
+
const response = await createDeployment(image, deployConfig, accessToken, options.name, 'job');
|
|
60
|
+
spinner.succeed('Job deployment created!');
|
|
61
|
+
console.log('');
|
|
62
|
+
printInfo(`Job ID: ${response.clusterId}`);
|
|
63
|
+
console.log('');
|
|
64
|
+
}
|
|
65
|
+
catch (error) {
|
|
66
|
+
printError(`Failed to create job deployment: ${error.message}`);
|
|
67
|
+
process.exit(1);
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=job.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"job.js","sourceRoot":"","sources":["../../../src/cli/commands/job.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/commands/new.js
CHANGED
|
@@ -1,71 +1,15 @@
|
|
|
1
1
|
import { Command } from 'commander';
|
|
2
|
-
import
|
|
3
|
-
import { getGitHubToken } from '../services/auth.js';
|
|
4
|
-
import { resolveDeploymentProfile, loadDeploymentProfiles, } from '../services/config.js';
|
|
5
|
-
import { createDeployment } from '../services/api-client.js';
|
|
6
|
-
import { printInfo, printError, createSpinner } from '../utils/output.js';
|
|
7
|
-
import { isNonInteractive, getDeployProfileFromEnv, } from '../services/non-interactive.js';
|
|
2
|
+
import { printError } from '../utils/output.js';
|
|
8
3
|
export function createNewCommand() {
|
|
9
4
|
return new Command('new')
|
|
10
|
-
.description('Create a new deployment')
|
|
5
|
+
.description('Create a new app deployment (not yet supported)')
|
|
11
6
|
.argument('<image>', 'Container image (e.g., nginx:alpine, ghcr.io/user/repo:latest)')
|
|
12
7
|
.option('--deploy <profile>', 'Deployment profile name from anycloud.json')
|
|
13
|
-
.option('--name <name>', 'Deployment name'
|
|
14
|
-
.action(
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
let deployProfile = options.deploy;
|
|
19
|
-
// Check for environment variable in non-interactive mode
|
|
20
|
-
if (!deployProfile && isNonInteractive()) {
|
|
21
|
-
deployProfile = getDeployProfileFromEnv();
|
|
22
|
-
if (!deployProfile) {
|
|
23
|
-
printError('Non-interactive mode: Deployment profile required.\n' +
|
|
24
|
-
' Provide --deploy flag or set ANYCLOUD_DEPLOY_PROFILE environment variable.');
|
|
25
|
-
process.exit(1);
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
// If --deploy not provided and not in non-interactive mode, prompt for profile selection
|
|
29
|
-
if (!deployProfile) {
|
|
30
|
-
const profiles = await loadDeploymentProfiles();
|
|
31
|
-
const profileNames = Object.keys(profiles);
|
|
32
|
-
if (profileNames.length === 0) {
|
|
33
|
-
printError('No deployment profiles found in anycloud.json');
|
|
34
|
-
printInfo('Please create anycloud.json with deployment profiles.');
|
|
35
|
-
process.exit(1);
|
|
36
|
-
}
|
|
37
|
-
const selection = await prompts({
|
|
38
|
-
type: 'select',
|
|
39
|
-
name: 'profile',
|
|
40
|
-
message: 'Select deployment profile:',
|
|
41
|
-
choices: profileNames.map((name) => ({
|
|
42
|
-
title: name,
|
|
43
|
-
value: name,
|
|
44
|
-
description: `${profiles[name].length} config(s)`,
|
|
45
|
-
})),
|
|
46
|
-
});
|
|
47
|
-
if (!selection.profile) {
|
|
48
|
-
process.exit(0); // User cancelled
|
|
49
|
-
}
|
|
50
|
-
deployProfile = selection.profile;
|
|
51
|
-
}
|
|
52
|
-
printInfo(`Using deployment profile: ${deployProfile}`);
|
|
53
|
-
// Get GitHub token
|
|
54
|
-
const accessToken = await getGitHubToken();
|
|
55
|
-
// Resolve deployment profile and credentials
|
|
56
|
-
const deployConfig = await resolveDeploymentProfile(deployProfile);
|
|
57
|
-
// Create deployment
|
|
58
|
-
const spinner = createSpinner('Creating deployment...').start();
|
|
59
|
-
const response = await createDeployment(image, deployConfig, accessToken, options.name);
|
|
60
|
-
spinner.succeed('Deployment created!');
|
|
61
|
-
console.log('');
|
|
62
|
-
printInfo(`Cluster ID: ${response.clusterId}`);
|
|
63
|
-
console.log('');
|
|
64
|
-
}
|
|
65
|
-
catch (error) {
|
|
66
|
-
printError(`Failed to create deployment: ${error.message}`);
|
|
67
|
-
process.exit(1);
|
|
68
|
-
}
|
|
8
|
+
.option('--name <name>', 'Deployment name')
|
|
9
|
+
.action(() => {
|
|
10
|
+
printError('App deployments are not yet supported.');
|
|
11
|
+
printError('Use "anycloud job" for job deployments.');
|
|
12
|
+
process.exit(1);
|
|
69
13
|
});
|
|
70
14
|
}
|
|
71
15
|
//# sourceMappingURL=new.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"new.js","sourceRoot":"","sources":["../../../src/cli/commands/new.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,
|
|
1
|
+
{"version":3,"file":"new.js","sourceRoot":"","sources":["../../../src/cli/commands/new.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD,MAAM,UAAU,gBAAgB;IAC9B,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC;SACtB,WAAW,CAAC,iDAAiD,CAAC;SAC9D,QAAQ,CACP,SAAS,EACT,gEAAgE,CACjE;SACA,MAAM,CAAC,oBAAoB,EAAE,4CAA4C,CAAC;SAC1E,MAAM,CAAC,eAAe,EAAE,iBAAiB,CAAC;SAC1C,MAAM,CAAC,GAAG,EAAE;QACX,UAAU,CAAC,wCAAwC,CAAC,CAAC;QACrD,UAAU,CAAC,yCAAyC,CAAC,CAAC;QACtD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACP,CAAC"}
|
package/dist/cli/index.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { Command } from 'commander';
|
|
3
3
|
import { createNewCommand } from './commands/new.js';
|
|
4
|
+
import { createJobCommand } from './commands/job.js';
|
|
4
5
|
import { createListCommand } from './commands/list.js';
|
|
5
6
|
import { createLogsCommand } from './commands/logs.js';
|
|
6
7
|
import { createTerminateCommand } from './commands/terminate.js';
|
|
@@ -19,6 +20,7 @@ program
|
|
|
19
20
|
// Register commands
|
|
20
21
|
program.addCommand(createLoginCommand());
|
|
21
22
|
program.addCommand(createNewCommand());
|
|
23
|
+
program.addCommand(createJobCommand());
|
|
22
24
|
program.addCommand(createListCommand());
|
|
23
25
|
program.addCommand(createLogsCommand());
|
|
24
26
|
program.addCommand(createTerminateCommand());
|
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,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,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,gBAAgB,EAAE,CAAC,CAAC;AACvC,OAAO,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAC;AACxC,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"}
|
|
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,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,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,gBAAgB,EAAE,CAAC,CAAC;AACvC,OAAO,CAAC,UAAU,CAAC,gBAAgB,EAAE,CAAC,CAAC;AACvC,OAAO,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAC;AACxC,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,13 +4,14 @@ 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, deployConfig, accessToken, deployName
|
|
7
|
+
export async function createDeployment(image, deployConfig, accessToken, deployName, deploymentType) {
|
|
8
8
|
const payload = {
|
|
9
9
|
image,
|
|
10
10
|
deployConfig: { [deployName]: deployConfig },
|
|
11
11
|
deployName,
|
|
12
12
|
accessToken,
|
|
13
13
|
appId: generateAppId(),
|
|
14
|
+
deploymentType,
|
|
14
15
|
};
|
|
15
16
|
const url = `${CONDUCTOR_URL}/v1/new`;
|
|
16
17
|
try {
|
|
@@ -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;AAgCnD;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,KAAa,EACb,YAA2B,EAC3B,WAAmB,EACnB,
|
|
1
|
+
{"version":3,"file":"api-client.js","sourceRoot":"","sources":["../../../src/cli/services/api-client.ts"],"names":[],"mappings":"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"}
|
package/dist/daemon/docker.js
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import Docker from 'dockerode';
|
|
5
5
|
import { log } from './logger.js';
|
|
6
|
+
import { DeploymentType } from '../shared/types.js';
|
|
6
7
|
const docker = new Docker();
|
|
7
8
|
const APP_PORT = 8088;
|
|
8
9
|
export class DockerManager {
|
|
@@ -13,7 +14,7 @@ export class DockerManager {
|
|
|
13
14
|
/**
|
|
14
15
|
* Run container from pre-built image
|
|
15
16
|
*/
|
|
16
|
-
async runFromImage(clusterId, imageName, domain,
|
|
17
|
+
async runFromImage(clusterId, imageName, domain, deploymentType) {
|
|
17
18
|
try {
|
|
18
19
|
log.info('Pulling Docker image', { imageName });
|
|
19
20
|
// Pull image
|
|
@@ -28,7 +29,7 @@ export class DockerManager {
|
|
|
28
29
|
});
|
|
29
30
|
log.info('Image pulled successfully', { imageName });
|
|
30
31
|
// Run container
|
|
31
|
-
await this.runContainer(imageName, clusterId, domain,
|
|
32
|
+
await this.runContainer(imageName, clusterId, domain, deploymentType);
|
|
32
33
|
}
|
|
33
34
|
catch (error) {
|
|
34
35
|
log.error('Failed to run from image', error);
|
|
@@ -38,14 +39,21 @@ export class DockerManager {
|
|
|
38
39
|
/**
|
|
39
40
|
* Run Docker container with proper configuration
|
|
40
41
|
*/
|
|
41
|
-
async runContainer(imageName, clusterId, domain,
|
|
42
|
+
async runContainer(imageName, clusterId, domain, deploymentType) {
|
|
42
43
|
this.containerName = `anycloud-${clusterId}`;
|
|
43
44
|
// Stop and remove existing container if it exists
|
|
44
45
|
await this.stopContainer();
|
|
45
46
|
log.info('Starting container', {
|
|
46
47
|
imageName,
|
|
47
48
|
containerName: this.containerName,
|
|
49
|
+
deploymentType,
|
|
48
50
|
});
|
|
51
|
+
// Only expose ports for app deployments (not for jobs)
|
|
52
|
+
const isJob = deploymentType === DeploymentType.Job;
|
|
53
|
+
const exposedPorts = isJob ? {} : { [`${APP_PORT}/tcp`]: {} };
|
|
54
|
+
const portBindings = isJob
|
|
55
|
+
? {}
|
|
56
|
+
: { [`${APP_PORT}/tcp`]: [{ HostPort: String(APP_PORT) }] };
|
|
49
57
|
const container = await docker.createContainer({
|
|
50
58
|
Image: imageName,
|
|
51
59
|
name: this.containerName,
|
|
@@ -53,15 +61,11 @@ export class DockerManager {
|
|
|
53
61
|
`CLUSTER_ID=${clusterId}`,
|
|
54
62
|
`DOMAIN=${domain}`,
|
|
55
63
|
`PORT=${APP_PORT}`,
|
|
56
|
-
`
|
|
64
|
+
`DEPLOYMENT_TYPE=${deploymentType}`,
|
|
57
65
|
],
|
|
58
|
-
ExposedPorts:
|
|
59
|
-
[`${APP_PORT}/tcp`]: {},
|
|
60
|
-
},
|
|
66
|
+
ExposedPorts: exposedPorts,
|
|
61
67
|
HostConfig: {
|
|
62
|
-
PortBindings:
|
|
63
|
-
[`${APP_PORT}/tcp`]: [{ HostPort: String(APP_PORT) }],
|
|
64
|
-
},
|
|
68
|
+
PortBindings: portBindings,
|
|
65
69
|
RestartPolicy: {
|
|
66
70
|
Name: 'unless-stopped',
|
|
67
71
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"docker.js","sourceRoot":"","sources":["../../src/daemon/docker.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,MAAM,MAAM,WAAW,CAAC;AAC/B,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"docker.js","sourceRoot":"","sources":["../../src/daemon/docker.ts"],"names":[],"mappings":"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"}
|
package/dist/daemon/server.js
CHANGED
|
@@ -28,7 +28,7 @@ function authenticateRequest(clusterSecret) {
|
|
|
28
28
|
/**
|
|
29
29
|
* Start the daemon HTTP server
|
|
30
30
|
*/
|
|
31
|
-
export async function startServer(clusterSecret, conductorUrl
|
|
31
|
+
export async function startServer(clusterSecret, conductorUrl) {
|
|
32
32
|
const app = express();
|
|
33
33
|
app.use(express.json({ limit: '100mb' }));
|
|
34
34
|
// Authentication middleware
|
|
@@ -84,7 +84,7 @@ export async function startServer(clusterSecret, conductorUrl, nonHttp) {
|
|
|
84
84
|
throw new Error('Image parameter is required');
|
|
85
85
|
}
|
|
86
86
|
// Pull and run container from image
|
|
87
|
-
await dockerManager.runFromImage(props.clusterId, props.image, props.domain,
|
|
87
|
+
await dockerManager.runFromImage(props.clusterId, props.image, props.domain, props.deploymentType);
|
|
88
88
|
// Start cluster coordination (metrics, scaling, etc.)
|
|
89
89
|
await clusterCoordinator.start(props);
|
|
90
90
|
res.json({ status: 'started', clusterId: props.clusterId });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/daemon/server.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,OAA4C,MAAM,SAAS,CAAC;AACnE,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAElC,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAElD,MAAM,YAAY,GAAG,IAAI,CAAC;AAC1B,IAAI,aAA4B,CAAC;AACjC,IAAI,gBAAkC,CAAC;AACvC,IAAI,kBAAsC,CAAC;AAE3C;;GAEG;AACH,SAAS,mBAAmB,CAAC,aAAqB;IAChD,OAAO,CAAC,GAAY,EAAE,GAAa,EAAE,IAAkB,EAAE,EAAE;QACzD,MAAM,cAAc,GAAG,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC,CAAC;QAEhE,IAAI,cAAc,KAAK,MAAM,EAAE,CAAC;YAC9B,GAAG,CAAC,IAAI,CAAC,sBAAsB,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;YACjE,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,CAAC;QACzD,CAAC;QAED,IAAI,EAAE,CAAC;IACT,CAAC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,aAAqB,EACrB,YAAoB
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/daemon/server.ts"],"names":[],"mappings":"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"}
|
package/dist/shared/types.js
CHANGED
|
@@ -12,6 +12,12 @@ export var CloudType;
|
|
|
12
12
|
CloudType["GCP"] = "GCP";
|
|
13
13
|
CloudType["Azure"] = "Azure";
|
|
14
14
|
})(CloudType || (CloudType = {}));
|
|
15
|
+
// Deployment type enum
|
|
16
|
+
export var DeploymentType;
|
|
17
|
+
(function (DeploymentType) {
|
|
18
|
+
DeploymentType["App"] = "app";
|
|
19
|
+
DeploymentType["Job"] = "job";
|
|
20
|
+
})(DeploymentType || (DeploymentType = {}));
|
|
15
21
|
// Credential classes
|
|
16
22
|
export class AWSCreds {
|
|
17
23
|
}
|
package/dist/shared/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/shared/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/shared/types.ts"],"names":[],"mappings":"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"}
|