@catladder/cli 0.0.0-f-asdf-0dd6e40c → 0.0.0-main-5f142cf2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/apps/catenv/catenv.js +15 -12
- package/dist/apps/catenv/catenv.js.map +1 -1
- package/dist/apps/shell/commands/mongodb/projectMongoDestroyMember.js +6 -6
- package/dist/apps/shell/commands/mongodb/projectMongoDestroyMember.js.map +1 -1
- package/dist/apps/shell/commands/mongodb/projectMongoGetShell.js +6 -6
- package/dist/apps/shell/commands/mongodb/projectMongoGetShell.js.map +1 -1
- package/dist/apps/shell/commands/mongodb/projectMongoPortForward.js +5 -5
- package/dist/apps/shell/commands/mongodb/projectMongoPortForward.js.map +1 -1
- package/dist/apps/shell/commands/mongodb/utils/index.d.ts +3 -4
- package/dist/apps/shell/commands/mongodb/utils/index.js +6 -6
- package/dist/apps/shell/commands/mongodb/utils/index.js.map +1 -1
- package/dist/apps/shell/commands/project/commandCloudSqlProxy.js +10 -7
- package/dist/apps/shell/commands/project/commandCloudSqlProxy.js.map +1 -1
- package/dist/apps/shell/commands/project/commandConfigSecrets.js +2 -39
- package/dist/apps/shell/commands/project/commandConfigSecrets.js.map +1 -1
- package/dist/apps/shell/commands/project/commandDeletePods.js +5 -5
- package/dist/apps/shell/commands/project/commandDeletePods.js.map +1 -1
- package/dist/apps/shell/commands/project/commandDeleteProject.js +3 -3
- package/dist/apps/shell/commands/project/commandDeleteProject.js.map +1 -1
- package/dist/apps/shell/commands/project/commandGetShell.js +6 -6
- package/dist/apps/shell/commands/project/commandGetShell.js.map +1 -1
- package/dist/apps/shell/commands/project/commandInitGitlab.js +64 -38
- package/dist/apps/shell/commands/project/commandInitGitlab.js.map +1 -1
- package/dist/apps/shell/commands/project/commandInitProject.js +138 -129
- package/dist/apps/shell/commands/project/commandInitProject.js.map +1 -1
- package/dist/apps/shell/commands/project/commandListPods.js +5 -5
- package/dist/apps/shell/commands/project/commandListPods.js.map +1 -1
- package/dist/apps/shell/commands/project/commandNamespace.js +3 -3
- package/dist/apps/shell/commands/project/commandNamespace.js.map +1 -1
- package/dist/apps/shell/commands/project/commandOpenCostDashboard.js +4 -4
- package/dist/apps/shell/commands/project/commandOpenCostDashboard.js.map +1 -1
- package/dist/apps/shell/commands/project/commandOpenDashboard.js +11 -5
- package/dist/apps/shell/commands/project/commandOpenDashboard.js.map +1 -1
- package/dist/apps/shell/commands/project/commandOpenEnv.js +1 -1
- package/dist/apps/shell/commands/project/commandOpenEnv.js.map +1 -1
- package/dist/apps/shell/commands/project/commandOpenGrafana.js +4 -4
- package/dist/apps/shell/commands/project/commandOpenGrafana.js.map +1 -1
- package/dist/apps/shell/commands/project/commandOpenGrafanaPod.js +5 -5
- package/dist/apps/shell/commands/project/commandOpenGrafanaPod.js.map +1 -1
- package/dist/apps/shell/commands/project/commandOpenLogs.js +4 -4
- package/dist/apps/shell/commands/project/commandOpenLogs.js.map +1 -1
- package/dist/apps/shell/commands/project/commandPauseProject.js +3 -3
- package/dist/apps/shell/commands/project/commandPauseProject.js.map +1 -1
- package/dist/apps/shell/commands/project/commandPortForward.js +5 -5
- package/dist/apps/shell/commands/project/commandPortForward.js.map +1 -1
- package/dist/apps/shell/commands/project/commandTriggerCronjob.js +4 -4
- package/dist/apps/shell/commands/project/commandTriggerCronjob.js.map +1 -1
- package/dist/apps/shell/commands/project/index.js +0 -2
- package/dist/apps/shell/commands/project/index.js.map +1 -1
- package/dist/apps/shell/commands/project/utils/ensureCluster.d.ts +1 -1
- package/dist/apps/shell/commands/project/utils/ensureCluster.js +12 -10
- package/dist/apps/shell/commands/project/utils/ensureCluster.js.map +1 -1
- package/dist/apps/shell/commands/project/utils/ensureNamespace.d.ts +1 -2
- package/dist/apps/shell/commands/project/utils/ensureNamespace.js +2 -2
- package/dist/apps/shell/commands/project/utils/ensureNamespace.js.map +1 -1
- package/dist/config/getProjectConfig.d.ts +2 -0
- package/dist/config/getProjectConfig.js +12 -1
- package/dist/config/getProjectConfig.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types/types.d.ts +0 -1
- package/dist/utils/cluster.d.ts +7 -0
- package/dist/utils/cluster.js +15 -3
- package/dist/utils/cluster.js.map +1 -1
- package/dist/utils/gitlab.d.ts +1 -1
- package/dist/utils/gitlab.js.map +1 -1
- package/dist/utils/projects/index.d.ts +4 -14
- package/dist/utils/projects/index.js +10 -74
- package/dist/utils/projects/index.js.map +1 -1
- package/package.json +1 -1
- package/src/apps/catenv/catenv.ts +36 -26
- package/src/apps/shell/commands/mongodb/projectMongoDestroyMember.ts +6 -6
- package/src/apps/shell/commands/mongodb/projectMongoGetShell.ts +9 -7
- package/src/apps/shell/commands/mongodb/projectMongoPortForward.ts +10 -5
- package/src/apps/shell/commands/mongodb/utils/index.ts +9 -8
- package/src/apps/shell/commands/project/commandCloudSqlProxy.ts +14 -7
- package/src/apps/shell/commands/project/commandConfigSecrets.ts +3 -44
- package/src/apps/shell/commands/project/commandDeletePods.ts +5 -6
- package/src/apps/shell/commands/project/commandDeleteProject.ts +4 -5
- package/src/apps/shell/commands/project/commandGetShell.ts +7 -7
- package/src/apps/shell/commands/project/commandInitGitlab.ts +97 -51
- package/src/apps/shell/commands/project/commandInitProject.ts +8 -0
- package/src/apps/shell/commands/project/commandListPods.ts +5 -6
- package/src/apps/shell/commands/project/commandNamespace.ts +6 -4
- package/src/apps/shell/commands/project/commandOpenCostDashboard.ts +7 -4
- package/src/apps/shell/commands/project/commandOpenDashboard.ts +18 -6
- package/src/apps/shell/commands/project/commandOpenEnv.ts +1 -1
- package/src/apps/shell/commands/project/commandOpenGrafana.ts +4 -4
- package/src/apps/shell/commands/project/commandOpenGrafanaPod.ts +5 -5
- package/src/apps/shell/commands/project/commandOpenLogs.ts +4 -4
- package/src/apps/shell/commands/project/commandPauseProject.ts +6 -4
- package/src/apps/shell/commands/project/commandPortForward.ts +5 -5
- package/src/apps/shell/commands/project/commandTriggerCronjob.ts +4 -4
- package/src/apps/shell/commands/project/index.ts +1 -2
- package/src/apps/shell/commands/project/utils/ensureCluster.ts +12 -10
- package/src/apps/shell/commands/project/utils/ensureNamespace.ts +2 -3
- package/src/config/getProjectConfig.ts +12 -0
- package/src/types/types.ts +0 -2
- package/src/utils/cluster.ts +15 -2
- package/src/utils/gitlab.ts +2 -2
- package/src/utils/projects/index.ts +10 -89
- package/dist/apps/shell/commands/project/commandVariables.d.ts +0 -3
- package/dist/apps/shell/commands/project/commandVariables.js +0 -16
- package/dist/apps/shell/commands/project/commandVariables.js.map +0 -1
- package/dist/apps/shell/commands/project/utils/monorepo.d.ts +0 -10
- package/dist/apps/shell/commands/project/utils/monorepo.js +0 -25
- package/dist/apps/shell/commands/project/utils/monorepo.js.map +0 -1
- package/src/apps/shell/commands/project/commandVariables.ts +0 -13
- package/src/apps/shell/commands/project/utils/monorepo.ts +0 -23
|
@@ -1,35 +1,38 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const getProjectConfig_1 = require("../../config/getProjectConfig");
|
|
3
4
|
const projects_1 = require("../../utils/projects");
|
|
4
|
-
const
|
|
5
|
+
const path_1 = require("path");
|
|
6
|
+
const getCurrentComponentName = async (components) => {
|
|
7
|
+
const gitRoot = await (0, projects_1.getGitRoot)();
|
|
8
|
+
const currentDir = process.cwd();
|
|
9
|
+
return Object.keys(components).find((c) => currentDir.startsWith((0, path_1.join)(gitRoot, components[c].dir)));
|
|
10
|
+
};
|
|
5
11
|
const sanitizeEnvVarName = (name) => name.replace(/[\s\-.]+/g, "_");
|
|
6
12
|
exports.default = async () => {
|
|
7
|
-
const
|
|
8
|
-
const
|
|
13
|
+
const { components } = (0, getProjectConfig_1.getProjectConfig)();
|
|
14
|
+
const currentComponent = await getCurrentComponentName(components);
|
|
9
15
|
let variables = {};
|
|
10
|
-
if (
|
|
11
|
-
variables = await (0,
|
|
16
|
+
if (currentComponent) {
|
|
17
|
+
variables = await (0, getProjectConfig_1.getEnvVars)(null, "dev-local:" + currentComponent);
|
|
12
18
|
}
|
|
13
|
-
else
|
|
19
|
+
else {
|
|
14
20
|
// when in a monorep and not in a subapp, merge all env vars.
|
|
15
21
|
// this is not 100% correct, but better than not exporting any vars at all
|
|
16
22
|
// so we also add prefixed variants
|
|
17
|
-
variables = await
|
|
18
|
-
const subappvars = await (0,
|
|
23
|
+
variables = await Object.keys(components).reduce(async (acc, componentName) => {
|
|
24
|
+
const subappvars = await (0, getProjectConfig_1.getEnvVars)(null, "dev-local:" + componentName);
|
|
19
25
|
return {
|
|
20
26
|
...(await acc),
|
|
21
27
|
...subappvars,
|
|
22
28
|
// also add prefixed variants in case
|
|
23
29
|
...Object.fromEntries(Object.entries(subappvars).map(([key, value]) => [
|
|
24
|
-
`${sanitizeEnvVarName(
|
|
30
|
+
`${sanitizeEnvVarName(componentName.toUpperCase())}_${key}`,
|
|
25
31
|
value,
|
|
26
32
|
])),
|
|
27
33
|
};
|
|
28
34
|
}, {});
|
|
29
35
|
}
|
|
30
|
-
else {
|
|
31
|
-
variables = await (0, projects_1.getAllEnvVars)("dev-local");
|
|
32
|
-
}
|
|
33
36
|
console.log(Object.entries(variables)
|
|
34
37
|
.map(([key, value]) => `export ${key}='${value}'`)
|
|
35
38
|
.join("\n"));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"catenv.js","sourceRoot":"","sources":["../../../src/apps/catenv/catenv.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"catenv.js","sourceRoot":"","sources":["../../../src/apps/catenv/catenv.ts"],"names":[],"mappings":";;AACA,oEAA6E;AAC7E,mDAAkD;AAClD,+BAA4B;AAC5B,MAAM,uBAAuB,GAAG,KAAK,EACnC,UAA2C,EAC3C,EAAE;IACF,MAAM,OAAO,GAAG,MAAM,IAAA,qBAAU,GAAE,CAAC;IACnC,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IACjC,OAAO,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CACxC,UAAU,CAAC,UAAU,CAAC,IAAA,WAAI,EAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CACxD,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,kBAAkB,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;AAC5E,kBAAe,KAAK,IAAI,EAAE;IACxB,MAAM,EAAE,UAAU,EAAE,GAAG,IAAA,mCAAgB,GAAE,CAAC;IAE1C,MAAM,gBAAgB,GAAG,MAAM,uBAAuB,CAAC,UAAU,CAAC,CAAC;IACnE,IAAI,SAAS,GAAG,EAAE,CAAC;IACnB,IAAI,gBAAgB,EAAE;QACpB,SAAS,GAAG,MAAM,IAAA,6BAAU,EAAC,IAAI,EAAE,YAAY,GAAG,gBAAgB,CAAC,CAAC;KACrE;SAAM;QACL,6DAA6D;QAC7D,0EAA0E;QAC1E,mCAAmC;QACnC,SAAS,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,CAC9C,KAAK,EAAE,GAAG,EAAE,aAAa,EAAE,EAAE;YAC3B,MAAM,UAAU,GAAG,MAAM,IAAA,6BAAU,EAAC,IAAI,EAAE,YAAY,GAAG,aAAa,CAAC,CAAC;YACxE,OAAO;gBACL,GAAG,CAAC,MAAM,GAAG,CAAC;gBACd,GAAG,UAAU;gBACb,qCAAqC;gBACrC,GAAG,MAAM,CAAC,WAAW,CACnB,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC;oBAC/C,GAAG,kBAAkB,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC,IAAI,GAAG,EAAE;oBAC3D,KAAK;iBACN,CAAC,CACH;aACF,CAAC;QACJ,CAAC,EACD,EAAE,CACH,CAAC;KACH;IAED,OAAO,CAAC,GAAG,CACT,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC;SACtB,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,UAAU,GAAG,KAAK,KAAK,GAAG,CAAC;SACjD,IAAI,CAAC,IAAI,CAAC,CACd,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -18,10 +18,10 @@ const removeFinalizerAndDelete = async (namespace, type, name) => {
|
|
|
18
18
|
]);
|
|
19
19
|
};
|
|
20
20
|
exports.default = (vorpal) => vorpal
|
|
21
|
-
.command("project-mongo-destroy-member <
|
|
21
|
+
.command("project-mongo-destroy-member <envComponent>", "DESTROY a member of a replicaset in order to reinitialize it")
|
|
22
22
|
.autocomplete(autocompletions_1.envAutocompletion)
|
|
23
|
-
.action(async function ({
|
|
24
|
-
await ensureCluster_1.default.call(this);
|
|
23
|
+
.action(async function ({ envComponent }) {
|
|
24
|
+
await ensureCluster_1.default.call(this, envComponent);
|
|
25
25
|
this.log("this command tries to delete a (secondary) member of the replicaset, it's persistent volume claim (pvc) and the volume");
|
|
26
26
|
this.log("");
|
|
27
27
|
this.log("this is useful, if you update the stateful set with new volume configuration (different size or storage class)");
|
|
@@ -41,9 +41,9 @@ exports.default = (vorpal) => vorpal
|
|
|
41
41
|
if (!understood) {
|
|
42
42
|
throw new Error("abort");
|
|
43
43
|
}
|
|
44
|
-
const namespace = await (0, projects_1.getProjectNamespace)(
|
|
45
|
-
const mongodbPods = await (0, utils_1.getMongoDbPodsWithReplInfo)(
|
|
46
|
-
const pvcs = await (0, projects_1.getProjectPvcs)(
|
|
44
|
+
const namespace = await (0, projects_1.getProjectNamespace)(envComponent);
|
|
45
|
+
const mongodbPods = await (0, utils_1.getMongoDbPodsWithReplInfo)(envComponent);
|
|
46
|
+
const pvcs = await (0, projects_1.getProjectPvcs)(envComponent);
|
|
47
47
|
const secondaries = mongodbPods.filter((pod) => !pod.isMaster);
|
|
48
48
|
if (secondaries.length === 0) {
|
|
49
49
|
(0, log_1.logError)(this, "sorry, no pods found");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projectMongoDestroyMember.js","sourceRoot":"","sources":["../../../../../src/apps/shell/commands/mongodb/projectMongoDestroyMember.ts"],"names":[],"mappings":";;;;;AAAA,iEAA6C;AAE7C,+CAAiD;AACjD,yDAGoC;AACpC,sEAAqE;AACrE,mFAA2D;AAC3D,mCAAqD;AAErD,MAAM,eAAe,GAAG,KAAK,EAC3B,SAAiB,EACjB,IAA0B,EAC1B,IAAY,EACZ,EAAE,CACF,IAAA,4BAAI,EACF,6BAA6B,SAAS,IAAI,IAAI,IAAI,IAAI,wCAAwC,CAC/F,CAAC;AAEJ,MAAM,cAAc,GAAG,KAAK,EAC1B,SAAiB,EACjB,IAA0B,EAC1B,IAAY,EACZ,EAAE,CAAC,IAAA,4BAAI,EAAC,8BAA8B,SAAS,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC,CAAC;AAErE,MAAM,wBAAwB,GAAG,KAAK,EACpC,SAAiB,EACjB,IAA0B,EAC1B,IAAY,EACZ,EAAE;IACF,OAAO,OAAO,CAAC,GAAG,CAAC;QACjB,eAAe,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC;QACtC,MAAM,cAAc,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC;KAC5C,CAAC,CAAC;AACL,CAAC,CAAC;AACF,kBAAe,CAAC,MAAc,EAAE,EAAE,CAChC,MAAM;KACH,OAAO,CACN,
|
|
1
|
+
{"version":3,"file":"projectMongoDestroyMember.js","sourceRoot":"","sources":["../../../../../src/apps/shell/commands/mongodb/projectMongoDestroyMember.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,12 +9,12 @@ const autocompletions_1 = require("../project/utils/autocompletions");
|
|
|
9
9
|
const ensureCluster_1 = __importDefault(require("../project/utils/ensureCluster"));
|
|
10
10
|
const utils_1 = require("./utils");
|
|
11
11
|
exports.default = (vorpal) => vorpal
|
|
12
|
-
.command("project-mongo-get-shell <
|
|
12
|
+
.command("project-mongo-get-shell <envComponent>", "get a shell to a mongodb in the environment")
|
|
13
13
|
.autocomplete(autocompletions_1.envAutocompletion)
|
|
14
|
-
.action(async function ({
|
|
15
|
-
await ensureCluster_1.default.call(this);
|
|
16
|
-
const namespace = await (0, projects_1.getProjectNamespace)(
|
|
17
|
-
const podNames = await (0, utils_1.getProjectMongodbAllPodsSortedWithLabel)(
|
|
14
|
+
.action(async function ({ envComponent }) {
|
|
15
|
+
await ensureCluster_1.default.call(this, envComponent);
|
|
16
|
+
const namespace = await (0, projects_1.getProjectNamespace)(envComponent);
|
|
17
|
+
const podNames = await (0, utils_1.getProjectMongodbAllPodsSortedWithLabel)(envComponent);
|
|
18
18
|
if (podNames.length === 0) {
|
|
19
19
|
(0, log_1.logError)(this, "sorry, no pods found");
|
|
20
20
|
return;
|
|
@@ -28,7 +28,7 @@ exports.default = (vorpal) => vorpal
|
|
|
28
28
|
type: "list",
|
|
29
29
|
name: "podName",
|
|
30
30
|
choices: podNames,
|
|
31
|
-
message: "Which pod? 🤔"
|
|
31
|
+
message: "Which pod? 🤔",
|
|
32
32
|
})).podName;
|
|
33
33
|
}
|
|
34
34
|
return (0, utils_1.getMongodbShell)(namespace, podName);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projectMongoGetShell.js","sourceRoot":"","sources":["../../../../../src/apps/shell/commands/mongodb/projectMongoGetShell.ts"],"names":[],"mappings":";;;;;AACA,+CAAiD;AACjD,yDAAiE;AACjE,sEAAqE;AACrE,mFAA2D;AAC3D,mCAGiB;AAEjB,kBAAe,CAAC,MAAc,EAAE,EAAE,CAChC,MAAM;KACH,OAAO,CACN
|
|
1
|
+
{"version":3,"file":"projectMongoGetShell.js","sourceRoot":"","sources":["../../../../../src/apps/shell/commands/mongodb/projectMongoGetShell.ts"],"names":[],"mappings":";;;;;AACA,+CAAiD;AACjD,yDAAiE;AACjE,sEAAqE;AACrE,mFAA2D;AAC3D,mCAGiB;AAEjB,kBAAe,CAAC,MAAc,EAAE,EAAE,CAChC,MAAM;KACH,OAAO,CACN,wCAAwC,EACxC,6CAA6C,CAC9C;KACA,YAAY,CAAC,mCAAiB,CAAC;KAC/B,MAAM,CAAC,KAAK,WAAW,EAAE,YAAY,EAAE;IACtC,MAAM,uBAAa,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IAC7C,MAAM,SAAS,GAAG,MAAM,IAAA,8BAAmB,EAAC,YAAY,CAAC,CAAC;IAC1D,MAAM,QAAQ,GAAG,MAAM,IAAA,+CAAuC,EAC5D,YAAY,CACb,CAAC;IACF,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;QACzB,IAAA,cAAQ,EAAC,IAAI,EAAE,sBAAsB,CAAC,CAAC;QACvC,OAAO;KACR;IACD,IAAI,OAAO,CAAC;IACZ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;QACzB,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;KACvB;SAAM;QACL,OAAO,GAAG,CACR,MAAM,IAAI,CAAC,MAAM,CAAC;YAChB,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,QAAQ;YACjB,OAAO,EAAE,eAAe;SACzB,CAAC,CACH,CAAC,OAAO,CAAC;KACX;IAED,OAAO,IAAA,uBAAe,EAAC,SAAS,EAAE,OAAO,CAAC,CAAC;AAC7C,CAAC,CAAC,CAAC"}
|
|
@@ -10,12 +10,12 @@ const autocompletions_1 = require("../project/utils/autocompletions");
|
|
|
10
10
|
const ensureCluster_1 = __importDefault(require("../project/utils/ensureCluster"));
|
|
11
11
|
const utils_1 = require("./utils");
|
|
12
12
|
exports.default = (vorpal) => vorpal
|
|
13
|
-
.command("project-mongo-port-forward <
|
|
13
|
+
.command("project-mongo-port-forward <envComponent>", "port foward to a mongodb")
|
|
14
14
|
.autocomplete(autocompletions_1.envAutocompletion)
|
|
15
|
-
.action(async function ({
|
|
16
|
-
await ensureCluster_1.default.call(this);
|
|
17
|
-
const namespace = await (0, projects_1.getProjectNamespace)(
|
|
18
|
-
const podNames = await (0, utils_1.getProjectMongodbAllPodsSortedWithLabel)(
|
|
15
|
+
.action(async function ({ envComponent }) {
|
|
16
|
+
await ensureCluster_1.default.call(this, envComponent);
|
|
17
|
+
const namespace = await (0, projects_1.getProjectNamespace)(envComponent);
|
|
18
|
+
const podNames = await (0, utils_1.getProjectMongodbAllPodsSortedWithLabel)(envComponent);
|
|
19
19
|
if (podNames.length === 0) {
|
|
20
20
|
(0, log_1.logError)(this, "sorry, no pods found");
|
|
21
21
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projectMongoPortForward.js","sourceRoot":"","sources":["../../../../../src/apps/shell/commands/mongodb/projectMongoPortForward.ts"],"names":[],"mappings":";;;;;AACA,+CAAiD;AACjD,+DAAiE;AACjE,yDAAiE;AACjE,sEAAqE;AACrE,mFAA2D;AAC3D,mCAAkE;AAElE,kBAAe,CAAC,MAAc,EAAE,EAAE,CAChC,MAAM;KACH,OAAO,
|
|
1
|
+
{"version":3,"file":"projectMongoPortForward.js","sourceRoot":"","sources":["../../../../../src/apps/shell/commands/mongodb/projectMongoPortForward.ts"],"names":[],"mappings":";;;;;AACA,+CAAiD;AACjD,+DAAiE;AACjE,yDAAiE;AACjE,sEAAqE;AACrE,mFAA2D;AAC3D,mCAAkE;AAElE,kBAAe,CAAC,MAAc,EAAE,EAAE,CAChC,MAAM;KACH,OAAO,CACN,2CAA2C,EAC3C,0BAA0B,CAC3B;KACA,YAAY,CAAC,mCAAiB,CAAC;KAC/B,MAAM,CAAC,KAAK,WAAW,EAAE,YAAY,EAAE;IACtC,MAAM,uBAAa,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IAC7C,MAAM,SAAS,GAAG,MAAM,IAAA,8BAAmB,EAAC,YAAY,CAAC,CAAC;IAC1D,MAAM,QAAQ,GAAG,MAAM,IAAA,+CAAuC,EAC5D,YAAY,CACb,CAAC;IACF,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;QACzB,IAAA,cAAQ,EAAC,IAAI,EAAE,sBAAsB,CAAC,CAAC;QACvC,OAAO;KACR;IACD,IAAI,OAAO,CAAC;IACZ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;QACzB,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;KAC7B;SAAM;QACL,OAAO,GAAG,CACR,MAAM,IAAI,CAAC,MAAM,CAAC;YAChB,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,QAAQ;YACjB,OAAO,EAAE,eAAe;SACzB,CAAC,CACH,CAAC,OAAO,CAAC;KACX;IAED,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC;QACtC,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,OAAO;QAChB,OAAO,EAAE,cAAc;KACxB,CAAC,CAAC;IACH,OAAO,IAAA,8BAAgB,EAAC,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;AAChE,CAAC,CAAC,CAAC"}
|
|
@@ -1,14 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
export declare const getProjectMongodbAllPods: (env: Env) => Promise<string[]>;
|
|
1
|
+
export declare const getProjectMongodbAllPods: (envComponent: string) => Promise<string[]>;
|
|
3
2
|
export declare const getMongodbShell: (namespace: string, podName: string) => Promise<void>;
|
|
4
3
|
export declare const executeMongodbCommand: (namespace: string, podName: string, mongoCommand: string) => Promise<any>;
|
|
5
4
|
export declare const podIsMaster: (namespace: string, podName: string) => Promise<any>;
|
|
6
|
-
export declare const getMongoDbPodsWithReplInfo: (
|
|
5
|
+
export declare const getMongoDbPodsWithReplInfo: (envComponent: string) => Promise<{
|
|
7
6
|
podName: string;
|
|
8
7
|
componentName: string;
|
|
9
8
|
isMaster: any;
|
|
10
9
|
}[]>;
|
|
11
|
-
export declare const getProjectMongodbAllPodsSortedWithLabel: (
|
|
10
|
+
export declare const getProjectMongodbAllPodsSortedWithLabel: (envComponent: string) => Promise<{
|
|
12
11
|
value: string;
|
|
13
12
|
name: string;
|
|
14
13
|
}[]>;
|
|
@@ -4,7 +4,7 @@ exports.getProjectMongodbAllPodsSortedWithLabel = exports.getMongoDbPodsWithRepl
|
|
|
4
4
|
const child_process_promise_1 = require("child-process-promise");
|
|
5
5
|
const projects_1 = require("../../../../../utils/projects");
|
|
6
6
|
const filterMongoDbs = (podNames) => podNames.filter((name) => name.includes("mongodb-replicaset"));
|
|
7
|
-
const getProjectMongodbAllPods = async (
|
|
7
|
+
const getProjectMongodbAllPods = async (envComponent) => filterMongoDbs(await (0, projects_1.getProjectPodNames)(envComponent));
|
|
8
8
|
exports.getProjectMongodbAllPods = getProjectMongodbAllPods;
|
|
9
9
|
const getMongodbShell = async (namespace, podName) => {
|
|
10
10
|
const command = `kubectl exec -it ${podName} --namespace ${namespace} mongo`;
|
|
@@ -40,17 +40,17 @@ const podIsMaster = async (namespace, podName) => {
|
|
|
40
40
|
};
|
|
41
41
|
exports.podIsMaster = podIsMaster;
|
|
42
42
|
const spaces = (n) => " ".repeat(n);
|
|
43
|
-
const getMongoDbPodsWithReplInfo = async (
|
|
44
|
-
const namespace = await (0, projects_1.getProjectNamespace)(
|
|
45
|
-
return (await Promise.all((await (0, exports.getProjectMongodbAllPods)(
|
|
43
|
+
const getMongoDbPodsWithReplInfo = async (envComponent) => {
|
|
44
|
+
const namespace = await (0, projects_1.getProjectNamespace)(envComponent);
|
|
45
|
+
return (await Promise.all((await (0, exports.getProjectMongodbAllPods)(envComponent)).map(async (podName) => ({
|
|
46
46
|
podName,
|
|
47
47
|
componentName: podName.replace(/-mongodb-replicaset-[0-9]+/, ""),
|
|
48
48
|
isMaster: await (0, exports.podIsMaster)(namespace, podName),
|
|
49
49
|
})))).sort((podA, podB) => (podA.isMaster ? (podB.isMaster ? 0 : -1) : 1));
|
|
50
50
|
};
|
|
51
51
|
exports.getMongoDbPodsWithReplInfo = getMongoDbPodsWithReplInfo;
|
|
52
|
-
const getProjectMongodbAllPodsSortedWithLabel = async (
|
|
53
|
-
const pods = await (0, exports.getMongoDbPodsWithReplInfo)(
|
|
52
|
+
const getProjectMongodbAllPodsSortedWithLabel = async (envComponent) => {
|
|
53
|
+
const pods = await (0, exports.getMongoDbPodsWithReplInfo)(envComponent);
|
|
54
54
|
const maxComponentNameLength = Math.max(...pods.map((c) => c.componentName.length));
|
|
55
55
|
return pods.map(({ podName, isMaster, componentName }) => ({
|
|
56
56
|
value: podName,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/apps/shell/commands/mongodb/utils/index.ts"],"names":[],"mappings":";;;AAAA,iEAAoD;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/apps/shell/commands/mongodb/utils/index.ts"],"names":[],"mappings":";;;AAAA,iEAAoD;AACpD,4DAGuC;AAEvC,MAAM,cAAc,GAAG,CAAC,QAAkB,EAAE,EAAE,CAC5C,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC,CAAC;AAE1D,MAAM,wBAAwB,GAAG,KAAK,EAAE,YAAoB,EAAE,EAAE,CACrE,cAAc,CAAC,MAAM,IAAA,6BAAkB,EAAC,YAAY,CAAC,CAAC,CAAC;AAD5C,QAAA,wBAAwB,4BACoB;AAElD,MAAM,eAAe,GAAG,KAAK,EAAE,SAAiB,EAAE,OAAe,EAAE,EAAE;IAC1E,MAAM,OAAO,GAAG,oBAAoB,OAAO,gBAAgB,SAAS,QAAQ,CAAC;IAC7E,IAAI;QACF,MAAM,IAAA,6BAAK,EAAC,OAAO,EAAE;YACnB,KAAK,EAAE,IAAI;YACX,KAAK,EAAE,SAAS;YAChB,GAAG,EAAE;gBACH,GAAG,OAAO,CAAC,GAAG;gBACd,KAAK,EAAE,EAAE;aACV;SACF,CAAC,CAAC;KACJ;IAAC,OAAO,CAAC,EAAE;QACV,EAAE;KACH;AACH,CAAC,CAAC;AAdW,QAAA,eAAe,mBAc1B;AAEK,MAAM,qBAAqB,GAAG,KAAK,EACxC,SAAiB,EACjB,OAAe,EACf,YAAoB,EACpB,EAAE;IACF,MAAM,WAAW,GAAG,oBAAoB,OAAO,gBAAgB,SAAS,4CAA4C,YAAY,IAAI,CAAC;IACrI,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAA,4BAAI,EAAC,WAAW,EAAE;QACzC,GAAG,EAAE;YACH,GAAG,OAAO,CAAC,GAAG;YACd,KAAK,EAAE,EAAE;SACV;KACF,CAAC,CAAC;IAEH,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AAC5B,CAAC,CAAC;AAdW,QAAA,qBAAqB,yBAchC;AAEK,MAAM,WAAW,GAAG,KAAK,EAAE,SAAiB,EAAE,OAAe,EAAE,EAAE;IACtE,MAAM,MAAM,GAAG,MAAM,IAAA,6BAAqB,EACxC,SAAS,EACT,OAAO,EACP,eAAe,CAChB,CAAC;IAEF,OAAO,MAAM,CAAC,QAAQ,CAAC;AACzB,CAAC,CAAC;AARW,QAAA,WAAW,eAQtB;AAEF,MAAM,MAAM,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAErC,MAAM,0BAA0B,GAAG,KAAK,EAAE,YAAoB,EAAE,EAAE;IACvE,MAAM,SAAS,GAAG,MAAM,IAAA,8BAAmB,EAAC,YAAY,CAAC,CAAC;IAC1D,OAAO,CACL,MAAM,OAAO,CAAC,GAAG,CACf,CACE,MAAM,IAAA,gCAAwB,EAAC,YAAY,CAAC,CAC7C,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;QACxB,OAAO;QACP,aAAa,EAAE,OAAO,CAAC,OAAO,CAAC,4BAA4B,EAAE,EAAE,CAAC;QAChE,QAAQ,EAAE,MAAM,IAAA,mBAAW,EAAC,SAAS,EAAE,OAAO,CAAC;KAChD,CAAC,CAAC,CACJ,CACF,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACzE,CAAC,CAAC;AAbW,QAAA,0BAA0B,8BAarC;AAEK,MAAM,uCAAuC,GAAG,KAAK,EAC1D,YAAoB,EACpB,EAAE;IACF,MAAM,IAAI,GAAG,MAAM,IAAA,kCAA0B,EAAC,YAAY,CAAC,CAAC;IAC5D,MAAM,sBAAsB,GAAG,IAAI,CAAC,GAAG,CACrC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAC3C,CAAC;IACF,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC,CAAC;QACzD,KAAK,EAAE,OAAO;QACd,IAAI,EAAE,KAAK,aAAa,GAAG,MAAM,CAC/B,sBAAsB,GAAG,aAAa,CAAC,MAAM,CAC9C,IAAI,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,aAAa,KAAK,OAAO,EAAE;KAC5D,CAAC,CAAC,CAAC;AACN,CAAC,CAAC;AAbW,QAAA,uCAAuC,2CAalD"}
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const pipeline_1 = require("@catladder/pipeline");
|
|
3
4
|
const child_process_promise_1 = require("child-process-promise");
|
|
4
5
|
const fs_extra_1 = require("fs-extra");
|
|
5
6
|
const tmp_promise_1 = require("tmp-promise");
|
|
6
7
|
const constants_1 = require("../../../../config/constants");
|
|
7
8
|
const getProjectConfig_1 = require("../../../../config/getProjectConfig");
|
|
8
9
|
const passwordstore_1 = require("../../../../utils/passwordstore");
|
|
9
|
-
const projects_1 = require("../../../../utils/projects");
|
|
10
10
|
exports.default = (vorpal) => vorpal
|
|
11
|
-
.command("project-cloud-sql-proxy <
|
|
11
|
+
.command("project-cloud-sql-proxy <envComponent>", "proxy to cloud sql db")
|
|
12
12
|
.autocomplete((0, getProjectConfig_1.getEnvComponentChoices)())
|
|
13
|
-
.action(async function ({
|
|
14
|
-
const
|
|
13
|
+
.action(async function ({ envComponent }) {
|
|
14
|
+
const { env } = (0, getProjectConfig_1.parseChoice)(envComponent);
|
|
15
15
|
const config = (0, getProjectConfig_1.getProjectConfig)();
|
|
16
16
|
// skynet-164509:europe-west6:pvl-cyclomania-review=tcp:5432
|
|
17
17
|
const { localPort } = await this.prompt({
|
|
@@ -20,12 +20,15 @@ exports.default = (vorpal) => vorpal
|
|
|
20
20
|
default: "54320",
|
|
21
21
|
message: "Local port: ",
|
|
22
22
|
});
|
|
23
|
-
const POSTGRESQL_PASSWORD = (await (0,
|
|
23
|
+
const POSTGRESQL_PASSWORD = (await (0, getProjectConfig_1.getEnvVars)(this, envComponent))
|
|
24
24
|
?.POSTGRESQL_PASSWORD;
|
|
25
|
-
const
|
|
26
|
-
|
|
25
|
+
const context = await (0, getProjectConfig_1.getPipelineContextByChoice)(envComponent);
|
|
26
|
+
if (!(0, pipeline_1.isOfDeployType)(context.componentConfig.deploy, "kubernetes")) {
|
|
27
|
+
throw new Error("currently only supported for kubernetes deployment");
|
|
28
|
+
}
|
|
27
29
|
this.log(`postgres-PW: ${POSTGRESQL_PASSWORD}`);
|
|
28
30
|
this.log("");
|
|
31
|
+
const values = context.componentConfig.deploy.values;
|
|
29
32
|
const projectId = values?.cloudsql?.projectId || constants_1.GOOGLE_PROJECT;
|
|
30
33
|
const defaultInstanceId = `${config.customerName}-${config.appName}-${env}`;
|
|
31
34
|
const instanceId = values?.cloudsql?.instanceId || defaultInstanceId;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commandCloudSqlProxy.js","sourceRoot":"","sources":["../../../../../src/apps/shell/commands/project/commandCloudSqlProxy.ts"],"names":[],"mappings":";;AAAA,iEAA8C;AAC9C,uCAAqC;AACrC,6CAAuC;AAEvC,4DAGsC;AACtC,
|
|
1
|
+
{"version":3,"file":"commandCloudSqlProxy.js","sourceRoot":"","sources":["../../../../../src/apps/shell/commands/project/commandCloudSqlProxy.ts"],"names":[],"mappings":";;AAAA,kDAAqD;AACrD,iEAA8C;AAC9C,uCAAqC;AACrC,6CAAuC;AAEvC,4DAGsC;AACtC,0EAM6C;AAC7C,mEAA2D;AAE3D,kBAAe,CAAC,MAAc,EAAE,EAAE,CAChC,MAAM;KACH,OAAO,CAAC,wCAAwC,EAAE,uBAAuB,CAAC;KAC1E,YAAY,CAAC,IAAA,yCAAsB,GAAE,CAAC;KACtC,MAAM,CAAC,KAAK,WAAW,EAAE,YAAY,EAAE;IACtC,MAAM,EAAE,GAAG,EAAE,GAAG,IAAA,8BAAW,EAAC,YAAY,CAAC,CAAC;IAE1C,MAAM,MAAM,GAAG,IAAA,mCAAgB,GAAE,CAAC;IAClC,4DAA4D;IAE5D,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC;QACtC,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,OAAO;QAChB,OAAO,EAAE,cAAc;KACxB,CAAC,CAAC;IAEH,MAAM,mBAAmB,GAAG,CAAC,MAAM,IAAA,6BAAU,EAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QAChE,EAAE,mBAAmB,CAAC;IAExB,MAAM,OAAO,GAAG,MAAM,IAAA,6CAA0B,EAAC,YAAY,CAAC,CAAC;IAC/D,IAAI,CAAC,IAAA,yBAAc,EAAC,OAAO,CAAC,eAAe,CAAC,MAAM,EAAE,YAAY,CAAC,EAAE;QACjE,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;KACvE;IACD,IAAI,CAAC,GAAG,CAAC,gBAAgB,mBAAmB,EAAE,CAAC,CAAC;IAChD,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEb,MAAM,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC;IAErD,MAAM,SAAS,GAAG,MAAM,EAAE,QAAQ,EAAE,SAAS,IAAI,0BAAc,CAAC;IAEhE,MAAM,iBAAiB,GAAG,GAAG,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,OAAO,IAAI,GAAG,EAAE,CAAC;IAC5E,MAAM,UAAU,GAAG,MAAM,EAAE,QAAQ,EAAE,UAAU,IAAI,iBAAiB,CAAC;IAErE,MAAM,aAAa,GAAG,cAAc,CAAC,CAAC,sBAAsB;IAC5D,MAAM,MAAM,GAAG,MAAM,EAAE,QAAQ,EAAE,MAAM,IAAI,aAAa,CAAC;IAEzD,MAAM,YAAY,GAAG,GAAG,SAAS,IAAI,MAAM,IAAI,UAAU,QAAQ,SAAS,EAAE,CAAC;IAE7E,MAAM,mBAAmB,GAAG,MAAM,IAAA,wBAAQ,EAAC,sCAA0B,CAAC,CAAC;IACvE,MAAM,IAAA,sBAAQ,EAAC,KAAK,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE;QAC7C,MAAM,IAAA,oBAAS,EAAC,WAAW,EAAE,mBAAmB,CAAC,CAAC;QAElD,MAAM,IAAA,6BAAK,EACT,iBAAiB,EACjB,CAAC,YAAY,EAAE,YAAY,EAAE,kBAAkB,EAAE,WAAW,CAAC,EAC7D;YACE,KAAK,EAAE,SAAS;YAChB,KAAK,EAAE,IAAI;SACZ,CACF,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1,19 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
3
|
/* eslint-disable no-constant-condition */
|
|
7
|
-
const client_node_1 = require("@kubernetes/client-node");
|
|
8
|
-
const js_yaml_1 = __importDefault(require("js-yaml"));
|
|
9
4
|
const lodash_1 = require("lodash");
|
|
10
5
|
const getProjectConfig_1 = require("../../../../config/getProjectConfig");
|
|
11
|
-
const k8sApi_1 = __importDefault(require("../../../../k8sApi"));
|
|
12
6
|
const editAsFile_1 = require("../../../../utils/editAsFile");
|
|
13
7
|
const gitlab_1 = require("../../../../utils/gitlab");
|
|
14
|
-
const log_1 = require("../../../../utils/log");
|
|
15
|
-
const passwordstore_1 = require("../../../../utils/passwordstore");
|
|
16
|
-
const projects_1 = require("../../../../utils/projects");
|
|
17
8
|
const promise_1 = require("../../../../utils/promise");
|
|
18
9
|
const autocompletions_1 = require("./utils/autocompletions");
|
|
19
10
|
exports.default = (vorpal) => {
|
|
@@ -90,29 +81,8 @@ exports.default = (vorpal) => {
|
|
|
90
81
|
*/
|
|
91
82
|
});
|
|
92
83
|
};
|
|
93
|
-
async function createKubernetesSecret(namespace, secretName, stringData, existingSecretValues) {
|
|
94
|
-
const secret = new client_node_1.V1Secret();
|
|
95
|
-
secret.metadata = {
|
|
96
|
-
name: secretName,
|
|
97
|
-
};
|
|
98
|
-
secret.data = existingSecretValues;
|
|
99
|
-
secret.stringData = stringData;
|
|
100
|
-
this.log(`😼 upserting secret '${secretName}' (push it real good!)`);
|
|
101
|
-
try {
|
|
102
|
-
await k8sApi_1.default.deleteNamespacedSecret(secretName, namespace, "true");
|
|
103
|
-
}
|
|
104
|
-
catch (e) {
|
|
105
|
-
// ignore
|
|
106
|
-
}
|
|
107
|
-
try {
|
|
108
|
-
await k8sApi_1.default.createNamespacedSecret(namespace, secret);
|
|
109
|
-
}
|
|
110
|
-
catch (e) {
|
|
111
|
-
(0, log_1.logError)(this, "error pushing secrets", e.body.message);
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
84
|
async function createNewEnvInPass(env, secretEnvVarsMapping) {
|
|
115
|
-
const passPath = await
|
|
85
|
+
// const passPath = await getPassPath(env);
|
|
116
86
|
this.log("Your selected env is not yet in pass. Do you want to copy it from another env? ");
|
|
117
87
|
const noAnswer = "No, I will create a new one from scratch.";
|
|
118
88
|
const { sourceEnv } = await this.prompt({
|
|
@@ -121,13 +91,6 @@ async function createNewEnvInPass(env, secretEnvVarsMapping) {
|
|
|
121
91
|
choices: [...autocompletions_1.envAutocompletion.filter((e) => e !== env), noAnswer],
|
|
122
92
|
message: "Do you want to copy an env?",
|
|
123
93
|
});
|
|
124
|
-
|
|
125
|
-
await (0, passwordstore_1.insertPass)(passPath, js_yaml_1.default.safeDump((0, lodash_1.mapValues)(secretEnvVarsMapping, (value, key) => "fillme")));
|
|
126
|
-
}
|
|
127
|
-
else {
|
|
128
|
-
const sourceEnvPath = await (0, projects_1.getPassPath)(sourceEnv);
|
|
129
|
-
const stdout = await (0, passwordstore_1.readPass)(sourceEnvPath);
|
|
130
|
-
await (0, passwordstore_1.insertPass)(passPath, stdout);
|
|
131
|
-
}
|
|
94
|
+
// TODO: reimplenent
|
|
132
95
|
}
|
|
133
96
|
//# sourceMappingURL=commandConfigSecrets.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commandConfigSecrets.js","sourceRoot":"","sources":["../../../../../src/apps/shell/commands/project/commandConfigSecrets.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"commandConfigSecrets.js","sourceRoot":"","sources":["../../../../../src/apps/shell/commands/project/commandConfigSecrets.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,12 +9,12 @@ const projects_1 = require("../../../../utils/projects");
|
|
|
9
9
|
const autocompletions_1 = require("./utils/autocompletions");
|
|
10
10
|
const ensureCluster_1 = __importDefault(require("./utils/ensureCluster"));
|
|
11
11
|
exports.default = (vorpal) => vorpal
|
|
12
|
-
.command("project-delete-pods <
|
|
12
|
+
.command("project-delete-pods <envComponent>", "delete / restart pods")
|
|
13
13
|
.autocomplete(autocompletions_1.envAutocompletion)
|
|
14
|
-
.action(async function ({
|
|
15
|
-
await ensureCluster_1.default.call(this);
|
|
16
|
-
const namespace = await (0, projects_1.getProjectNamespace)(
|
|
17
|
-
const podNames = await (0, projects_1.getProjectPodNames)(
|
|
14
|
+
.action(async function ({ envComponent }) {
|
|
15
|
+
await ensureCluster_1.default.call(this, envComponent);
|
|
16
|
+
const namespace = await (0, projects_1.getProjectNamespace)(envComponent);
|
|
17
|
+
const podNames = await (0, projects_1.getProjectPodNames)(envComponent);
|
|
18
18
|
if (podNames.length === 0) {
|
|
19
19
|
(0, log_1.logError)(this, "sorry, no pods found");
|
|
20
20
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commandDeletePods.js","sourceRoot":"","sources":["../../../../../src/apps/shell/commands/project/commandDeletePods.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"commandDeletePods.js","sourceRoot":"","sources":["../../../../../src/apps/shell/commands/project/commandDeletePods.ts"],"names":[],"mappings":";;;;;AACA,gEAAwC;AAExC,+CAAiD;AACjD,yDAGoC;AACpC,6DAA4D;AAC5D,0EAAkD;AAElD,kBAAe,CAAC,MAAc,EAAE,EAAE,CAChC,MAAM;KACH,OAAO,CAAC,oCAAoC,EAAE,uBAAuB,CAAC;KACtE,YAAY,CAAC,mCAAiB,CAAC;KAC/B,MAAM,CAAC,KAAK,WAAW,EAAE,YAAY,EAAE;IACtC,MAAM,uBAAa,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IAC7C,MAAM,SAAS,GAAG,MAAM,IAAA,8BAAmB,EAAC,YAAY,CAAC,CAAC;IAC1D,MAAM,QAAQ,GAAG,MAAM,IAAA,6BAAkB,EAAC,YAAY,CAAC,CAAC;IACxD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;QACzB,IAAA,cAAQ,EAAC,IAAI,EAAE,sBAAsB,CAAC,CAAC;QACvC,OAAO;KACR;IACD,MAAM,EAAE,gBAAgB,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC;QAC7C,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,kBAAkB;QACxB,OAAO,EAAE,QAAQ;QACjB,OAAO,EAAE,uCAAuC;KACjD,CAAC,CAAC;IAEH,IAAI,CAAC,GAAG,CACN,oEAAoE,CACrE,CAAC;IACF,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACb,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACrD,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACb,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC;QAC3C,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,gBAAgB;QACtB,OAAO,EAAE,iBAAiB;KAC3B,CAAC,CAAC;IACH,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACb,IAAI,cAAc,EAAE;QAClB,KAAK,MAAM,OAAO,IAAI,gBAAgB,EAAE;YACtC,MAAM,gBAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;YAC7D,IAAI,CAAC,GAAG,CAAC,gBAAgB,OAAO,GAAG,CAAC,CAAC;SACtC;KACF;AACH,CAAC,CAAC,CAAC"}
|
|
@@ -4,10 +4,10 @@ const child_process_promise_1 = require("child-process-promise");
|
|
|
4
4
|
const projects_1 = require("../../../../utils/projects");
|
|
5
5
|
const autocompletions_1 = require("./utils/autocompletions");
|
|
6
6
|
exports.default = (vorpal) => vorpal
|
|
7
|
-
.command("project-delete <
|
|
7
|
+
.command("project-delete <envComponent>", "deletes a environment of a project (it deletes the namespace)")
|
|
8
8
|
.autocomplete(autocompletions_1.envAutocompletion)
|
|
9
|
-
.action(async function ({
|
|
10
|
-
const namespace = await (0, projects_1.getProjectNamespace)(
|
|
9
|
+
.action(async function ({ envComponent }) {
|
|
10
|
+
const namespace = await (0, projects_1.getProjectNamespace)(envComponent);
|
|
11
11
|
const { shouldContinue } = await this.prompt({
|
|
12
12
|
type: "confirm",
|
|
13
13
|
name: "shouldContinue",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commandDeleteProject.js","sourceRoot":"","sources":["../../../../../src/apps/shell/commands/project/commandDeleteProject.ts"],"names":[],"mappings":";;AACA,
|
|
1
|
+
{"version":3,"file":"commandDeleteProject.js","sourceRoot":"","sources":["../../../../../src/apps/shell/commands/project/commandDeleteProject.ts"],"names":[],"mappings":";;AACA,iEAA6C;AAC7C,yDAAiE;AACjE,6DAA4D;AAE5D,kBAAe,CAAC,MAAc,EAAE,EAAE,CAChC,MAAM;KACH,OAAO,CACN,+BAA+B,EAC/B,+DAA+D,CAChE;KACA,YAAY,CAAC,mCAAiB,CAAC;KAC/B,MAAM,CAAC,KAAK,WAAW,EAAE,YAAY,EAAE;IACtC,MAAM,SAAS,GAAG,MAAM,IAAA,8BAAmB,EAAC,YAAY,CAAC,CAAC;IAC1D,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC;QAC3C,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,gBAAgB;QACtB,OAAO,EAAE,wBAAwB,SAAS,kGAAkG;KAC7I,CAAC,CAAC;IAEH,IAAI,CAAC,cAAc,EAAE;QACnB,OAAO;KACR;IAED,MAAM,WAAW,GAAG,4BAA4B,SAAS,EAAE,CAAC;IAC5D,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAA,4BAAI,EAAC,WAAW,EAAE;QACzC,GAAG,EAAE;YACH,GAAG,OAAO,CAAC,GAAG;YACd,KAAK,EAAE,EAAE;SACV;KACF,CAAC,CAAC;IACH,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACnB,CAAC,CAAC,CAAC"}
|
|
@@ -9,12 +9,12 @@ const shell_1 = require("../../../../utils/shell");
|
|
|
9
9
|
const autocompletions_1 = require("./utils/autocompletions");
|
|
10
10
|
const ensureCluster_1 = __importDefault(require("./utils/ensureCluster"));
|
|
11
11
|
exports.default = (vorpal) => vorpal
|
|
12
|
-
.command("project-get-shell <
|
|
12
|
+
.command("project-get-shell <envComponent>", "get a shell to a pod in the environment")
|
|
13
13
|
.autocomplete(autocompletions_1.envAutocompletion)
|
|
14
|
-
.action(async function ({
|
|
15
|
-
await ensureCluster_1.default.call(this);
|
|
16
|
-
const namespace = await (0, projects_1.getProjectNamespace)(
|
|
17
|
-
const podNames = await (0, projects_1.getProjectPodNames)(
|
|
14
|
+
.action(async function ({ envComponent }) {
|
|
15
|
+
await ensureCluster_1.default.call(this, envComponent);
|
|
16
|
+
const namespace = await (0, projects_1.getProjectNamespace)(envComponent);
|
|
17
|
+
const podNames = await (0, projects_1.getProjectPodNames)(envComponent);
|
|
18
18
|
if (podNames.length === 0) {
|
|
19
19
|
(0, log_1.logError)(this, "sorry, no pods found");
|
|
20
20
|
return;
|
|
@@ -23,7 +23,7 @@ exports.default = (vorpal) => vorpal
|
|
|
23
23
|
type: "list",
|
|
24
24
|
name: "podName",
|
|
25
25
|
choices: podNames,
|
|
26
|
-
message: "Which pod? 🤔"
|
|
26
|
+
message: "Which pod? 🤔",
|
|
27
27
|
});
|
|
28
28
|
return (0, shell_1.getShell)(namespace, podName);
|
|
29
29
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commandGetShell.js","sourceRoot":"","sources":["../../../../../src/apps/shell/commands/project/commandGetShell.ts"],"names":[],"mappings":";;;;;AACA,+CAAiD;AACjD,yDAGoC;AACpC,mDAAmD;AAEnD,6DAA4D;AAC5D,0EAAkD;AAElD,kBAAe,CAAC,MAAc,EAAE,EAAE,CAChC,MAAM;KACH,OAAO,CACN,
|
|
1
|
+
{"version":3,"file":"commandGetShell.js","sourceRoot":"","sources":["../../../../../src/apps/shell/commands/project/commandGetShell.ts"],"names":[],"mappings":";;;;;AACA,+CAAiD;AACjD,yDAGoC;AACpC,mDAAmD;AAEnD,6DAA4D;AAC5D,0EAAkD;AAElD,kBAAe,CAAC,MAAc,EAAE,EAAE,CAChC,MAAM;KACH,OAAO,CACN,kCAAkC,EAClC,yCAAyC,CAC1C;KACA,YAAY,CAAC,mCAAiB,CAAC;KAC/B,MAAM,CAAC,KAAK,WAAW,EAAE,YAAY,EAAE;IACtC,MAAM,uBAAa,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IAC7C,MAAM,SAAS,GAAG,MAAM,IAAA,8BAAmB,EAAC,YAAY,CAAC,CAAC;IAC1D,MAAM,QAAQ,GAAG,MAAM,IAAA,6BAAkB,EAAC,YAAY,CAAC,CAAC;IACxD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;QACzB,IAAA,cAAQ,EAAC,IAAI,EAAE,sBAAsB,CAAC,CAAC;QACvC,OAAO;KACR;IACD,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC;QACpC,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,QAAQ;QACjB,OAAO,EAAE,eAAe;KACzB,CAAC,CAAC;IAEH,OAAO,IAAA,gBAAQ,EAAC,SAAS,EAAE,OAAO,CAAC,CAAC;AACtC,CAAC,CAAC,CAAC"}
|
|
@@ -3,7 +3,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const pipeline_1 = require("@catladder/pipeline");
|
|
6
7
|
const open_1 = __importDefault(require("open"));
|
|
8
|
+
const getProjectConfig_1 = require("../../../../config/getProjectConfig");
|
|
7
9
|
const cluster_1 = require("../../../../utils/cluster");
|
|
8
10
|
const gitlab_1 = require("../../../../utils/gitlab");
|
|
9
11
|
const passwordstore_1 = require("../../../../utils/passwordstore/");
|
|
@@ -12,56 +14,80 @@ exports.default = (vorpal) => vorpal
|
|
|
12
14
|
.command("project-init-gitlab", "Initializes the gitlab repo, e.g. connects the cluster to it")
|
|
13
15
|
.action(async function () {
|
|
14
16
|
const { id: projectId, web_url: projectWebUrl } = await (0, gitlab_1.getProjectInfo)(this);
|
|
15
|
-
await (0,
|
|
16
|
-
const
|
|
17
|
-
|
|
17
|
+
const existingGitlabClusters = await (0, gitlab_1.doGitlabRequest)(this, `projects/${projectId}/clusters`);
|
|
18
|
+
const existingClusters = existingGitlabClusters.map((c) => {
|
|
19
|
+
const found = (0, cluster_1.getClusterByFullName)(c.name);
|
|
20
|
+
return {
|
|
21
|
+
name: found ? found.name : null,
|
|
22
|
+
fullName: c.name,
|
|
23
|
+
};
|
|
24
|
+
});
|
|
25
|
+
if (existingClusters.length === 0) {
|
|
18
26
|
this.log("");
|
|
19
27
|
this.log("there is no cluster on the current project?");
|
|
20
28
|
}
|
|
21
29
|
else {
|
|
22
30
|
this.log("there are already these clusters on the gitlab: ");
|
|
23
31
|
this.log("");
|
|
24
|
-
|
|
32
|
+
existingClusters.forEach((cluster) => this.log(` - ${cluster.name || "unknown"} (${cluster.fullName})`));
|
|
25
33
|
}
|
|
26
34
|
this.log("");
|
|
27
|
-
this.log("your project specifies the following
|
|
35
|
+
this.log("your project specifies the following clusters:");
|
|
28
36
|
this.log("");
|
|
29
|
-
const
|
|
30
|
-
const
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
37
|
+
const allContext = (0, getProjectConfig_1.getAllPipelineContexts)();
|
|
38
|
+
const allDeployments = allContext.map((c) => c.componentConfig.deploy);
|
|
39
|
+
const configuredClusterNames = allDeployments.reduce((acc, c) => {
|
|
40
|
+
if ((0, pipeline_1.isOfDeployType)(c, "kubernetes") &&
|
|
41
|
+
!acc.includes(c.cluster || "production")) {
|
|
42
|
+
return [...acc, c.cluster || "production"];
|
|
43
|
+
}
|
|
44
|
+
return acc;
|
|
45
|
+
}, []);
|
|
46
|
+
const configuredClusters = configuredClusterNames.map((c) => ({
|
|
47
|
+
name: c,
|
|
48
|
+
config: (0, cluster_1.getClusterByName)(c),
|
|
49
|
+
}));
|
|
50
|
+
configuredClusters.forEach((cluster) => this.log(` - ${cluster.name || "unknown"} (${cluster.config.fullName})`));
|
|
35
51
|
this.log("");
|
|
36
|
-
const
|
|
37
|
-
type: "confirm",
|
|
38
|
-
name: "shouldContinue",
|
|
39
|
-
message: "Should I add the this cluster ? 🤔 ",
|
|
40
|
-
});
|
|
52
|
+
const missingClusters = configuredClusters.filter((c) => !existingClusters.some((exist) => exist.name === c.name));
|
|
41
53
|
this.log("");
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
name: configuredCluster.fullName,
|
|
54
|
-
managed: false,
|
|
55
|
-
platform_kubernetes_attributes: {
|
|
56
|
-
api_url,
|
|
57
|
-
ca_cert,
|
|
58
|
-
token,
|
|
59
|
-
namespace: await (0, projects_1.getProjectNamespace)("prod"),
|
|
60
|
-
},
|
|
54
|
+
this.log("These clusters are not configured yet on gitlab:");
|
|
55
|
+
this.log("");
|
|
56
|
+
missingClusters.forEach((cluster) => this.log(` - ${cluster.name || "unknown"} (${cluster.config.fullName})`));
|
|
57
|
+
this.log("");
|
|
58
|
+
for (const cluster of missingClusters) {
|
|
59
|
+
this.log(`${cluster} (${cluster.config.fullName})`);
|
|
60
|
+
this.log("");
|
|
61
|
+
const { shouldContinue } = await this.prompt({
|
|
62
|
+
type: "confirm",
|
|
63
|
+
name: "shouldContinue",
|
|
64
|
+
message: "Should I add the this cluster ? 🤔 ",
|
|
61
65
|
});
|
|
62
|
-
|
|
63
|
-
if (
|
|
64
|
-
|
|
66
|
+
this.log("");
|
|
67
|
+
if (shouldContinue) {
|
|
68
|
+
const { api_url, passCredentials } = cluster.config;
|
|
69
|
+
if (!api_url) {
|
|
70
|
+
throw new Error("no api_url on this cluster!");
|
|
71
|
+
}
|
|
72
|
+
if (!passCredentials) {
|
|
73
|
+
throw new Error("no passCredentials on this cluster!");
|
|
74
|
+
}
|
|
75
|
+
const token = await (0, passwordstore_1.readPass)(passCredentials.token);
|
|
76
|
+
const ca_cert = await (0, passwordstore_1.readPass)(passCredentials.ca_cert);
|
|
77
|
+
const postResult = await (0, gitlab_1.doGitlabRequest)(this, `projects/${projectId}/clusters/user`, {
|
|
78
|
+
name: cluster.config.fullName,
|
|
79
|
+
managed: false,
|
|
80
|
+
platform_kubernetes_attributes: {
|
|
81
|
+
api_url,
|
|
82
|
+
ca_cert,
|
|
83
|
+
token,
|
|
84
|
+
namespace: await (0, projects_1.getProjectNamespace)("prod"),
|
|
85
|
+
},
|
|
86
|
+
});
|
|
87
|
+
const { message } = postResult;
|
|
88
|
+
if (message) {
|
|
89
|
+
this.log(`Message from gitlab: ${message}`);
|
|
90
|
+
}
|
|
65
91
|
}
|
|
66
92
|
}
|
|
67
93
|
const variables = await (0, gitlab_1.doGitlabRequest)(this, `projects/${projectId}/variables`);
|