@catladder/cli 0.0.0-main-3b6d4049 → 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 +46 -176
- package/dist/apps/shell/commands/project/commandConfigSecrets.js.map +1 -1
- package/dist/apps/shell/commands/project/commandCopyDB.js +1 -1
- package/dist/apps/shell/commands/project/commandCopyDB.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/commandMigrateHelm3.js +1 -1
- package/dist/apps/shell/commands/project/commandMigrateHelm3.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 +7 -4
- package/dist/config/getProjectConfig.js +35 -11
- 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/editAsFile.d.ts +1 -0
- package/dist/utils/editAsFile.js +22 -0
- package/dist/utils/editAsFile.js.map +1 -0
- package/dist/utils/gitlab.d.ts +2 -1
- package/dist/utils/gitlab.js +29 -3
- package/dist/utils/gitlab.js.map +1 -1
- package/dist/utils/projects/index.d.ts +4 -15
- package/dist/utils/projects/index.js +10 -78
- 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 +37 -172
- package/src/apps/shell/commands/project/commandCopyDB.ts +2 -1
- 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/commandMigrateHelm3.ts +1 -1
- 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 +40 -11
- package/src/types/types.ts +0 -2
- package/src/utils/cluster.ts +15 -2
- package/src/utils/editAsFile.ts +21 -0
- package/src/utils/gitlab.ts +56 -4
- package/src/utils/projects/index.ts +10 -93
- 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":"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"}
|
|
@@ -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,163 +1,61 @@
|
|
|
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
|
-
|
|
7
|
-
const js_yaml_1 = __importDefault(require("js-yaml"));
|
|
3
|
+
/* eslint-disable no-constant-condition */
|
|
8
4
|
const lodash_1 = require("lodash");
|
|
9
|
-
const
|
|
10
|
-
const
|
|
11
|
-
const
|
|
12
|
-
const
|
|
5
|
+
const getProjectConfig_1 = require("../../../../config/getProjectConfig");
|
|
6
|
+
const editAsFile_1 = require("../../../../utils/editAsFile");
|
|
7
|
+
const gitlab_1 = require("../../../../utils/gitlab");
|
|
8
|
+
const promise_1 = require("../../../../utils/promise");
|
|
13
9
|
const autocompletions_1 = require("./utils/autocompletions");
|
|
14
|
-
const ensureCluster_1 = __importDefault(require("./utils/ensureCluster"));
|
|
15
10
|
exports.default = (vorpal) => {
|
|
16
11
|
vorpal
|
|
17
12
|
.command("project-config-secrets <envComponent>", "setup/update secrets stored in pass")
|
|
18
13
|
.autocomplete(autocompletions_1.envAutocompletion)
|
|
19
14
|
.action(async function ({ envComponent }) {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
const passPath = await getPassPath(env);
|
|
26
|
-
this.log("");
|
|
27
|
-
this.log(`😼 I will now open bitwarden @ '${passPath}'`);
|
|
28
|
-
this.log("");
|
|
29
|
-
|
|
30
|
-
const subapp = await promptForSubAppIfAny(this);
|
|
31
|
-
|
|
32
|
-
const secretEnvVarsMapping = await getAllSecretsEnvVarsMapping(
|
|
33
|
-
env,
|
|
34
|
-
subapp
|
|
35
|
-
);
|
|
36
|
-
|
|
37
|
-
await syncBitwarden();
|
|
38
|
-
|
|
39
|
-
// check if exist and fill in details if not
|
|
40
|
-
try {
|
|
41
|
-
await readPass(passPath);
|
|
42
|
-
} catch (e) {
|
|
43
|
-
// does not exist. create it
|
|
44
|
-
await createNewEnvInPass.call(this, env, secretEnvVarsMapping);
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
let envConfigInPass: any = null;
|
|
48
|
-
// eslint-disable-next-line no-constant-condition
|
|
15
|
+
const { secretEnvVarKeys } = await (0, getProjectConfig_1.getEnvironmentByChoice)(envComponent);
|
|
16
|
+
const { env, componentName } = (0, getProjectConfig_1.parseChoice)(envComponent);
|
|
17
|
+
const allEnvVars = await (0, getProjectConfig_1.getEnvVars)(this, envComponent);
|
|
18
|
+
let valuesToEdit = Object.fromEntries(secretEnvVarKeys.map((key) => [key, allEnvVars[key]]));
|
|
49
19
|
while (true) {
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
20
|
+
const hasError = false;
|
|
21
|
+
valuesToEdit = await (0, editAsFile_1.editAsFile)(valuesToEdit);
|
|
22
|
+
const usedKeys = valuesToEdit ? Object.keys(valuesToEdit) : [];
|
|
23
|
+
// check whether newValues have the exact number of keys
|
|
24
|
+
const extranous = (0, lodash_1.difference)(usedKeys, secretEnvVarKeys);
|
|
25
|
+
const missing = (0, lodash_1.difference)(secretEnvVarKeys, usedKeys);
|
|
26
|
+
if (extranous.length > 0 || missing.length > 0) {
|
|
27
|
+
this.log("");
|
|
28
|
+
this.log("😿 Oh no! There is something wrong");
|
|
29
|
+
this.log("");
|
|
30
|
+
if (extranous.length > 0) {
|
|
31
|
+
this.log("these secrets are not declared in the config");
|
|
32
|
+
extranous.forEach((key) => this.log(key));
|
|
33
|
+
this.log("");
|
|
34
|
+
}
|
|
35
|
+
if (missing.length > 0) {
|
|
36
|
+
this.log("these secrets have not been provided:");
|
|
37
|
+
missing.forEach((key) => this.log(key));
|
|
38
|
+
this.log("");
|
|
39
|
+
}
|
|
40
|
+
await (0, promise_1.delay)(1000);
|
|
41
|
+
const { shouldContinue } = await this.prompt({
|
|
42
|
+
default: true,
|
|
43
|
+
message: "Try again? 🤔",
|
|
44
|
+
name: "shouldContinue",
|
|
45
|
+
type: "confirm",
|
|
46
|
+
});
|
|
47
|
+
if (!shouldContinue) {
|
|
48
|
+
throw new Error("abort");
|
|
49
|
+
}
|
|
79
50
|
}
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
`the following keys are defined in the values.yaml, but not in pass: ${keysNotInPass.join(
|
|
84
|
-
", "
|
|
85
|
-
)}`
|
|
86
|
-
);
|
|
87
|
-
|
|
88
|
-
hasError = true;
|
|
89
|
-
}
|
|
90
|
-
} catch (e) {
|
|
91
|
-
await logError(this, "failed to parse yaml", e.message);
|
|
92
|
-
hasError = true;
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
if (hasError) {
|
|
96
|
-
this.log("");
|
|
97
|
-
this.log("🤦 You miserably failed to provide something useful 💩");
|
|
98
|
-
this.log("");
|
|
99
|
-
await delay(1000);
|
|
100
|
-
const { shouldContinue } = await this.prompt({
|
|
101
|
-
default: true,
|
|
102
|
-
message: "Try again? 🤔",
|
|
103
|
-
name: "shouldContinue",
|
|
104
|
-
type: "confirm",
|
|
105
|
-
});
|
|
106
|
-
|
|
107
|
-
if (!shouldContinue) {
|
|
108
|
-
throw new Error("abort");
|
|
51
|
+
else {
|
|
52
|
+
await (0, gitlab_1.upsertAllVariables)(this, valuesToEdit, env, componentName);
|
|
53
|
+
break;
|
|
109
54
|
}
|
|
110
|
-
} else {
|
|
111
|
-
break;
|
|
112
|
-
}
|
|
113
55
|
}
|
|
56
|
+
/*
|
|
114
57
|
|
|
115
|
-
|
|
116
|
-
await ensureNamespace.call(this, env);
|
|
117
|
-
|
|
118
|
-
this.log(
|
|
119
|
-
"😼 Please be patient while i am doing some complicated stuff... "
|
|
120
|
-
);
|
|
121
|
-
const namespace = await getProjectNamespace(env);
|
|
122
|
-
|
|
123
|
-
// secrets is object of [key]: secretName
|
|
124
|
-
const grouped = Object.keys(secretEnvVarsMapping).reduce<{
|
|
125
|
-
[secretName: string]: string[];
|
|
126
|
-
}>((acc, key) => {
|
|
127
|
-
const secretName = secretEnvVarsMapping[key];
|
|
128
|
-
return {
|
|
129
|
-
...acc,
|
|
130
|
-
[secretName]: [...(acc[secretName] || []), key],
|
|
131
|
-
};
|
|
132
|
-
}, {});
|
|
133
|
-
|
|
134
|
-
for (const secretName of Object.keys(grouped)) {
|
|
135
|
-
const valueKeysInGroup = grouped[secretName];
|
|
136
|
-
const valuesFromPassInGroup = pick(envConfigInPass, valueKeysInGroup);
|
|
137
|
-
|
|
138
|
-
let existingSecretValues = {};
|
|
139
|
-
try {
|
|
140
|
-
const existingSecretResult = await k8sApi.readNamespacedSecret(
|
|
141
|
-
secretName,
|
|
142
|
-
namespace
|
|
143
|
-
);
|
|
144
|
-
// tslint:disable-next-line:no-console
|
|
145
|
-
if (existingSecretResult && existingSecretResult.body.data) {
|
|
146
|
-
existingSecretValues = existingSecretResult.body.data;
|
|
147
|
-
}
|
|
148
|
-
} catch (e) {
|
|
149
|
-
// ignore
|
|
150
|
-
}
|
|
151
|
-
await createKubernetesSecret.call(
|
|
152
|
-
this,
|
|
153
|
-
namespace,
|
|
154
|
-
secretName,
|
|
155
|
-
|
|
156
|
-
valuesFromPassInGroup,
|
|
157
|
-
existingSecretValues
|
|
158
|
-
);
|
|
159
|
-
}
|
|
160
|
-
this.log("");
|
|
58
|
+
|
|
161
59
|
// adding gcloud sql proxy secret
|
|
162
60
|
const cloudsqlCredentials = await readPass(GOOGLE_CLOUD_SQL_PASS_PATH);
|
|
163
61
|
await createKubernetesSecret.call(
|
|
@@ -183,29 +81,8 @@ exports.default = (vorpal) => {
|
|
|
183
81
|
*/
|
|
184
82
|
});
|
|
185
83
|
};
|
|
186
|
-
async function createKubernetesSecret(namespace, secretName, stringData, existingSecretValues) {
|
|
187
|
-
const secret = new client_node_1.V1Secret();
|
|
188
|
-
secret.metadata = {
|
|
189
|
-
name: secretName,
|
|
190
|
-
};
|
|
191
|
-
secret.data = existingSecretValues;
|
|
192
|
-
secret.stringData = stringData;
|
|
193
|
-
this.log(`😼 upserting secret '${secretName}' (push it real good!)`);
|
|
194
|
-
try {
|
|
195
|
-
await k8sApi_1.default.deleteNamespacedSecret(secretName, namespace, "true");
|
|
196
|
-
}
|
|
197
|
-
catch (e) {
|
|
198
|
-
// ignore
|
|
199
|
-
}
|
|
200
|
-
try {
|
|
201
|
-
await k8sApi_1.default.createNamespacedSecret(namespace, secret);
|
|
202
|
-
}
|
|
203
|
-
catch (e) {
|
|
204
|
-
(0, log_1.logError)(this, "error pushing secrets", e.body.message);
|
|
205
|
-
}
|
|
206
|
-
}
|
|
207
84
|
async function createNewEnvInPass(env, secretEnvVarsMapping) {
|
|
208
|
-
const passPath = await
|
|
85
|
+
// const passPath = await getPassPath(env);
|
|
209
86
|
this.log("Your selected env is not yet in pass. Do you want to copy it from another env? ");
|
|
210
87
|
const noAnswer = "No, I will create a new one from scratch.";
|
|
211
88
|
const { sourceEnv } = await this.prompt({
|
|
@@ -214,13 +91,6 @@ async function createNewEnvInPass(env, secretEnvVarsMapping) {
|
|
|
214
91
|
choices: [...autocompletions_1.envAutocompletion.filter((e) => e !== env), noAnswer],
|
|
215
92
|
message: "Do you want to copy an env?",
|
|
216
93
|
});
|
|
217
|
-
|
|
218
|
-
await (0, passwordstore_1.insertPass)(passPath, js_yaml_1.default.safeDump((0, lodash_1.mapValues)(secretEnvVarsMapping, (value, key) => "fillme")));
|
|
219
|
-
}
|
|
220
|
-
else {
|
|
221
|
-
const sourceEnvPath = await (0, projects_1.getPassPath)(sourceEnv);
|
|
222
|
-
const stdout = await (0, passwordstore_1.readPass)(sourceEnvPath);
|
|
223
|
-
await (0, passwordstore_1.insertPass)(passPath, stdout);
|
|
224
|
-
}
|
|
94
|
+
// TODO: reimplenent
|
|
225
95
|
}
|
|
226
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,7 +9,7 @@ exports.default = (vorpal) => vorpal
|
|
|
9
9
|
.command("copy-db <envComponent>", "replace local db with the one from an env")
|
|
10
10
|
.autocomplete(autocompletions_1.envAutocompletion)
|
|
11
11
|
.action(async function copyDB({ envComponent }) {
|
|
12
|
-
const
|
|
12
|
+
const { env, componentName } = (0, getProjectConfig_1.parseChoice)(envComponent);
|
|
13
13
|
const { customerName, appName } = (0, getProjectConfig_1.getProjectConfig)();
|
|
14
14
|
const { shouldContinue } = await this.prompt({
|
|
15
15
|
type: "confirm",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commandCopyDB.js","sourceRoot":"","sources":["../../../../../src/apps/shell/commands/project/commandCopyDB.ts"],"names":[],"mappings":";;AAAA,iEAA8C;AAE9C,4DAGsC;AACtC,
|
|
1
|
+
{"version":3,"file":"commandCopyDB.js","sourceRoot":"","sources":["../../../../../src/apps/shell/commands/project/commandCopyDB.ts"],"names":[],"mappings":";;AAAA,iEAA8C;AAE9C,4DAGsC;AACtC,0EAI6C;AAC7C,mEAA2D;AAC3D,6DAA4D;AAE5D,kBAAe,CAAC,MAAc,EAAE,EAAE,CAChC,MAAM;KACH,OAAO,CACN,wBAAwB,EACxB,2CAA2C,CAC5C;KACA,YAAY,CAAC,mCAAiB,CAAC;KAC/B,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,EAAE,YAAY,EAAE;IAC5C,MAAM,EAAE,GAAG,EAAE,aAAa,EAAE,GAAG,IAAA,8BAAW,EAAC,YAAY,CAAC,CAAC;IACzD,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,GAAG,IAAA,mCAAgB,GAAE,CAAC;IAErD,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC;QAC3C,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,gBAAgB;QACtB,OAAO,EACL,sFAAsF;KACzF,CAAC,CAAC;IAEH,IAAI,CAAC,cAAc,EAAE;QACnB,OAAO;KACR;IAED,MAAM,uBAAuB,GAAG,cAAc,CAAC,CAAC,sBAAsB;IACtE,MAAM,EAAE,mBAAmB,EAAE,GAAG,MAAM,IAAA,6BAAU,EAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IAErE,MAAM,UAAU,GAAG,KAAK,CAAC;IAEzB,MAAM,YAAY,GAAG,GAAG,0BAAc,IAAI,uBAAuB,IAAI,YAAY,IAAI,OAAO,IAAI,GAAG,QAAQ,UAAU,EAAE,CAAC;IACxH,MAAM,mBAAmB,GAAG,MAAM,IAAA,wBAAQ,EAAC,sCAA0B,CAAC,CAAC;IAEvE,MAAM,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC;IACvC,MAAM,OAAO,GAAG,IAAI,MAAM,CAAC,yBAAyB,CAAC,CAAC,IAAI,CACxD,cAAc,CACf,CAAC;IACF,IAAI,CAAC,OAAO,EAAE;QACZ,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;KACjD;IACD,MAAM,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAE/B,MAAM,YAAY,GAAG;;;cAGb,mBAAmB;;mCAEE,YAAY;;;;wCAIP,UAAU;;;;;;;;;6CASL,mBAAmB,cAAc,UAAU,IAAI,aAAa;kCACvE,WAAW;oCACT,WAAW;;gBAE/B,WAAW;;;;;;;;;OASpB,CAAC;IAEF,MAAM,IAAA,6BAAK,EAAC,YAAY,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;AACrE,CAAC,CAAC,CAAC"}
|
|
@@ -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;
|