@codiac.io/codiac-cli 1.3.180 → 1.3.182
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/README.md +1 -1
- package/dist/apis/codiac-api/gen/client.d.ts +5 -1
- package/dist/apis/codiac-api/gen/client.js +12 -0
- package/dist/apis/codiac-api/gen/client.js.map +1 -1
- package/dist/apis/codiac-api/gen/contracts/types.gen.d.ts +25 -0
- package/dist/apis/codiac-api/gen/contracts/types.gen.js.map +1 -1
- package/dist/apis/codiac-api/i-client.d.ts +4 -0
- package/dist/apis/codiac-api-nats/gen/client.d.ts +4 -0
- package/dist/apis/codiac-api-nats/gen/client.js +17 -1
- package/dist/apis/codiac-api-nats/gen/client.js.map +1 -1
- package/dist/apis/codiac-api-nats/gen/contracts/types.gen.d.ts +25 -0
- package/dist/apis/codiac-api-nats/gen/contracts/types.gen.js.map +1 -1
- package/dist/apis/codiac-relay/gen/client.d.ts +16 -3
- package/dist/apis/codiac-relay/gen/client.js +58 -1
- package/dist/apis/codiac-relay/gen/client.js.map +1 -1
- package/dist/apis/codiac-relay/gen/contracts/types.gen.d.ts +173 -7
- package/dist/apis/codiac-relay/gen/contracts/types.gen.js.map +1 -1
- package/dist/apis/codiac-relay/i-client.d.ts +8 -0
- package/dist/apis/codiac-relay-nats/gen/client.d.ts +15 -7
- package/dist/apis/codiac-relay-nats/gen/client.js +86 -19
- package/dist/apis/codiac-relay-nats/gen/client.js.map +1 -1
- package/dist/apis/codiac-relay-nats/gen/contracts/types.gen.d.ts +151 -15
- package/dist/apis/codiac-relay-nats/gen/contracts/types.gen.js +4 -4
- package/dist/apis/codiac-relay-nats/gen/contracts/types.gen.js.map +1 -1
- package/dist/apis/codiac-relay-nats/gen/contracts.ng.d.ts +6 -0
- package/dist/apis/codiac-relay-nats/gen/contracts.ng.js +1 -0
- package/dist/apis/codiac-relay-nats/gen/contracts.ng.js.map +1 -1
- package/dist/bootstrapper-for-api-clients.js +14 -2
- package/dist/bootstrapper-for-api-clients.js.map +1 -1
- package/dist/cli-common/built-in-cli-user-input.d.ts +2 -1
- package/dist/cli-common/built-in-cli-user-input.js +52 -1
- package/dist/cli-common/built-in-cli-user-input.js.map +1 -1
- package/dist/cli-common/entities/prompt-choice.d.ts +2 -7
- package/dist/cli-common/mock-ui.d.ts +2 -1
- package/dist/cli-common/mock-ui.js +3 -0
- package/dist/cli-common/mock-ui.js.map +1 -1
- package/dist/codiac-constants.d.ts +3 -0
- package/dist/codiac-constants.js +3 -0
- package/dist/codiac-constants.js.map +1 -1
- package/dist/command-base-enterprise.d.ts +23 -2
- package/dist/command-base-enterprise.js +82 -26
- package/dist/command-base-enterprise.js.map +1 -1
- package/dist/command-base-exec.js +4 -2
- package/dist/command-base-exec.js.map +1 -1
- package/dist/commands/asset/deploy.d.ts +2 -1
- package/dist/commands/asset/deploy.js +3 -2
- package/dist/commands/asset/deploy.js.map +1 -1
- package/dist/commands/asset/list.d.ts +26 -7
- package/dist/commands/asset/list.js +127 -112
- package/dist/commands/asset/list.js.map +1 -1
- package/dist/commands/asset/probe/create.d.ts +26 -5
- package/dist/commands/asset/probe/create.js +182 -164
- package/dist/commands/asset/probe/create.js.map +1 -1
- package/dist/commands/asset/recycle.js +3 -4
- package/dist/commands/asset/recycle.js.map +1 -1
- package/dist/commands/asset/undeploy.d.ts +24 -9
- package/dist/commands/asset/undeploy.js +162 -161
- package/dist/commands/asset/undeploy.js.map +1 -1
- package/dist/commands/asset/view.js +1 -1
- package/dist/commands/asset/view.js.map +1 -1
- package/dist/commands/asset/volume/create.d.ts +25 -13
- package/dist/commands/asset/volume/create.js +177 -156
- package/dist/commands/asset/volume/create.js.map +1 -1
- package/dist/commands/asset/volume/delete.d.ts +23 -7
- package/dist/commands/asset/volume/delete.js +131 -98
- package/dist/commands/asset/volume/delete.js.map +1 -1
- package/dist/commands/asset/volume/list.d.ts +24 -8
- package/dist/commands/asset/volume/list.js +101 -54
- package/dist/commands/asset/volume/list.js.map +1 -1
- package/dist/commands/cabinet/cluster/attach.d.ts +32 -0
- package/dist/commands/cabinet/cluster/attach.js +144 -0
- package/dist/commands/cabinet/cluster/attach.js.map +1 -0
- package/dist/commands/cabinet/create.d.ts +1 -0
- package/dist/commands/cabinet/create.js +5 -1
- package/dist/commands/cabinet/create.js.map +1 -1
- package/dist/commands/cabinet/list.d.ts +27 -6
- package/dist/commands/cabinet/list.js +130 -121
- package/dist/commands/cabinet/list.js.map +1 -1
- package/dist/commands/cabinet/obliterate.d.ts +1 -0
- package/dist/commands/cabinet/obliterate.js +5 -1
- package/dist/commands/cabinet/obliterate.js.map +1 -1
- package/dist/commands/cabinet/restore.d.ts +36 -0
- package/dist/commands/cabinet/restore.js +186 -0
- package/dist/commands/cabinet/restore.js.map +1 -0
- package/dist/commands/cluster/agent/configure.d.ts +47 -0
- package/dist/commands/cluster/agent/configure.js +320 -0
- package/dist/commands/cluster/agent/configure.js.map +1 -0
- package/dist/commands/cluster/agent/install.d.ts +32 -0
- package/dist/commands/cluster/agent/install.js +152 -0
- package/dist/commands/cluster/agent/install.js.map +1 -0
- package/dist/commands/cluster/agent/uninstall.d.ts +29 -0
- package/dist/commands/cluster/agent/uninstall.js +130 -0
- package/dist/commands/cluster/agent/uninstall.js.map +1 -0
- package/dist/commands/cluster/bootstrap.d.ts +50 -0
- package/dist/commands/cluster/bootstrap.js +310 -0
- package/dist/commands/cluster/bootstrap.js.map +1 -0
- package/dist/commands/cluster/connect.d.ts +0 -5
- package/dist/commands/cluster/connect.js +1 -26
- package/dist/commands/cluster/connect.js.map +1 -1
- package/dist/commands/cluster/install.d.ts +45 -0
- package/dist/commands/cluster/install.js +224 -0
- package/dist/commands/cluster/install.js.map +1 -0
- package/dist/commands/cluster/stack/capture.js +0 -2
- package/dist/commands/cluster/stack/capture.js.map +1 -1
- package/dist/commands/cluster/stack/install.d.ts +40 -0
- package/dist/commands/cluster/stack/install.js +196 -0
- package/dist/commands/cluster/stack/install.js.map +1 -0
- package/dist/commands/cluster/start.d.ts +0 -5
- package/dist/commands/cluster/start.js +1 -27
- package/dist/commands/cluster/start.js.map +1 -1
- package/dist/commands/cluster/stop.d.ts +0 -5
- package/dist/commands/cluster/stop.js +1 -27
- package/dist/commands/cluster/stop.js.map +1 -1
- package/dist/commands/config/add.d.ts +9 -11
- package/dist/commands/config/add.js +59 -125
- package/dist/commands/config/add.js.map +1 -1
- package/dist/commands/config/delete.d.ts +22 -11
- package/dist/commands/config/delete.js +28 -83
- package/dist/commands/config/delete.js.map +1 -1
- package/dist/commands/config/deploy.d.ts +26 -8
- package/dist/commands/config/deploy.js +169 -198
- package/dist/commands/config/deploy.js.map +1 -1
- package/dist/commands/config/import.d.ts +27 -22
- package/dist/commands/config/import.js +222 -253
- package/dist/commands/config/import.js.map +1 -1
- package/dist/commands/config/settings/get.d.ts +25 -14
- package/dist/commands/config/settings/get.js +30 -123
- package/dist/commands/config/settings/get.js.map +1 -1
- package/dist/commands/config/view.d.ts +26 -6
- package/dist/commands/config/view.js +112 -95
- package/dist/commands/config/view.js.map +1 -1
- package/dist/commands/csp/logout.d.ts +23 -6
- package/dist/commands/csp/logout.js +86 -63
- package/dist/commands/csp/logout.js.map +1 -1
- package/dist/commands/deploy.d.ts +31 -14
- package/dist/commands/deploy.js +264 -385
- package/dist/commands/deploy.js.map +1 -1
- package/dist/commands/enterprise/list.d.ts +22 -4
- package/dist/commands/enterprise/list.js +97 -67
- package/dist/commands/enterprise/list.js.map +1 -1
- package/dist/commands/env/add.d.ts +26 -7
- package/dist/commands/env/add.js +182 -179
- package/dist/commands/env/add.js.map +1 -1
- package/dist/commands/environment/cluster/attach.d.ts +1 -0
- package/dist/commands/environment/cluster/attach.js +5 -1
- package/dist/commands/environment/cluster/attach.js.map +1 -1
- package/dist/commands/environment/cluster/detach.d.ts +1 -0
- package/dist/commands/environment/cluster/detach.js +5 -1
- package/dist/commands/environment/cluster/detach.js.map +1 -1
- package/dist/commands/environment/create.d.ts +1 -0
- package/dist/commands/environment/create.js +5 -1
- package/dist/commands/environment/create.js.map +1 -1
- package/dist/commands/environment/delete.d.ts +39 -0
- package/dist/commands/environment/delete.js +135 -0
- package/dist/commands/environment/delete.js.map +1 -0
- package/dist/commands/environment/list.d.ts +28 -9
- package/dist/commands/environment/list.js +128 -167
- package/dist/commands/environment/list.js.map +1 -1
- package/dist/commands/host/map.d.ts +29 -19
- package/dist/commands/host/map.js +263 -324
- package/dist/commands/host/map.js.map +1 -1
- package/dist/commands/imageRegistry/capture.d.ts +12 -11
- package/dist/commands/imageRegistry/capture.js +49 -113
- package/dist/commands/imageRegistry/capture.js.map +1 -1
- package/dist/commands/imageRegistry/forget.d.ts +12 -11
- package/dist/commands/imageRegistry/forget.js +53 -114
- package/dist/commands/imageRegistry/forget.js.map +1 -1
- package/dist/commands/imageRegistry/pullSecret/set.d.ts +21 -11
- package/dist/commands/imageRegistry/pullSecret/set.js +184 -278
- package/dist/commands/imageRegistry/pullSecret/set.js.map +1 -1
- package/dist/commands/imageRegistry/pullSecret/unset.d.ts +19 -11
- package/dist/commands/imageRegistry/pullSecret/unset.js +117 -190
- package/dist/commands/imageRegistry/pullSecret/unset.js.map +1 -1
- package/dist/commands/images/add.d.ts +19 -6
- package/dist/commands/images/add.js +63 -53
- package/dist/commands/images/add.js.map +1 -1
- package/dist/commands/kit/create.d.ts +22 -10
- package/dist/commands/kit/create.js +119 -121
- package/dist/commands/kit/create.js.map +1 -1
- package/dist/commands/logout.d.ts +21 -5
- package/dist/commands/logout.js +44 -25
- package/dist/commands/logout.js.map +1 -1
- package/dist/commands/noc/cluster/create.js +22 -10
- package/dist/commands/noc/cluster/create.js.map +1 -1
- package/dist/commands/noc/cluster/credentials-set.d.ts +38 -0
- package/dist/commands/noc/cluster/credentials-set.js +174 -0
- package/dist/commands/noc/cluster/credentials-set.js.map +1 -0
- package/dist/commands/noc/cluster/define.d.ts +46 -0
- package/dist/commands/noc/cluster/define.js +305 -0
- package/dist/commands/noc/cluster/define.js.map +1 -0
- package/dist/commands/noc/cluster/deinit.d.ts +22 -5
- package/dist/commands/noc/cluster/deinit.js +99 -106
- package/dist/commands/noc/cluster/deinit.js.map +1 -1
- package/dist/commands/noc/cluster/forget.js +2 -4
- package/dist/commands/noc/cluster/forget.js.map +1 -1
- package/dist/commands/noc/cluster/grant.d.ts +20 -11
- package/dist/commands/noc/cluster/grant.js +94 -132
- package/dist/commands/noc/cluster/grant.js.map +1 -1
- package/dist/commands/noc/cluster/init.d.ts +25 -7
- package/dist/commands/noc/cluster/init.js +121 -133
- package/dist/commands/noc/cluster/init.js.map +1 -1
- package/dist/commands/noc/cluster/journal.d.ts +0 -5
- package/dist/commands/noc/cluster/journal.js +1 -26
- package/dist/commands/noc/cluster/journal.js.map +1 -1
- package/dist/commands/noc/cluster/list.d.ts +23 -5
- package/dist/commands/noc/cluster/list.js +107 -111
- package/dist/commands/noc/cluster/list.js.map +1 -1
- package/dist/commands/noc/cluster/restore.d.ts +36 -0
- package/dist/commands/noc/cluster/restore.js +196 -0
- package/dist/commands/noc/cluster/restore.js.map +1 -0
- package/dist/commands/portal.d.ts +21 -5
- package/dist/commands/portal.js +37 -36
- package/dist/commands/portal.js.map +1 -1
- package/dist/commands/secretStore/capture.d.ts +13 -11
- package/dist/commands/secretStore/capture.js +63 -123
- package/dist/commands/secretStore/capture.js.map +1 -1
- package/dist/commands/secretStore/forget.d.ts +13 -11
- package/dist/commands/secretStore/forget.js +55 -111
- package/dist/commands/secretStore/forget.js.map +1 -1
- package/dist/commands/shell/init.d.ts +15 -0
- package/dist/commands/shell/init.js +96 -0
- package/dist/commands/shell/init.js.map +1 -0
- package/dist/commands/snapshot/deploy.d.ts +22 -42
- package/dist/commands/snapshot/deploy.js +173 -269
- package/dist/commands/snapshot/deploy.js.map +1 -1
- package/dist/commands/snapshot/list.d.ts +26 -5
- package/dist/commands/snapshot/list.js +116 -109
- package/dist/commands/snapshot/list.js.map +1 -1
- package/dist/commands/tenant/create.d.ts +18 -13
- package/dist/commands/tenant/create.js +69 -69
- package/dist/commands/tenant/create.js.map +1 -1
- package/dist/commands/tenant/switch.d.ts +18 -12
- package/dist/commands/tenant/switch.js +65 -59
- package/dist/commands/tenant/switch.js.map +1 -1
- package/dist/commands/whereami.d.ts +18 -8
- package/dist/commands/whereami.js +67 -102
- package/dist/commands/whereami.js.map +1 -1
- package/dist/commands/whoami.d.ts +19 -3
- package/dist/commands/whoami.js +44 -13
- package/dist/commands/whoami.js.map +1 -1
- package/dist/ops/i-user-input-provider.d.ts +20 -1
- package/dist/ops/i-user-input-provider.js.map +1 -1
- package/dist/ops/test/mock-ui.d.ts +2 -1
- package/dist/ops/test/mock-ui.js +3 -0
- package/dist/ops/test/mock-ui.js.map +1 -1
- package/dist/ops/throwing-user-input-provider.d.ts +2 -1
- package/dist/ops/throwing-user-input-provider.js +3 -0
- package/dist/ops/throwing-user-input-provider.js.map +1 -1
- package/dist/relay/relay-container.js +1 -1
- package/dist/uilogic/lrp-watcher-predef.d.ts +2 -1
- package/dist/uilogic/lrp-watcher-predef.js +31 -17
- package/dist/uilogic/lrp-watcher-predef.js.map +1 -1
- package/dist/uilogic/lrp-watcher-utils.d.ts +2 -0
- package/dist/uilogic/lrp-watcher-utils.js +2 -0
- package/dist/uilogic/lrp-watcher-utils.js.map +1 -1
- package/dist/uilogic/rootmap-ui-utils.d.ts +18 -1
- package/dist/uilogic/rootmap-ui-utils.js +30 -0
- package/dist/uilogic/rootmap-ui-utils.js.map +1 -1
- package/dist/uilogic/tenant-contextualizer.js +11 -1
- package/dist/uilogic/tenant-contextualizer.js.map +1 -1
- package/dist/user-context-loader.d.ts +12 -7
- package/dist/user-context-loader.js +89 -43
- package/dist/user-context-loader.js.map +1 -1
- package/oclif.manifest.json +3991 -1444
- package/package.json +2 -2
- package/dist/commands/noc/cluster/recreate.d.ts +0 -28
- package/dist/commands/noc/cluster/recreate.js +0 -197
- package/dist/commands/noc/cluster/recreate.js.map +0 -1
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { AtLeast } from '@codiac.io/codiac-common/contracts';
|
|
2
|
+
import { CommandBaseExec, IEnterpriseEntity } from '../../command-base-exec';
|
|
3
|
+
import { RootMap } from '../../apis/codiac-api/contracts';
|
|
4
|
+
import { InteractionModes } from '../../uilogic/config-ui-utils';
|
|
5
|
+
type IClusterInstallRequest = IEnterpriseEntity & {
|
|
6
|
+
enterprise: string;
|
|
7
|
+
clusterName: string;
|
|
8
|
+
asset: string;
|
|
9
|
+
version: string;
|
|
10
|
+
wait?: boolean;
|
|
11
|
+
};
|
|
12
|
+
export default class ClusterInstall extends CommandBaseExec<IClusterInstallRequest> {
|
|
13
|
+
static description: string;
|
|
14
|
+
static aliases: never[];
|
|
15
|
+
static examples: {
|
|
16
|
+
description: string;
|
|
17
|
+
command: string;
|
|
18
|
+
}[];
|
|
19
|
+
static flags: {
|
|
20
|
+
help: import("@oclif/core/lib/interfaces").BooleanFlag<void>;
|
|
21
|
+
enterprise: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
22
|
+
asset: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
23
|
+
version: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
24
|
+
wait: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
25
|
+
silent: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
26
|
+
echo: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
27
|
+
'to-script': import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
28
|
+
};
|
|
29
|
+
static args: {
|
|
30
|
+
cluster: import("@oclif/core/lib/interfaces/parser").Arg<string | undefined, Record<string, unknown>>;
|
|
31
|
+
};
|
|
32
|
+
protected infrxAliases: string[] | undefined;
|
|
33
|
+
protected adminOnly: boolean;
|
|
34
|
+
private versionsByAsset;
|
|
35
|
+
captureArgs(): Promise<[Partial<IClusterInstallRequest>, InteractionModes | undefined, boolean]>;
|
|
36
|
+
buildCandidate_silently(partial: AtLeast<IClusterInstallRequest, 'enterprise'>, rootMap: RootMap): Promise<IClusterInstallRequest | undefined>;
|
|
37
|
+
buildCandidate_interactively(partial: AtLeast<IClusterInstallRequest, 'enterprise'>, rootMap: RootMap, takeDefaults: boolean): Promise<IClusterInstallRequest | undefined>;
|
|
38
|
+
private setAsset;
|
|
39
|
+
private setVersion;
|
|
40
|
+
private loadAssetVersions;
|
|
41
|
+
private promptForClusterName;
|
|
42
|
+
buildCommandString(candidate: IClusterInstallRequest, cmd: string[]): string[];
|
|
43
|
+
executeTask(candidate: IClusterInstallRequest): Promise<void>;
|
|
44
|
+
}
|
|
45
|
+
export {};
|
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
const core_1 = require("@oclif/core");
|
|
5
|
+
const cli_common_1 = require("../../cli-common");
|
|
6
|
+
const command_base_exec_1 = require("../../command-base-exec");
|
|
7
|
+
const codiac_constants_1 = require("../../codiac-constants");
|
|
8
|
+
const config_ui_utils_1 = require("../../uilogic/config-ui-utils");
|
|
9
|
+
class ClusterInstall extends command_base_exec_1.CommandBaseExec {
|
|
10
|
+
constructor() {
|
|
11
|
+
super(...arguments);
|
|
12
|
+
this.infrxAliases = ["cluster:install"];
|
|
13
|
+
this.adminOnly = true;
|
|
14
|
+
this.versionsByAsset = {};
|
|
15
|
+
}
|
|
16
|
+
captureArgs() {
|
|
17
|
+
var _a, _b;
|
|
18
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
19
|
+
const { args, flags } = yield this.parse(ClusterInstall);
|
|
20
|
+
let partial = {};
|
|
21
|
+
if (flags.enterprise)
|
|
22
|
+
partial.enterprise = flags.enterprise;
|
|
23
|
+
if (args.cluster)
|
|
24
|
+
partial.clusterName = args.cluster;
|
|
25
|
+
if (flags.asset)
|
|
26
|
+
partial.asset = flags.asset;
|
|
27
|
+
if (flags.version)
|
|
28
|
+
partial.version = flags.version;
|
|
29
|
+
if (flags.wait)
|
|
30
|
+
partial.wait = true;
|
|
31
|
+
const interactionMode = (this.pipedInput) ? config_ui_utils_1.InteractionModes.silent : (_b = (_a = undefined !== null && undefined !== void 0 ? undefined : (flags.echo ? config_ui_utils_1.InteractionModes.echo : undefined)) !== null && _a !== void 0 ? _a : (flags['to-script'] ? config_ui_utils_1.InteractionModes.toscript : undefined)) !== null && _b !== void 0 ? _b : (flags.silent ? config_ui_utils_1.InteractionModes.silent : undefined);
|
|
32
|
+
return [partial, interactionMode, false];
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
buildCandidate_silently(partial, rootMap) {
|
|
36
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
37
|
+
if (!partial.clusterName)
|
|
38
|
+
throw new Error('Cluster name is required in silent mode.');
|
|
39
|
+
if (!partial.asset)
|
|
40
|
+
throw new Error('Asset name is required in silent mode.');
|
|
41
|
+
if (!partial.version)
|
|
42
|
+
throw new Error('Asset version is required in silent mode.');
|
|
43
|
+
const found = rootMap.clusters.find(c => c.name === partial.clusterName);
|
|
44
|
+
if (!found)
|
|
45
|
+
throw new Error(`No cluster found with name [${partial.clusterName}].`);
|
|
46
|
+
return Object.assign({ enterprise: partial.enterprise, clusterName: partial.clusterName, asset: partial.asset, version: partial.version }, (partial.wait ? { wait: true } : {}));
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
buildCandidate_interactively(partial, rootMap, takeDefaults) {
|
|
50
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
51
|
+
partial.clusterName = yield this.promptForClusterName(partial.clusterName, rootMap, takeDefaults);
|
|
52
|
+
const ent = rootMap.enterprises.find(e => e.name === partial.enterprise);
|
|
53
|
+
const asset = yield this.setAsset(partial.asset, ent, takeDefaults);
|
|
54
|
+
partial.asset = asset.name;
|
|
55
|
+
partial.version = yield this.setVersion(asset, partial.version, takeDefaults);
|
|
56
|
+
return yield this.buildCandidate_silently(partial, rootMap);
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
setAsset(userInput, ent, takeDefaults) {
|
|
60
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
61
|
+
let output;
|
|
62
|
+
if (userInput !== codiac_constants_1.CliConstants.PROMPT_ME_DESIGNATOR) {
|
|
63
|
+
const isValid = userInput != undefined && ent.assets.some(a => a.name === userInput);
|
|
64
|
+
if (userInput && !isValid) {
|
|
65
|
+
this._ui.userMessage(this._styler.colorWarning(`Asset [${userInput}] not found in enterprise; please select from the list below.`));
|
|
66
|
+
userInput = undefined;
|
|
67
|
+
}
|
|
68
|
+
if (userInput) {
|
|
69
|
+
output = userInput;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
if (output == undefined) {
|
|
73
|
+
let assetChanged;
|
|
74
|
+
let assetType;
|
|
75
|
+
[output, assetChanged, assetType] = yield this.rootMapUtils.promptForAsset(ent.assets, undefined);
|
|
76
|
+
}
|
|
77
|
+
return ent.assets.find(a => a.name === output);
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
setVersion(asset, userInput, takeDefaults) {
|
|
81
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
82
|
+
let output;
|
|
83
|
+
let availables;
|
|
84
|
+
if (userInput !== codiac_constants_1.CliConstants.PROMPT_ME_DESIGNATOR) {
|
|
85
|
+
if (userInput != undefined) {
|
|
86
|
+
availables = yield this.loadAssetVersions(asset);
|
|
87
|
+
const isValid = availables.map(v => v.trim().toLowerCase()).includes(userInput.trim().toLowerCase());
|
|
88
|
+
if (!isValid) {
|
|
89
|
+
this._ui.userMessage(this._styler.colorWarning(`Version [${userInput}] not found; please select from the list below.`));
|
|
90
|
+
userInput = undefined;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
if (userInput) {
|
|
94
|
+
output = userInput;
|
|
95
|
+
this._ui.userMessage(`Continuing with ${asset.name}:${output}`);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
if (output == undefined) {
|
|
99
|
+
const sorted = availables !== null && availables !== void 0 ? availables : yield this.loadAssetVersions(asset);
|
|
100
|
+
const fetchTags = (searchString) => tslib_1.__awaiter(this, void 0, void 0, function* () { return sorted.filter(v => v.toLowerCase().includes(searchString !== null && searchString !== void 0 ? searchString : '')).map(v => ({ name: v, value: v })); });
|
|
101
|
+
const fuzzySelector = new cli_common_1.PromptSelectFuzzy(this.logger, this._ui, this._styler);
|
|
102
|
+
output = yield fuzzySelector.go('assetVersion', 'Select the asset version:', false, undefined, false, fetchTags);
|
|
103
|
+
}
|
|
104
|
+
if (output == undefined)
|
|
105
|
+
throw new Error(`No version was selected for asset [${asset.name}].`);
|
|
106
|
+
return output;
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
loadAssetVersions(asset) {
|
|
110
|
+
var _a;
|
|
111
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
112
|
+
if (this.versionsByAsset[asset.name])
|
|
113
|
+
return this.versionsByAsset[asset.name];
|
|
114
|
+
this._ui.startSpinner('Loading versions...');
|
|
115
|
+
const result = yield this.genRelayClient.Call.FetchAssetVersions({ image: asset.image, assetType: asset.type });
|
|
116
|
+
if (result.error) {
|
|
117
|
+
this._ui.stopSpinner('failed');
|
|
118
|
+
throw result.error;
|
|
119
|
+
}
|
|
120
|
+
if (result.output)
|
|
121
|
+
this.versionsByAsset[asset.name] = result.output;
|
|
122
|
+
const sorted = (_a = this.versionsByAsset[asset.name]) !== null && _a !== void 0 ? _a : [];
|
|
123
|
+
this._ui.stopSpinner(`found ${sorted.length}`);
|
|
124
|
+
return sorted;
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
promptForClusterName(userInput, rootMap, takeDefaults) {
|
|
128
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
129
|
+
const clusters = rootMap.clusters.map(c => c);
|
|
130
|
+
if (clusters.length === 0)
|
|
131
|
+
throw new Error('No clusters found on this enterprise.');
|
|
132
|
+
if (userInput) {
|
|
133
|
+
const found = clusters.find(c => c.name === userInput);
|
|
134
|
+
if (!found) {
|
|
135
|
+
this._ui.userMessage(this._styler.colorWarning(`No cluster found with name [${userInput}]; please select from the list below.`));
|
|
136
|
+
userInput = undefined;
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
if (clusters.length === 1 && takeDefaults) {
|
|
140
|
+
this._ui.userMessage(`Cluster: ${this._styler.hilite(clusters[0].name)}`);
|
|
141
|
+
return clusters[0].name;
|
|
142
|
+
}
|
|
143
|
+
const selected = yield this.rootMapUtils.promptForCluster(clusters, userInput);
|
|
144
|
+
return selected.name;
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
buildCommandString(candidate, cmd) {
|
|
148
|
+
cmd.push('-e', candidate.enterprise);
|
|
149
|
+
cmd.push(candidate.clusterName);
|
|
150
|
+
cmd.push('-a', candidate.asset);
|
|
151
|
+
cmd.push('-u', candidate.version);
|
|
152
|
+
if (candidate.wait)
|
|
153
|
+
cmd.push('--wait');
|
|
154
|
+
cmd.push('--silent');
|
|
155
|
+
return cmd;
|
|
156
|
+
}
|
|
157
|
+
executeTask(candidate) {
|
|
158
|
+
var _a, _b, _c;
|
|
159
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
160
|
+
try {
|
|
161
|
+
const result = yield this.watcher.triggerAndWatch((correlationId, socketId) => this.genRelayClient.Call.assetDeploy({
|
|
162
|
+
spec: Object.assign({ target: {
|
|
163
|
+
enterprise: candidate.enterprise,
|
|
164
|
+
clusterName: candidate.clusterName,
|
|
165
|
+
}, assets: [{ a: candidate.asset, v: candidate.version }] }, (candidate.wait ? { wait: true } : {})),
|
|
166
|
+
socketId,
|
|
167
|
+
correlationId,
|
|
168
|
+
}));
|
|
169
|
+
if (result.error) {
|
|
170
|
+
const msg = `Error deploying [${candidate.asset}] to cluster [${candidate.clusterName}]: ${(_a = result.message) !== null && _a !== void 0 ? _a : ''} ${(_b = result.error.message) !== null && _b !== void 0 ? _b : ''}`.trimEnd();
|
|
171
|
+
this.logger.error(msg, result.error);
|
|
172
|
+
this._ui.userMessage(`${this._styler.colorCritical('ERROR!')} ${msg}`);
|
|
173
|
+
}
|
|
174
|
+
else if (!result.success) {
|
|
175
|
+
const msg = `Deployment failed for [${candidate.asset}] on cluster [${candidate.clusterName}]: ${(_c = result.message) !== null && _c !== void 0 ? _c : ''}`.trimEnd();
|
|
176
|
+
this.logger.notice(msg, result);
|
|
177
|
+
this._ui.userMessage(`${this._styler.colorCritical('FAILED!')} ${msg}`);
|
|
178
|
+
}
|
|
179
|
+
else {
|
|
180
|
+
const msg = `${this._styler.colorGood('SUCCESS!')} Deployed [${this._styler.hilite(candidate.asset)}] to cluster [${this._styler.hilite(candidate.clusterName)}].`;
|
|
181
|
+
this.logger.notice(msg, result);
|
|
182
|
+
this._ui.userMessage(msg);
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
catch (err) {
|
|
186
|
+
throw err;
|
|
187
|
+
}
|
|
188
|
+
finally {
|
|
189
|
+
return;
|
|
190
|
+
}
|
|
191
|
+
});
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
exports.default = ClusterInstall;
|
|
195
|
+
ClusterInstall.description = 'Deploys a given asset version to a cluster cabinet, using the async deployment pipeline.';
|
|
196
|
+
ClusterInstall.aliases = [];
|
|
197
|
+
ClusterInstall.examples = [
|
|
198
|
+
{
|
|
199
|
+
description: 'Deploy an asset to a cluster.',
|
|
200
|
+
command: '<%= config.bin %> <%= command.id %> my-cluster -a my-chart -u 1.2.3',
|
|
201
|
+
},
|
|
202
|
+
{
|
|
203
|
+
description: 'Deploy and wait for chart startup to complete.',
|
|
204
|
+
command: '<%= config.bin %> <%= command.id %> my-cluster -a my-chart -u 1.2.3 --wait',
|
|
205
|
+
},
|
|
206
|
+
{
|
|
207
|
+
description: 'Non-interactive (scripted) invocation.',
|
|
208
|
+
command: '<%= config.bin %> <%= command.id %> my-cluster -a my-chart -u 1.2.3 --silent',
|
|
209
|
+
},
|
|
210
|
+
];
|
|
211
|
+
ClusterInstall.flags = {
|
|
212
|
+
help: core_1.Flags.help({ char: 'h', description: 'Displays the help document for this command.' }),
|
|
213
|
+
enterprise: core_1.Flags.string({ char: 'e', required: false, description: 'Code name of the infrastructure enterprise to target.' }),
|
|
214
|
+
asset: core_1.Flags.string({ char: 'a', required: false, description: 'Name of the asset to deploy.' }),
|
|
215
|
+
version: core_1.Flags.string({ char: 'u', required: false, dependsOn: ['asset'], description: 'Version of the asset to deploy.' }),
|
|
216
|
+
wait: core_1.Flags.boolean({ required: false, description: 'Wait for all chart/asset startup to complete before returning. When omitted, returns immediately without blocking on chart readiness.' }),
|
|
217
|
+
silent: core_1.Flags.boolean({ exclusive: ['echo', 'to-script'], description: 'Non-Interactive mode; executes without any user interaction and fails on any missing or invalid arguments.' }),
|
|
218
|
+
echo: core_1.Flags.boolean({ exclusive: ['to-script', 'silent'], description: 'Echo interaction mode; renders the equivalent non-interactive cli command for future use before final execution.' }),
|
|
219
|
+
'to-script': core_1.Flags.boolean({ exclusive: ['echo', 'silent'], description: 'Toscript interaction mode; renders the equivalent non-interactive cli command WITHOUT any execution.' }),
|
|
220
|
+
};
|
|
221
|
+
ClusterInstall.args = {
|
|
222
|
+
cluster: core_1.Args.string({ description: 'Name of the cluster to deploy to.' }),
|
|
223
|
+
};
|
|
224
|
+
//# sourceMappingURL=install.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../../src/commands/cluster/install.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,8 +8,6 @@ const command_base_exec_tenant_1 = require("../../../command-base-exec-tenant");
|
|
|
8
8
|
const k8s_utils_1 = require("../../../ops/k8s/k8s-utils");
|
|
9
9
|
const codiac_constants_1 = require("../../../codiac-constants");
|
|
10
10
|
const prettify_1 = require("../../../prettify");
|
|
11
|
-
const clusterProjxn = { pathsIncluded: ["id", "name", "provider", "locationName", "instance", "modified", "modifiedBy"], pathsExcluded: [] };
|
|
12
|
-
// -----------------------------------------------------------------
|
|
13
11
|
class ClusterStackCapture extends command_base_exec_tenant_1.CommandBaseExecTenant {
|
|
14
12
|
constructor() {
|
|
15
13
|
super(...arguments);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capture.js","sourceRoot":"","sources":["../../../../src/commands/cluster/stack/capture.ts"],"names":[],"mappings":";;;AAAA,sCAAyC;AACzC,4BAA6B;AAC7B,sEAAoE;AACpE,gFAA0E;AAC1E,0DAAsD;
|
|
1
|
+
{"version":3,"file":"capture.js","sourceRoot":"","sources":["../../../../src/commands/cluster/stack/capture.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { RootMap } from '../../../apis/codiac-api/contracts';
|
|
2
|
+
import { CommandBaseExec, IEnterpriseEntity } from '../../../command-base-exec';
|
|
3
|
+
import { AtLeast } from '@codiac.io/codiac-common/contracts';
|
|
4
|
+
import { InteractionModes } from '../../../uilogic/config-ui-utils';
|
|
5
|
+
type IClusterStackInstallRequest = IEnterpriseEntity & {
|
|
6
|
+
enterprise: string;
|
|
7
|
+
clusterName: string;
|
|
8
|
+
stackVersion?: string;
|
|
9
|
+
wait?: boolean;
|
|
10
|
+
};
|
|
11
|
+
export default class ClusterStackInstall extends CommandBaseExec<IClusterStackInstallRequest> {
|
|
12
|
+
static description: string;
|
|
13
|
+
static aliases: never[];
|
|
14
|
+
static examples: {
|
|
15
|
+
description: string;
|
|
16
|
+
command: string;
|
|
17
|
+
}[];
|
|
18
|
+
static flags: {
|
|
19
|
+
help: import("@oclif/core/lib/interfaces").BooleanFlag<void>;
|
|
20
|
+
enterprise: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
21
|
+
version: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
22
|
+
wait: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
23
|
+
silent: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
24
|
+
echo: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
25
|
+
"to-script": import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
26
|
+
};
|
|
27
|
+
static args: {
|
|
28
|
+
cluster: import("@oclif/core/lib/interfaces/parser").Arg<string | undefined, Record<string, unknown>>;
|
|
29
|
+
};
|
|
30
|
+
protected infrxAliases: string[] | undefined;
|
|
31
|
+
protected adminOnly: boolean;
|
|
32
|
+
captureArgs(): Promise<[Partial<IClusterStackInstallRequest>, InteractionModes | undefined, boolean]>;
|
|
33
|
+
buildCandidate_silently(partial: AtLeast<IClusterStackInstallRequest, "enterprise">, rootMap: RootMap): Promise<IClusterStackInstallRequest | undefined>;
|
|
34
|
+
buildCandidate_interactively(partial: AtLeast<IClusterStackInstallRequest, "enterprise">, rootMap: RootMap, takeDefaults: boolean): Promise<IClusterStackInstallRequest | undefined>;
|
|
35
|
+
private promptForClusterName;
|
|
36
|
+
private promptForStackVersion;
|
|
37
|
+
buildCommandString(candidate: IClusterStackInstallRequest, cmd: string[]): string[];
|
|
38
|
+
executeTask(candidate: IClusterStackInstallRequest): Promise<void>;
|
|
39
|
+
}
|
|
40
|
+
export {};
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
const core_1 = require("@oclif/core");
|
|
5
|
+
const _ = require("lodash");
|
|
6
|
+
const command_base_exec_1 = require("../../../command-base-exec");
|
|
7
|
+
const config_ui_utils_1 = require("../../../uilogic/config-ui-utils");
|
|
8
|
+
class ClusterStackInstall extends command_base_exec_1.CommandBaseExec {
|
|
9
|
+
constructor() {
|
|
10
|
+
super(...arguments);
|
|
11
|
+
this.infrxAliases = ["cluster:stack:install"];
|
|
12
|
+
this.adminOnly = true;
|
|
13
|
+
}
|
|
14
|
+
captureArgs() {
|
|
15
|
+
var _a, _b;
|
|
16
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
17
|
+
const { args, flags } = yield this.parse(ClusterStackInstall);
|
|
18
|
+
let partial = {};
|
|
19
|
+
if (flags.enterprise)
|
|
20
|
+
partial.enterprise = flags.enterprise;
|
|
21
|
+
if (args.cluster)
|
|
22
|
+
partial.clusterName = args.cluster;
|
|
23
|
+
if (flags.version)
|
|
24
|
+
partial.stackVersion = flags.version;
|
|
25
|
+
if (flags.wait)
|
|
26
|
+
partial.wait = true;
|
|
27
|
+
const interactionMode = (this.pipedInput) ? config_ui_utils_1.InteractionModes.silent : (_b = (_a = undefined !== null && undefined !== void 0 ? undefined : (flags.echo ? config_ui_utils_1.InteractionModes.echo : undefined)) !== null && _a !== void 0 ? _a : (flags["to-script"] ? config_ui_utils_1.InteractionModes.toscript : undefined)) !== null && _b !== void 0 ? _b : (flags.silent ? config_ui_utils_1.InteractionModes.silent : undefined);
|
|
28
|
+
return [partial, interactionMode, false];
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
buildCandidate_silently(partial, rootMap) {
|
|
32
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
33
|
+
if (!partial.clusterName || _.isEmpty(partial.clusterName)) {
|
|
34
|
+
throw new Error("Cluster name is required in silent mode.");
|
|
35
|
+
}
|
|
36
|
+
const found = rootMap.clusters.find(c => c.name === partial.clusterName);
|
|
37
|
+
if (!found)
|
|
38
|
+
throw new Error(`No cluster found with name [${partial.clusterName}].`);
|
|
39
|
+
return Object.assign(Object.assign({ enterprise: partial.enterprise, clusterName: partial.clusterName }, (partial.stackVersion ? { stackVersion: partial.stackVersion } : {})), (partial.wait !== undefined ? { wait: partial.wait } : {}));
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
buildCandidate_interactively(partial, rootMap, takeDefaults) {
|
|
43
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
44
|
+
partial.clusterName = yield this.promptForClusterName(partial.clusterName, rootMap, takeDefaults);
|
|
45
|
+
partial.stackVersion = yield this.promptForStackVersion(partial.stackVersion, partial.enterprise, takeDefaults);
|
|
46
|
+
return yield this.buildCandidate_silently(partial, rootMap);
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
promptForClusterName(userInput, rootMap, takeDefaults) {
|
|
50
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
51
|
+
const clusters = rootMap.clusters.map(c => c);
|
|
52
|
+
if (clusters.length === 0)
|
|
53
|
+
throw new Error("No clusters found on this enterprise.");
|
|
54
|
+
if (userInput) {
|
|
55
|
+
const found = clusters.find(c => c.name === userInput);
|
|
56
|
+
if (!found) {
|
|
57
|
+
this._ui.userMessage(this._styler.colorWarning(`No cluster found with name [${userInput}]; please select from the list below.`));
|
|
58
|
+
userInput = undefined;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
if (clusters.length === 1 && takeDefaults) {
|
|
62
|
+
this._ui.userMessage(`Cluster: ${this._styler.hilite(clusters[0].name)}`);
|
|
63
|
+
return clusters[0].name;
|
|
64
|
+
}
|
|
65
|
+
const selected = yield this.rootMapUtils.promptForCluster(clusters, userInput);
|
|
66
|
+
return selected.name;
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
promptForStackVersion(userInput, enterprise, takeDefaults) {
|
|
70
|
+
var _a;
|
|
71
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
72
|
+
if (userInput) {
|
|
73
|
+
this._ui.userMessage(`Stack version: ${this._styler.hilite(userInput)}`);
|
|
74
|
+
return userInput;
|
|
75
|
+
}
|
|
76
|
+
this._ui.startSpinner("Retrieving available stack versions...");
|
|
77
|
+
const result = yield this._codiacApi.EnterpriseVersionConfig.tryReadMany({
|
|
78
|
+
enterprise,
|
|
79
|
+
take: 100,
|
|
80
|
+
sort: "created~desc",
|
|
81
|
+
});
|
|
82
|
+
if (result.error) {
|
|
83
|
+
this._ui.stopSpinner("failed");
|
|
84
|
+
throw result.error;
|
|
85
|
+
}
|
|
86
|
+
const snapshots = (_a = result.output) !== null && _a !== void 0 ? _a : [];
|
|
87
|
+
this._ui.stopSpinner(`found ${snapshots.length}`);
|
|
88
|
+
if (snapshots.length === 0) {
|
|
89
|
+
this._ui.userMessage("No stack versions found. Proceeding with the default-tagged version.");
|
|
90
|
+
return undefined;
|
|
91
|
+
}
|
|
92
|
+
const defaultSnapshot = snapshots.find(s => { var _a; return (_a = s.tags) === null || _a === void 0 ? void 0 : _a.some((t) => t.name === 'default'); });
|
|
93
|
+
if (defaultSnapshot) {
|
|
94
|
+
if (takeDefaults)
|
|
95
|
+
return undefined;
|
|
96
|
+
const useDefault = yield this._ui.promptConfirm("useDefaultVersion", `Install the default stack version: ${this._styler.hilite(defaultSnapshot.version)}?`, true);
|
|
97
|
+
if (useDefault)
|
|
98
|
+
return undefined;
|
|
99
|
+
}
|
|
100
|
+
else {
|
|
101
|
+
this._ui.userMessage(this._styler.colorWarning("No snapshot is tagged as 'default'. Please select a version to install."));
|
|
102
|
+
}
|
|
103
|
+
const choices = snapshots.map(s => {
|
|
104
|
+
var _a, _b;
|
|
105
|
+
const dateStr = new Date(s.created).toISOString().split('T')[0];
|
|
106
|
+
const tagStr = (_b = (_a = s.tags) === null || _a === void 0 ? void 0 : _a.map((t) => t.name).join(", ")) !== null && _b !== void 0 ? _b : "";
|
|
107
|
+
const label = tagStr
|
|
108
|
+
? `${s.version} (${dateStr}) [${tagStr}] by ${s.createdBy}`
|
|
109
|
+
: `${s.version} (${dateStr}) by ${s.createdBy}`;
|
|
110
|
+
return { name: label, value: s.version };
|
|
111
|
+
});
|
|
112
|
+
return yield this._ui.promptSelect("stackVersion", "Select a stack version to install:", choices);
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
buildCommandString(candidate, cmd) {
|
|
116
|
+
cmd.push("-e", candidate.enterprise);
|
|
117
|
+
cmd.push(candidate.clusterName);
|
|
118
|
+
if (candidate.stackVersion)
|
|
119
|
+
cmd.push("--version", candidate.stackVersion);
|
|
120
|
+
if (candidate.wait === true)
|
|
121
|
+
cmd.push("--wait");
|
|
122
|
+
cmd.push("--silent");
|
|
123
|
+
return cmd;
|
|
124
|
+
}
|
|
125
|
+
executeTask(candidate) {
|
|
126
|
+
var _a, _b, _c;
|
|
127
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
128
|
+
try {
|
|
129
|
+
const result = yield this.watcher.triggerAndWatch((correlationId, socketId) => this.genRelayClient.Call.clusterStackInstall({
|
|
130
|
+
spec: Object.assign(Object.assign({ clusterName: candidate.clusterName }, (candidate.stackVersion ? { stackVersion: candidate.stackVersion } : {})), (candidate.wait !== undefined ? { wait: candidate.wait } : {})),
|
|
131
|
+
socketId,
|
|
132
|
+
correlationId,
|
|
133
|
+
}));
|
|
134
|
+
if (result.error) {
|
|
135
|
+
const msg = `Error installing cluster stack on [${candidate.clusterName}]: ${(_a = result.message) !== null && _a !== void 0 ? _a : ""} ${(_b = result.error.message) !== null && _b !== void 0 ? _b : ""}`.trimEnd();
|
|
136
|
+
this.logger.error(msg, result.error);
|
|
137
|
+
this._ui.userMessage(`${this._styler.colorCritical("ERROR!")} ${msg}`);
|
|
138
|
+
}
|
|
139
|
+
else if (!result.success) {
|
|
140
|
+
const msg = `Cluster stack install failed on [${candidate.clusterName}]: ${(_c = result.message) !== null && _c !== void 0 ? _c : ""}`.trimEnd();
|
|
141
|
+
this.logger.notice(msg, result);
|
|
142
|
+
this._ui.userMessage(`${this._styler.colorCritical("FAILED!")} ${msg}`);
|
|
143
|
+
}
|
|
144
|
+
else {
|
|
145
|
+
const msg = `${this._styler.colorGood("SUCCESS!")} Cluster stack installed on [${this._styler.hilite(candidate.clusterName)}].`;
|
|
146
|
+
this.logger.notice(msg, result);
|
|
147
|
+
this._ui.userMessage(msg);
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
catch (err) {
|
|
151
|
+
throw err;
|
|
152
|
+
}
|
|
153
|
+
finally {
|
|
154
|
+
return;
|
|
155
|
+
}
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
exports.default = ClusterStackInstall;
|
|
160
|
+
ClusterStackInstall.description = 'Installs the cluster stack on the given cluster, deploying all infrastructure workloads defined in the stack snapshot.';
|
|
161
|
+
ClusterStackInstall.aliases = [];
|
|
162
|
+
ClusterStackInstall.examples = [
|
|
163
|
+
{
|
|
164
|
+
description: 'Install the default-tagged cluster stack version.',
|
|
165
|
+
command: '<%= config.bin %> <%= command.id %> my-cluster',
|
|
166
|
+
},
|
|
167
|
+
{
|
|
168
|
+
description: 'Install a specific cluster stack version.',
|
|
169
|
+
command: '<%= config.bin %> <%= command.id %> my-cluster --version 5CJRH7XB',
|
|
170
|
+
},
|
|
171
|
+
{
|
|
172
|
+
description: 'Non-interactive (scripted) invocation.',
|
|
173
|
+
command: '<%= config.bin %> <%= command.id %> my-cluster --silent',
|
|
174
|
+
},
|
|
175
|
+
{
|
|
176
|
+
description: 'Renders the equivalent silent command and then executes.',
|
|
177
|
+
command: '<%= config.bin %> <%= command.id %> my-cluster --echo',
|
|
178
|
+
},
|
|
179
|
+
{
|
|
180
|
+
description: 'Render the equivalent silent command without executing.',
|
|
181
|
+
command: '<%= config.bin %> <%= command.id %> my-cluster --to-script',
|
|
182
|
+
},
|
|
183
|
+
];
|
|
184
|
+
ClusterStackInstall.flags = {
|
|
185
|
+
help: core_1.Flags.help({ char: 'h', description: 'Displays the help document for this command.' }),
|
|
186
|
+
enterprise: core_1.Flags.string({ char: 'e', required: false, description: 'Code name of the infrastructure enterprise to target.' }),
|
|
187
|
+
version: core_1.Flags.string({ char: 'v', required: false, description: 'Version of the cluster stack snapshot to install. Omit to install the default-tagged version.' }),
|
|
188
|
+
wait: core_1.Flags.boolean({ required: false, description: 'Wait for all helm chart startups to complete before returning. When omitted, helm installs return immediately without blocking on chart readiness.' }),
|
|
189
|
+
silent: core_1.Flags.boolean({ exclusive: ["echo", "to-script"], description: 'Non-Interactive mode; executes without any user interaction and fails on any missing or invalid arguments.' }),
|
|
190
|
+
echo: core_1.Flags.boolean({ exclusive: ["to-script", "silent"], description: 'Echo interaction mode; renders the equivalent non-interactive cli command for future use before final execution.' }),
|
|
191
|
+
"to-script": core_1.Flags.boolean({ exclusive: ["echo", "silent"], description: 'Toscript interaction mode; renders the equivalent non-interactive cli command WITHOUT any execution.' }),
|
|
192
|
+
};
|
|
193
|
+
ClusterStackInstall.args = {
|
|
194
|
+
cluster: core_1.Args.string({ description: 'Name of the cluster on which to install the stack.' }),
|
|
195
|
+
};
|
|
196
|
+
//# sourceMappingURL=install.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../../../src/commands/cluster/stack/install.ts"],"names":[],"mappings":"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"}
|
|
@@ -29,9 +29,4 @@ export default class ClusterStart extends CommandBaseExecTenant<ILocalClusterSta
|
|
|
29
29
|
buildCandidate_interactively(partial: Partial<ILocalClusterStartRequest>, takeDefaults: boolean, rootMap: RootMap): Promise<ILocalClusterStartRequest | undefined>;
|
|
30
30
|
buildCommandString(candidate: ILocalClusterStartRequest, cmd: string[]): string[];
|
|
31
31
|
executeTask(candidate: ILocalClusterStartRequest): Promise<void>;
|
|
32
|
-
/** Renders a user-friendly cluster description. */
|
|
33
|
-
private describe;
|
|
34
|
-
/** Returns the name of the selected cluster.
|
|
35
|
-
*/
|
|
36
|
-
private promptForCluster;
|
|
37
32
|
}
|
|
@@ -9,7 +9,6 @@ const contracts_1 = require("../../apis/codiac-api/contracts");
|
|
|
9
9
|
const type_safety_utils_1 = require("../../uilogic/type-safety-utils");
|
|
10
10
|
const terminal_utils_1 = require("../../ops/terminal-utils");
|
|
11
11
|
const local_command_runner_1 = require("../../ops/terminal-command-runner/local-command-runner");
|
|
12
|
-
const clusterProjxn = { pathsIncluded: ["id", "name", "provider", "locationName", "instance", "modified", "modifiedBy"], pathsExcluded: [] };
|
|
13
12
|
class ClusterStart extends command_base_exec_tenant_1.CommandBaseExecTenant {
|
|
14
13
|
constructor() {
|
|
15
14
|
super(...arguments);
|
|
@@ -97,7 +96,7 @@ class ClusterStart extends command_base_exec_tenant_1.CommandBaseExecTenant {
|
|
|
97
96
|
selected = clusters[0];
|
|
98
97
|
}
|
|
99
98
|
else {
|
|
100
|
-
selected = yield this.promptForCluster(clusters, partial.cluster);
|
|
99
|
+
selected = yield this.rootMapUtils.promptForCluster(clusters, partial.cluster, "Local Cluster:");
|
|
101
100
|
}
|
|
102
101
|
partial.cluster = selected.name;
|
|
103
102
|
partial.provider = selected.provider;
|
|
@@ -146,31 +145,6 @@ class ClusterStart extends command_base_exec_tenant_1.CommandBaseExecTenant {
|
|
|
146
145
|
}
|
|
147
146
|
});
|
|
148
147
|
}
|
|
149
|
-
/** Renders a user-friendly cluster description. */
|
|
150
|
-
describe(cluster) {
|
|
151
|
-
return cluster.name.concat(" ", this._styler.dim("(" + cluster.provider + ")"));
|
|
152
|
-
}
|
|
153
|
-
/** Returns the name of the selected cluster.
|
|
154
|
-
*/
|
|
155
|
-
promptForCluster(clusters, defaultValue) {
|
|
156
|
-
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
157
|
-
let output;
|
|
158
|
-
let keep = false;
|
|
159
|
-
if (defaultValue && clusters.find(c => c.name === defaultValue)) {
|
|
160
|
-
keep = yield this._ui.promptConfirm("clusterNameConfirm", `Local Cluster: [${this._styler.hilite(defaultValue)}]`, true);
|
|
161
|
-
}
|
|
162
|
-
if (keep === true) {
|
|
163
|
-
output = clusters.find(c => c.name === defaultValue);
|
|
164
|
-
}
|
|
165
|
-
else {
|
|
166
|
-
let choices = clusters
|
|
167
|
-
.map(c => { return { name: this.describe(c), value: c.name }; });
|
|
168
|
-
let selectedName = (yield this._ui.promptSelect("clusterName", "Select the local cluster:", choices));
|
|
169
|
-
output = clusters.find(c => c.name === selectedName);
|
|
170
|
-
}
|
|
171
|
-
return output;
|
|
172
|
-
});
|
|
173
|
-
}
|
|
174
148
|
}
|
|
175
149
|
exports.default = ClusterStart;
|
|
176
150
|
ClusterStart.description = 'For local machine clusters only. (Idempotent) Ensures that the specified local machine cluster is running and not inactive. Clusters can consume significant local resources, since they cannot be scaled like they can in the cloud, so this command and `cluster stop` together enable a user to determine which a clusters are actually running or not at any given time.';
|