@catladder/cli 0.0.0-main-2e3a88fa → 0.0.0-main-842b2cfa
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/setup/setupAccessTokens.js +2 -15
- package/dist/apps/cli/commands/project/setup/setupAccessTokens.js.map +1 -1
- package/dist/apps/cli/commands/project/setup/setupKubernetes.js +37 -20
- package/dist/apps/cli/commands/project/setup/setupKubernetes.js.map +1 -1
- package/dist/bundles/catenv/index.js +18 -4
- package/dist/bundles/cli/index.js +57 -39
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +2 -2
- package/src/apps/cli/commands/project/setup/setupAccessTokens.ts +0 -26
- package/src/apps/cli/commands/project/setup/setupKubernetes.ts +32 -1
|
@@ -43,7 +43,7 @@ exports.setupAccessTokens = void 0;
|
|
|
43
43
|
var open_1 = __importDefault(require("open"));
|
|
44
44
|
var gitlab_1 = require("../../../../../utils/gitlab");
|
|
45
45
|
var setupAccessTokens = function (instance) { return __awaiter(void 0, void 0, void 0, function () {
|
|
46
|
-
var _a, projectId, projectWebUrl, e_1, understood, GL_TOKEN
|
|
46
|
+
var _a, projectId, projectWebUrl, e_1, understood, GL_TOKEN;
|
|
47
47
|
return __generator(this, function (_b) {
|
|
48
48
|
switch (_b.label) {
|
|
49
49
|
case 0: return [4 /*yield*/, (0, gitlab_1.getProjectInfo)(instance)];
|
|
@@ -95,20 +95,7 @@ var setupAccessTokens = function (instance) { return __awaiter(void 0, void 0, v
|
|
|
95
95
|
case 7:
|
|
96
96
|
_b.sent();
|
|
97
97
|
return [3 /*break*/, 8];
|
|
98
|
-
case 8: return [
|
|
99
|
-
case 9:
|
|
100
|
-
deploy_tokens = _b.sent();
|
|
101
|
-
if (!!deploy_tokens.find(function (v) { return v.name === "gitlab-deploy-token"; })) return [3 /*break*/, 11];
|
|
102
|
-
instance.log("I will setup the 'GitLab Deploy Token', so Kubernetes can pull images from this project.");
|
|
103
|
-
return [4 /*yield*/, (0, gitlab_1.doGitlabRequest)(instance, "projects/".concat(projectId, "/deploy_tokens"), {
|
|
104
|
-
id: projectId,
|
|
105
|
-
name: "gitlab-deploy-token",
|
|
106
|
-
scopes: ["read_registry"]
|
|
107
|
-
}, "POST")];
|
|
108
|
-
case 10:
|
|
109
|
-
_b.sent();
|
|
110
|
-
_b.label = 11;
|
|
111
|
-
case 11: return [2 /*return*/];
|
|
98
|
+
case 8: return [2 /*return*/];
|
|
112
99
|
}
|
|
113
100
|
});
|
|
114
101
|
}); };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setupAccessTokens.js","sourceRoot":"","sources":["../../../../../../src/apps/cli/commands/project/setup/setupAccessTokens.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8CAAwB;AAExB,sDAA8E;AAEvE,IAAM,iBAAiB,GAAG,UAAO,QAAyB;;;;oBACb,qBAAM,IAAA,uBAAc,EACpE,QAAQ,CACT,EAAA;;gBAFK,KAA4C,SAEjD,EAFW,SAAS,QAAA,EAAW,aAAa,aAAA;;;;gBAI3C,qBAAM,IAAA,wBAAe,EAAC,QAAQ,EAAE,mBAAY,SAAS,wBAAqB,CAAC,EAAA;;gBAA3E,SAA2E,CAAC;;;;gBAE5E,IAAI,GAAC,CAAC,OAAO,KAAK,WAAW,EAAE;oBAC7B,MAAM,GAAC,CAAC;iBACT;gBACD,YAAY;gBAEZ,QAAQ,CAAC,GAAG,CACV,4EAA4E,CAC7E,CAAC;gBACF,QAAQ,CAAC,GAAG,CACV,uNAAuN,CACxN,CAAC;gBACF,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAEI,qBAAM,QAAQ,CAAC,MAAM,CAAC;wBAC3C,SAAO,EAAE,IAAI;wBACb,OAAO,EAAE,oCAAoC;wBAC7C,IAAI,EAAE,YAAY;wBAClB,IAAI,EAAE,SAAS;qBAChB,CAAC,EAAA;;gBALM,UAAU,GAAK,CAAA,SAKrB,CAAA,WALgB;gBAMlB,IAAI,CAAC,UAAU,EAAE;oBACf,QAAQ,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;iBACtC;gBACD,IAAA,iBAAI,EAAC,UAAG,aAAa,8BAA2B,CAAC,CAAC;gBAElD,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAEnB,QAAQ,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;gBAE9C,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACE,qBAAM,QAAQ,CAAC,MAAM,CAAC;wBACzC,IAAI,EAAE,UAAU;wBAChB,IAAI,EAAE,UAAU;wBAChB,OAAO,EAAE,gBAAgB;qBAC1B,CAAC,EAAA;;gBAJM,QAAQ,GAAK,CAAA,SAInB,CAAA,SAJc;gBAMhB,qBAAM,IAAA,wBAAe,EACnB,QAAQ,EACR,mBAAY,SAAS,eAAY,EACjC;wBACE,GAAG,EAAE,UAAU;wBACf,KAAK,EAAE,QAAQ;wBACf,MAAM,EAAE,IAAI;qBACb,EACD,MAAM,CACP,EAAA;;gBATD,SASC,CAAC
|
|
1
|
+
{"version":3,"file":"setupAccessTokens.js","sourceRoot":"","sources":["../../../../../../src/apps/cli/commands/project/setup/setupAccessTokens.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8CAAwB;AAExB,sDAA8E;AAEvE,IAAM,iBAAiB,GAAG,UAAO,QAAyB;;;;oBACb,qBAAM,IAAA,uBAAc,EACpE,QAAQ,CACT,EAAA;;gBAFK,KAA4C,SAEjD,EAFW,SAAS,QAAA,EAAW,aAAa,aAAA;;;;gBAI3C,qBAAM,IAAA,wBAAe,EAAC,QAAQ,EAAE,mBAAY,SAAS,wBAAqB,CAAC,EAAA;;gBAA3E,SAA2E,CAAC;;;;gBAE5E,IAAI,GAAC,CAAC,OAAO,KAAK,WAAW,EAAE;oBAC7B,MAAM,GAAC,CAAC;iBACT;gBACD,YAAY;gBAEZ,QAAQ,CAAC,GAAG,CACV,4EAA4E,CAC7E,CAAC;gBACF,QAAQ,CAAC,GAAG,CACV,uNAAuN,CACxN,CAAC;gBACF,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAEI,qBAAM,QAAQ,CAAC,MAAM,CAAC;wBAC3C,SAAO,EAAE,IAAI;wBACb,OAAO,EAAE,oCAAoC;wBAC7C,IAAI,EAAE,YAAY;wBAClB,IAAI,EAAE,SAAS;qBAChB,CAAC,EAAA;;gBALM,UAAU,GAAK,CAAA,SAKrB,CAAA,WALgB;gBAMlB,IAAI,CAAC,UAAU,EAAE;oBACf,QAAQ,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;iBACtC;gBACD,IAAA,iBAAI,EAAC,UAAG,aAAa,8BAA2B,CAAC,CAAC;gBAElD,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAEnB,QAAQ,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;gBAE9C,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACE,qBAAM,QAAQ,CAAC,MAAM,CAAC;wBACzC,IAAI,EAAE,UAAU;wBAChB,IAAI,EAAE,UAAU;wBAChB,OAAO,EAAE,gBAAgB;qBAC1B,CAAC,EAAA;;gBAJM,QAAQ,GAAK,CAAA,SAInB,CAAA,SAJc;gBAMhB,qBAAM,IAAA,wBAAe,EACnB,QAAQ,EACR,mBAAY,SAAS,eAAY,EACjC;wBACE,GAAG,EAAE,UAAU;wBACf,KAAK,EAAE,QAAQ;wBACf,MAAM,EAAE,IAAI;qBACb,EACD,MAAM,CACP,EAAA;;gBATD,SASC,CAAC;;;;;KAEL,CAAC;AArDW,QAAA,iBAAiB,qBAqD5B"}
|
|
@@ -46,7 +46,7 @@ var cluster_1 = require("../../../../../utils/cluster");
|
|
|
46
46
|
var gitlab_1 = require("../../../../../utils/gitlab");
|
|
47
47
|
var ensureNamespace_1 = __importDefault(require("../utils/ensureNamespace"));
|
|
48
48
|
var setupKubernetes = function (instance, context) { return __awaiter(void 0, void 0, void 0, function () {
|
|
49
|
-
var deployConfig, fullName, namespace, serviceAccountName, KUBE_URL, e_1, secretName, KUBE_CA_PEM, KUBE_TOKEN, vars, missing;
|
|
49
|
+
var deployConfig, projectId, deploy_tokens, fullName, namespace, serviceAccountName, KUBE_URL, e_1, secretName, KUBE_CA_PEM, KUBE_TOKEN, vars, missing;
|
|
50
50
|
return __generator(this, function (_a) {
|
|
51
51
|
switch (_a.label) {
|
|
52
52
|
case 0:
|
|
@@ -54,15 +54,32 @@ var setupKubernetes = function (instance, context) { return __awaiter(void 0, vo
|
|
|
54
54
|
if (!(0, pipeline_1.isOfDeployType)(deployConfig, "kubernetes")) {
|
|
55
55
|
throw new Error("cannot run setupKubernetes on non-kubernetes deployments");
|
|
56
56
|
}
|
|
57
|
+
return [4 /*yield*/, (0, gitlab_1.getProjectInfo)(instance)];
|
|
58
|
+
case 1:
|
|
59
|
+
projectId = (_a.sent()).id;
|
|
60
|
+
return [4 /*yield*/, (0, gitlab_1.doGitlabRequest)(instance, "projects/".concat(projectId, "/deploy_tokens"))];
|
|
61
|
+
case 2:
|
|
62
|
+
deploy_tokens = _a.sent();
|
|
63
|
+
if (!!deploy_tokens.find(function (v) { return v.name === "gitlab-deploy-token"; })) return [3 /*break*/, 4];
|
|
64
|
+
instance.log("I will setup the 'GitLab Deploy Token', so Kubernetes can pull images from this project.");
|
|
65
|
+
return [4 /*yield*/, (0, gitlab_1.doGitlabRequest)(instance, "projects/".concat(projectId, "/deploy_tokens"), {
|
|
66
|
+
id: projectId,
|
|
67
|
+
name: "gitlab-deploy-token",
|
|
68
|
+
scopes: ["read_registry"]
|
|
69
|
+
}, "POST")];
|
|
70
|
+
case 3:
|
|
71
|
+
_a.sent();
|
|
72
|
+
_a.label = 4;
|
|
73
|
+
case 4:
|
|
57
74
|
fullName = (0, pipeline_1.getFullKubernetesClusterName)(deployConfig.cluster);
|
|
58
75
|
instance.log("cluster: ".concat(fullName));
|
|
59
76
|
return [4 /*yield*/, (0, cluster_1.connectToCluster)(fullName)];
|
|
60
|
-
case
|
|
77
|
+
case 5:
|
|
61
78
|
_a.sent();
|
|
62
79
|
instance.log("");
|
|
63
80
|
instance.log("ensuring namespace ...");
|
|
64
81
|
return [4 /*yield*/, (0, ensureNamespace_1["default"])(context)];
|
|
65
|
-
case
|
|
82
|
+
case 6:
|
|
66
83
|
namespace = _a.sent();
|
|
67
84
|
instance.log("Namespace " + namespace + " created / updated!");
|
|
68
85
|
instance.log("");
|
|
@@ -72,43 +89,43 @@ var setupKubernetes = function (instance, context) { return __awaiter(void 0, vo
|
|
|
72
89
|
instance.log("ensuring service accounts...");
|
|
73
90
|
serviceAccountName = "cl-".concat(context.componentName, "-deploy");
|
|
74
91
|
return [4 /*yield*/, (0, child_process_promise_1.exec)("TERM=dumb kubectl cluster-info | grep -E 'Kubernetes master|Kubernetes control plane' | awk '/http/ {print $NF}'").then(function (s) { return s.stdout.trim(); })];
|
|
75
|
-
case
|
|
92
|
+
case 7:
|
|
76
93
|
KUBE_URL = _a.sent();
|
|
77
|
-
_a.label =
|
|
78
|
-
case
|
|
79
|
-
_a.trys.push([
|
|
94
|
+
_a.label = 8;
|
|
95
|
+
case 8:
|
|
96
|
+
_a.trys.push([8, 12, , 13]);
|
|
80
97
|
return [4 /*yield*/, (0, child_process_promise_1.exec)("kubectl delete serviceaccount --namespace ".concat(namespace, " ").concat(serviceAccountName))];
|
|
81
|
-
case
|
|
98
|
+
case 9:
|
|
82
99
|
_a.sent();
|
|
83
100
|
return [4 /*yield*/, (0, child_process_promise_1.exec)("kubectl delete rolebinding --namespace ".concat(namespace, " ").concat(serviceAccountName))];
|
|
84
|
-
case
|
|
101
|
+
case 10:
|
|
85
102
|
_a.sent();
|
|
86
103
|
return [4 /*yield*/, (0, child_process_promise_1.exec)("kubectl delete role --namespace ".concat(namespace, " ").concat(serviceAccountName))];
|
|
87
|
-
case
|
|
104
|
+
case 11:
|
|
88
105
|
_a.sent();
|
|
89
|
-
return [3 /*break*/,
|
|
90
|
-
case
|
|
106
|
+
return [3 /*break*/, 13];
|
|
107
|
+
case 12:
|
|
91
108
|
e_1 = _a.sent();
|
|
92
|
-
return [3 /*break*/,
|
|
93
|
-
case
|
|
94
|
-
case
|
|
109
|
+
return [3 /*break*/, 13];
|
|
110
|
+
case 13: return [4 /*yield*/, (0, child_process_promise_1.exec)("kubectl create serviceaccount --namespace ".concat(namespace, " ").concat(serviceAccountName))];
|
|
111
|
+
case 14:
|
|
95
112
|
_a.sent();
|
|
96
113
|
// upsert role in the ns
|
|
97
114
|
return [4 /*yield*/, (0, child_process_promise_1.exec)("cat <<EOF | kubectl apply -f -\nkind: Role\napiVersion: rbac.authorization.k8s.io/v1\nmetadata:\n namespace: ".concat(namespace, "\n name: ").concat(serviceAccountName, "\nrules:\n- apiGroups: [\"\", \"extensions\", \"apps\", \"networking.k8s.io\", \"batch\", \"autoscaling\", \"rbac.authorization.k8s.io\",\"snapshot.storage.k8s.io\"]\n resources: [\"deployments\", \"replicasets\", \"statefulsets\", \"pods\", \"secrets\", \"configmaps\", \"services\", \"ingresses\", \"serviceaccounts\", \"roles\", \"rolebindings\", \"jobs\", \"cronjobs\", \"horizontalpodautoscalers\", \"persistentvolumeclaims\", \"volumesnapshots\"]\n verbs: [\"*\"]\n---\nkind: RoleBinding\napiVersion: rbac.authorization.k8s.io/v1\nmetadata:\n name: ").concat(serviceAccountName, "\n namespace: ").concat(namespace, "\nsubjects:\n - kind: ServiceAccount\n name: ").concat(serviceAccountName, "\n namespace: ").concat(namespace, "\nroleRef:\n kind: Role\n name: ").concat(serviceAccountName, "\n apiGroup: rbac.authorization.k8s.io\nEOF\n"))];
|
|
98
|
-
case
|
|
115
|
+
case 15:
|
|
99
116
|
// upsert role in the ns
|
|
100
117
|
_a.sent();
|
|
101
118
|
secretName = "".concat(serviceAccountName, "-secret");
|
|
102
119
|
// create token for the service account
|
|
103
120
|
return [4 /*yield*/, (0, child_process_promise_1.exec)("\nkubectl apply -f - <<EOF\napiVersion: v1\nkind: Secret\nmetadata:\n name: ".concat(secretName, "\n namespace: ").concat(namespace, "\n annotations:\n kubernetes.io/service-account.name: ").concat(serviceAccountName, "\ntype: kubernetes.io/service-account-token\nEOF\n "))];
|
|
104
|
-
case
|
|
121
|
+
case 16:
|
|
105
122
|
// create token for the service account
|
|
106
123
|
_a.sent();
|
|
107
124
|
return [4 /*yield*/, (0, child_process_promise_1.exec)("kubectl get secret ".concat(secretName, " --namespace ").concat(namespace, " -o jsonpath=\"{['data']['ca\\.crt']}\"")).then(function (c) { return c.stdout.trim(); })];
|
|
108
|
-
case
|
|
125
|
+
case 17:
|
|
109
126
|
KUBE_CA_PEM = _a.sent();
|
|
110
127
|
return [4 /*yield*/, (0, child_process_promise_1.exec)("kubectl get secret ".concat(secretName, " --namespace ").concat(namespace, " -o jsonpath=\"{['data']['token']}\" | base64 --decode")).then(function (c) { return c.stdout.trim(); })];
|
|
111
|
-
case
|
|
128
|
+
case 18:
|
|
112
129
|
KUBE_TOKEN = _a.sent();
|
|
113
130
|
vars = {
|
|
114
131
|
KUBE_TOKEN: KUBE_TOKEN,
|
|
@@ -128,7 +145,7 @@ var setupKubernetes = function (instance, context) { return __awaiter(void 0, vo
|
|
|
128
145
|
instance.log("pusing secrets to gitlab...");
|
|
129
146
|
return [4 /*yield*/, (0, gitlab_1.upsertAllVariables)(instance, vars, context.environment.shortName, context.componentName, false // no backup
|
|
130
147
|
)];
|
|
131
|
-
case
|
|
148
|
+
case 19:
|
|
132
149
|
_a.sent();
|
|
133
150
|
instance.log("done!");
|
|
134
151
|
return [2 /*return*/];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setupKubernetes.js","sourceRoot":"","sources":["../../../../../../src/apps/cli/commands/project/setup/setupKubernetes.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,gDAG6B;AAE7B,+DAA6C;AAC7C,wDAAgE;AAChE,
|
|
1
|
+
{"version":3,"file":"setupKubernetes.js","sourceRoot":"","sources":["../../../../../../src/apps/cli/commands/project/setup/setupKubernetes.ts"],"names":[],"mappings":"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"}
|
|
@@ -40918,7 +40918,7 @@ exports.readConfigSync = readConfigSync;
|
|
|
40918
40918
|
|
|
40919
40919
|
exports.__esModule = true;
|
|
40920
40920
|
exports.DOCKER_REGISTRY = exports.PIPELINE_IMAGE_TAG = void 0;
|
|
40921
|
-
exports.PIPELINE_IMAGE_TAG = "main-
|
|
40921
|
+
exports.PIPELINE_IMAGE_TAG = "main-842b2cfa" || 0;
|
|
40922
40922
|
exports.DOCKER_REGISTRY = "git.panter.ch:5001/catladder/catladder" || 0;
|
|
40923
40923
|
|
|
40924
40924
|
/***/ }),
|
|
@@ -43407,6 +43407,7 @@ var context_1 = __nccwpck_require__(2041);
|
|
|
43407
43407
|
var gitlab_1 = __nccwpck_require__(4997);
|
|
43408
43408
|
var utils_1 = __nccwpck_require__(463);
|
|
43409
43409
|
var createJobs_1 = __nccwpck_require__(6474);
|
|
43410
|
+
var database_1 = __nccwpck_require__(1384);
|
|
43410
43411
|
var jobName_1 = __nccwpck_require__(7311);
|
|
43411
43412
|
exports.GCLOUD_DEPLOY_CREDENTIALS_KEY = "GCLOUD_DEPLOY_credentialsKey";
|
|
43412
43413
|
// FIXME: rename to internalHostSuffix, but this means that project-setup needs to be rerun, so its kindof a breaking change
|
|
@@ -43431,8 +43432,8 @@ var getCloudSqlVariables = function (_a) {
|
|
|
43431
43432
|
DB_NAME: DB_NAME,
|
|
43432
43433
|
DB_USER: (_c = deployConfigRaw.cloudSql.dbUser) !== null && _c !== void 0 ? _c : "postgres",
|
|
43433
43434
|
DB_PASSWORD: "$" + (0, context_1.getSecretVarName)(env, componentName, "DB_PASSWORD"),
|
|
43434
|
-
DATABASE_URL: "
|
|
43435
|
-
DATABASE_JDBC_URL:
|
|
43435
|
+
DATABASE_URL: "".concat((0, database_1.getDatabaseConnectionString)(deployConfigRaw.cloudSql)).concat(additionalQueryParamsString),
|
|
43436
|
+
DATABASE_JDBC_URL: database_1.DATABASE_JDBC_URL
|
|
43436
43437
|
};
|
|
43437
43438
|
}
|
|
43438
43439
|
return {};
|
|
@@ -43583,7 +43584,7 @@ var __read = this && this.__read || function (o, n) {
|
|
|
43583
43584
|
return ar;
|
|
43584
43585
|
};
|
|
43585
43586
|
exports.__esModule = true;
|
|
43586
|
-
exports.getDatabaseCreateScript = exports.getDatabaseDeleteScript = void 0;
|
|
43587
|
+
exports.getDatabaseConnectionString = exports.DATABASE_JDBC_URL = exports.getDatabaseCreateScript = exports.getDatabaseDeleteScript = void 0;
|
|
43587
43588
|
var gitlab_1 = __nccwpck_require__(4997);
|
|
43588
43589
|
var getDatabaseDeleteScript = function (context, deployConfig) {
|
|
43589
43590
|
var _a;
|
|
@@ -43622,6 +43623,19 @@ var getDatabaseCreateScript = function (context, deployConfig) {
|
|
|
43622
43623
|
return (0, gitlab_1.allowFailureInScripts)(["echo \"ensuring Database...\"", "gcloud sql databases create ".concat(DB_NAME, " --instance=").concat(instanceId, " --project ").concat(projectId)]);
|
|
43623
43624
|
};
|
|
43624
43625
|
exports.getDatabaseCreateScript = getDatabaseCreateScript;
|
|
43626
|
+
exports.DATABASE_JDBC_URL = "jdbc:postgresql:///$DB_NAME?cloudSqlInstance=$CLOUD_SQL_INSTANCE_CONNECTION_NAME&socketFactory=com.google.cloud.sql.postgres.SocketFactory&user=$DB_USER&password=$DB_PASSWORD";
|
|
43627
|
+
var getDatabaseConnectionString = function (config) {
|
|
43628
|
+
switch (config.dbConnectionStringFormat) {
|
|
43629
|
+
case "jdbc":
|
|
43630
|
+
return exports.DATABASE_JDBC_URL;
|
|
43631
|
+
case "rails":
|
|
43632
|
+
return "postgresql://$DB_USER:$DB_PASSWORD@".concat(encodeURIComponent("/cloudsql/".concat(config.instanceConnectionName)), "/$DB_NAME?");
|
|
43633
|
+
default:
|
|
43634
|
+
// prisma
|
|
43635
|
+
return "postgresql://$DB_USER:$DB_PASSWORD@localhost/$DB_NAME?host=/cloudsql/$CLOUD_SQL_INSTANCE_CONNECTION_NAME";
|
|
43636
|
+
}
|
|
43637
|
+
};
|
|
43638
|
+
exports.getDatabaseConnectionString = getDatabaseConnectionString;
|
|
43625
43639
|
|
|
43626
43640
|
/***/ }),
|
|
43627
43641
|
|
|
@@ -4915,7 +4915,7 @@ exports.setupAccessTokens = void 0;
|
|
|
4915
4915
|
var open_1 = __importDefault(__nccwpck_require__(14247));
|
|
4916
4916
|
var gitlab_1 = __nccwpck_require__(79818);
|
|
4917
4917
|
var setupAccessTokens = function (instance) { return __awaiter(void 0, void 0, void 0, function () {
|
|
4918
|
-
var _a, projectId, projectWebUrl, e_1, understood, GL_TOKEN
|
|
4918
|
+
var _a, projectId, projectWebUrl, e_1, understood, GL_TOKEN;
|
|
4919
4919
|
return __generator(this, function (_b) {
|
|
4920
4920
|
switch (_b.label) {
|
|
4921
4921
|
case 0: return [4 /*yield*/, (0, gitlab_1.getProjectInfo)(instance)];
|
|
@@ -4967,20 +4967,7 @@ var setupAccessTokens = function (instance) { return __awaiter(void 0, void 0, v
|
|
|
4967
4967
|
case 7:
|
|
4968
4968
|
_b.sent();
|
|
4969
4969
|
return [3 /*break*/, 8];
|
|
4970
|
-
case 8: return [
|
|
4971
|
-
case 9:
|
|
4972
|
-
deploy_tokens = _b.sent();
|
|
4973
|
-
if (!!deploy_tokens.find(function (v) { return v.name === "gitlab-deploy-token"; })) return [3 /*break*/, 11];
|
|
4974
|
-
instance.log("I will setup the 'GitLab Deploy Token', so Kubernetes can pull images from this project.");
|
|
4975
|
-
return [4 /*yield*/, (0, gitlab_1.doGitlabRequest)(instance, "projects/".concat(projectId, "/deploy_tokens"), {
|
|
4976
|
-
id: projectId,
|
|
4977
|
-
name: "gitlab-deploy-token",
|
|
4978
|
-
scopes: ["read_registry"]
|
|
4979
|
-
}, "POST")];
|
|
4980
|
-
case 10:
|
|
4981
|
-
_b.sent();
|
|
4982
|
-
_b.label = 11;
|
|
4983
|
-
case 11: return [2 /*return*/];
|
|
4970
|
+
case 8: return [2 /*return*/];
|
|
4984
4971
|
}
|
|
4985
4972
|
});
|
|
4986
4973
|
}); };
|
|
@@ -5254,7 +5241,7 @@ var cluster_1 = __nccwpck_require__(66894);
|
|
|
5254
5241
|
var gitlab_1 = __nccwpck_require__(79818);
|
|
5255
5242
|
var ensureNamespace_1 = __importDefault(__nccwpck_require__(99489));
|
|
5256
5243
|
var setupKubernetes = function (instance, context) { return __awaiter(void 0, void 0, void 0, function () {
|
|
5257
|
-
var deployConfig, fullName, namespace, serviceAccountName, KUBE_URL, e_1, secretName, KUBE_CA_PEM, KUBE_TOKEN, vars, missing;
|
|
5244
|
+
var deployConfig, projectId, deploy_tokens, fullName, namespace, serviceAccountName, KUBE_URL, e_1, secretName, KUBE_CA_PEM, KUBE_TOKEN, vars, missing;
|
|
5258
5245
|
return __generator(this, function (_a) {
|
|
5259
5246
|
switch (_a.label) {
|
|
5260
5247
|
case 0:
|
|
@@ -5262,15 +5249,32 @@ var setupKubernetes = function (instance, context) { return __awaiter(void 0, vo
|
|
|
5262
5249
|
if (!(0, pipeline_1.isOfDeployType)(deployConfig, "kubernetes")) {
|
|
5263
5250
|
throw new Error("cannot run setupKubernetes on non-kubernetes deployments");
|
|
5264
5251
|
}
|
|
5252
|
+
return [4 /*yield*/, (0, gitlab_1.getProjectInfo)(instance)];
|
|
5253
|
+
case 1:
|
|
5254
|
+
projectId = (_a.sent()).id;
|
|
5255
|
+
return [4 /*yield*/, (0, gitlab_1.doGitlabRequest)(instance, "projects/".concat(projectId, "/deploy_tokens"))];
|
|
5256
|
+
case 2:
|
|
5257
|
+
deploy_tokens = _a.sent();
|
|
5258
|
+
if (!!deploy_tokens.find(function (v) { return v.name === "gitlab-deploy-token"; })) return [3 /*break*/, 4];
|
|
5259
|
+
instance.log("I will setup the 'GitLab Deploy Token', so Kubernetes can pull images from this project.");
|
|
5260
|
+
return [4 /*yield*/, (0, gitlab_1.doGitlabRequest)(instance, "projects/".concat(projectId, "/deploy_tokens"), {
|
|
5261
|
+
id: projectId,
|
|
5262
|
+
name: "gitlab-deploy-token",
|
|
5263
|
+
scopes: ["read_registry"]
|
|
5264
|
+
}, "POST")];
|
|
5265
|
+
case 3:
|
|
5266
|
+
_a.sent();
|
|
5267
|
+
_a.label = 4;
|
|
5268
|
+
case 4:
|
|
5265
5269
|
fullName = (0, pipeline_1.getFullKubernetesClusterName)(deployConfig.cluster);
|
|
5266
5270
|
instance.log("cluster: ".concat(fullName));
|
|
5267
5271
|
return [4 /*yield*/, (0, cluster_1.connectToCluster)(fullName)];
|
|
5268
|
-
case
|
|
5272
|
+
case 5:
|
|
5269
5273
|
_a.sent();
|
|
5270
5274
|
instance.log("");
|
|
5271
5275
|
instance.log("ensuring namespace ...");
|
|
5272
5276
|
return [4 /*yield*/, (0, ensureNamespace_1["default"])(context)];
|
|
5273
|
-
case
|
|
5277
|
+
case 6:
|
|
5274
5278
|
namespace = _a.sent();
|
|
5275
5279
|
instance.log("Namespace " + namespace + " created / updated!");
|
|
5276
5280
|
instance.log("");
|
|
@@ -5280,43 +5284,43 @@ var setupKubernetes = function (instance, context) { return __awaiter(void 0, vo
|
|
|
5280
5284
|
instance.log("ensuring service accounts...");
|
|
5281
5285
|
serviceAccountName = "cl-".concat(context.componentName, "-deploy");
|
|
5282
5286
|
return [4 /*yield*/, (0, child_process_promise_1.exec)("TERM=dumb kubectl cluster-info | grep -E 'Kubernetes master|Kubernetes control plane' | awk '/http/ {print $NF}'").then(function (s) { return s.stdout.trim(); })];
|
|
5283
|
-
case
|
|
5287
|
+
case 7:
|
|
5284
5288
|
KUBE_URL = _a.sent();
|
|
5285
|
-
_a.label =
|
|
5286
|
-
case
|
|
5287
|
-
_a.trys.push([
|
|
5289
|
+
_a.label = 8;
|
|
5290
|
+
case 8:
|
|
5291
|
+
_a.trys.push([8, 12, , 13]);
|
|
5288
5292
|
return [4 /*yield*/, (0, child_process_promise_1.exec)("kubectl delete serviceaccount --namespace ".concat(namespace, " ").concat(serviceAccountName))];
|
|
5289
|
-
case
|
|
5293
|
+
case 9:
|
|
5290
5294
|
_a.sent();
|
|
5291
5295
|
return [4 /*yield*/, (0, child_process_promise_1.exec)("kubectl delete rolebinding --namespace ".concat(namespace, " ").concat(serviceAccountName))];
|
|
5292
|
-
case
|
|
5296
|
+
case 10:
|
|
5293
5297
|
_a.sent();
|
|
5294
5298
|
return [4 /*yield*/, (0, child_process_promise_1.exec)("kubectl delete role --namespace ".concat(namespace, " ").concat(serviceAccountName))];
|
|
5295
|
-
case
|
|
5299
|
+
case 11:
|
|
5296
5300
|
_a.sent();
|
|
5297
|
-
return [3 /*break*/,
|
|
5298
|
-
case
|
|
5301
|
+
return [3 /*break*/, 13];
|
|
5302
|
+
case 12:
|
|
5299
5303
|
e_1 = _a.sent();
|
|
5300
|
-
return [3 /*break*/,
|
|
5301
|
-
case
|
|
5302
|
-
case
|
|
5304
|
+
return [3 /*break*/, 13];
|
|
5305
|
+
case 13: return [4 /*yield*/, (0, child_process_promise_1.exec)("kubectl create serviceaccount --namespace ".concat(namespace, " ").concat(serviceAccountName))];
|
|
5306
|
+
case 14:
|
|
5303
5307
|
_a.sent();
|
|
5304
5308
|
// upsert role in the ns
|
|
5305
5309
|
return [4 /*yield*/, (0, child_process_promise_1.exec)("cat <<EOF | kubectl apply -f -\nkind: Role\napiVersion: rbac.authorization.k8s.io/v1\nmetadata:\n namespace: ".concat(namespace, "\n name: ").concat(serviceAccountName, "\nrules:\n- apiGroups: [\"\", \"extensions\", \"apps\", \"networking.k8s.io\", \"batch\", \"autoscaling\", \"rbac.authorization.k8s.io\",\"snapshot.storage.k8s.io\"]\n resources: [\"deployments\", \"replicasets\", \"statefulsets\", \"pods\", \"secrets\", \"configmaps\", \"services\", \"ingresses\", \"serviceaccounts\", \"roles\", \"rolebindings\", \"jobs\", \"cronjobs\", \"horizontalpodautoscalers\", \"persistentvolumeclaims\", \"volumesnapshots\"]\n verbs: [\"*\"]\n---\nkind: RoleBinding\napiVersion: rbac.authorization.k8s.io/v1\nmetadata:\n name: ").concat(serviceAccountName, "\n namespace: ").concat(namespace, "\nsubjects:\n - kind: ServiceAccount\n name: ").concat(serviceAccountName, "\n namespace: ").concat(namespace, "\nroleRef:\n kind: Role\n name: ").concat(serviceAccountName, "\n apiGroup: rbac.authorization.k8s.io\nEOF\n"))];
|
|
5306
|
-
case
|
|
5310
|
+
case 15:
|
|
5307
5311
|
// upsert role in the ns
|
|
5308
5312
|
_a.sent();
|
|
5309
5313
|
secretName = "".concat(serviceAccountName, "-secret");
|
|
5310
5314
|
// create token for the service account
|
|
5311
5315
|
return [4 /*yield*/, (0, child_process_promise_1.exec)("\nkubectl apply -f - <<EOF\napiVersion: v1\nkind: Secret\nmetadata:\n name: ".concat(secretName, "\n namespace: ").concat(namespace, "\n annotations:\n kubernetes.io/service-account.name: ").concat(serviceAccountName, "\ntype: kubernetes.io/service-account-token\nEOF\n "))];
|
|
5312
|
-
case
|
|
5316
|
+
case 16:
|
|
5313
5317
|
// create token for the service account
|
|
5314
5318
|
_a.sent();
|
|
5315
5319
|
return [4 /*yield*/, (0, child_process_promise_1.exec)("kubectl get secret ".concat(secretName, " --namespace ").concat(namespace, " -o jsonpath=\"{['data']['ca\\.crt']}\"")).then(function (c) { return c.stdout.trim(); })];
|
|
5316
|
-
case
|
|
5320
|
+
case 17:
|
|
5317
5321
|
KUBE_CA_PEM = _a.sent();
|
|
5318
5322
|
return [4 /*yield*/, (0, child_process_promise_1.exec)("kubectl get secret ".concat(secretName, " --namespace ").concat(namespace, " -o jsonpath=\"{['data']['token']}\" | base64 --decode")).then(function (c) { return c.stdout.trim(); })];
|
|
5319
|
-
case
|
|
5323
|
+
case 18:
|
|
5320
5324
|
KUBE_TOKEN = _a.sent();
|
|
5321
5325
|
vars = {
|
|
5322
5326
|
KUBE_TOKEN: KUBE_TOKEN,
|
|
@@ -5336,7 +5340,7 @@ var setupKubernetes = function (instance, context) { return __awaiter(void 0, vo
|
|
|
5336
5340
|
instance.log("pusing secrets to gitlab...");
|
|
5337
5341
|
return [4 /*yield*/, (0, gitlab_1.upsertAllVariables)(instance, vars, context.environment.shortName, context.componentName, false // no backup
|
|
5338
5342
|
)];
|
|
5339
|
-
case
|
|
5343
|
+
case 19:
|
|
5340
5344
|
_a.sent();
|
|
5341
5345
|
instance.log("done!");
|
|
5342
5346
|
return [2 /*return*/];
|
|
@@ -355848,7 +355852,7 @@ exports.readConfigSync = readConfigSync;
|
|
|
355848
355852
|
|
|
355849
355853
|
exports.__esModule = true;
|
|
355850
355854
|
exports.DOCKER_REGISTRY = exports.PIPELINE_IMAGE_TAG = void 0;
|
|
355851
|
-
exports.PIPELINE_IMAGE_TAG = "main-
|
|
355855
|
+
exports.PIPELINE_IMAGE_TAG = "main-842b2cfa" || 0;
|
|
355852
355856
|
exports.DOCKER_REGISTRY = "git.panter.ch:5001/catladder/catladder" || 0;
|
|
355853
355857
|
|
|
355854
355858
|
/***/ }),
|
|
@@ -358337,6 +358341,7 @@ var context_1 = __nccwpck_require__(22041);
|
|
|
358337
358341
|
var gitlab_1 = __nccwpck_require__(84997);
|
|
358338
358342
|
var utils_1 = __nccwpck_require__(70463);
|
|
358339
358343
|
var createJobs_1 = __nccwpck_require__(26474);
|
|
358344
|
+
var database_1 = __nccwpck_require__(41384);
|
|
358340
358345
|
var jobName_1 = __nccwpck_require__(77311);
|
|
358341
358346
|
exports.GCLOUD_DEPLOY_CREDENTIALS_KEY = "GCLOUD_DEPLOY_credentialsKey";
|
|
358342
358347
|
// FIXME: rename to internalHostSuffix, but this means that project-setup needs to be rerun, so its kindof a breaking change
|
|
@@ -358361,8 +358366,8 @@ var getCloudSqlVariables = function (_a) {
|
|
|
358361
358366
|
DB_NAME: DB_NAME,
|
|
358362
358367
|
DB_USER: (_c = deployConfigRaw.cloudSql.dbUser) !== null && _c !== void 0 ? _c : "postgres",
|
|
358363
358368
|
DB_PASSWORD: "$" + (0, context_1.getSecretVarName)(env, componentName, "DB_PASSWORD"),
|
|
358364
|
-
DATABASE_URL: "
|
|
358365
|
-
DATABASE_JDBC_URL:
|
|
358369
|
+
DATABASE_URL: "".concat((0, database_1.getDatabaseConnectionString)(deployConfigRaw.cloudSql)).concat(additionalQueryParamsString),
|
|
358370
|
+
DATABASE_JDBC_URL: database_1.DATABASE_JDBC_URL
|
|
358366
358371
|
};
|
|
358367
358372
|
}
|
|
358368
358373
|
return {};
|
|
@@ -358513,7 +358518,7 @@ var __read = this && this.__read || function (o, n) {
|
|
|
358513
358518
|
return ar;
|
|
358514
358519
|
};
|
|
358515
358520
|
exports.__esModule = true;
|
|
358516
|
-
exports.getDatabaseCreateScript = exports.getDatabaseDeleteScript = void 0;
|
|
358521
|
+
exports.getDatabaseConnectionString = exports.DATABASE_JDBC_URL = exports.getDatabaseCreateScript = exports.getDatabaseDeleteScript = void 0;
|
|
358517
358522
|
var gitlab_1 = __nccwpck_require__(84997);
|
|
358518
358523
|
var getDatabaseDeleteScript = function (context, deployConfig) {
|
|
358519
358524
|
var _a;
|
|
@@ -358552,6 +358557,19 @@ var getDatabaseCreateScript = function (context, deployConfig) {
|
|
|
358552
358557
|
return (0, gitlab_1.allowFailureInScripts)(["echo \"ensuring Database...\"", "gcloud sql databases create ".concat(DB_NAME, " --instance=").concat(instanceId, " --project ").concat(projectId)]);
|
|
358553
358558
|
};
|
|
358554
358559
|
exports.getDatabaseCreateScript = getDatabaseCreateScript;
|
|
358560
|
+
exports.DATABASE_JDBC_URL = "jdbc:postgresql:///$DB_NAME?cloudSqlInstance=$CLOUD_SQL_INSTANCE_CONNECTION_NAME&socketFactory=com.google.cloud.sql.postgres.SocketFactory&user=$DB_USER&password=$DB_PASSWORD";
|
|
358561
|
+
var getDatabaseConnectionString = function (config) {
|
|
358562
|
+
switch (config.dbConnectionStringFormat) {
|
|
358563
|
+
case "jdbc":
|
|
358564
|
+
return exports.DATABASE_JDBC_URL;
|
|
358565
|
+
case "rails":
|
|
358566
|
+
return "postgresql://$DB_USER:$DB_PASSWORD@".concat(encodeURIComponent("/cloudsql/".concat(config.instanceConnectionName)), "/$DB_NAME?");
|
|
358567
|
+
default:
|
|
358568
|
+
// prisma
|
|
358569
|
+
return "postgresql://$DB_USER:$DB_PASSWORD@localhost/$DB_NAME?host=/cloudsql/$CLOUD_SQL_INSTANCE_CONNECTION_NAME";
|
|
358570
|
+
}
|
|
358571
|
+
};
|
|
358572
|
+
exports.getDatabaseConnectionString = getDatabaseConnectionString;
|
|
358555
358573
|
|
|
358556
358574
|
/***/ }),
|
|
358557
358575
|
|