@catladder/cli 0.0.0-main-7287f9cc → 0.0.0-main-e2f63e6f
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/project/commandCloudSqlProxy.js +24 -19
- package/dist/apps/cli/commands/project/commandCloudSqlProxy.js.map +1 -1
- package/dist/config/getProjectConfig.d.ts +1 -0
- package/dist/config/getProjectConfig.js +13 -1
- package/dist/config/getProjectConfig.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/utils/gitlab.d.ts +1 -0
- package/dist/utils/gitlab.js +14 -1
- package/dist/utils/gitlab.js.map +1 -1
- package/package.json +2 -2
- package/src/apps/cli/commands/project/commandCloudSqlProxy.ts +19 -6
- package/src/config/getProjectConfig.ts +13 -2
- package/src/utils/gitlab.ts +8 -0
|
@@ -40,9 +40,7 @@ var pipeline_1 = require("@catladder/pipeline");
|
|
|
40
40
|
var child_process_promise_1 = require("child-process-promise");
|
|
41
41
|
var fs_extra_1 = require("fs-extra");
|
|
42
42
|
var tmp_promise_1 = require("tmp-promise");
|
|
43
|
-
var constants_1 = require("../../../../config/constants");
|
|
44
43
|
var getProjectConfig_1 = require("../../../../config/getProjectConfig");
|
|
45
|
-
var passwordstore_1 = require("../../../../utils/passwordstore");
|
|
46
44
|
var autocompletions_1 = require("./utils/autocompletions");
|
|
47
45
|
exports["default"] = (function (vorpal) { return __awaiter(void 0, void 0, void 0, function () {
|
|
48
46
|
var _a, _b;
|
|
@@ -55,18 +53,18 @@ exports["default"] = (function (vorpal) { return __awaiter(void 0, void 0, void
|
|
|
55
53
|
return [4 /*yield*/, (0, autocompletions_1.envAndComponents)()];
|
|
56
54
|
case 1: return [2 /*return*/, _b.apply(_a, [_c.sent()])
|
|
57
55
|
.action(function (_a) {
|
|
58
|
-
var _b, _c, _d, _e
|
|
56
|
+
var _b, _c, _d, _e;
|
|
59
57
|
var envComponent = _a.envComponent;
|
|
60
58
|
return __awaiter(this, void 0, void 0, function () {
|
|
61
|
-
var
|
|
59
|
+
var _f, env, componentName, config, localPort, envVars, POSTGRESQL_PASSWORD, context, values, projectId, defaultInstanceId, instanceId, defaultRegion, region, instanceName, cloudsqlProxyCredentials;
|
|
62
60
|
var _this = this;
|
|
63
|
-
return __generator(this, function (
|
|
64
|
-
switch (
|
|
61
|
+
return __generator(this, function (_g) {
|
|
62
|
+
switch (_g.label) {
|
|
65
63
|
case 0:
|
|
66
|
-
|
|
64
|
+
_f = (0, getProjectConfig_1.parseChoice)(envComponent), env = _f.env, componentName = _f.componentName;
|
|
67
65
|
return [4 /*yield*/, (0, getProjectConfig_1.getProjectConfig)()];
|
|
68
66
|
case 1:
|
|
69
|
-
config =
|
|
67
|
+
config = _g.sent();
|
|
70
68
|
return [4 /*yield*/, this.prompt({
|
|
71
69
|
type: "number",
|
|
72
70
|
name: "localPort",
|
|
@@ -74,13 +72,14 @@ exports["default"] = (function (vorpal) { return __awaiter(void 0, void 0, void
|
|
|
74
72
|
message: "Local port: "
|
|
75
73
|
})];
|
|
76
74
|
case 2:
|
|
77
|
-
localPort = (
|
|
75
|
+
localPort = (_g.sent()).localPort;
|
|
78
76
|
return [4 /*yield*/, (0, getProjectConfig_1.getEnvVars)(this, env, componentName)];
|
|
79
77
|
case 3:
|
|
80
|
-
|
|
78
|
+
envVars = _g.sent();
|
|
79
|
+
POSTGRESQL_PASSWORD = envVars === null || envVars === void 0 ? void 0 : envVars.POSTGRESQL_PASSWORD;
|
|
81
80
|
return [4 /*yield*/, (0, getProjectConfig_1.getPipelineContextByChoice)(env, componentName)];
|
|
82
81
|
case 4:
|
|
83
|
-
context =
|
|
82
|
+
context = _g.sent();
|
|
84
83
|
if (!(0, pipeline_1.isOfDeployType)(context.componentConfig.deploy, "kubernetes")) {
|
|
85
84
|
throw new Error("currently only supported for kubernetes deployment");
|
|
86
85
|
}
|
|
@@ -90,22 +89,28 @@ exports["default"] = (function (vorpal) { return __awaiter(void 0, void 0, void
|
|
|
90
89
|
this.log("POSTGRESQL_URL=postgresql://postgres:".concat(POSTGRESQL_PASSWORD, "@localhost:").concat(localPort, "/").concat(context.environment.envVars.KUBE_APP_NAME, "?schema=public"));
|
|
91
90
|
this.log("");
|
|
92
91
|
values = context.componentConfig.deploy.values;
|
|
93
|
-
projectId = ((
|
|
94
|
-
((
|
|
92
|
+
projectId = ((_b = values === null || values === void 0 ? void 0 : values.cloudsql) === null || _b === void 0 ? void 0 : _b.projectId) ||
|
|
93
|
+
((_c = context.componentConfig.deploy.cluster) === null || _c === void 0 ? void 0 : _c.projectId);
|
|
95
94
|
defaultInstanceId = "".concat(config.customerName, "-").concat(config.appName, "-").concat(env);
|
|
96
|
-
instanceId = ((
|
|
95
|
+
instanceId = ((_d = values === null || values === void 0 ? void 0 : values.cloudsql) === null || _d === void 0 ? void 0 : _d.instanceId) || defaultInstanceId;
|
|
97
96
|
defaultRegion = "europe-west6";
|
|
98
|
-
region = ((
|
|
97
|
+
region = ((_e = values === null || values === void 0 ? void 0 : values.cloudsql) === null || _e === void 0 ? void 0 : _e.region) || defaultRegion;
|
|
99
98
|
instanceName = "".concat(projectId, ":").concat(region, ":").concat(instanceId, "=tcp:").concat(localPort);
|
|
100
|
-
return [4 /*yield*/, (0,
|
|
99
|
+
return [4 /*yield*/, (0, getProjectConfig_1.getGitlabVar)(this, env, componentName, "cloudsqlProxyCredentials")];
|
|
101
100
|
case 5:
|
|
102
|
-
|
|
101
|
+
cloudsqlProxyCredentials = _g.sent();
|
|
102
|
+
if (!cloudsqlProxyCredentials) {
|
|
103
|
+
// we store cloudsqlProxyCredentials on gitlab, but its currently get pushed via bitwarden due to legacy reasons
|
|
104
|
+
// this will be fixed with when https://git.panter.ch/catladder/catladder/-/merge_requests/32/ is merged
|
|
105
|
+
this.log("cloudsqlProxyCredentials env var missing in gitlab. Please contact gilde-ci-cd about that.");
|
|
106
|
+
throw new Error("cloudsqlProxyCredentials missing in secrets");
|
|
107
|
+
}
|
|
103
108
|
return [4 /*yield*/, (0, tmp_promise_1.withFile)(function (_a) {
|
|
104
109
|
var tmpFilePath = _a.path;
|
|
105
110
|
return __awaiter(_this, void 0, void 0, function () {
|
|
106
111
|
return __generator(this, function (_b) {
|
|
107
112
|
switch (_b.label) {
|
|
108
|
-
case 0: return [4 /*yield*/, (0, fs_extra_1.writeFile)(tmpFilePath,
|
|
113
|
+
case 0: return [4 /*yield*/, (0, fs_extra_1.writeFile)(tmpFilePath, cloudsqlProxyCredentials)];
|
|
109
114
|
case 1:
|
|
110
115
|
_b.sent();
|
|
111
116
|
return [4 /*yield*/, (0, child_process_promise_1.spawn)("cloud_sql_proxy", ["-instances", instanceName, "-credential_file", tmpFilePath], {
|
|
@@ -120,7 +125,7 @@ exports["default"] = (function (vorpal) { return __awaiter(void 0, void 0, void
|
|
|
120
125
|
});
|
|
121
126
|
})];
|
|
122
127
|
case 6:
|
|
123
|
-
|
|
128
|
+
_g.sent();
|
|
124
129
|
return [2 /*return*/];
|
|
125
130
|
}
|
|
126
131
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commandCloudSqlProxy.js","sourceRoot":"","sources":["../../../../../src/apps/cli/commands/project/commandCloudSqlProxy.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAAqD;AACrD,+DAA8C;AAC9C,qCAAqC;AACrC,2CAAuC;AAEvC,
|
|
1
|
+
{"version":3,"file":"commandCloudSqlProxy.js","sourceRoot":"","sources":["../../../../../src/apps/cli/commands/project/commandCloudSqlProxy.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,6 +19,7 @@ export declare const getAllComponentsWithAllEnvsHierarchical: () => Promise<{
|
|
|
19
19
|
}>;
|
|
20
20
|
export declare const getAllPipelineContexts: () => Promise<import("@catladder/pipeline").Context[]>;
|
|
21
21
|
export declare const getEnvironment: (env: string, componentName: string) => Promise<import("@catladder/pipeline").Environment>;
|
|
22
|
+
export declare const getGitlabVar: (vorpal: CommandInstance, env: string, componentName: string, variableName: string) => Promise<string>;
|
|
22
23
|
export declare const getEnvVars: (vorpal: CommandInstance, env: string, componentName: string) => Promise<{
|
|
23
24
|
[k: string]: string;
|
|
24
25
|
}>;
|
|
@@ -39,7 +39,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
39
39
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
40
40
|
};
|
|
41
41
|
exports.__esModule = true;
|
|
42
|
-
exports.getEnvVars = exports.getEnvironment = exports.getAllPipelineContexts = exports.getAllComponentsWithAllEnvsHierarchical = exports.getAllComponentsWithAllEnvsFlat = exports.getPipelineContextByChoice = exports.parseChoice = exports.getProjectComponents = exports.getGitlabCi = exports.getGitlabCiFilePath = exports.reloadConfig = exports.getProjectConfig = void 0;
|
|
42
|
+
exports.getEnvVars = exports.getGitlabVar = exports.getEnvironment = exports.getAllPipelineContexts = exports.getAllComponentsWithAllEnvsHierarchical = exports.getAllComponentsWithAllEnvsFlat = exports.getPipelineContextByChoice = exports.parseChoice = exports.getProjectComponents = exports.getGitlabCi = exports.getGitlabCiFilePath = exports.reloadConfig = exports.getProjectConfig = void 0;
|
|
43
43
|
var pipeline_1 = require("@catladder/pipeline");
|
|
44
44
|
var gitlab_1 = require("../utils/gitlab");
|
|
45
45
|
var memoizee_1 = __importDefault(require("memoizee"));
|
|
@@ -191,6 +191,18 @@ var getEnvironment = function (env, componentName) { return __awaiter(void 0, vo
|
|
|
191
191
|
});
|
|
192
192
|
}); };
|
|
193
193
|
exports.getEnvironment = getEnvironment;
|
|
194
|
+
var getGitlabVar = function (vorpal, env, componentName, variableName) { return __awaiter(void 0, void 0, void 0, function () {
|
|
195
|
+
var rawVariableName;
|
|
196
|
+
return __generator(this, function (_a) {
|
|
197
|
+
switch (_a.label) {
|
|
198
|
+
case 0:
|
|
199
|
+
rawVariableName = (0, pipeline_1.getSecretVarName)(env, componentName, variableName);
|
|
200
|
+
return [4 /*yield*/, (0, gitlab_1.getVariableValueByRawName)(vorpal, rawVariableName)];
|
|
201
|
+
case 1: return [2 /*return*/, _a.sent()];
|
|
202
|
+
}
|
|
203
|
+
});
|
|
204
|
+
}); };
|
|
205
|
+
exports.getGitlabVar = getGitlabVar;
|
|
194
206
|
var resolveSecrets = function (vorpal, allEnvVars) { return __awaiter(void 0, void 0, void 0, function () {
|
|
195
207
|
var allVariablesInGitlab;
|
|
196
208
|
return __generator(this, function (_a) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getProjectConfig.js","sourceRoot":"","sources":["../../src/config/getProjectConfig.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"getProjectConfig.js","sourceRoot":"","sources":["../../src/config/getProjectConfig.ts"],"names":[],"mappings":"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"}
|