@catladder/cli 1.35.0 → 1.36.0
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/cli/commands/mongodb/projectMongoPortForward.js +25 -9
- package/dist/apps/cli/commands/mongodb/projectMongoPortForward.js.map +1 -1
- package/dist/apps/cli/commands/mongodb/utils/index.js +14 -3
- package/dist/apps/cli/commands/mongodb/utils/index.js.map +1 -1
- package/dist/apps/cli/commands/project/commandConfigSecrets.js +29 -51
- package/dist/apps/cli/commands/project/commandConfigSecrets.js.map +1 -1
- package/dist/apps/cli/commands/project/commandCopyDB.js +1 -23
- package/dist/apps/cli/commands/project/commandCopyDB.js.map +1 -1
- package/dist/apps/cli/commands/project/setup/setupKubernetes.js +3 -2
- package/dist/apps/cli/commands/project/setup/setupKubernetes.js.map +1 -1
- package/dist/config/constants.d.ts +0 -1
- package/dist/config/constants.js +1 -2
- package/dist/config/constants.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/utils/gitlab.d.ts +1 -1
- package/dist/utils/gitlab.js +106 -44
- package/dist/utils/gitlab.js.map +1 -1
- package/dist/utils/passwordstore/index.d.ts +0 -1
- package/dist/utils/passwordstore/index.js +1 -64
- package/dist/utils/passwordstore/index.js.map +1 -1
- package/dist/utils/projects/index.js +8 -2
- package/dist/utils/projects/index.js.map +1 -1
- package/package.json +3 -2
- package/src/apps/cli/commands/mongodb/projectMongoPortForward.ts +15 -0
- package/src/apps/cli/commands/mongodb/utils/index.ts +17 -7
- package/src/apps/cli/commands/project/commandConfigSecrets.ts +10 -30
- package/src/apps/cli/commands/project/commandCopyDB.ts +2 -1
- package/src/apps/cli/commands/project/setup/setupKubernetes.ts +5 -4
- package/src/config/constants.ts +0 -2
- package/src/utils/gitlab.ts +77 -9
- package/src/utils/passwordstore/index.ts +0 -28
- package/src/utils/projects/index.ts +6 -1
package/dist/utils/gitlab.d.ts
CHANGED
|
@@ -18,5 +18,5 @@ declare type GitlabVariable = {
|
|
|
18
18
|
};
|
|
19
19
|
export declare const getAllVariables: ((vorpal: CommandInstance) => Promise<Array<GitlabVariable>>) & memoizee.Memoized<(vorpal: CommandInstance) => Promise<Array<GitlabVariable>>>;
|
|
20
20
|
export declare const getVariableValueByRawName: (vorpal: CommandInstance, rawName: string) => Promise<string>;
|
|
21
|
-
export declare const upsertAllVariables: (vorpal: CommandInstance, variables: Record<string, any>, env: string, componentName: string) => Promise<void>;
|
|
21
|
+
export declare const upsertAllVariables: (vorpal: CommandInstance, variables: Record<string, any>, env: string, componentName: string, backup?: boolean) => Promise<void>;
|
|
22
22
|
export {};
|
package/dist/utils/gitlab.js
CHANGED
|
@@ -1,4 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
2
13
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
14
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
15
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -214,18 +225,22 @@ var getVariableValueByRawName = function (vorpal, rawName) { return __awaiter(vo
|
|
|
214
225
|
exports.getVariableValueByRawName = getVariableValueByRawName;
|
|
215
226
|
var maskableRegex = new RegExp("^[a-zA-Z0-9_+=/@:.~-]{8,}$"); // SEE https://gitlab.com/gitlab-org/gitlab-foss/-/blob/master/spec/frontend/ci_variable_list/components/ci_variable_modal_spec.js#L20
|
|
216
227
|
var isMaskable = function (value) { return maskableRegex.test(value); };
|
|
217
|
-
var createVariable = function (vorpal, projectId, key, value
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
228
|
+
var createVariable = function (vorpal, projectId, key, value, environment_scope) {
|
|
229
|
+
if (environment_scope === void 0) { environment_scope = "*"; }
|
|
230
|
+
return __awaiter(void 0, void 0, void 0, function () {
|
|
231
|
+
return __generator(this, function (_a) {
|
|
232
|
+
switch (_a.label) {
|
|
233
|
+
case 0: return [4 /*yield*/, (0, exports.doGitlabRequest)(vorpal, "projects/".concat(projectId, "/variables"), {
|
|
234
|
+
key: key,
|
|
235
|
+
value: value,
|
|
236
|
+
masked: isMaskable(value),
|
|
237
|
+
environment_scope: environment_scope
|
|
238
|
+
})];
|
|
239
|
+
case 1: return [2 /*return*/, _a.sent()];
|
|
240
|
+
}
|
|
241
|
+
});
|
|
227
242
|
});
|
|
228
|
-
}
|
|
243
|
+
};
|
|
229
244
|
var updateVariable = function (vorpal, projectId, key, value) { return __awaiter(void 0, void 0, void 0, function () {
|
|
230
245
|
return __generator(this, function (_a) {
|
|
231
246
|
switch (_a.label) {
|
|
@@ -237,42 +252,89 @@ var updateVariable = function (vorpal, projectId, key, value) { return __awaiter
|
|
|
237
252
|
}
|
|
238
253
|
});
|
|
239
254
|
}); };
|
|
240
|
-
var
|
|
241
|
-
var
|
|
242
|
-
return __generator(this, function (
|
|
243
|
-
switch (
|
|
244
|
-
case 0: return [4 /*yield*/, (0, exports.
|
|
255
|
+
var getAllCatladderEnvVarsInGitlab = function (vorpal) { return __awaiter(void 0, void 0, void 0, function () {
|
|
256
|
+
var allVariables;
|
|
257
|
+
return __generator(this, function (_a) {
|
|
258
|
+
switch (_a.label) {
|
|
259
|
+
case 0: return [4 /*yield*/, (0, exports.getAllVariables)(vorpal).then(function (v) {
|
|
260
|
+
return v.reduce(function (acc, variable) {
|
|
261
|
+
var _a, _b;
|
|
262
|
+
var _c, _d, _e, _f;
|
|
263
|
+
var key = variable.key;
|
|
264
|
+
if (key.startsWith("CL_")) {
|
|
265
|
+
var matchBackup = key.match(/(CL_.*)_backup_([0-9]+)/);
|
|
266
|
+
if (matchBackup) {
|
|
267
|
+
var key_1 = matchBackup[1];
|
|
268
|
+
var timestamp = Number(matchBackup[2]);
|
|
269
|
+
var backups = __spreadArray(__spreadArray([], ((_d = (_c = acc[key_1]) === null || _c === void 0 ? void 0 : _c.backups) !== null && _d !== void 0 ? _d : []), true), [timestamp], false);
|
|
270
|
+
return __assign(__assign({}, acc), (_a = {}, _a[key_1] = __assign(__assign({}, ((_e = acc[key_1]) !== null && _e !== void 0 ? _e : {})), { // add value
|
|
271
|
+
backups: backups }), _a));
|
|
272
|
+
}
|
|
273
|
+
return __assign(__assign({}, acc), (_b = {}, _b[key] = __assign(__assign({ backups: [] }, ((_f = acc[key]) !== null && _f !== void 0 ? _f : {})), { value: variable.value }), _b));
|
|
274
|
+
}
|
|
275
|
+
return acc;
|
|
276
|
+
}, {});
|
|
277
|
+
})];
|
|
245
278
|
case 1:
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
_c.label = 2;
|
|
249
|
-
case 2:
|
|
250
|
-
if (!(_i < _a.length)) return [3 /*break*/, 9];
|
|
251
|
-
_b = _a[_i], key = _b[0], value = _b[1];
|
|
252
|
-
fullKey = (0, pipeline_1.getSecretVarName)(env, componentName, key);
|
|
253
|
-
valueSanitized = (0, lodash_1.isObject)(value) ? JSON.stringify(value) : "".concat(value);
|
|
254
|
-
_c.label = 3;
|
|
255
|
-
case 3:
|
|
256
|
-
_c.trys.push([3, 5, 7, 8]);
|
|
257
|
-
return [4 /*yield*/, updateVariable(vorpal, id, fullKey, valueSanitized)];
|
|
258
|
-
case 4:
|
|
259
|
-
_c.sent();
|
|
260
|
-
return [3 /*break*/, 8];
|
|
261
|
-
case 5:
|
|
262
|
-
e_1 = _c.sent();
|
|
263
|
-
return [4 /*yield*/, createVariable(vorpal, id, fullKey, valueSanitized)];
|
|
264
|
-
case 6:
|
|
265
|
-
_c.sent();
|
|
266
|
-
return [3 /*break*/, 8];
|
|
267
|
-
case 7:
|
|
268
|
-
exports.getAllVariables.clear();
|
|
269
|
-
return [7 /*endfinally*/];
|
|
270
|
-
case 8:
|
|
271
|
-
_i++;
|
|
272
|
-
return [3 /*break*/, 2];
|
|
273
|
-
case 9: return [2 /*return*/];
|
|
279
|
+
allVariables = _a.sent();
|
|
280
|
+
return [2 /*return*/, allVariables];
|
|
274
281
|
}
|
|
275
282
|
});
|
|
276
283
|
}); };
|
|
284
|
+
var upsertAllVariables = function (vorpal, variables, env, componentName, backup) {
|
|
285
|
+
if (backup === void 0) { backup = true; }
|
|
286
|
+
return __awaiter(void 0, void 0, void 0, function () {
|
|
287
|
+
var id, existingVariables, _i, _a, _b, key, value, fullKey, valueSanitized, exists, oldValue, changed;
|
|
288
|
+
var _c;
|
|
289
|
+
return __generator(this, function (_d) {
|
|
290
|
+
switch (_d.label) {
|
|
291
|
+
case 0: return [4 /*yield*/, (0, exports.getProjectInfo)(vorpal)];
|
|
292
|
+
case 1:
|
|
293
|
+
id = (_d.sent()).id;
|
|
294
|
+
return [4 /*yield*/, getAllCatladderEnvVarsInGitlab(vorpal)];
|
|
295
|
+
case 2:
|
|
296
|
+
existingVariables = _d.sent();
|
|
297
|
+
_i = 0, _a = Object.entries(variables !== null && variables !== void 0 ? variables : {});
|
|
298
|
+
_d.label = 3;
|
|
299
|
+
case 3:
|
|
300
|
+
if (!(_i < _a.length)) return [3 /*break*/, 12];
|
|
301
|
+
_b = _a[_i], key = _b[0], value = _b[1];
|
|
302
|
+
fullKey = (0, pipeline_1.getSecretVarName)(env, componentName, key);
|
|
303
|
+
valueSanitized = (0, lodash_1.isObject)(value) ? JSON.stringify(value) : "".concat(value);
|
|
304
|
+
exists = (0, lodash_1.has)(existingVariables, fullKey);
|
|
305
|
+
oldValue = (_c = existingVariables[fullKey]) === null || _c === void 0 ? void 0 : _c.value;
|
|
306
|
+
changed = oldValue !== valueSanitized;
|
|
307
|
+
if (!changed) return [3 /*break*/, 10];
|
|
308
|
+
if (!exists) return [3 /*break*/, 7];
|
|
309
|
+
vorpal.log("changed: ".concat(key));
|
|
310
|
+
return [4 /*yield*/, updateVariable(vorpal, id, fullKey, valueSanitized)];
|
|
311
|
+
case 4:
|
|
312
|
+
_d.sent();
|
|
313
|
+
if (!backup) return [3 /*break*/, 6];
|
|
314
|
+
return [4 /*yield*/, createVariable(vorpal, id, fullKey + "_backup_" + new Date().getTime(), oldValue, "_backup")];
|
|
315
|
+
case 5:
|
|
316
|
+
_d.sent();
|
|
317
|
+
_d.label = 6;
|
|
318
|
+
case 6: return [3 /*break*/, 9];
|
|
319
|
+
case 7:
|
|
320
|
+
vorpal.log("new : ".concat(key));
|
|
321
|
+
return [4 /*yield*/, createVariable(vorpal, id, fullKey, valueSanitized)];
|
|
322
|
+
case 8:
|
|
323
|
+
_d.sent();
|
|
324
|
+
_d.label = 9;
|
|
325
|
+
case 9: return [3 /*break*/, 11];
|
|
326
|
+
case 10:
|
|
327
|
+
vorpal.log("skip : ".concat(key));
|
|
328
|
+
_d.label = 11;
|
|
329
|
+
case 11:
|
|
330
|
+
_i++;
|
|
331
|
+
return [3 /*break*/, 3];
|
|
332
|
+
case 12:
|
|
333
|
+
exports.getAllVariables.clear();
|
|
334
|
+
return [2 /*return*/];
|
|
335
|
+
}
|
|
336
|
+
});
|
|
337
|
+
});
|
|
338
|
+
};
|
|
277
339
|
exports.upsertAllVariables = upsertAllVariables;
|
|
278
340
|
//# sourceMappingURL=gitlab.js.map
|
package/dist/utils/gitlab.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gitlab.js","sourceRoot":"","sources":["../../src/utils/gitlab.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"gitlab.js","sourceRoot":"","sources":["../../src/utils/gitlab.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,4 +5,3 @@ export declare const readPass: (path: string) => Promise<any>;
|
|
|
5
5
|
export declare const syncBitwarden: (force?: boolean) => Promise<void>;
|
|
6
6
|
export declare const insertPass: (path: string, content: string) => Promise<void>;
|
|
7
7
|
export declare const trashItem: (path: string) => Promise<any>;
|
|
8
|
-
export declare const editPass: (path: string) => Promise<void>;
|
|
@@ -1,15 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __assign = (this && this.__assign) || function () {
|
|
3
|
-
__assign = Object.assign || function(t) {
|
|
4
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
-
s = arguments[i];
|
|
6
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
-
t[p] = s[p];
|
|
8
|
-
}
|
|
9
|
-
return t;
|
|
10
|
-
};
|
|
11
|
-
return __assign.apply(this, arguments);
|
|
12
|
-
};
|
|
13
2
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
14
3
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
15
4
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -50,13 +39,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
50
39
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
51
40
|
};
|
|
52
41
|
exports.__esModule = true;
|
|
53
|
-
exports.
|
|
42
|
+
exports.trashItem = exports.insertPass = exports.syncBitwarden = exports.readPass = exports.hasBitwarden = exports.getOrganization = exports.getCollection = void 0;
|
|
54
43
|
var child_process_promise_1 = require("child-process-promise");
|
|
55
44
|
var command_exists_promise_1 = __importDefault(require("command-exists-promise"));
|
|
56
45
|
var dayjs_1 = __importDefault(require("dayjs"));
|
|
57
|
-
var fs_extra_1 = require("fs-extra");
|
|
58
|
-
var tmp_promise_1 = require("tmp-promise");
|
|
59
|
-
var getEditor_1 = __importDefault(require("../getEditor"));
|
|
60
46
|
var preferences_1 = require("../preferences");
|
|
61
47
|
var DEBUG = false;
|
|
62
48
|
var unlockBitwarden = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
@@ -231,17 +217,6 @@ var readPass = function (path) { return __awaiter(void 0, void 0, void 0, functi
|
|
|
231
217
|
});
|
|
232
218
|
}); };
|
|
233
219
|
exports.readPass = readPass;
|
|
234
|
-
var update = function (type, itemId, value) { return __awaiter(void 0, void 0, void 0, function () {
|
|
235
|
-
var result;
|
|
236
|
-
return __generator(this, function (_a) {
|
|
237
|
-
switch (_a.label) {
|
|
238
|
-
case 0: return [4 /*yield*/, execBitwardenCommand("edit ".concat(type, " ").concat(itemId, " ").concat(encode(value)))];
|
|
239
|
-
case 1:
|
|
240
|
-
result = _a.sent();
|
|
241
|
-
return [2 /*return*/, result];
|
|
242
|
-
}
|
|
243
|
-
});
|
|
244
|
-
}); };
|
|
245
220
|
var MAX_SYNC_AGE_IN_MINUTES = 30;
|
|
246
221
|
var syncBitwarden = function (force) {
|
|
247
222
|
if (force === void 0) { force = true; }
|
|
@@ -337,42 +312,4 @@ var trashItem = function (path) { return __awaiter(void 0, void 0, void 0, funct
|
|
|
337
312
|
});
|
|
338
313
|
}); };
|
|
339
314
|
exports.trashItem = trashItem;
|
|
340
|
-
var editPass = function (path) { return __awaiter(void 0, void 0, void 0, function () {
|
|
341
|
-
var item;
|
|
342
|
-
return __generator(this, function (_a) {
|
|
343
|
-
switch (_a.label) {
|
|
344
|
-
case 0: return [4 /*yield*/, getItem(path)];
|
|
345
|
-
case 1:
|
|
346
|
-
item = _a.sent();
|
|
347
|
-
return [4 /*yield*/, (0, tmp_promise_1.withFile)(function (_a) {
|
|
348
|
-
var tmpFilePath = _a.path;
|
|
349
|
-
return __awaiter(void 0, void 0, void 0, function () {
|
|
350
|
-
var newContent;
|
|
351
|
-
return __generator(this, function (_b) {
|
|
352
|
-
switch (_b.label) {
|
|
353
|
-
case 0: return [4 /*yield*/, (0, fs_extra_1.writeFile)(tmpFilePath, item.notes)];
|
|
354
|
-
case 1:
|
|
355
|
-
_b.sent();
|
|
356
|
-
return [4 /*yield*/, (0, getEditor_1["default"])()];
|
|
357
|
-
case 2: return [4 /*yield*/, (_b.sent()).open(tmpFilePath)];
|
|
358
|
-
case 3:
|
|
359
|
-
_b.sent();
|
|
360
|
-
return [4 /*yield*/, (0, fs_extra_1.readFile)(tmpFilePath)];
|
|
361
|
-
case 4:
|
|
362
|
-
newContent = (_b.sent()).toString("utf-8");
|
|
363
|
-
return [4 /*yield*/, update("item", item.id, __assign(__assign({}, item), { notes: newContent }))];
|
|
364
|
-
case 5:
|
|
365
|
-
_b.sent();
|
|
366
|
-
return [2 /*return*/];
|
|
367
|
-
}
|
|
368
|
-
});
|
|
369
|
-
});
|
|
370
|
-
}, { postfix: ".yml" })];
|
|
371
|
-
case 2:
|
|
372
|
-
_a.sent();
|
|
373
|
-
return [2 /*return*/];
|
|
374
|
-
}
|
|
375
|
-
});
|
|
376
|
-
}); };
|
|
377
|
-
exports.editPass = editPass;
|
|
378
315
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/passwordstore/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/passwordstore/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -106,7 +106,7 @@ var getProjectNamespace = function (envComponent) { return __awaiter(void 0, voi
|
|
|
106
106
|
}); };
|
|
107
107
|
exports.getProjectNamespace = getProjectNamespace;
|
|
108
108
|
var getProjectPods = function (envComponent) { return __awaiter(void 0, void 0, void 0, function () {
|
|
109
|
-
var namespace, k8sApi, res;
|
|
109
|
+
var namespace, k8sApi, res, componentName;
|
|
110
110
|
return __generator(this, function (_a) {
|
|
111
111
|
switch (_a.label) {
|
|
112
112
|
case 0: return [4 /*yield*/, (0, exports.getProjectNamespace)(envComponent)];
|
|
@@ -116,7 +116,13 @@ var getProjectPods = function (envComponent) { return __awaiter(void 0, void 0,
|
|
|
116
116
|
return [4 /*yield*/, k8sApi.listNamespacedPod(namespace)];
|
|
117
117
|
case 2:
|
|
118
118
|
res = _a.sent();
|
|
119
|
-
|
|
119
|
+
componentName = (0, getProjectConfig_1.parseChoice)(envComponent).componentName;
|
|
120
|
+
return [2 /*return*/, res.body.items.filter(function (item) {
|
|
121
|
+
var _a, _b;
|
|
122
|
+
return componentName
|
|
123
|
+
? (_b = (_a = item.metadata) === null || _a === void 0 ? void 0 : _a.name) === null || _b === void 0 ? void 0 : _b.includes("-" + componentName + "-")
|
|
124
|
+
: true;
|
|
125
|
+
})];
|
|
120
126
|
}
|
|
121
127
|
});
|
|
122
128
|
}); };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/projects/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yBAAuB;AACvB,6BAA4B;AAC5B,kEAA8E;AAC9E,uCAAyC;AACzC,kCAA2C;AAEpC,IAAM,UAAU,GAAG;;;oBAChB,yBAAM,MAAC,mGAAA,+BAA+B,MAAA;oBAA9C,sBAAO,CAAC,SAAsC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,EAAC;;;KAC/D,CAAC;AAFW,QAAA,UAAU,cAErB;AAEK,IAAM,mBAAmB,GAAG;;;;oBACjB,qBAAM,IAAA,kBAAU,GAAE,EAAA;;gBAA5B,OAAO,GAAG,SAAkB;gBAClC,sBAAO,IAAA,WAAI,EAAC,OAAO,EAAE,gBAAgB,CAAC,EAAC;;;KACxC,CAAC;AAHW,QAAA,mBAAmB,uBAG9B;AAEK,IAAM,oBAAoB,GAAG;;;YAClC,KAAA,uBAAe,CAAA;YAAC,qBAAM,IAAA,2BAAmB,GAAE,EAAA;gBAA3C,sBAAA,kBAAgB,SAA2B,EAAC,EAAA;;SAAA,CAAC;AADlC,QAAA,oBAAoB,wBACc;AAExC,IAAM,eAAe,GAAG;;;;oBACP,qBAAM,IAAA,4BAAoB,GAAE,EAAA;;gBAA5C,KAAgB,SAA4B,EAA3C,KAAK,QAAA,EAAE,IAAI,QAAA;gBAClB,IAAI,KAAK,EAAE;oBACT,sBAAO,KAAK,EAAC;iBACd;gBACD,sBAAO,IAAI,EAAC;;;KACb,CAAC;AANW,QAAA,eAAe,mBAM1B;AAEK,IAAM,mBAAmB,GAAG,UAAO,YAAoB;;;;;gBACpD,GAAG,GAAK,IAAA,8BAAW,EAAC,YAAY,CAAC,IAA9B,CAA+B;gBAC3B,qBAAM,IAAA,mCAAgB,GAAE,EAAA;;gBAAjC,MAAM,GAAG,SAAwB;gBACvC,sBAAO,UAAG,MAAM,CAAC,YAAY,cAAI,MAAM,CAAC,OAAO,cAAI,GAAG,CAAE,EAAC;;;KAC1D,CAAC;AAJW,QAAA,mBAAmB,uBAI9B;AAEK,IAAM,cAAc,GAAG,UAAO,YAAoB;;;;oBACrC,qBAAM,IAAA,2BAAmB,EAAC,YAAY,CAAC,EAAA;;gBAAnD,SAAS,GAAG,SAAuC;gBACnD,MAAM,GAAG,IAAA,kBAAS,GAAE,CAAC;gBACf,qBAAM,MAAM,CAAC,iBAAiB,CAAC,SAAS,CAAC,EAAA;;gBAA/C,GAAG,GAAG,SAAyC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/projects/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yBAAuB;AACvB,6BAA4B;AAC5B,kEAA8E;AAC9E,uCAAyC;AACzC,kCAA2C;AAEpC,IAAM,UAAU,GAAG;;;oBAChB,yBAAM,MAAC,mGAAA,+BAA+B,MAAA;oBAA9C,sBAAO,CAAC,SAAsC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,EAAC;;;KAC/D,CAAC;AAFW,QAAA,UAAU,cAErB;AAEK,IAAM,mBAAmB,GAAG;;;;oBACjB,qBAAM,IAAA,kBAAU,GAAE,EAAA;;gBAA5B,OAAO,GAAG,SAAkB;gBAClC,sBAAO,IAAA,WAAI,EAAC,OAAO,EAAE,gBAAgB,CAAC,EAAC;;;KACxC,CAAC;AAHW,QAAA,mBAAmB,uBAG9B;AAEK,IAAM,oBAAoB,GAAG;;;YAClC,KAAA,uBAAe,CAAA;YAAC,qBAAM,IAAA,2BAAmB,GAAE,EAAA;gBAA3C,sBAAA,kBAAgB,SAA2B,EAAC,EAAA;;SAAA,CAAC;AADlC,QAAA,oBAAoB,wBACc;AAExC,IAAM,eAAe,GAAG;;;;oBACP,qBAAM,IAAA,4BAAoB,GAAE,EAAA;;gBAA5C,KAAgB,SAA4B,EAA3C,KAAK,QAAA,EAAE,IAAI,QAAA;gBAClB,IAAI,KAAK,EAAE;oBACT,sBAAO,KAAK,EAAC;iBACd;gBACD,sBAAO,IAAI,EAAC;;;KACb,CAAC;AANW,QAAA,eAAe,mBAM1B;AAEK,IAAM,mBAAmB,GAAG,UAAO,YAAoB;;;;;gBACpD,GAAG,GAAK,IAAA,8BAAW,EAAC,YAAY,CAAC,IAA9B,CAA+B;gBAC3B,qBAAM,IAAA,mCAAgB,GAAE,EAAA;;gBAAjC,MAAM,GAAG,SAAwB;gBACvC,sBAAO,UAAG,MAAM,CAAC,YAAY,cAAI,MAAM,CAAC,OAAO,cAAI,GAAG,CAAE,EAAC;;;KAC1D,CAAC;AAJW,QAAA,mBAAmB,uBAI9B;AAEK,IAAM,cAAc,GAAG,UAAO,YAAoB;;;;oBACrC,qBAAM,IAAA,2BAAmB,EAAC,YAAY,CAAC,EAAA;;gBAAnD,SAAS,GAAG,SAAuC;gBACnD,MAAM,GAAG,IAAA,kBAAS,GAAE,CAAC;gBACf,qBAAM,MAAM,CAAC,iBAAiB,CAAC,SAAS,CAAC,EAAA;;gBAA/C,GAAG,GAAG,SAAyC;gBAE7C,aAAa,GAAK,IAAA,8BAAW,EAAC,YAAY,CAAC,cAA9B,CAA+B;gBACpD,sBAAO,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAC,IAAI;;wBAChC,OAAA,aAAa;4BACX,CAAC,CAAC,MAAA,MAAA,IAAI,CAAC,QAAQ,0CAAE,IAAI,0CAAE,QAAQ,CAAC,GAAG,GAAG,aAAa,GAAG,GAAG,CAAC;4BAC1D,CAAC,CAAC,IAAI,CAAA;qBAAA,CACT,EAAC;;;KACH,CAAC;AAXW,QAAA,cAAc,kBAWzB;AAEK,IAAM,cAAc,GAAG,UAAO,YAAoB;;;;oBACrC,qBAAM,IAAA,2BAAmB,EAAC,YAAY,CAAC,EAAA;;gBAAnD,SAAS,GAAG,SAAuC;gBACnD,MAAM,GAAG,IAAA,kBAAS,GAAE,CAAC;gBACf,qBAAM,MAAM,CAAC,mCAAmC,CAAC,SAAS,CAAC,EAAA;;gBAAjE,GAAG,GAAG,SAA2D;gBAEvE,sBAAO,GAAG,CAAC,IAAI,CAAC,KAAK,EAAC;;;KACvB,CAAC;AANW,QAAA,cAAc,kBAMzB;AAEK,IAAM,kBAAkB,GAAG,UAAO,YAAoB;;;;oBAC9C,qBAAM,IAAA,sBAAc,EAAC,YAAY,CAAC,EAAA;;gBAAzC,IAAI,GAAG,SAAkC;gBAC/C,sBAAO,IAAI,CAAC,GAAG,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAf,CAAe,CAAC,EAAC;;;KACzC,CAAC;AAHW,QAAA,kBAAkB,sBAG7B"}
|
package/package.json
CHANGED
|
@@ -16,9 +16,10 @@
|
|
|
16
16
|
"catladder": "./bin/catladder"
|
|
17
17
|
},
|
|
18
18
|
"dependencies": {
|
|
19
|
-
"@catladder/pipeline": "1.
|
|
19
|
+
"@catladder/pipeline": "1.36.0",
|
|
20
20
|
"@kubernetes/client-node": "^0.16.2",
|
|
21
21
|
"child-process-promise": "^2.2.1",
|
|
22
|
+
"clipboardy": "^2.0.0",
|
|
22
23
|
"command-exists-promise": "^2.0.2",
|
|
23
24
|
"common-tags": "^1.8.0",
|
|
24
25
|
"dayjs": "^1.10.4",
|
|
@@ -55,5 +56,5 @@
|
|
|
55
56
|
"eslint": "^8.7.0",
|
|
56
57
|
"typescript": "^4.5.4"
|
|
57
58
|
},
|
|
58
|
-
"version": "1.
|
|
59
|
+
"version": "1.36.0"
|
|
59
60
|
}
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import Vorpal from "vorpal";
|
|
2
|
+
import { getEnvVars, parseChoice } from "../../../../config/getProjectConfig";
|
|
2
3
|
import { logError } from "../../../../utils/log";
|
|
3
4
|
import { startPortForward } from "../../../../utils/portForward";
|
|
4
5
|
import { getProjectNamespace } from "../../../../utils/projects";
|
|
5
6
|
import { envAndComponents } from "../project/utils/autocompletions";
|
|
6
7
|
import ensureCluster from "../project/utils/ensureCluster";
|
|
7
8
|
import { getProjectMongodbAllPodsSortedWithLabel } from "./utils";
|
|
9
|
+
import clipboard from "clipboardy";
|
|
8
10
|
|
|
9
11
|
export default async (vorpal: Vorpal) =>
|
|
10
12
|
vorpal
|
|
@@ -43,5 +45,18 @@ export default async (vorpal: Vorpal) =>
|
|
|
43
45
|
default: "30000",
|
|
44
46
|
message: "Local port: ",
|
|
45
47
|
});
|
|
48
|
+
const { env, componentName } = parseChoice(envComponent);
|
|
49
|
+
const envVars = await getEnvVars(this, env, componentName);
|
|
50
|
+
const MONGODB_ROOT_PASSWORD = envVars?.MONGODB_ROOT_PASSWORD;
|
|
51
|
+
const connectionUrl = `mongodb://root:${MONGODB_ROOT_PASSWORD}@localhost:${localPort}`;
|
|
52
|
+
clipboard.writeSync(connectionUrl);
|
|
53
|
+
this.log("");
|
|
54
|
+
this.log("username: root");
|
|
55
|
+
this.log(`password: ${MONGODB_ROOT_PASSWORD}`);
|
|
56
|
+
this.log(`connection string: ${connectionUrl}`);
|
|
57
|
+
this.log("");
|
|
58
|
+
this.log("👆 connection string has been copied to your clipboard!");
|
|
59
|
+
this.log("");
|
|
60
|
+
|
|
46
61
|
return startPortForward(podName, localPort, 27017, namespace);
|
|
47
62
|
});
|
|
@@ -5,7 +5,12 @@ import {
|
|
|
5
5
|
} from "../../../../../utils/projects";
|
|
6
6
|
|
|
7
7
|
const filterMongoDbs = (podNames: string[]) =>
|
|
8
|
-
podNames.filter(
|
|
8
|
+
podNames.filter(
|
|
9
|
+
(name) =>
|
|
10
|
+
name.includes("mongodb") &&
|
|
11
|
+
!name.includes("mongodb-backup") &&
|
|
12
|
+
!name.includes("arbiter")
|
|
13
|
+
);
|
|
9
14
|
|
|
10
15
|
export const getProjectMongodbAllPods = async (envComponent: string) =>
|
|
11
16
|
filterMongoDbs(await getProjectPodNames(envComponent));
|
|
@@ -43,13 +48,18 @@ export const executeMongodbCommand = async (
|
|
|
43
48
|
};
|
|
44
49
|
|
|
45
50
|
export const podIsMaster = async (namespace: string, podName: string) => {
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
+
try {
|
|
52
|
+
const result = await executeMongodbCommand(
|
|
53
|
+
namespace,
|
|
54
|
+
podName,
|
|
55
|
+
"db.isMaster()"
|
|
56
|
+
);
|
|
51
57
|
|
|
52
|
-
|
|
58
|
+
return result.ismaster;
|
|
59
|
+
} catch (e) {
|
|
60
|
+
// maybe shutting down ?
|
|
61
|
+
return null;
|
|
62
|
+
}
|
|
53
63
|
};
|
|
54
64
|
|
|
55
65
|
const spaces = (n: number) => " ".repeat(n);
|
|
@@ -1,19 +1,17 @@
|
|
|
1
1
|
/* eslint-disable no-constant-condition */
|
|
2
|
+
import { getSecretVarName } from "@catladder/pipeline";
|
|
2
3
|
import { stripIndents } from "common-tags";
|
|
3
4
|
import { difference } from "lodash";
|
|
4
5
|
import Vorpal, { CommandInstance } from "vorpal";
|
|
5
|
-
import { GOOGLE_CLOUD_SQL_PASS_PATH } from "../../../../config/constants";
|
|
6
6
|
import {
|
|
7
7
|
getAllComponentsWithAllEnvsHierarchical,
|
|
8
8
|
getEnvironment,
|
|
9
9
|
getEnvVars,
|
|
10
|
-
getPipelineContextByChoice,
|
|
11
10
|
getProjectComponents,
|
|
12
11
|
parseChoice,
|
|
13
12
|
} from "../../../../config/getProjectConfig";
|
|
14
13
|
import { editAsFile } from "../../../../utils/editAsFile";
|
|
15
14
|
import { upsertAllVariables } from "../../../../utils/gitlab";
|
|
16
|
-
import { hasBitwarden, readPass } from "../../../../utils/passwordstore";
|
|
17
15
|
import { delay } from "../../../../utils/promise";
|
|
18
16
|
import { allEnvsAndAllComponents } from "./utils/autocompletions";
|
|
19
17
|
|
|
@@ -45,6 +43,7 @@ const resolveJson = (v: Vars) =>
|
|
|
45
43
|
];
|
|
46
44
|
})
|
|
47
45
|
);
|
|
46
|
+
|
|
48
47
|
const getEnvVarsToEdit = async (
|
|
49
48
|
instance: CommandInstance,
|
|
50
49
|
env: string,
|
|
@@ -54,7 +53,13 @@ const getEnvVarsToEdit = async (
|
|
|
54
53
|
|
|
55
54
|
const allEnvVars = await getEnvVars(instance, env, componentName);
|
|
56
55
|
return Object.fromEntries(
|
|
57
|
-
secretEnvVarKeys.map((key) =>
|
|
56
|
+
secretEnvVarKeys.map((key) => {
|
|
57
|
+
const value = allEnvVars[key];
|
|
58
|
+
// due to some quirky way to resolve these variables, unset variables have the $CL_ prefix, so we remove thouse here
|
|
59
|
+
const variableIsNotSet =
|
|
60
|
+
value === "$" + getSecretVarName(env, componentName, key);
|
|
61
|
+
return [key, variableIsNotSet ? "🚨 FILL ME" : value];
|
|
62
|
+
})
|
|
58
63
|
);
|
|
59
64
|
};
|
|
60
65
|
const doItFor = async (
|
|
@@ -148,32 +153,7 @@ const doItFor = async (
|
|
|
148
153
|
env,
|
|
149
154
|
componentName
|
|
150
155
|
);
|
|
151
|
-
|
|
152
|
-
if (hasBitwarden()) {
|
|
153
|
-
// add cloud sql secret if needed.
|
|
154
|
-
// TODO: this is legacy, in the future we want to have one service account per app
|
|
155
|
-
try {
|
|
156
|
-
const context = await getPipelineContextByChoice(env, componentName);
|
|
157
|
-
if (
|
|
158
|
-
context.componentConfig.deploy &&
|
|
159
|
-
context.componentConfig.deploy.type === "kubernetes" &&
|
|
160
|
-
context.componentConfig.deploy.values?.cloudsql?.enabled
|
|
161
|
-
) {
|
|
162
|
-
await upsertAllVariables(
|
|
163
|
-
instance,
|
|
164
|
-
{
|
|
165
|
-
cloudsqlProxyCredentials: await readPass(
|
|
166
|
-
GOOGLE_CLOUD_SQL_PASS_PATH
|
|
167
|
-
),
|
|
168
|
-
},
|
|
169
|
-
env,
|
|
170
|
-
componentName
|
|
171
|
-
);
|
|
172
|
-
}
|
|
173
|
-
} catch (e) {
|
|
174
|
-
// ignore atm
|
|
175
|
-
}
|
|
176
|
-
}
|
|
156
|
+
instance.log("");
|
|
177
157
|
instance.log("✅ " + env + ":" + componentName);
|
|
178
158
|
}
|
|
179
159
|
}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { spawn } from "child-process-promise";
|
|
2
2
|
import Vorpal from "vorpal";
|
|
3
|
-
import { GOOGLE_CLOUD_SQL_PASS_PATH } from "../../../../config/constants";
|
|
4
3
|
import {
|
|
5
4
|
getEnvVars,
|
|
6
5
|
getProjectConfig,
|
|
@@ -32,6 +31,7 @@ export default async (vorpal: Vorpal) =>
|
|
|
32
31
|
}
|
|
33
32
|
|
|
34
33
|
// TODO: reimpleent with new config
|
|
34
|
+
/*
|
|
35
35
|
throw new Error("needs reimplementation with new config");
|
|
36
36
|
const GOOGLE_CLOUD_SQL_REGION = "europe-west6"; // currently hardcoded
|
|
37
37
|
const { POSTGRESQL_PASSWORD } = await getEnvVars(
|
|
@@ -88,4 +88,5 @@ export default async (vorpal: Vorpal) =>
|
|
|
88
88
|
`;
|
|
89
89
|
|
|
90
90
|
await spawn(copyDBScript, [], { shell: "bash", stdio: "inherit" });
|
|
91
|
+
*/
|
|
91
92
|
});
|
|
@@ -58,9 +58,9 @@ metadata:
|
|
|
58
58
|
namespace: ${namespace}
|
|
59
59
|
name: ${serviceAccountName}
|
|
60
60
|
rules:
|
|
61
|
-
- apiGroups: ["", "extensions", "apps", "networking.k8s.io", "batch", "autoscaling"]
|
|
62
|
-
resources: ["deployments", "replicasets", "statefulsets", "pods", "secrets", "configmaps", "services", "ingresses", "serviceaccounts", "jobs", "cronjobs", "horizontalpodautoscalers"]
|
|
63
|
-
verbs: ["
|
|
61
|
+
- apiGroups: ["", "extensions", "apps", "networking.k8s.io", "batch", "autoscaling", "rbac.authorization.k8s.io","snapshot.storage.k8s.io"]
|
|
62
|
+
resources: ["deployments", "replicasets", "statefulsets", "pods", "secrets", "configmaps", "services", "ingresses", "serviceaccounts", "roles", "rolebindings", "jobs", "cronjobs", "horizontalpodautoscalers", "persistentvolumeclaims", "volumesnapshots"]
|
|
63
|
+
verbs: ["*"] # You can also use ["*"]
|
|
64
64
|
---
|
|
65
65
|
kind: RoleBinding
|
|
66
66
|
apiVersion: rbac.authorization.k8s.io/v1
|
|
@@ -106,7 +106,8 @@ EOF
|
|
|
106
106
|
instance,
|
|
107
107
|
vars,
|
|
108
108
|
context.environment.shortName,
|
|
109
|
-
context.componentName
|
|
109
|
+
context.componentName,
|
|
110
|
+
false // no backup
|
|
110
111
|
);
|
|
111
112
|
instance.log("done!");
|
|
112
113
|
};
|
package/src/config/constants.ts
CHANGED