@catladder/cli 1.0.5 → 1.2.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/general/index.js +0 -66
- package/dist/apps/cli/commands/general/index.js.map +1 -1
- package/dist/apps/cli/commands/project/commandCloudSqlProxy.js +15 -14
- package/dist/apps/cli/commands/project/commandCloudSqlProxy.js.map +1 -1
- package/dist/apps/cli/commands/project/commandCopyDB.js +3 -3
- package/dist/apps/cli/commands/project/commandCopyDB.js.map +1 -1
- package/dist/apps/cli/commands/project/commandInitGitlab.js +64 -172
- package/dist/apps/cli/commands/project/commandInitGitlab.js.map +1 -1
- package/dist/apps/cli/commands/project/commandOpenDashboard.js +7 -14
- package/dist/apps/cli/commands/project/commandOpenDashboard.js.map +1 -1
- package/dist/apps/cli/commands/project/commandOpenGit.js +7 -2
- package/dist/apps/cli/commands/project/commandOpenGit.js.map +1 -1
- package/dist/apps/cli/commands/project/commandOpenLogs.js +21 -21
- package/dist/apps/cli/commands/project/commandOpenLogs.js.map +1 -1
- package/dist/apps/cli/commands/project/utils/ensureCluster.js +1 -1
- package/dist/apps/cli/commands/project/utils/ensureCluster.js.map +1 -1
- package/dist/apps/cli/commands/project/utils/ensureNamespace.d.ts +1 -1
- package/dist/apps/cli/commands/project/utils/ensureNamespace.js +18 -34
- package/dist/apps/cli/commands/project/utils/ensureNamespace.js.map +1 -1
- package/dist/apps/cli/commands/shared/index.d.ts +3 -2
- package/dist/apps/cli/commands/shared/index.js +7 -9
- package/dist/apps/cli/commands/shared/index.js.map +1 -1
- package/dist/apps/cli/commands/theStuffThatReallyMatters/index.js +0 -30
- package/dist/apps/cli/commands/theStuffThatReallyMatters/index.js.map +1 -1
- package/dist/apps/cli/verify/migration/fromv2.js +9 -3
- package/dist/apps/cli/verify/migration/fromv2.js.map +1 -1
- package/dist/catenv.js +2 -0
- package/dist/catenv.js.map +1 -1
- package/dist/cli.js +2 -0
- package/dist/cli.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/config/getProjectConfig.js +3 -1
- package/dist/config/getProjectConfig.js.map +1 -1
- package/dist/k8sApi/index.d.ts +1 -0
- package/dist/k8sApi/index.js +6 -2
- package/dist/k8sApi/index.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/utils/cluster.d.ts +2 -11
- package/dist/utils/cluster.js +13 -38
- package/dist/utils/cluster.js.map +1 -1
- package/dist/utils/gitlab.js +6 -2
- package/dist/utils/gitlab.js.map +1 -1
- package/dist/utils/projects/index.js +10 -6
- package/dist/utils/projects/index.js.map +1 -1
- package/package.json +5 -4
- package/src/apps/cli/commands/general/index.ts +1 -39
- package/src/apps/cli/commands/project/commandCloudSqlProxy.ts +4 -5
- package/src/apps/cli/commands/project/commandCopyDB.ts +4 -5
- package/src/apps/cli/commands/project/commandInitGitlab.ts +123 -74
- package/src/apps/cli/commands/project/commandOpenDashboard.ts +10 -7
- package/src/apps/cli/commands/project/commandOpenGit.ts +2 -2
- package/src/apps/cli/commands/project/commandOpenLogs.ts +33 -4
- package/src/apps/cli/commands/project/utils/ensureCluster.ts +7 -2
- package/src/apps/cli/commands/project/utils/ensureNamespace.ts +2 -14
- package/src/apps/cli/commands/shared/index.ts +19 -16
- package/src/apps/cli/commands/theStuffThatReallyMatters/index.ts +0 -19
- package/src/apps/cli/verify/migration/fromv2.ts +7 -2
- package/src/catenv.ts +2 -1
- package/src/cli.ts +2 -1
- package/src/config/constants.ts +0 -1
- package/src/config/getProjectConfig.ts +5 -3
- package/src/k8sApi/index.ts +5 -1
- package/src/utils/cluster.ts +8 -28
- package/src/utils/gitlab.ts +5 -0
- package/src/utils/projects/index.ts +2 -3
- package/dist/config/clusters.d.ts +0 -14
- package/dist/config/clusters.js +0 -72
- package/dist/config/clusters.js.map +0 -1
- package/src/config/clusters.ts +0 -45
|
@@ -47,8 +47,6 @@ var log_1 = require("../../../../utils/log");
|
|
|
47
47
|
var passwordstore_1 = require("../../../../utils/passwordstore");
|
|
48
48
|
var portForward_1 = require("../../../../utils/portForward");
|
|
49
49
|
var shell_1 = require("../../../../utils/shell");
|
|
50
|
-
var getGoogleAuthUserNumber_1 = require("../../utils/getGoogleAuthUserNumber");
|
|
51
|
-
var shared_1 = require("../shared");
|
|
52
50
|
var namespaceAutoCompletion_1 = require("./namespaceAutoCompletion");
|
|
53
51
|
var portForward_2 = __importDefault(require("./portForward"));
|
|
54
52
|
var getAllNamespaces = (0, memoizee_1["default"])(function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
@@ -76,24 +74,6 @@ var getAllNamespacesNames = function () { return __awaiter(void 0, void 0, void
|
|
|
76
74
|
exports.getAllNamespacesNames = getAllNamespacesNames;
|
|
77
75
|
exports["default"] = (function (vorpal) { return __awaiter(void 0, void 0, void 0, function () {
|
|
78
76
|
return __generator(this, function (_a) {
|
|
79
|
-
vorpal
|
|
80
|
-
.command("connect-cluster <clustername>")
|
|
81
|
-
.autocomplete((0, cluster_1.getAllClusterNames)())
|
|
82
|
-
.action(function (_a) {
|
|
83
|
-
var clustername = _a.clustername;
|
|
84
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
85
|
-
return __generator(this, function (_b) {
|
|
86
|
-
switch (_b.label) {
|
|
87
|
-
case 0:
|
|
88
|
-
this.log("connecting to ".concat(clustername));
|
|
89
|
-
return [4 /*yield*/, (0, cluster_1.connectToCluster)(clustername)];
|
|
90
|
-
case 1:
|
|
91
|
-
_b.sent();
|
|
92
|
-
return [2 /*return*/];
|
|
93
|
-
}
|
|
94
|
-
});
|
|
95
|
-
});
|
|
96
|
-
});
|
|
97
77
|
vorpal.command("current-context").action(function () {
|
|
98
78
|
return __awaiter(this, void 0, void 0, function () {
|
|
99
79
|
var _a;
|
|
@@ -188,52 +168,6 @@ exports["default"] = (function (vorpal) { return __awaiter(void 0, void 0, void
|
|
|
188
168
|
});
|
|
189
169
|
});
|
|
190
170
|
});
|
|
191
|
-
vorpal
|
|
192
|
-
.command("open-dashboard <namespace>", "open kubernetes dashboard")
|
|
193
|
-
.autocomplete(namespaceAutoCompletion_1.namespaceAutoCompletion)
|
|
194
|
-
.action(function (_a) {
|
|
195
|
-
var namespace = _a.namespace;
|
|
196
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
197
|
-
var clustername, authGoogleNumber;
|
|
198
|
-
return __generator(this, function (_b) {
|
|
199
|
-
switch (_b.label) {
|
|
200
|
-
case 0: return [4 /*yield*/, (0, cluster_1.getCurrentConnectedClusterName)()];
|
|
201
|
-
case 1:
|
|
202
|
-
clustername = _b.sent();
|
|
203
|
-
return [4 /*yield*/, getGoogleAuthUserNumber_1.getGoogleAuthUserNumber.call(this, vorpal)];
|
|
204
|
-
case 2:
|
|
205
|
-
authGoogleNumber = _b.sent();
|
|
206
|
-
return [4 /*yield*/, (0, shared_1.openGoogleCloudKubernetesDashboard)(authGoogleNumber, clustername, namespace)];
|
|
207
|
-
case 3:
|
|
208
|
-
_b.sent();
|
|
209
|
-
return [2 /*return*/];
|
|
210
|
-
}
|
|
211
|
-
});
|
|
212
|
-
});
|
|
213
|
-
});
|
|
214
|
-
vorpal
|
|
215
|
-
.command("open-logs <namespace>", "open google cloud logs (stackdriver stuff)")
|
|
216
|
-
.autocomplete(namespaceAutoCompletion_1.namespaceAutoCompletion)
|
|
217
|
-
.action(function (_a) {
|
|
218
|
-
var namespace = _a.namespace;
|
|
219
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
220
|
-
var clustername, authGoogleNumber;
|
|
221
|
-
return __generator(this, function (_b) {
|
|
222
|
-
switch (_b.label) {
|
|
223
|
-
case 0: return [4 /*yield*/, (0, cluster_1.getCurrentConnectedClusterName)()];
|
|
224
|
-
case 1:
|
|
225
|
-
clustername = _b.sent();
|
|
226
|
-
return [4 /*yield*/, getGoogleAuthUserNumber_1.getGoogleAuthUserNumber.call(this, vorpal)];
|
|
227
|
-
case 2:
|
|
228
|
-
authGoogleNumber = _b.sent();
|
|
229
|
-
return [4 /*yield*/, (0, shared_1.openGoogleCloudLogs)(authGoogleNumber, clustername, namespace)];
|
|
230
|
-
case 3:
|
|
231
|
-
_b.sent();
|
|
232
|
-
return [2 /*return*/];
|
|
233
|
-
}
|
|
234
|
-
});
|
|
235
|
-
});
|
|
236
|
-
});
|
|
237
171
|
vorpal
|
|
238
172
|
.command("get-shell <namespace>", "get a shell to a pod in the environment")
|
|
239
173
|
.autocomplete(namespaceAutoCompletion_1.namespaceAutoCompletion)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/apps/cli/commands/general/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sDAAgC;AAEhC,8DAAwC;AACxC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/apps/cli/commands/general/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -55,18 +55,18 @@ exports["default"] = (function (vorpal) { return __awaiter(void 0, void 0, void
|
|
|
55
55
|
return [4 /*yield*/, (0, autocompletions_1.envAndComponents)()];
|
|
56
56
|
case 1: return [2 /*return*/, _b.apply(_a, [_c.sent()])
|
|
57
57
|
.action(function (_a) {
|
|
58
|
-
var _b, _c, _d, _e;
|
|
58
|
+
var _b, _c, _d, _e, _f;
|
|
59
59
|
var envComponent = _a.envComponent;
|
|
60
60
|
return __awaiter(this, void 0, void 0, function () {
|
|
61
|
-
var
|
|
61
|
+
var _g, env, componentName, config, localPort, POSTGRESQL_PASSWORD, context, values, projectId, defaultInstanceId, instanceId, defaultRegion, region, instanceName, cloudsqlCredentials;
|
|
62
62
|
var _this = this;
|
|
63
|
-
return __generator(this, function (
|
|
64
|
-
switch (
|
|
63
|
+
return __generator(this, function (_h) {
|
|
64
|
+
switch (_h.label) {
|
|
65
65
|
case 0:
|
|
66
|
-
|
|
66
|
+
_g = (0, getProjectConfig_1.parseChoice)(envComponent), env = _g.env, componentName = _g.componentName;
|
|
67
67
|
return [4 /*yield*/, (0, getProjectConfig_1.getProjectConfig)()];
|
|
68
68
|
case 1:
|
|
69
|
-
config =
|
|
69
|
+
config = _h.sent();
|
|
70
70
|
return [4 /*yield*/, this.prompt({
|
|
71
71
|
type: "number",
|
|
72
72
|
name: "localPort",
|
|
@@ -74,28 +74,29 @@ exports["default"] = (function (vorpal) { return __awaiter(void 0, void 0, void
|
|
|
74
74
|
message: "Local port: "
|
|
75
75
|
})];
|
|
76
76
|
case 2:
|
|
77
|
-
localPort = (
|
|
77
|
+
localPort = (_h.sent()).localPort;
|
|
78
78
|
return [4 /*yield*/, (0, getProjectConfig_1.getEnvVars)(this, env, componentName)];
|
|
79
79
|
case 3:
|
|
80
|
-
POSTGRESQL_PASSWORD = (_b = (
|
|
80
|
+
POSTGRESQL_PASSWORD = (_b = (_h.sent())) === null || _b === void 0 ? void 0 : _b.POSTGRESQL_PASSWORD;
|
|
81
81
|
return [4 /*yield*/, (0, getProjectConfig_1.getPipelineContextByChoice)(env, componentName)];
|
|
82
82
|
case 4:
|
|
83
|
-
context =
|
|
83
|
+
context = _h.sent();
|
|
84
84
|
if (!(0, pipeline_1.isOfDeployType)(context.componentConfig.deploy, "kubernetes")) {
|
|
85
85
|
throw new Error("currently only supported for kubernetes deployment");
|
|
86
86
|
}
|
|
87
87
|
this.log("postgres-PW: ".concat(POSTGRESQL_PASSWORD));
|
|
88
88
|
this.log("");
|
|
89
89
|
values = context.componentConfig.deploy.values;
|
|
90
|
-
projectId = ((_c = values === null || values === void 0 ? void 0 : values.cloudsql) === null || _c === void 0 ? void 0 : _c.projectId) ||
|
|
90
|
+
projectId = ((_c = values === null || values === void 0 ? void 0 : values.cloudsql) === null || _c === void 0 ? void 0 : _c.projectId) ||
|
|
91
|
+
((_d = context.componentConfig.deploy.cluster) === null || _d === void 0 ? void 0 : _d.projectId);
|
|
91
92
|
defaultInstanceId = "".concat(config.customerName, "-").concat(config.appName, "-").concat(env);
|
|
92
|
-
instanceId = ((
|
|
93
|
+
instanceId = ((_e = values === null || values === void 0 ? void 0 : values.cloudsql) === null || _e === void 0 ? void 0 : _e.instanceId) || defaultInstanceId;
|
|
93
94
|
defaultRegion = "europe-west6";
|
|
94
|
-
region = ((
|
|
95
|
+
region = ((_f = values === null || values === void 0 ? void 0 : values.cloudsql) === null || _f === void 0 ? void 0 : _f.region) || defaultRegion;
|
|
95
96
|
instanceName = "".concat(projectId, ":").concat(region, ":").concat(instanceId, "=tcp:").concat(localPort);
|
|
96
97
|
return [4 /*yield*/, (0, passwordstore_1.readPass)(constants_1.GOOGLE_CLOUD_SQL_PASS_PATH)];
|
|
97
98
|
case 5:
|
|
98
|
-
cloudsqlCredentials =
|
|
99
|
+
cloudsqlCredentials = _h.sent();
|
|
99
100
|
return [4 /*yield*/, (0, tmp_promise_1.withFile)(function (_a) {
|
|
100
101
|
var tmpFilePath = _a.path;
|
|
101
102
|
return __awaiter(_this, void 0, void 0, function () {
|
|
@@ -116,7 +117,7 @@ exports["default"] = (function (vorpal) { return __awaiter(void 0, void 0, void
|
|
|
116
117
|
});
|
|
117
118
|
})];
|
|
118
119
|
case 6:
|
|
119
|
-
|
|
120
|
+
_h.sent();
|
|
120
121
|
return [2 /*return*/];
|
|
121
122
|
}
|
|
122
123
|
});
|
|
@@ -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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"}
|
|
@@ -72,12 +72,12 @@ exports["default"] = (function (vorpal) { return __awaiter(void 0, void 0, void
|
|
|
72
72
|
if (!shouldContinue) {
|
|
73
73
|
return [2 /*return*/];
|
|
74
74
|
}
|
|
75
|
-
|
|
76
|
-
|
|
75
|
+
// TODO: reimpleent with new config
|
|
76
|
+
throw new Error("needs reimplementation with new config");
|
|
77
77
|
case 3:
|
|
78
78
|
POSTGRESQL_PASSWORD = (_d.sent()).POSTGRESQL_PASSWORD;
|
|
79
79
|
LOCAL_PORT = 54321;
|
|
80
|
-
instanceName = "".concat(
|
|
80
|
+
instanceName = "".concat("xxxxxx reimplement shoulld be project id", ":").concat(GOOGLE_CLOUD_SQL_REGION, ":").concat(customerName, "-").concat(appName, "-").concat(env, "=tcp:").concat(LOCAL_PORT);
|
|
81
81
|
return [4 /*yield*/, (0, passwordstore_1.readPass)(constants_1.GOOGLE_CLOUD_SQL_PASS_PATH)];
|
|
82
82
|
case 4:
|
|
83
83
|
cloudsqlCredentials = _d.sent();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commandCopyDB.js","sourceRoot":"","sources":["../../../../../src/apps/cli/commands/project/commandCopyDB.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+DAA8C;AAE9C,
|
|
1
|
+
{"version":3,"file":"commandCopyDB.js","sourceRoot":"","sources":["../../../../../src/apps/cli/commands/project/commandCopyDB.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+DAA8C;AAE9C,0DAA0E;AAC1E,wEAI6C;AAC7C,iEAA2D;AAC3D,2DAA2D;AAE3D,sBAAe,UAAO,MAAc;;;;;gBAClC,KAAA,CAAA,KAAA,MAAM;qBACH,OAAO,CACN,wBAAwB,EACxB,2CAA2C,CAC5C,CAAA;qBACA,YAAY,CAAA;gBAAC,qBAAM,IAAA,kCAAgB,GAAE,EAAA;oBALxC,sBAAA,cAKgB,SAAwB,EAAC;qBACtC,MAAM,CAAC,SAAe,MAAM,CAAC,EAAgB;wBAAd,YAAY,kBAAA;;;;;;oCACpC,KAAyB,IAAA,8BAAW,EAAC,YAAY,CAAC,EAAhD,GAAG,SAAA,EAAE,aAAa,mBAAA,CAA+B;oCACvB,qBAAM,IAAA,mCAAgB,GAAE,EAAA;;oCAApD,KAA4B,SAAwB,EAAlD,YAAY,kBAAA,EAAE,OAAO,aAAA;oCAEF,qBAAM,IAAI,CAAC,MAAM,CAAC;4CAC3C,IAAI,EAAE,SAAS;4CACf,IAAI,EAAE,gBAAgB;4CACtB,OAAO,EACL,sFAAsF;yCACzF,CAAC,EAAA;;oCALM,cAAc,GAAK,CAAA,SAKzB,CAAA,eALoB;oCAOtB,IAAI,CAAC,cAAc,EAAE;wCACnB,sBAAO;qCACR;oCAED,mCAAmC;oCACnC,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;;oCAElD,mBAAmB,GAAK,CAAA,SAI/B,CAAA,oBAJ0B;oCAMrB,UAAU,GAAG,KAAK,CAAC;oCAEnB,YAAY,GAAG,UAAG,0CAA0C,cAAI,uBAAuB,cAAI,YAAY,cAAI,OAAO,cAAI,GAAG,kBAAQ,UAAU,CAAE,CAAC;oCACxH,qBAAM,IAAA,wBAAQ,EAAC,sCAA0B,CAAC,EAAA;;oCAAhE,mBAAmB,GAAG,SAA0C;oCAE9D,cAAc,GAAK,OAAO,CAAC,GAAG,eAAhB,CAAiB;oCACjC,OAAO,GAAG,IAAI,MAAM,CAAC,yBAAyB,CAAC,CAAC,IAAI,CACxD,cAAc,CACf,CAAC;oCACF,IAAI,CAAC,OAAO,EAAE;wCACZ,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;qCACjD;oCACK,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;oCAEzB,YAAY,GAAG,gFAGb,mBAAmB,kGAEE,YAAY,yJAIP,UAAU,mOASL,mBAAmB,wBAAc,UAAU,cAAI,aAAa,sFACvE,WAAW,iEACT,WAAW,8EAE/B,WAAW,0NASpB,CAAC;oCAEF,qBAAM,IAAA,6BAAK,EAAC,YAAY,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,EAAA;;oCAAlE,SAAkE,CAAC;;;;;iBACpE,CAAC,EAAA;;;KAAA,EAAC"}
|
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
|
|
3
|
+
if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
|
|
4
|
+
return cooked;
|
|
5
|
+
};
|
|
2
6
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
7
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
8
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -35,211 +39,99 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
35
39
|
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
40
|
}
|
|
37
41
|
};
|
|
38
|
-
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
39
|
-
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
40
|
-
if (ar || !(i in from)) {
|
|
41
|
-
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
42
|
-
ar[i] = from[i];
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
return to.concat(ar || Array.prototype.slice.call(from));
|
|
46
|
-
};
|
|
47
42
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
48
43
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
49
44
|
};
|
|
50
45
|
exports.__esModule = true;
|
|
51
46
|
var pipeline_1 = require("@catladder/pipeline");
|
|
52
|
-
var
|
|
47
|
+
var zx_1 = require("zx");
|
|
53
48
|
var getProjectConfig_1 = require("../../../../config/getProjectConfig");
|
|
54
49
|
var cluster_1 = require("../../../../utils/cluster");
|
|
55
50
|
var gitlab_1 = require("../../../../utils/gitlab");
|
|
56
|
-
var
|
|
57
|
-
var projects_1 = require("../../../../utils/projects");
|
|
51
|
+
var ensureNamespace_1 = __importDefault(require("./utils/ensureNamespace"));
|
|
58
52
|
exports["default"] = (function (vorpal) { return __awaiter(void 0, void 0, void 0, function () {
|
|
59
53
|
return __generator(this, function (_a) {
|
|
60
54
|
return [2 /*return*/, vorpal
|
|
61
55
|
.command("project-init-gitlab", "Initializes the gitlab repo, e.g. connects the cluster to it")
|
|
62
56
|
.action(function () {
|
|
63
57
|
return __awaiter(this, void 0, void 0, function () {
|
|
64
|
-
var
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
switch (_g.label) {
|
|
69
|
-
case 0: return [4 /*yield*/, (0, gitlab_1.getProjectInfo)(this)];
|
|
58
|
+
var allContext, _i, allContext_1, context, deployConfig, fullName, namespace, serviceAccountName, KUBE_URL, e_1, tokenName, KUBE_CA_PEM, KUBE_TOKEN, vars;
|
|
59
|
+
return __generator(this, function (_a) {
|
|
60
|
+
switch (_a.label) {
|
|
61
|
+
case 0: return [4 /*yield*/, (0, getProjectConfig_1.getAllPipelineContexts)()];
|
|
70
62
|
case 1:
|
|
71
|
-
|
|
72
|
-
|
|
63
|
+
allContext = _a.sent();
|
|
64
|
+
_i = 0, allContext_1 = allContext;
|
|
65
|
+
_a.label = 2;
|
|
73
66
|
case 2:
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
});
|
|
82
|
-
if (existingClusters.length === 0) {
|
|
83
|
-
this.log("");
|
|
84
|
-
this.log("there is no cluster on the current project?");
|
|
85
|
-
}
|
|
86
|
-
else {
|
|
87
|
-
this.log("there are already these clusters on the gitlab: ");
|
|
88
|
-
this.log("");
|
|
89
|
-
existingClusters.forEach(function (cluster) {
|
|
90
|
-
return _this.log(" - ".concat(cluster.name || "unknown", " (").concat(cluster.fullName, ")"));
|
|
91
|
-
});
|
|
92
|
-
}
|
|
93
|
-
this.log("");
|
|
94
|
-
this.log("your project specifies the following clusters:");
|
|
95
|
-
this.log("");
|
|
96
|
-
return [4 /*yield*/, (0, getProjectConfig_1.getAllPipelineContexts)()];
|
|
67
|
+
if (!(_i < allContext_1.length)) return [3 /*break*/, 19];
|
|
68
|
+
context = allContext_1[_i];
|
|
69
|
+
deployConfig = context.componentConfig.deploy;
|
|
70
|
+
if (!(0, pipeline_1.isOfDeployType)(deployConfig, "kubernetes")) return [3 /*break*/, 18];
|
|
71
|
+
fullName = (0, pipeline_1.getFullKubernetesClusterName)(deployConfig.cluster);
|
|
72
|
+
this.log("connecting ".concat(context.environment.shortName, ":").concat(context.componentName, " ").concat(fullName));
|
|
73
|
+
return [4 /*yield*/, (0, cluster_1.connectToCluster)(fullName)];
|
|
97
74
|
case 3:
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
if ((0, pipeline_1.isOfDeployType)(c, "kubernetes") &&
|
|
102
|
-
!acc.includes(c.cluster || "production")) {
|
|
103
|
-
return __spreadArray(__spreadArray([], acc, true), [c.cluster || "production"], false);
|
|
104
|
-
}
|
|
105
|
-
return acc;
|
|
106
|
-
}, []);
|
|
107
|
-
configuredClusters = configuredClusterNames.map(function (c) { return ({
|
|
108
|
-
name: c,
|
|
109
|
-
config: (0, cluster_1.getClusterByName)(c)
|
|
110
|
-
}); });
|
|
111
|
-
configuredClusters.forEach(function (cluster) {
|
|
112
|
-
return _this.log(" - ".concat(cluster.name || "unknown", " (").concat(cluster.config.fullName, ")"));
|
|
113
|
-
});
|
|
114
|
-
this.log("");
|
|
115
|
-
missingClusters = configuredClusters.filter(function (c) { return !existingClusters.some(function (exist) { return exist.name === c.name; }); });
|
|
116
|
-
this.log("");
|
|
117
|
-
this.log("These clusters are not configured yet on gitlab:");
|
|
118
|
-
this.log("");
|
|
119
|
-
missingClusters.forEach(function (cluster) {
|
|
120
|
-
return _this.log(" - ".concat(cluster.name || "unknown", " (").concat(cluster.config.fullName, ")"));
|
|
121
|
-
});
|
|
122
|
-
this.log("");
|
|
123
|
-
_i = 0, missingClusters_1 = missingClusters;
|
|
124
|
-
_g.label = 4;
|
|
75
|
+
_a.sent();
|
|
76
|
+
namespace = (0, pipeline_1.getKubernetesNamespace)(context.fullConfig, context.environment.shortName);
|
|
77
|
+
return [4 /*yield*/, (0, ensureNamespace_1["default"])(namespace)];
|
|
125
78
|
case 4:
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
this.log("");
|
|
130
|
-
return [4 /*yield*/, this.prompt({
|
|
131
|
-
type: "confirm",
|
|
132
|
-
name: "shouldContinue",
|
|
133
|
-
message: "Should I add the this cluster ? 🤔 "
|
|
134
|
-
})];
|
|
79
|
+
_a.sent();
|
|
80
|
+
serviceAccountName = "cl-".concat(context.componentName, "-deploy");
|
|
81
|
+
return [4 /*yield*/, (0, zx_1.$)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["TERM=dumb kubectl cluster-info | grep -E 'Kubernetes master|Kubernetes control plane' | awk '/http/ {print $NF}'"], ["TERM=dumb kubectl cluster-info | grep -E 'Kubernetes master|Kubernetes control plane' | awk '/http/ {print $NF}'"]))).then(function (s) { return s.stdout.trim(); })];
|
|
135
82
|
case 5:
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
if (!shouldContinue) return [3 /*break*/, 10];
|
|
139
|
-
_b = cluster.config, api_url = _b.api_url, passCredentials = _b.passCredentials;
|
|
140
|
-
if (!api_url) {
|
|
141
|
-
throw new Error("no api_url on this cluster!");
|
|
142
|
-
}
|
|
143
|
-
if (!passCredentials) {
|
|
144
|
-
throw new Error("no passCredentials on this cluster!");
|
|
145
|
-
}
|
|
146
|
-
return [4 /*yield*/, (0, passwordstore_1.readPass)(passCredentials.token)];
|
|
83
|
+
KUBE_URL = _a.sent();
|
|
84
|
+
_a.label = 6;
|
|
147
85
|
case 6:
|
|
148
|
-
|
|
149
|
-
return [4 /*yield*/, (0,
|
|
86
|
+
_a.trys.push([6, 10, , 11]);
|
|
87
|
+
return [4 /*yield*/, (0, zx_1.$)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["kubectl delete serviceaccount --namespace ", " ", ""], ["kubectl delete serviceaccount --namespace ", " ", ""])), namespace, serviceAccountName)];
|
|
150
88
|
case 7:
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
managed: false
|
|
157
|
-
};
|
|
158
|
-
_f = {
|
|
159
|
-
api_url: api_url,
|
|
160
|
-
ca_cert: ca_cert,
|
|
161
|
-
token: token
|
|
162
|
-
};
|
|
163
|
-
return [4 /*yield*/, (0, projects_1.getProjectNamespace)("prod")];
|
|
164
|
-
case 8: return [4 /*yield*/, _c.apply(void 0, _d.concat([(_e.platform_kubernetes_attributes = (_f.namespace = _g.sent(),
|
|
165
|
-
_f),
|
|
166
|
-
_e)]))];
|
|
89
|
+
_a.sent();
|
|
90
|
+
return [4 /*yield*/, (0, zx_1.$)(templateObject_3 || (templateObject_3 = __makeTemplateObject(["kubectl delete rolebinding --namespace ", " ", ""], ["kubectl delete rolebinding --namespace ", " ", ""])), namespace, serviceAccountName)];
|
|
91
|
+
case 8:
|
|
92
|
+
_a.sent();
|
|
93
|
+
return [4 /*yield*/, (0, zx_1.$)(templateObject_4 || (templateObject_4 = __makeTemplateObject(["kubectl delete role --namespace ", " ", ""], ["kubectl delete role --namespace ", " ", ""])), namespace, serviceAccountName)];
|
|
167
94
|
case 9:
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
if (message) {
|
|
171
|
-
this.log("Message from gitlab: ".concat(message));
|
|
172
|
-
}
|
|
173
|
-
_g.label = 10;
|
|
95
|
+
_a.sent();
|
|
96
|
+
return [3 /*break*/, 11];
|
|
174
97
|
case 10:
|
|
175
|
-
|
|
176
|
-
return [3 /*break*/,
|
|
177
|
-
case 11: return [4 /*yield*/, (0,
|
|
98
|
+
e_1 = _a.sent();
|
|
99
|
+
return [3 /*break*/, 11];
|
|
100
|
+
case 11: return [4 /*yield*/, (0, zx_1.$)(templateObject_5 || (templateObject_5 = __makeTemplateObject(["kubectl create serviceaccount --namespace ", " ", ""], ["kubectl create serviceaccount --namespace ", " ", ""])), namespace, serviceAccountName)];
|
|
178
101
|
case 12:
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
this.log("👉 Please please create a project access token in gitlab and copy its value into clipboard\n\n - name: something like 'semantic-release'\n - expires: leave empty\n - scopes: api, read_repository");
|
|
183
|
-
this.log("\n");
|
|
184
|
-
return [4 /*yield*/, this.prompt({
|
|
185
|
-
"default": true,
|
|
186
|
-
message: "Understood and open gitlab now? 🤔",
|
|
187
|
-
name: "understood",
|
|
188
|
-
type: "confirm"
|
|
189
|
-
})];
|
|
102
|
+
_a.sent();
|
|
103
|
+
// upsert role in the ns
|
|
104
|
+
return [4 /*yield*/, (0, zx_1.$)(templateObject_6 || (templateObject_6 = __makeTemplateObject(["cat <<EOF | kubectl apply -f -\nkind: Role\napiVersion: rbac.authorization.k8s.io/v1\nmetadata:\n namespace: ", "\n name: ", "\nrules:\n- apiGroups: [\"\", \"extensions\", \"apps\", \"networking.k8s.io\", \"batch\"]\n resources: [\"deployments\", \"replicasets\", \"pods\", \"secrets\", \"configmaps\", \"services\", \"ingresses\", \"serviceaccounts\", \"jobs\", \"cronjobs\"]\n verbs: [\"get\", \"list\", \"watch\", \"create\", \"update\", \"patch\", \"delete\"] # You can also use [\"*\"]\n---\nkind: RoleBinding\napiVersion: rbac.authorization.k8s.io/v1\nmetadata:\n name: ", "\n namespace: ", "\nsubjects:\n - kind: ServiceAccount\n name: ", "\n namespace: ", "\nroleRef:\n kind: Role\n name: ", "\n apiGroup: rbac.authorization.k8s.io\nEOF\n "], ["cat <<EOF | kubectl apply -f -\nkind: Role\napiVersion: rbac.authorization.k8s.io/v1\nmetadata:\n namespace: ", "\n name: ", "\nrules:\n- apiGroups: [\"\", \"extensions\", \"apps\", \"networking.k8s.io\", \"batch\"]\n resources: [\"deployments\", \"replicasets\", \"pods\", \"secrets\", \"configmaps\", \"services\", \"ingresses\", \"serviceaccounts\", \"jobs\", \"cronjobs\"]\n verbs: [\"get\", \"list\", \"watch\", \"create\", \"update\", \"patch\", \"delete\"] # You can also use [\"*\"]\n---\nkind: RoleBinding\napiVersion: rbac.authorization.k8s.io/v1\nmetadata:\n name: ", "\n namespace: ", "\nsubjects:\n - kind: ServiceAccount\n name: ", "\n namespace: ", "\nroleRef:\n kind: Role\n name: ", "\n apiGroup: rbac.authorization.k8s.io\nEOF\n "])), namespace, serviceAccountName, serviceAccountName, namespace, serviceAccountName, namespace, serviceAccountName)];
|
|
190
105
|
case 13:
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
}
|
|
195
|
-
(0, open_1["default"])("".concat(projectWebUrl, "/-/settings/access_tokens"));
|
|
196
|
-
this.log("\n");
|
|
197
|
-
this.log("Enter your copied token now: ");
|
|
198
|
-
this.log("\n");
|
|
199
|
-
return [4 /*yield*/, this.prompt({
|
|
200
|
-
type: "password",
|
|
201
|
-
name: "GL_TOKEN",
|
|
202
|
-
message: "Access Token: "
|
|
203
|
-
})];
|
|
106
|
+
// upsert role in the ns
|
|
107
|
+
_a.sent();
|
|
108
|
+
return [4 /*yield*/, (0, zx_1.$)(templateObject_7 || (templateObject_7 = __makeTemplateObject(["kubectl get serviceaccount --namespace ", " ", " -o jsonpath='{.secrets[0].name}'"], ["kubectl get serviceaccount --namespace ", " ", " -o jsonpath='{.secrets[0].name}'"])), namespace, serviceAccountName)];
|
|
204
109
|
case 14:
|
|
205
|
-
|
|
206
|
-
return [4 /*yield*/, (0,
|
|
207
|
-
key: "GL_TOKEN",
|
|
208
|
-
value: GL_TOKEN
|
|
209
|
-
})];
|
|
110
|
+
tokenName = _a.sent();
|
|
111
|
+
return [4 /*yield*/, (0, zx_1.$)(templateObject_8 || (templateObject_8 = __makeTemplateObject(["kubectl get secret ", " --namespace ", " -o jsonpath=\"{['data']['ca\\.crt']}\""], ["kubectl get secret ", " --namespace ", " -o jsonpath=\"{['data']['ca\\\\.crt']}\""])), tokenName, namespace).then(function (c) { return c.stdout.trim(); })];
|
|
210
112
|
case 15:
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
case 16:
|
|
113
|
+
KUBE_CA_PEM = _a.sent();
|
|
114
|
+
return [4 /*yield*/, (0, zx_1.$)(templateObject_9 || (templateObject_9 = __makeTemplateObject(["kubectl get secret ", " --namespace ", " -o jsonpath=\"{['data']['token']}\" | base64 --decode"], ["kubectl get secret ", " --namespace ", " -o jsonpath=\"{['data']['token']}\" | base64 --decode"])), tokenName, namespace).then(function (c) { return c.stdout.trim(); })];
|
|
115
|
+
case 16:
|
|
116
|
+
KUBE_TOKEN = _a.sent();
|
|
117
|
+
vars = {
|
|
118
|
+
KUBE_TOKEN: KUBE_TOKEN,
|
|
119
|
+
KUBE_CA_PEM: KUBE_CA_PEM,
|
|
120
|
+
KUBE_URL: KUBE_URL
|
|
121
|
+
};
|
|
122
|
+
return [4 /*yield*/, (0, gitlab_1.upsertAllVariables)(this, vars, context.environment.shortName, context.componentName)];
|
|
214
123
|
case 17:
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
this.log("I will setup the 'GitLab Deploy Token', so Kubernetes can pull images from this project.");
|
|
218
|
-
return [4 /*yield*/, (0, gitlab_1.doGitlabRequest)(this, "projects/".concat(projectId, "/deploy_tokens"), {
|
|
219
|
-
id: projectId,
|
|
220
|
-
name: "gitlab-deploy-token",
|
|
221
|
-
scopes: ["read_registry"]
|
|
222
|
-
})];
|
|
124
|
+
_a.sent();
|
|
125
|
+
_a.label = 18;
|
|
223
126
|
case 18:
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
case 19:
|
|
227
|
-
this.log("gitlab is ready! 🥂");
|
|
228
|
-
this.log("\n");
|
|
229
|
-
this.log("do not forget to make sure that:");
|
|
230
|
-
[
|
|
231
|
-
"you have __health route in place",
|
|
232
|
-
"lint and test are defined",
|
|
233
|
-
"eat your vegetables",
|
|
234
|
-
"be awesome 🤩",
|
|
235
|
-
].forEach(function (tip) { return _this.log(" - ".concat(tip)); });
|
|
236
|
-
this.log("\n");
|
|
237
|
-
this.log("\n");
|
|
238
|
-
return [2 /*return*/];
|
|
127
|
+
_i++;
|
|
128
|
+
return [3 /*break*/, 2];
|
|
129
|
+
case 19: return [2 /*return*/];
|
|
239
130
|
}
|
|
240
131
|
});
|
|
241
132
|
});
|
|
242
133
|
})];
|
|
243
134
|
});
|
|
244
135
|
}); });
|
|
136
|
+
var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5, templateObject_6, templateObject_7, templateObject_8, templateObject_9;
|
|
245
137
|
//# sourceMappingURL=commandInitGitlab.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commandInitGitlab.js","sourceRoot":"","sources":["../../../../../src/apps/cli/commands/project/commandInitGitlab.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"commandInitGitlab.js","sourceRoot":"","sources":["../../../../../src/apps/cli/commands/project/commandInitGitlab.ts"],"names":[],"mappings":"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"}
|
|
@@ -35,16 +35,11 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
35
35
|
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
36
|
}
|
|
37
37
|
};
|
|
38
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
39
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
40
|
-
};
|
|
41
38
|
exports.__esModule = true;
|
|
42
39
|
var getProjectConfig_1 = require("../../../../config/getProjectConfig");
|
|
43
|
-
var cluster_1 = require("../../../../utils/cluster");
|
|
44
40
|
var getGoogleAuthUserNumber_1 = require("../../utils/getGoogleAuthUserNumber");
|
|
45
41
|
var shared_1 = require("../shared");
|
|
46
42
|
var autocompletions_1 = require("./utils/autocompletions");
|
|
47
|
-
var ensureCluster_1 = __importDefault(require("./utils/ensureCluster"));
|
|
48
43
|
exports["default"] = (function (vorpal) { return __awaiter(void 0, void 0, void 0, function () {
|
|
49
44
|
var _a, _b;
|
|
50
45
|
return __generator(this, function (_c) {
|
|
@@ -58,7 +53,7 @@ exports["default"] = (function (vorpal) { return __awaiter(void 0, void 0, void
|
|
|
58
53
|
.action(function (_a) {
|
|
59
54
|
var envComponent = _a.envComponent;
|
|
60
55
|
return __awaiter(this, void 0, void 0, function () {
|
|
61
|
-
var _b, env, componentName, _c, componentConfig, environment, namespace,
|
|
56
|
+
var _b, env, componentName, _c, componentConfig, environment, namespace, authGoogleNumber;
|
|
62
57
|
return __generator(this, function (_d) {
|
|
63
58
|
switch (_d.label) {
|
|
64
59
|
case 0:
|
|
@@ -70,17 +65,15 @@ exports["default"] = (function (vorpal) { return __awaiter(void 0, void 0, void
|
|
|
70
65
|
componentConfig.deploy.type !== "kubernetes") {
|
|
71
66
|
throw new Error("only kubernetes deployments are supported at the moment");
|
|
72
67
|
}
|
|
68
|
+
if (!componentConfig.deploy.cluster ||
|
|
69
|
+
componentConfig.deploy.cluster.type !== "gcloud") {
|
|
70
|
+
throw new Error("no gcloud custer configured");
|
|
71
|
+
}
|
|
73
72
|
namespace = environment.envVars.KUBE_NAMESPACE;
|
|
74
|
-
return [4 /*yield*/, ensureCluster_1["default"].call(this, envComponent)];
|
|
75
|
-
case 2:
|
|
76
|
-
_d.sent(); // TODO: implement
|
|
77
|
-
return [4 /*yield*/, (0, cluster_1.getCurrentConnectedClusterName)()];
|
|
78
|
-
case 3:
|
|
79
|
-
clustername = _d.sent();
|
|
80
73
|
return [4 /*yield*/, getGoogleAuthUserNumber_1.getGoogleAuthUserNumber.call(this, vorpal)];
|
|
81
|
-
case
|
|
74
|
+
case 2:
|
|
82
75
|
authGoogleNumber = _d.sent();
|
|
83
|
-
(0, shared_1.openGoogleCloudKubernetesDashboard)(
|
|
76
|
+
(0, shared_1.openGoogleCloudKubernetesDashboard)(componentConfig.deploy.cluster, namespace, authGoogleNumber);
|
|
84
77
|
return [2 /*return*/];
|
|
85
78
|
}
|
|
86
79
|
});
|