@codiac.io/codiac-cli 1.3.181 → 1.3.183
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 +24 -13
- package/dist/commands/asset/volume/create.js +153 -158
- package/dist/commands/asset/volume/create.js.map +1 -1
- package/dist/commands/asset/volume/delete.d.ts +21 -7
- package/dist/commands/asset/volume/delete.js +107 -101
- package/dist/commands/asset/volume/delete.js.map +1 -1
- package/dist/commands/asset/volume/list.d.ts +23 -9
- package/dist/commands/asset/volume/list.js +74 -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/sdk-adapters/other/other-cluster-configurator.d.ts +24 -0
- package/dist/sdk-adapters/other/other-cluster-configurator.js +80 -0
- package/dist/sdk-adapters/other/other-cluster-configurator.js.map +1 -0
- package/dist/sdk-adapters/other/other-login-configurator.d.ts +24 -0
- package/dist/sdk-adapters/other/other-login-configurator.js +68 -0
- package/dist/sdk-adapters/other/other-login-configurator.js.map +1 -0
- package/dist/uilogic/cloud-resource-configurator-factory.js +12 -0
- package/dist/uilogic/cloud-resource-configurator-factory.js.map +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 +3984 -1453
- 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,130 @@
|
|
|
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 config_ui_utils_1 = require("../../../uilogic/config-ui-utils");
|
|
7
|
+
const command_base_exec_tenant_1 = require("../../../command-base-exec-tenant");
|
|
8
|
+
class ClusterAgentUninstall extends command_base_exec_tenant_1.CommandBaseExecTenant {
|
|
9
|
+
constructor() {
|
|
10
|
+
// static hidden = true;
|
|
11
|
+
super(...arguments);
|
|
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(ClusterAgentUninstall);
|
|
18
|
+
let partial = {};
|
|
19
|
+
if (args.cluster)
|
|
20
|
+
partial.cluster = args.cluster;
|
|
21
|
+
// ---------------------------------------------------------------
|
|
22
|
+
// TODO: move everything from here down into the base class
|
|
23
|
+
// ---------------------------------------------------------------
|
|
24
|
+
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);
|
|
25
|
+
const takeDefaults = flags['take-defaults'];
|
|
26
|
+
return [partial, interactionMode, takeDefaults];
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
buildCandidate_silently(partial, rootMap) {
|
|
30
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
31
|
+
if (partial.cluster == undefined || _.isEmpty(partial.cluster))
|
|
32
|
+
throw new Error("Must specify cluster.");
|
|
33
|
+
const found = rootMap.clusters.find(c => c.name == partial.cluster);
|
|
34
|
+
if (found == undefined)
|
|
35
|
+
throw new Error(`No cluster found with name [${partial.cluster}].`);
|
|
36
|
+
return { cluster: partial.cluster };
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
buildCandidate_interactively(partial, takeDefaults, rootMap) {
|
|
40
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
41
|
+
let clusters = rootMap.clusters.map(c => c);
|
|
42
|
+
if (partial.cluster) {
|
|
43
|
+
const found = clusters.find(c => c.name == partial.cluster);
|
|
44
|
+
if (found == undefined) {
|
|
45
|
+
this._ui.userMessage(this._styler.colorWarning(`No cluster found with name [${partial.cluster}]; please select from the list below.`));
|
|
46
|
+
partial.cluster = undefined;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
let selected;
|
|
50
|
+
if (clusters.length == 1 && takeDefaults) {
|
|
51
|
+
selected = clusters[0];
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
selected = yield this.rootMapUtils.promptForCluster(clusters, partial.cluster);
|
|
55
|
+
}
|
|
56
|
+
partial.cluster = selected.name;
|
|
57
|
+
return yield this.buildCandidate_silently(partial, rootMap);
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
buildCommandString(candidate, cmd) {
|
|
61
|
+
cmd.push("--silent");
|
|
62
|
+
cmd.push(candidate.cluster);
|
|
63
|
+
return cmd;
|
|
64
|
+
}
|
|
65
|
+
executeTask(candidate) {
|
|
66
|
+
var _a, _b, _c;
|
|
67
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
68
|
+
try {
|
|
69
|
+
const result = yield this.watcher.triggerAndWatch((correlationId, socketId) => this.genRelayClient.Call.clusterAgentUninstall({
|
|
70
|
+
spec: { clusterName: candidate.cluster },
|
|
71
|
+
socketId: socketId,
|
|
72
|
+
correlationId: correlationId,
|
|
73
|
+
}));
|
|
74
|
+
if (result.error) {
|
|
75
|
+
const msg = `Error uninstalling Codiac agent from cluster [${candidate.cluster}]: ${(_a = result.message) !== null && _a !== void 0 ? _a : ""} ${(_b = result.error.message) !== null && _b !== void 0 ? _b : ""}`.trimEnd();
|
|
76
|
+
this.logger.error(msg, result.error);
|
|
77
|
+
this._ui.userMessage(`${this._styler.colorCritical("ERROR!")} ${msg}`);
|
|
78
|
+
}
|
|
79
|
+
else if (!result.success) {
|
|
80
|
+
const msg = `Codiac agent uninstall failed on cluster [${candidate.cluster}]: ${(_c = result.message) !== null && _c !== void 0 ? _c : ""}`.trimEnd();
|
|
81
|
+
this.logger.notice(msg, result);
|
|
82
|
+
this._ui.userMessage(`${this._styler.colorCritical("FAILED!")} ${msg}`);
|
|
83
|
+
}
|
|
84
|
+
else {
|
|
85
|
+
const msg = `${this._styler.colorGood("SUCCESS!")} Codiac agent uninstalled from cluster [${this._styler.hilite(candidate.cluster)}].`;
|
|
86
|
+
this.logger.notice(msg, result);
|
|
87
|
+
this._ui.userMessage(msg);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
catch (err) {
|
|
91
|
+
throw err;
|
|
92
|
+
}
|
|
93
|
+
finally {
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
exports.default = ClusterAgentUninstall;
|
|
100
|
+
ClusterAgentUninstall.description = 'Uninstalls the Codiac agent from the given cluster.';
|
|
101
|
+
ClusterAgentUninstall.aliases = [];
|
|
102
|
+
ClusterAgentUninstall.examples = [
|
|
103
|
+
{
|
|
104
|
+
description: 'Uninstall the Codiac agent from a cluster.',
|
|
105
|
+
command: '<%= config.bin %> <%= command.id %> my-cluster',
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
description: 'Non-interactive (scripted) invocation.',
|
|
109
|
+
command: '<%= config.bin %> <%= command.id %> my-cluster --silent',
|
|
110
|
+
},
|
|
111
|
+
{
|
|
112
|
+
description: 'Renders the equivalent silent command and then executes.',
|
|
113
|
+
command: '<%= config.bin %> <%= command.id %> my-cluster --echo',
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
description: 'Render the equivalent silent command without executing.',
|
|
117
|
+
command: '<%= config.bin %> <%= command.id %> my-cluster --to-script',
|
|
118
|
+
},
|
|
119
|
+
];
|
|
120
|
+
ClusterAgentUninstall.flags = {
|
|
121
|
+
// TODO: Move these into the base class
|
|
122
|
+
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.' }),
|
|
123
|
+
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.' }),
|
|
124
|
+
"to-script": core_1.Flags.boolean({ exclusive: ["echo", "silent"], description: 'Toscript interaction mode; renders the equivalent non-interactive cli command WITHOUT any execution.' }),
|
|
125
|
+
"take-defaults": core_1.Flags.boolean({ exclusive: ["silent"], description: "Prevents prompting for confirmation on parameters that were passed in or were automatically set to default values (Irrelevant in --silent mode). This behavior does NOT apply to scenarios where the command needs to override invalid user input; such cases will always prompt for confirmation." }),
|
|
126
|
+
};
|
|
127
|
+
ClusterAgentUninstall.args = {
|
|
128
|
+
cluster: core_1.Args.string({ description: 'Name of the cluster in Codiac from which to uninstall the Codiac agent. You can use `cod cluster list` to see available cluster names.' }),
|
|
129
|
+
};
|
|
130
|
+
//# sourceMappingURL=uninstall.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"uninstall.js","sourceRoot":"","sources":["../../../../src/commands/cluster/agent/uninstall.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { Command } from '@oclif/core';
|
|
2
|
+
import { CommandBaseExecTenant } from '../../command-base-exec-tenant';
|
|
3
|
+
import { ClusterDef } from '../../apis/codiac-api/contracts';
|
|
4
|
+
import { InteractionModes } from '../../uilogic/config-ui-utils';
|
|
5
|
+
import { RootMap } from '../../apis/codiac-api/contracts';
|
|
6
|
+
type IClusterBootstrapRequest = ClusterDef;
|
|
7
|
+
export default class ClusterBootstrap extends CommandBaseExecTenant<IClusterBootstrapRequest> {
|
|
8
|
+
static description: string;
|
|
9
|
+
static aliases: never[];
|
|
10
|
+
static examples: Command.Example[];
|
|
11
|
+
static flags: {
|
|
12
|
+
help: import("@oclif/core/lib/interfaces").BooleanFlag<void>;
|
|
13
|
+
provider: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
14
|
+
providerSubscription: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
15
|
+
resourceGroup: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
16
|
+
location: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
17
|
+
nodeSpec: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
18
|
+
nodeQty: import("@oclif/core/lib/interfaces").OptionFlag<number, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
19
|
+
k8sVersion: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
20
|
+
nodesMin: import("@oclif/core/lib/interfaces").OptionFlag<number | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
21
|
+
nodesMax: import("@oclif/core/lib/interfaces").OptionFlag<number | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
22
|
+
subnet: import("@oclif/core/lib/interfaces").OptionFlag<string[] | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
23
|
+
networkPlugin: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
24
|
+
identityUserName: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
25
|
+
identityUserId: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
26
|
+
identityUserPassword: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
27
|
+
silent: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
28
|
+
echo: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
29
|
+
'to-script': import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
30
|
+
'take-defaults': import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
31
|
+
};
|
|
32
|
+
static args: {
|
|
33
|
+
name: import("@oclif/core/lib/interfaces/parser").Arg<string | undefined, Record<string, unknown>>;
|
|
34
|
+
};
|
|
35
|
+
protected adminOnly: boolean;
|
|
36
|
+
private get uiCloudPvd();
|
|
37
|
+
private _uiCloudPvd;
|
|
38
|
+
private get termUtils();
|
|
39
|
+
private _termUtils;
|
|
40
|
+
private get localCommandRunner();
|
|
41
|
+
private _localCommandRunner;
|
|
42
|
+
protected bootstrap(): void;
|
|
43
|
+
captureArgs(): Promise<[Partial<IClusterBootstrapRequest>, InteractionModes | undefined, boolean]>;
|
|
44
|
+
buildCandidate_silently(partial: Partial<IClusterBootstrapRequest>, rootMap: RootMap): Promise<IClusterBootstrapRequest | undefined>;
|
|
45
|
+
buildCandidate_interactively(partial: Partial<IClusterBootstrapRequest>, takeDefaults: boolean, rootMap: RootMap): Promise<IClusterBootstrapRequest | undefined>;
|
|
46
|
+
buildCommandString(candidate: IClusterBootstrapRequest, cmd: string[]): string[];
|
|
47
|
+
executeTask(candidate: IClusterBootstrapRequest): Promise<void>;
|
|
48
|
+
private stringToEnum;
|
|
49
|
+
}
|
|
50
|
+
export {};
|
|
@@ -0,0 +1,310 @@
|
|
|
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_tenant_1 = require("../../command-base-exec-tenant");
|
|
7
|
+
const contracts_1 = require("../../apis/codiac-api/contracts");
|
|
8
|
+
const contracts_2 = require("../../apis/codiac-relay/contracts");
|
|
9
|
+
const cluster_def_1 = require("@codiac.io/codiac-domain/cluster-def");
|
|
10
|
+
const security_account_1 = require("@codiac.io/codiac-domain/security-account");
|
|
11
|
+
const codiac_ops_common_1 = require("@codiac.io/codiac-ops-common");
|
|
12
|
+
const config_ui_utils_1 = require("../../uilogic/config-ui-utils");
|
|
13
|
+
const cloud_provider_contextualizer_1 = require("../../uilogic/cloud-provider-contextualizer");
|
|
14
|
+
const terminal_utils_1 = require("../../ops/terminal-utils");
|
|
15
|
+
const local_command_runner_1 = require("../../ops/terminal-command-runner/local-command-runner");
|
|
16
|
+
const prettify_1 = require("../../prettify");
|
|
17
|
+
class ClusterBootstrap extends command_base_exec_tenant_1.CommandBaseExecTenant {
|
|
18
|
+
constructor() {
|
|
19
|
+
// static hidden = true;
|
|
20
|
+
super(...arguments);
|
|
21
|
+
this.adminOnly = true;
|
|
22
|
+
}
|
|
23
|
+
// ---------------------------------------------------------------------------
|
|
24
|
+
// Lazy-loaded dependencies
|
|
25
|
+
// ---------------------------------------------------------------------------
|
|
26
|
+
get uiCloudPvd() {
|
|
27
|
+
if (this._uiCloudPvd === undefined)
|
|
28
|
+
this._uiCloudPvd = this.ioc.get(cloud_provider_contextualizer_1.CloudProviderContextualizer);
|
|
29
|
+
return this._uiCloudPvd;
|
|
30
|
+
}
|
|
31
|
+
get termUtils() {
|
|
32
|
+
if (this._termUtils === undefined)
|
|
33
|
+
this._termUtils = this.ioc.get(terminal_utils_1.TerminalUtils);
|
|
34
|
+
return this._termUtils;
|
|
35
|
+
}
|
|
36
|
+
get localCommandRunner() {
|
|
37
|
+
if (this._localCommandRunner === undefined)
|
|
38
|
+
this._localCommandRunner = this.ioc.get(local_command_runner_1.LocalCommandRunner);
|
|
39
|
+
return this._localCommandRunner;
|
|
40
|
+
}
|
|
41
|
+
// ---------------------------------------------------------------------------
|
|
42
|
+
// Bootstrap
|
|
43
|
+
// ---------------------------------------------------------------------------
|
|
44
|
+
bootstrap() {
|
|
45
|
+
super.bootstrap();
|
|
46
|
+
cloud_provider_contextualizer_1.CloudProviderContextualizer.bootstrap(this.ioc);
|
|
47
|
+
this.ioc.bind(terminal_utils_1.TerminalUtils).toDynamicValue(() => new terminal_utils_1.TerminalUtils(this.logger));
|
|
48
|
+
this.ioc.bind(local_command_runner_1.LocalCommandRunner).toDynamicValue(() => new local_command_runner_1.LocalCommandRunner(this.msgClient, this.cliEnviro, this.termUtils, this.logger));
|
|
49
|
+
}
|
|
50
|
+
// ---------------------------------------------------------------------------
|
|
51
|
+
// Lifecycle methods
|
|
52
|
+
// ---------------------------------------------------------------------------
|
|
53
|
+
captureArgs() {
|
|
54
|
+
var _a, _b, _c;
|
|
55
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
56
|
+
const { args, flags } = yield this.parse(ClusterBootstrap);
|
|
57
|
+
let partial = {
|
|
58
|
+
name: args.name,
|
|
59
|
+
provider: this.stringToEnum(contracts_2.CloudProviderEnum, flags.provider),
|
|
60
|
+
providerSubscription: flags.providerSubscription,
|
|
61
|
+
providerGroup: flags.resourceGroup,
|
|
62
|
+
locationName: flags.location,
|
|
63
|
+
nodeSpec: flags.nodeSpec,
|
|
64
|
+
startingNodeCount: flags.nodeQty,
|
|
65
|
+
k8sVersion: flags.k8sVersion,
|
|
66
|
+
nodesMin: flags.nodesMin,
|
|
67
|
+
nodesMax: flags.nodesMax,
|
|
68
|
+
subnet: flags.subnet,
|
|
69
|
+
networkPlugin: flags.networkPlugin,
|
|
70
|
+
};
|
|
71
|
+
if (args.name) {
|
|
72
|
+
partial.identitySpec = {
|
|
73
|
+
type: cluster_def_1.ClusterDefConstants.DEFAULT_IDENTITY_TYPE,
|
|
74
|
+
name: cluster_def_1.ClusterDefConstants.buildDefaultIdentityName(args.name),
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
if (flags.identityUserId && flags.identityUserName) {
|
|
78
|
+
partial.identityInstance = new security_account_1.SecurityAccount(flags.identityUserId, flags.identityUserName, flags.identityUserName, flags.identityUserPassword);
|
|
79
|
+
}
|
|
80
|
+
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);
|
|
81
|
+
const takeDefaults = (_c = flags['take-defaults']) !== null && _c !== void 0 ? _c : false;
|
|
82
|
+
return [partial, interactionMode, takeDefaults];
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
buildCandidate_silently(partial, rootMap) {
|
|
86
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
87
|
+
partial.privateOwner = this.ioc.get(codiac_ops_common_1.UserNameTenantCode).tenantCode;
|
|
88
|
+
partial.identitySpec = { type: contracts_1.SecurityAccountTypeEnum.servicePrincipal, name: '' };
|
|
89
|
+
partial.ingressDef = undefined;
|
|
90
|
+
partial.nodeCount = undefined;
|
|
91
|
+
if (!partial.name)
|
|
92
|
+
throw new Error('Cluster name must be provided.');
|
|
93
|
+
if (!partial.provider)
|
|
94
|
+
throw new Error('Provider must be provided.');
|
|
95
|
+
if (!partial.providerSubscription)
|
|
96
|
+
throw new Error('Provider subscription must be provided.');
|
|
97
|
+
if (!partial.locationName)
|
|
98
|
+
throw new Error('Location must be provided.');
|
|
99
|
+
if (!partial.nodeSpec)
|
|
100
|
+
throw new Error('Node spec must be provided.');
|
|
101
|
+
if (!partial.startingNodeCount)
|
|
102
|
+
throw new Error('Node quantity must be provided.');
|
|
103
|
+
if (!partial.providerGroup)
|
|
104
|
+
throw new Error('Resource group must be provided.');
|
|
105
|
+
if (!partial.k8sVersion)
|
|
106
|
+
throw new Error('Kubernetes version must be provided.');
|
|
107
|
+
return partial;
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
buildCandidate_interactively(partial, takeDefaults, rootMap) {
|
|
111
|
+
var _a;
|
|
112
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
113
|
+
let confirmed = false;
|
|
114
|
+
do {
|
|
115
|
+
this._ui.userMessage(this._styler.bold('Bootstrap Cluster:'));
|
|
116
|
+
const allPvds = this.cspUiFactory.getAllClusterProviders(this.ioc);
|
|
117
|
+
partial.provider = yield this.uiCloudPvd.promptForCloudProvider(allPvds, partial.provider);
|
|
118
|
+
const cspUser = yield this.uiCloudPvd.promptForCloudProviderCreds(this.ioc, partial.provider, undefined, undefined, undefined, partial.providerSubscription);
|
|
119
|
+
if (partial.providerSubscription == undefined && cspUser.subscriptionId) {
|
|
120
|
+
partial.providerSubscription = cspUser.subscriptionId;
|
|
121
|
+
}
|
|
122
|
+
const regCfg = this.cspUiFactory.create(partial.provider, this.ioc);
|
|
123
|
+
const def = yield regCfg.defineCluster(partial, undefined, cspUser.cspTenantId);
|
|
124
|
+
partial = def.spec;
|
|
125
|
+
if (typeof partial.startingNodeCount === 'string') {
|
|
126
|
+
partial.startingNodeCount = Number.parseInt(partial.startingNodeCount);
|
|
127
|
+
}
|
|
128
|
+
console.clear();
|
|
129
|
+
this._ui.userMessage((0, prettify_1.prettify)(partial, [(_a = partial.identityInstance) === null || _a === void 0 ? void 0 : _a.password]));
|
|
130
|
+
this._ui.userMessage('Codiac will: provision this cluster, install the Codiac agent, then install the default cluster stack.');
|
|
131
|
+
confirmed = yield this._ui.promptConfirm('confirmBootstrap', `Continue? (hit 'N' to edit your input)`, false);
|
|
132
|
+
} while (!confirmed);
|
|
133
|
+
partial.privateOwner = this.ioc.get(codiac_ops_common_1.UserNameTenantCode).tenantCode;
|
|
134
|
+
partial.identitySpec = { type: contracts_1.SecurityAccountTypeEnum.servicePrincipal, name: '' };
|
|
135
|
+
return partial;
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
buildCommandString(candidate, cmd) {
|
|
139
|
+
cmd.push(candidate.name);
|
|
140
|
+
cmd.push('--provider', candidate.provider);
|
|
141
|
+
cmd.push('--providerSubscription', candidate.providerSubscription);
|
|
142
|
+
cmd.push('--resourceGroup', candidate.providerGroup);
|
|
143
|
+
cmd.push('--location', candidate.locationName);
|
|
144
|
+
cmd.push('--nodeSpec', candidate.nodeSpec);
|
|
145
|
+
cmd.push('--nodeQty', candidate.startingNodeCount.toString());
|
|
146
|
+
if (candidate.nodesMin != undefined)
|
|
147
|
+
cmd.push('--nodesMin', candidate.nodesMin.toString());
|
|
148
|
+
if (candidate.nodesMax != undefined)
|
|
149
|
+
cmd.push('--nodesMax', candidate.nodesMax.toString());
|
|
150
|
+
if (candidate.k8sVersion)
|
|
151
|
+
cmd.push('--k8sVersion', candidate.k8sVersion);
|
|
152
|
+
if (candidate.networkPlugin)
|
|
153
|
+
cmd.push('--networkPlugin', candidate.networkPlugin);
|
|
154
|
+
if (candidate.subnet && !_.isEmpty(candidate.subnet)) {
|
|
155
|
+
(typeof candidate.subnet === 'string' ? [candidate.subnet] : candidate.subnet)
|
|
156
|
+
.forEach(s => cmd.push('--subnet', s));
|
|
157
|
+
}
|
|
158
|
+
if (candidate.identityInstance) {
|
|
159
|
+
cmd.push('--identityUserName', candidate.identityInstance.name);
|
|
160
|
+
cmd.push('--identityUserId', candidate.identityInstance.id);
|
|
161
|
+
if (candidate.identityInstance.password)
|
|
162
|
+
cmd.push('--identityUserPassword', candidate.identityInstance.password);
|
|
163
|
+
}
|
|
164
|
+
cmd.push('--silent');
|
|
165
|
+
return cmd;
|
|
166
|
+
}
|
|
167
|
+
executeTask(candidate) {
|
|
168
|
+
var _a, _b;
|
|
169
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
170
|
+
try {
|
|
171
|
+
if (candidate.provider === contracts_2.CloudProviderEnum.localMachine) {
|
|
172
|
+
yield this.msgClient.connect();
|
|
173
|
+
this.localCommandRunner.listen();
|
|
174
|
+
}
|
|
175
|
+
const result = yield this.watcher.triggerAndWatch((correlationId, socketId) => this.genRelayClient.Call.clusterCreateAsync({
|
|
176
|
+
spec: candidate,
|
|
177
|
+
socketId,
|
|
178
|
+
skipInit: false,
|
|
179
|
+
correlationId,
|
|
180
|
+
}));
|
|
181
|
+
if (result.error) {
|
|
182
|
+
this.logger.error(`Error bootstrapping cluster [${candidate.name}]: ${(_a = result.message) !== null && _a !== void 0 ? _a : ''}; ${result.error.message}`, result.error);
|
|
183
|
+
this._ui.userMessage(`${this._styler.colorCritical('ERROR!')} Error bootstrapping cluster [${candidate.name}]: ${(_b = result.message) !== null && _b !== void 0 ? _b : ''}; ${result.error.message}`);
|
|
184
|
+
}
|
|
185
|
+
else if (!result.success) {
|
|
186
|
+
this.logger.notice(`Cluster bootstrap failed. ${result.message}`);
|
|
187
|
+
this._ui.userMessage(`Cluster bootstrap failed. ${result.message}`);
|
|
188
|
+
}
|
|
189
|
+
else {
|
|
190
|
+
const msg = `${this._styler.colorGood('SUCCESS!')} Cluster [${this._styler.hilite(candidate.name)}] bootstrapped successfully.`;
|
|
191
|
+
this.logger.notice(msg, result);
|
|
192
|
+
this._ui.userMessage(msg);
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
catch (err) {
|
|
196
|
+
throw err;
|
|
197
|
+
}
|
|
198
|
+
});
|
|
199
|
+
}
|
|
200
|
+
stringToEnum(enumObj, str) {
|
|
201
|
+
if (str === undefined)
|
|
202
|
+
return undefined;
|
|
203
|
+
return Object.values(enumObj).includes(str) ? str : undefined;
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
exports.default = ClusterBootstrap;
|
|
207
|
+
ClusterBootstrap.description = 'Provisions a new cluster, installs the Codiac agent, and installs the default cluster stack in a single operation. ' +
|
|
208
|
+
'This is the recommended path for standing up a new cluster. ' +
|
|
209
|
+
'Use `cod cluster provision`, `cod cluster agent install`, and `cod cluster stack install` separately if you need control over individual steps.';
|
|
210
|
+
ClusterBootstrap.aliases = [];
|
|
211
|
+
ClusterBootstrap.examples = [
|
|
212
|
+
{
|
|
213
|
+
description: 'Bootstrap a cluster interactively.',
|
|
214
|
+
command: '<%= config.bin %> <%= command.id %>',
|
|
215
|
+
},
|
|
216
|
+
{
|
|
217
|
+
description: 'Bootstrap an Azure cluster non-interactively.',
|
|
218
|
+
command: '<%= config.bin %> <%= command.id %> my-cluster --provider azure --providerSubscription <sub-id> --resourceGroup my-rg --location eastus --nodeSpec Standard_D4s_v3 --nodeQty 3 --k8sVersion 1.29.0 --silent',
|
|
219
|
+
},
|
|
220
|
+
{
|
|
221
|
+
description: 'Renders the equivalent silent command and then executes.',
|
|
222
|
+
command: '<%= config.bin %> <%= command.id %> my-cluster --echo',
|
|
223
|
+
},
|
|
224
|
+
{
|
|
225
|
+
description: 'Renders the equivalent silent command without executing.',
|
|
226
|
+
command: '<%= config.bin %> <%= command.id %> my-cluster --to-script',
|
|
227
|
+
},
|
|
228
|
+
];
|
|
229
|
+
ClusterBootstrap.flags = {
|
|
230
|
+
help: core_1.Flags.help({ char: 'h' }),
|
|
231
|
+
provider: core_1.Flags.string({
|
|
232
|
+
options: [contracts_2.CloudProviderEnum.azure, contracts_2.CloudProviderEnum.aws, contracts_2.CloudProviderEnum.localMachine],
|
|
233
|
+
description: 'Cloud service provider on which to provision the cluster.',
|
|
234
|
+
}),
|
|
235
|
+
providerSubscription: core_1.Flags.string({
|
|
236
|
+
char: 's',
|
|
237
|
+
description: 'The cloud provider subscription Id (Azure) or account Id (AWS) under which to create the cluster.',
|
|
238
|
+
}),
|
|
239
|
+
resourceGroup: core_1.Flags.string({
|
|
240
|
+
char: 'g',
|
|
241
|
+
description: '(Azure only) The resource group to create for the cluster.',
|
|
242
|
+
}),
|
|
243
|
+
location: core_1.Flags.string({
|
|
244
|
+
char: 'l',
|
|
245
|
+
description: 'The short name of the regional data center in which the cluster is to reside.',
|
|
246
|
+
}),
|
|
247
|
+
nodeSpec: core_1.Flags.string({
|
|
248
|
+
char: 'n',
|
|
249
|
+
description: 'The VM size to use for cluster nodes.',
|
|
250
|
+
}),
|
|
251
|
+
nodeQty: core_1.Flags.integer({
|
|
252
|
+
char: 'q',
|
|
253
|
+
default: 2,
|
|
254
|
+
description: 'Starting node count for the cluster.',
|
|
255
|
+
}),
|
|
256
|
+
k8sVersion: core_1.Flags.string({
|
|
257
|
+
description: 'The version of Kubernetes to install on the cluster.',
|
|
258
|
+
}),
|
|
259
|
+
nodesMin: core_1.Flags.integer({
|
|
260
|
+
description: 'Minimum number of nodes for autoscaling.',
|
|
261
|
+
}),
|
|
262
|
+
nodesMax: core_1.Flags.integer({
|
|
263
|
+
description: 'Maximum number of nodes for autoscaling.',
|
|
264
|
+
}),
|
|
265
|
+
subnet: core_1.Flags.string({
|
|
266
|
+
char: 'k',
|
|
267
|
+
multiple: true,
|
|
268
|
+
description: '(Optional) Resource Id of the subnet in which to create the cluster.',
|
|
269
|
+
}),
|
|
270
|
+
networkPlugin: core_1.Flags.string({
|
|
271
|
+
description: '(Optional) Network plugin for the cluster.',
|
|
272
|
+
options: ['kubenet', 'azure'],
|
|
273
|
+
}),
|
|
274
|
+
identityUserName: core_1.Flags.string({
|
|
275
|
+
char: 'u',
|
|
276
|
+
description: '(Optional) Name of the Service Principal or Managed Identity to execute as.',
|
|
277
|
+
}),
|
|
278
|
+
identityUserId: core_1.Flags.string({
|
|
279
|
+
description: '(Optional) Id of the Service Principal or Managed Identity to execute as.',
|
|
280
|
+
}),
|
|
281
|
+
identityUserPassword: core_1.Flags.string({
|
|
282
|
+
char: 'c',
|
|
283
|
+
hidden: true,
|
|
284
|
+
description: '(Optional) Password of the Service Principal or Managed Identity to execute as.',
|
|
285
|
+
}),
|
|
286
|
+
// Interaction mode flags
|
|
287
|
+
silent: core_1.Flags.boolean({
|
|
288
|
+
exclusive: ['echo', 'to-script'],
|
|
289
|
+
description: 'Executes without any user interaction; fails on missing or invalid arguments.',
|
|
290
|
+
relationships: [
|
|
291
|
+
{ type: 'all', flags: ['k8sVersion', 'provider', 'providerSubscription', 'location', 'nodeSpec', 'nodeQty', 'resourceGroup'] },
|
|
292
|
+
],
|
|
293
|
+
}),
|
|
294
|
+
echo: core_1.Flags.boolean({
|
|
295
|
+
exclusive: ['to-script', 'silent'],
|
|
296
|
+
description: 'Renders the equivalent non-interactive command for future use before executing.',
|
|
297
|
+
}),
|
|
298
|
+
'to-script': core_1.Flags.boolean({
|
|
299
|
+
exclusive: ['echo', 'silent'],
|
|
300
|
+
description: 'Renders the equivalent non-interactive command without executing it.',
|
|
301
|
+
}),
|
|
302
|
+
'take-defaults': core_1.Flags.boolean({
|
|
303
|
+
exclusive: ['silent'],
|
|
304
|
+
description: 'Prevents prompting for confirmation on parameters that were passed in or automatically set to default values.',
|
|
305
|
+
}),
|
|
306
|
+
};
|
|
307
|
+
ClusterBootstrap.args = {
|
|
308
|
+
name: core_1.Args.string({ description: 'Name of the cluster to provision.' }),
|
|
309
|
+
};
|
|
310
|
+
//# sourceMappingURL=bootstrap.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../../src/commands/cluster/bootstrap.ts"],"names":[],"mappings":"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"}
|
|
@@ -28,9 +28,4 @@ export default class ClusterConnect extends CommandBaseExecTenant<IClusterReques
|
|
|
28
28
|
buildCommandString(candidate: IClusterRequest, cmd: string[]): string[];
|
|
29
29
|
executeTask(candidate: IClusterRequest): Promise<void>;
|
|
30
30
|
private loadClusters;
|
|
31
|
-
/** Renders a user-friendly cluster description. */
|
|
32
|
-
private describe;
|
|
33
|
-
/** Returns the name of the selected cluster.
|
|
34
|
-
*/
|
|
35
|
-
private promptForCluster;
|
|
36
31
|
}
|
|
@@ -66,7 +66,7 @@ class ClusterConnect extends command_base_exec_tenant_1.CommandBaseExecTenant {
|
|
|
66
66
|
selected = clusters[0];
|
|
67
67
|
}
|
|
68
68
|
else {
|
|
69
|
-
selected = yield this.promptForCluster(clusters, partial.cluster);
|
|
69
|
+
selected = yield this.rootMapUtils.promptForCluster(clusters, partial.cluster);
|
|
70
70
|
}
|
|
71
71
|
partial.cluster = selected.name;
|
|
72
72
|
// Prompt for output format
|
|
@@ -120,31 +120,6 @@ class ClusterConnect extends command_base_exec_tenant_1.CommandBaseExecTenant {
|
|
|
120
120
|
}
|
|
121
121
|
});
|
|
122
122
|
}
|
|
123
|
-
/** Renders a user-friendly cluster description. */
|
|
124
|
-
describe(cluster) {
|
|
125
|
-
return `${cluster.name} ${this._styler.dim("(" + cluster.provider + (cluster.locationName ? ", " + cluster.locationName : "") + ")")}`;
|
|
126
|
-
}
|
|
127
|
-
/** Returns the name of the selected cluster.
|
|
128
|
-
*/
|
|
129
|
-
promptForCluster(clusters, defaultValue) {
|
|
130
|
-
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
131
|
-
let output;
|
|
132
|
-
let keep = false;
|
|
133
|
-
if (defaultValue && clusters.find(c => c.name === defaultValue)) {
|
|
134
|
-
keep = yield this._ui.promptConfirm("clusterNameConfirm", `Target Cluster: [${this._styler.hilite(defaultValue)}]`, true);
|
|
135
|
-
}
|
|
136
|
-
if (keep === true) {
|
|
137
|
-
output = clusters.find(c => c.name === defaultValue);
|
|
138
|
-
}
|
|
139
|
-
else {
|
|
140
|
-
let choices = clusters
|
|
141
|
-
.map(c => { return { name: this.describe(c), value: c.name }; });
|
|
142
|
-
let selectedName = (yield this._ui.promptSelect("clusterName", "Select the target cluster:", choices));
|
|
143
|
-
output = clusters.find(c => c.name === selectedName);
|
|
144
|
-
}
|
|
145
|
-
return output;
|
|
146
|
-
});
|
|
147
|
-
}
|
|
148
123
|
}
|
|
149
124
|
exports.default = ClusterConnect;
|
|
150
125
|
ClusterConnect.description = 'Downloads the kube config context for the current user on the given cluster, writes it to the local machine kube config file, and sets it as the current default context. NOTE: Codiac keeps its own cache of the cluster connection credentials; this command is purely to facilitate the use of other software on the local machine that the user may want to point to clusters in Codiac.';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connect.js","sourceRoot":"","sources":["../../../src/commands/cluster/connect.ts"],"names":[],"mappings":";;;AAEA,sCAAyC;AACzC,4BAA6B;AAC7B,mEAAiE;AACjE,6EAAuE;AACvE,uDAAmD;
|
|
1
|
+
{"version":3,"file":"connect.js","sourceRoot":"","sources":["../../../src/commands/cluster/connect.ts"],"names":[],"mappings":"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"}
|