@catladder/pipeline 0.0.0-node16-ddfae617 → 0.0.0-prettier-cbceeed9

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.
Files changed (275) hide show
  1. package/bin/catladder-gitlab-dev.js +3 -0
  2. package/bin/catladder-gitlab.js +1 -1
  3. package/dist/build/base/createBuildJob.d.ts +2 -2
  4. package/dist/build/base/createBuildJob.js +15 -30
  5. package/dist/build/base/writeBuildInfo.d.ts +2 -0
  6. package/dist/build/base/{getBuildInfo.js → writeBuildInfo.js} +3 -6
  7. package/dist/build/custom/buildJob.d.ts +3 -0
  8. package/dist/build/custom/buildJob.js +83 -0
  9. package/dist/build/custom/index.d.ts +3 -0
  10. package/dist/build/custom/index.js +40 -0
  11. package/dist/build/docker.d.ts +33 -9
  12. package/dist/build/docker.js +51 -54
  13. package/dist/build/index.d.ts +6 -5
  14. package/dist/build/index.js +20 -6
  15. package/dist/build/node/buildJob.d.ts +2 -2
  16. package/dist/build/node/buildJob.js +3 -25
  17. package/dist/build/node/cache.d.ts +2 -2
  18. package/dist/build/node/cache.js +19 -22
  19. package/dist/build/node/index.d.ts +1 -1
  20. package/dist/build/node/index.js +3 -16
  21. package/dist/build/node/meteor.d.ts +1 -1
  22. package/dist/build/node/meteor.js +9 -20
  23. package/dist/build/node/testJob.d.ts +2 -2
  24. package/dist/build/node/testJob.js +7 -21
  25. package/dist/build/node/yarn.d.ts +1 -1
  26. package/dist/build/node/yarn.js +14 -15
  27. package/dist/build/rails/build.d.ts +3 -0
  28. package/dist/build/rails/build.js +51 -0
  29. package/dist/build/rails/index.d.ts +3 -0
  30. package/dist/build/rails/index.js +41 -0
  31. package/dist/build/rails/test.d.ts +3 -0
  32. package/dist/build/rails/test.js +94 -0
  33. package/dist/build/types.d.ts +84 -9
  34. package/dist/build/types.js +0 -4
  35. package/dist/bundles/catladder-gitlab/index.js +32979 -0
  36. package/dist/catladder-gitlab.js +7 -26
  37. package/dist/config/{configruedEnvs.test.d.ts → __tests__/configruedEnvs.test.d.ts} +0 -0
  38. package/dist/config/{configruedEnvs.test.js → __tests__/configruedEnvs.test.js} +10 -12
  39. package/dist/config/configruedEnvs.d.ts +1 -1
  40. package/dist/config/configruedEnvs.js +7 -22
  41. package/dist/config/index.js +0 -4
  42. package/dist/config/readConfig.d.ts +1 -1
  43. package/dist/config/readConfig.js +2 -13
  44. package/dist/constants.js +1 -1
  45. package/dist/context/{resolveReferences.test.d.ts → __tests__/resolveReferences.test.d.ts} +0 -0
  46. package/dist/context/__tests__/resolveReferences.test.js +336 -0
  47. package/dist/context/getEnvConfig.d.ts +2 -0
  48. package/dist/context/getEnvConfig.js +18 -0
  49. package/dist/context/getEnvType.d.ts +4 -0
  50. package/dist/context/getEnvType.js +13 -0
  51. package/dist/context/getEnvironment.d.ts +3 -0
  52. package/dist/{pipeline/createChildPipeline.test.js → context/getEnvironment.js} +42 -84
  53. package/dist/context/getEnvironmentContext.d.ts +4 -0
  54. package/dist/context/getEnvironmentContext.js +33 -0
  55. package/dist/context/getEnvironmentVariables.d.ts +10 -0
  56. package/dist/context/getEnvironmentVariables.js +260 -0
  57. package/dist/context/getLabels.d.ts +8 -0
  58. package/dist/context/getLabels.js +38 -0
  59. package/dist/context/index.d.ts +5 -6
  60. package/dist/context/index.js +158 -208
  61. package/dist/context/resolveReferences.d.ts +1 -3
  62. package/dist/context/resolveReferences.js +213 -52
  63. package/dist/defaults/index.d.ts +1 -1
  64. package/dist/deploy/base.d.ts +4 -2
  65. package/dist/deploy/base.js +38 -33
  66. package/dist/deploy/cloudRun/deployJob.d.ts +3 -0
  67. package/dist/deploy/cloudRun/deployJob.js +238 -0
  68. package/dist/deploy/cloudRun/index.d.ts +4 -0
  69. package/dist/deploy/cloudRun/index.js +112 -0
  70. package/dist/deploy/cloudRun/utils/createArgsString.d.ts +11 -0
  71. package/dist/deploy/cloudRun/utils/createArgsString.js +55 -0
  72. package/dist/deploy/cloudRun/utils/database.d.ts +4 -0
  73. package/dist/deploy/cloudRun/utils/database.js +64 -0
  74. package/dist/deploy/cloudRun/utils/gcloudServiceAccountLoginCommands.d.ts +2 -0
  75. package/dist/deploy/cloudRun/utils/gcloudServiceAccountLoginCommands.js +10 -0
  76. package/dist/deploy/cloudRun/utils/jobName.d.ts +1 -0
  77. package/dist/deploy/cloudRun/utils/jobName.js +8 -0
  78. package/dist/deploy/custom/deployJob.d.ts +2 -2
  79. package/dist/deploy/custom/deployJob.js +10 -16
  80. package/dist/deploy/custom/index.d.ts +2 -1
  81. package/dist/deploy/custom/index.js +14 -19
  82. package/dist/deploy/dockerTag/deployJob.d.ts +3 -0
  83. package/dist/deploy/dockerTag/deployJob.js +24 -0
  84. package/dist/deploy/dockerTag/index.d.ts +2 -0
  85. package/dist/deploy/dockerTag/index.js +17 -0
  86. package/dist/deploy/index.d.ts +12 -8
  87. package/dist/deploy/index.js +7 -20
  88. package/dist/deploy/kubernetes/additionalSecretKeys.d.ts +4 -0
  89. package/dist/deploy/kubernetes/additionalSecretKeys.js +24 -0
  90. package/dist/deploy/kubernetes/cloudSql/index.d.ts +13 -0
  91. package/dist/deploy/kubernetes/cloudSql/index.js +30 -0
  92. package/dist/deploy/kubernetes/deployJob.d.ts +2 -2
  93. package/dist/deploy/kubernetes/deployJob.js +17 -91
  94. package/dist/deploy/kubernetes/index.d.ts +3 -1
  95. package/dist/deploy/kubernetes/index.js +42 -4
  96. package/dist/deploy/kubernetes/kubeEnv.d.ts +9 -0
  97. package/dist/deploy/kubernetes/kubeEnv.js +72 -0
  98. package/dist/deploy/kubernetes/kubeValues.d.ts +97 -0
  99. package/dist/deploy/kubernetes/kubeValues.js +124 -0
  100. package/dist/deploy/kubernetes/mongodb.d.ts +18 -5
  101. package/dist/deploy/kubernetes/mongodb.js +96 -10
  102. package/dist/deploy/kubernetes/processSecretsAsFiles.d.ts +25 -21
  103. package/dist/deploy/kubernetes/processSecretsAsFiles.js +2 -10
  104. package/dist/deploy/types/base.d.ts +14 -0
  105. package/dist/deploy/types/base.js +3 -0
  106. package/dist/deploy/types/custom.d.ts +33 -0
  107. package/dist/deploy/types/custom.js +3 -0
  108. package/dist/deploy/types/dockerTag.d.ts +10 -0
  109. package/dist/deploy/types/dockerTag.js +3 -0
  110. package/dist/deploy/types/googleCloudRun.d.ts +121 -0
  111. package/dist/deploy/types/googleCloudRun.js +3 -0
  112. package/dist/deploy/types/index.d.ts +22 -0
  113. package/dist/deploy/types/index.js +31 -0
  114. package/dist/deploy/types/kubernetes.d.ts +276 -0
  115. package/dist/deploy/types/kubernetes.js +3 -0
  116. package/dist/deploy/utils.d.ts +2 -2
  117. package/dist/deploy/utils.js +3 -10
  118. package/dist/index.js +0 -10
  119. package/dist/pipeline/commitInfo/getBuildId.d.ts +1 -0
  120. package/dist/pipeline/commitInfo/getBuildId.js +135 -0
  121. package/dist/pipeline/commitInfo/getCommitInfo.d.ts +2 -0
  122. package/dist/pipeline/commitInfo/getCommitInfo.js +140 -0
  123. package/dist/pipeline/createAllJobs.d.ts +8 -0
  124. package/dist/{build/tests/storybook.test.js → pipeline/createAllJobs.js} +54 -104
  125. package/dist/pipeline/createChildPipeline.d.ts +2 -2
  126. package/dist/pipeline/createChildPipeline.js +40 -121
  127. package/dist/pipeline/createJobsForComponent.d.ts +3 -0
  128. package/dist/pipeline/{createJobs.js → createJobsForComponent.js} +33 -192
  129. package/dist/pipeline/gitlab/createGitlabJobs.d.ts +14 -0
  130. package/dist/pipeline/gitlab/createGitlabJobs.js +260 -0
  131. package/dist/pipeline/index.d.ts +1 -1
  132. package/dist/pipeline/index.js +1 -5
  133. package/dist/pipeline/packageManager.d.ts +1 -1
  134. package/dist/pipeline/packageManager.js +20 -173
  135. package/dist/pipeline/yarn/yarnUtils.d.ts +4 -0
  136. package/dist/pipeline/yarn/yarnUtils.js +193 -0
  137. package/dist/rules/index.d.ts +3 -1
  138. package/dist/rules/index.js +7 -6
  139. package/dist/runner/index.d.ts +2 -3
  140. package/dist/runner/index.js +0 -3
  141. package/dist/tsconfig.tsbuildinfo +1 -1
  142. package/dist/types/config.d.ts +19 -25
  143. package/dist/types/config.js +6 -16
  144. package/dist/types/context.d.ts +16 -3
  145. package/dist/types/environmentContext.d.ts +28 -0
  146. package/dist/types/environmentContext.js +3 -0
  147. package/dist/types/gitlab-types.d.ts +39 -7
  148. package/dist/types/index.js +0 -6
  149. package/dist/types/jobs.d.ts +25 -17
  150. package/dist/types/jobs.js +1 -1
  151. package/dist/types/pipeline.d.ts +1 -1
  152. package/dist/types/utils.d.ts +1 -0
  153. package/dist/types/utils.js +3 -0
  154. package/dist/utils/gitlab.d.ts +5 -0
  155. package/dist/utils/gitlab.js +48 -0
  156. package/dist/utils/index.js +5 -15
  157. package/examples/__snapshots__/cloud-run-memory-limit.ts.snap +1560 -0
  158. package/examples/__snapshots__/cloud-run-no-cpu-throttling.ts.snap +1560 -0
  159. package/examples/__snapshots__/cloud-run-non-public.ts.snap +1560 -0
  160. package/examples/__snapshots__/cloud-run-with-sql-reuse-db.ts.snap +3092 -0
  161. package/examples/__snapshots__/cloud-run-with-sql.ts.snap +3103 -0
  162. package/examples/__snapshots__/custom-build-job.ts.snap +1162 -0
  163. package/examples/__snapshots__/custom-envs.ts.snap +261 -0
  164. package/examples/__snapshots__/kubernetes-application-customization.ts.snap +2280 -0
  165. package/examples/__snapshots__/kubernetes-with-jobs.ts.snap +4077 -0
  166. package/examples/__snapshots__/rails-k8s-with-worker.ts.snap +1911 -0
  167. package/examples/__snapshots__/wait-for-other-deploy.ts.snap +1626 -0
  168. package/examples/__utils__/helpers.ts +14 -0
  169. package/examples/cloud-run-memory-limit.ts +28 -0
  170. package/examples/cloud-run-no-cpu-throttling.ts +33 -0
  171. package/examples/cloud-run-non-public.ts +27 -0
  172. package/examples/cloud-run-with-sql-reuse-db.ts +54 -0
  173. package/examples/cloud-run-with-sql.ts +61 -0
  174. package/examples/custom-build-job.ts +28 -0
  175. package/examples/custom-envs.ts +31 -0
  176. package/examples/kubernetes-application-customization.ts +57 -0
  177. package/examples/kubernetes-with-jobs.ts +68 -0
  178. package/examples/rails-k8s-with-worker.ts +95 -0
  179. package/examples/wait-for-other-deploy.ts +36 -0
  180. package/package.json +16 -13
  181. package/scripts/bundle +2 -0
  182. package/src/build/base/createBuildJob.ts +12 -5
  183. package/src/build/base/{getBuildInfo.ts → writeBuildInfo.ts} +2 -2
  184. package/src/build/custom/buildJob.ts +64 -0
  185. package/src/build/custom/index.ts +7 -0
  186. package/src/build/docker.ts +58 -33
  187. package/src/build/index.ts +24 -5
  188. package/src/build/node/buildJob.ts +2 -2
  189. package/src/build/node/cache.ts +19 -8
  190. package/src/build/node/index.ts +1 -1
  191. package/src/build/node/meteor.ts +8 -2
  192. package/src/build/node/testJob.ts +4 -2
  193. package/src/build/node/yarn.ts +21 -10
  194. package/src/build/rails/build.ts +38 -0
  195. package/src/build/rails/index.ts +8 -0
  196. package/src/build/rails/test.ts +86 -0
  197. package/src/build/types.ts +97 -2
  198. package/src/catladder-gitlab.ts +4 -2
  199. package/src/config/{configruedEnvs.test.ts → __tests__/configruedEnvs.test.ts} +3 -3
  200. package/src/config/configruedEnvs.ts +2 -7
  201. package/src/config/readConfig.ts +1 -1
  202. package/src/context/{resolveReferences.test.ts → __tests__/resolveReferences.test.ts} +23 -38
  203. package/src/context/getEnvConfig.ts +21 -0
  204. package/src/context/getEnvType.ts +17 -0
  205. package/src/context/getEnvironment.ts +40 -0
  206. package/src/context/getEnvironmentContext.ts +57 -0
  207. package/src/context/getEnvironmentVariables.ts +155 -0
  208. package/src/context/getLabels.ts +20 -0
  209. package/src/context/index.ts +28 -193
  210. package/src/context/resolveReferences.ts +35 -31
  211. package/src/defaults/index.ts +1 -1
  212. package/src/deploy/base.ts +43 -19
  213. package/src/deploy/cloudRun/deployJob.ts +276 -0
  214. package/src/deploy/cloudRun/index.ts +95 -0
  215. package/src/deploy/cloudRun/utils/createArgsString.ts +26 -0
  216. package/src/deploy/cloudRun/utils/database.ts +55 -0
  217. package/src/deploy/cloudRun/utils/gcloudServiceAccountLoginCommands.ts +14 -0
  218. package/src/deploy/cloudRun/utils/jobName.ts +2 -0
  219. package/src/deploy/custom/deployJob.ts +13 -3
  220. package/src/deploy/custom/index.ts +9 -1
  221. package/src/deploy/dockerTag/deployJob.ts +31 -0
  222. package/src/deploy/dockerTag/index.ts +9 -0
  223. package/src/deploy/index.ts +26 -17
  224. package/src/deploy/kubernetes/additionalSecretKeys.ts +23 -0
  225. package/src/deploy/kubernetes/cloudSql/index.ts +28 -0
  226. package/src/deploy/kubernetes/deployJob.ts +21 -78
  227. package/src/deploy/kubernetes/index.ts +42 -1
  228. package/src/deploy/kubernetes/kubeEnv.ts +48 -0
  229. package/src/deploy/kubernetes/kubeValues.ts +96 -0
  230. package/src/deploy/kubernetes/mongodb.ts +104 -7
  231. package/src/deploy/kubernetes/processSecretsAsFiles.ts +1 -1
  232. package/src/deploy/types/base.ts +17 -0
  233. package/src/deploy/types/custom.ts +36 -0
  234. package/src/deploy/types/dockerTag.ts +12 -0
  235. package/src/deploy/types/googleCloudRun.ts +179 -0
  236. package/src/deploy/types/index.ts +28 -0
  237. package/src/deploy/types/kubernetes.ts +301 -0
  238. package/src/deploy/utils.ts +6 -2
  239. package/src/pipeline/commitInfo/getBuildId.ts +6 -0
  240. package/src/pipeline/commitInfo/getCommitInfo.ts +12 -0
  241. package/src/pipeline/createAllJobs.ts +38 -0
  242. package/src/pipeline/createChildPipeline.ts +9 -20
  243. package/src/pipeline/createJobsForComponent.ts +64 -0
  244. package/src/pipeline/gitlab/createGitlabJobs.ts +149 -0
  245. package/src/pipeline/index.ts +1 -1
  246. package/src/pipeline/packageManager.ts +4 -38
  247. package/src/pipeline/yarn/yarnUtils.ts +37 -0
  248. package/src/rules/index.ts +9 -6
  249. package/src/runner/index.ts +2 -1
  250. package/src/types/config.ts +26 -13
  251. package/src/types/context.ts +23 -2
  252. package/src/types/environmentContext.ts +33 -0
  253. package/src/types/gitlab-types.ts +36 -6
  254. package/src/types/jobs.ts +30 -6
  255. package/src/types/pipeline.ts +1 -1
  256. package/src/types/utils.ts +7 -0
  257. package/src/utils/gitlab.ts +23 -0
  258. package/tsconfig.json +3 -1
  259. package/dist/build/base/getBuildInfo.d.ts +0 -2
  260. package/dist/build/tests/storybook.test.d.ts +0 -1
  261. package/dist/context/resolveReferences.test.js +0 -141
  262. package/dist/deploy/kubernetes/cloudsql.d.ts +0 -6
  263. package/dist/deploy/kubernetes/cloudsql.js +0 -16
  264. package/dist/deploy/types.d.ts +0 -196
  265. package/dist/deploy/types.js +0 -16
  266. package/dist/pipeline/createChildPipeline.test.d.ts +0 -1
  267. package/dist/pipeline/createJobs.d.ts +0 -3
  268. package/dist/pipeline/gitlab/makeGitlabJob.d.ts +0 -8
  269. package/dist/pipeline/gitlab/makeGitlabJob.js +0 -45
  270. package/src/build/tests/storybook.test.ts +0 -54
  271. package/src/deploy/kubernetes/cloudsql.ts +0 -12
  272. package/src/deploy/types.ts +0 -189
  273. package/src/pipeline/createChildPipeline.test.ts +0 -49
  274. package/src/pipeline/createJobs.ts +0 -195
  275. package/src/pipeline/gitlab/makeGitlabJob.ts +0 -16
@@ -0,0 +1,2 @@
1
+ import type { DeployTypeDefinition } from "..";
2
+ export declare const DOCKER_TAG_DEPLOY_TYPE: DeployTypeDefinition<"dockerTag">;
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.DOCKER_TAG_DEPLOY_TYPE = void 0;
5
+ var deployJob_1 = require("./deployJob");
6
+ exports.DOCKER_TAG_DEPLOY_TYPE = {
7
+ jobs: deployJob_1.createDockerTagDeployJobs,
8
+ defaults: function () {
9
+ return {};
10
+ },
11
+ additionalSecretKeys: function () {
12
+ return [];
13
+ },
14
+ getAdditionalEnvVars: function () {
15
+ return {};
16
+ }
17
+ };
@@ -1,13 +1,17 @@
1
- import { Context } from "../types/context";
2
- import { CatladderJob } from "../types/jobs";
3
- import { DeployConfig } from "./types";
1
+ import type { Context } from "../types/context";
2
+ import type { EnvironmentContext } from "../types/environmentContext";
3
+ import type { CatladderJob } from "../types/jobs";
4
+ import type { PartialDeep } from "../types/utils";
5
+ import type { DeployConfigGeneric, DeployConfigType } from "./types";
6
+ export * from "./cloudRun";
4
7
  export * from "./kubernetes";
5
8
  export * from "./types";
6
9
  export * from "./utils";
7
- export declare type DeployTypes = { [type in DeployConfig["type"]]: {
10
+ export declare type DeployTypeDefinition<T extends DeployConfigType> = {
8
11
  jobs: (context: Context) => CatladderJob[];
9
- defaults: () => Partial<Extract<DeployConfig, {
10
- type: type;
11
- }>>;
12
- } };
12
+ defaults: (envContext: EnvironmentContext<any, T>) => PartialDeep<DeployConfigGeneric<T>>;
13
+ additionalSecretKeys: (envContext: EnvironmentContext<any, T>) => string[];
14
+ getAdditionalEnvVars: (envContext: EnvironmentContext<any, T>) => Record<string, string | undefined | null>;
15
+ };
16
+ export declare type DeployTypes = { [T in DeployConfigType]: DeployTypeDefinition<T> };
13
17
  export declare const DEPLOY_TYPES: DeployTypes;
@@ -12,35 +12,22 @@ var __createBinding = this && this.__createBinding || (Object.create ? function
12
12
  if (k2 === undefined) k2 = k;
13
13
  o[k2] = m[k];
14
14
  });
15
-
16
15
  var __exportStar = this && this.__exportStar || function (m, exports) {
17
16
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
18
17
  };
19
-
20
18
  exports.__esModule = true;
21
19
  exports.DEPLOY_TYPES = void 0;
22
-
20
+ var cloudRun_1 = require("./cloudRun");
23
21
  var custom_1 = require("./custom");
24
-
22
+ var dockerTag_1 = require("./dockerTag");
25
23
  var kubernetes_1 = require("./kubernetes");
26
-
24
+ __exportStar(require("./cloudRun"), exports);
27
25
  __exportStar(require("./kubernetes"), exports);
28
-
29
26
  __exportStar(require("./types"), exports);
30
-
31
27
  __exportStar(require("./utils"), exports);
32
-
33
28
  exports.DEPLOY_TYPES = {
34
- kubernetes: {
35
- jobs: kubernetes_1.createKubernetesDeployJobs,
36
- defaults: function () {
37
- return {};
38
- }
39
- },
40
- custom: {
41
- jobs: custom_1.createCustomDeployJobs,
42
- defaults: function () {
43
- return {};
44
- }
45
- }
29
+ kubernetes: kubernetes_1.KUBERNETES_DEPLOY_TYPE,
30
+ custom: custom_1.CUSTOM_DEPLOY_TYPE,
31
+ dockerTag: dockerTag_1.DOCKER_TAG_DEPLOY_TYPE,
32
+ "google-cloudrun": cloudRun_1.GCLOUD_RUN_DEPLOY_TYPE
46
33
  };
@@ -0,0 +1,4 @@
1
+ import type { EnvironmentContext } from "../../types/environmentContext";
2
+ export declare const additionalKubernetesSecretKeys: ({
3
+ deployConfigRaw
4
+ }: EnvironmentContext<any, "kubernetes">) => string[];
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.additionalKubernetesSecretKeys = void 0;
5
+ var additionalKubernetesSecretKeys = function (_a) {
6
+ var _b, _c, _d, _e;
7
+ var deployConfigRaw = _a.deployConfigRaw;
8
+ if (!deployConfigRaw) {
9
+ return [];
10
+ }
11
+ var keys = [];
12
+ if ((_c = (_b = deployConfigRaw.values) === null || _b === void 0 ? void 0 : _b.mongodb) === null || _c === void 0 ? void 0 : _c.enabled) {
13
+ keys.push("MONGODB_ROOT_PASSWORD");
14
+ if (deployConfigRaw.values.mongodb.architecture === "replicaset") {
15
+ keys.push("MONGODB_REPLICASET_KEY");
16
+ }
17
+ }
18
+ if ((_e = (_d = deployConfigRaw.values) === null || _d === void 0 ? void 0 : _d.cloudsql) === null || _e === void 0 ? void 0 : _e.enabled) {
19
+ keys.push("POSTGRESQL_PASSWORD");
20
+ keys.push("cloudsqlProxyCredentials");
21
+ }
22
+ return keys;
23
+ };
24
+ exports.additionalKubernetesSecretKeys = additionalKubernetesSecretKeys;
@@ -0,0 +1,13 @@
1
+ import type { Context } from "../../../types";
2
+ export declare const hasKubernetesCloudSQL: (context: Context) => boolean | undefined;
3
+ export declare const getKubernetesCloudSQLConfig: (context: Context) => {
4
+ enabled: boolean;
5
+ instanceId?: string | undefined;
6
+ projectId?: string | undefined;
7
+ region?: string | undefined;
8
+ } | undefined;
9
+ export declare const createCloudsqlBaseConfig: (context: Context) => {
10
+ cloudsql: {
11
+ proxyCredentials: string;
12
+ };
13
+ };
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.createCloudsqlBaseConfig = exports.getKubernetesCloudSQLConfig = exports.hasKubernetesCloudSQL = void 0;
5
+ var context_1 = require("../../../context");
6
+ var types_1 = require("../../types");
7
+ var hasKubernetesCloudSQL = function (context) {
8
+ var _a, _b;
9
+ if ((0, types_1.isOfDeployType)(context.componentConfig.deploy, "kubernetes")) {
10
+ return (_b = (_a = context.componentConfig.deploy.values) === null || _a === void 0 ? void 0 : _a.cloudsql) === null || _b === void 0 ? void 0 : _b.enabled;
11
+ }
12
+ return false;
13
+ };
14
+ exports.hasKubernetesCloudSQL = hasKubernetesCloudSQL;
15
+ var getKubernetesCloudSQLConfig = function (context) {
16
+ var _a;
17
+ if ((0, types_1.isOfDeployType)(context.componentConfig.deploy, "kubernetes")) {
18
+ return (_a = context.componentConfig.deploy.values) === null || _a === void 0 ? void 0 : _a.cloudsql;
19
+ }
20
+ throw new Error("cannot get cloud sql config");
21
+ };
22
+ exports.getKubernetesCloudSQLConfig = getKubernetesCloudSQLConfig;
23
+ var createCloudsqlBaseConfig = function (context) {
24
+ return {
25
+ cloudsql: {
26
+ proxyCredentials: "$".concat((0, context_1.getSecretVarNameForContext)(context, "cloudsqlProxyCredentials"))
27
+ }
28
+ };
29
+ };
30
+ exports.createCloudsqlBaseConfig = createCloudsqlBaseConfig;
@@ -1,3 +1,3 @@
1
- import { Context } from "../../types/context";
2
- import { CatladderJob } from "../../types/jobs";
1
+ import type { Context } from "../../types/context";
2
+ import type { CatladderJob } from "../../types/jobs";
3
3
  export declare const createKubernetesDeployJobs: (context: Context) => CatladderJob[];
@@ -4,24 +4,19 @@ var __assign = this && this.__assign || function () {
4
4
  __assign = Object.assign || function (t) {
5
5
  for (var s, i = 1, n = arguments.length; i < n; i++) {
6
6
  s = arguments[i];
7
-
8
7
  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
9
8
  }
10
-
11
9
  return t;
12
10
  };
13
-
14
11
  return __assign.apply(this, arguments);
15
12
  };
16
-
17
13
  var __read = this && this.__read || function (o, n) {
18
14
  var m = typeof Symbol === "function" && o[Symbol.iterator];
19
15
  if (!m) return o;
20
16
  var i = m.call(o),
21
- r,
22
- ar = [],
23
- e;
24
-
17
+ r,
18
+ ar = [],
19
+ e;
25
20
  try {
26
21
  while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
27
22
  } catch (error) {
@@ -35,10 +30,8 @@ var __read = this && this.__read || function (o, n) {
35
30
  if (e) throw e.error;
36
31
  }
37
32
  }
38
-
39
33
  return ar;
40
34
  };
41
-
42
35
  var __spreadArray = this && this.__spreadArray || function (to, from, pack) {
43
36
  if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
44
37
  if (ar || !(i in from)) {
@@ -48,120 +41,49 @@ var __spreadArray = this && this.__spreadArray || function (to, from, pack) {
48
41
  }
49
42
  return to.concat(ar || Array.prototype.slice.call(from));
50
43
  };
51
-
52
44
  exports.__esModule = true;
53
45
  exports.createKubernetesDeployJobs = void 0;
54
-
55
46
  var js_yaml_1 = require("js-yaml");
56
-
57
47
  var lodash_1 = require("lodash");
58
-
59
48
  var __1 = require("../..");
60
-
61
49
  var runner_1 = require("../../runner");
62
-
63
- var utils_1 = require("../../utils");
64
-
65
50
  var base_1 = require("../base");
66
-
67
51
  var types_1 = require("../types");
68
-
69
- var cloudsql_1 = require("./cloudsql");
70
-
71
- var mongodb_1 = require("./mongodb");
72
-
73
- var processSecretsAsFiles_1 = require("./processSecretsAsFiles");
74
-
52
+ var kubeValues_1 = require("./kubeValues");
75
53
  var createKubernetesDeployJobs = function (context) {
76
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q;
77
-
54
+ var _a, _b, _c;
78
55
  var deployConfig = context.componentConfig.deploy;
79
-
80
56
  if (deployConfig === false) {
81
57
  return [];
82
58
  }
83
-
84
59
  if (!(0, types_1.isOfDeployType)(deployConfig, "kubernetes")) {
85
60
  // should not happen
86
61
  throw new Error("deploy config is not kubernetes");
87
62
  }
88
-
89
- var allEnvVars = context.environment.envVars;
90
- /**
91
- * separate by secrets and public.
92
- * we evalulate the actual values later, but want to store the secrets in kubernetes secrets
93
- */
94
-
95
- var env = Object.entries(allEnvVars).reduce(function (acc, _a) {
96
- var _b, _c;
97
-
98
- var _d;
99
-
100
- var _e = __read(_a, 2),
101
- key = _e[0],
102
- value = _e[1];
103
-
104
- if ((_d = String(value)) === null || _d === void 0 ? void 0 : _d.startsWith("$CL_")) {
105
- acc.secret = __assign(__assign({}, acc.secret), (_b = {}, _b[key] = value, _b));
106
- return acc;
107
- }
108
-
109
- acc.public = __assign(__assign({}, acc.public), (_c = {}, _c[key] = value, _c));
110
- return acc;
111
- }, {
112
- secret: {},
113
- public: {}
114
- });
115
- var defaultAppConfig = {
116
- host: context.environment.host,
117
- command: context.componentConfig.build.startCommand,
118
- livenessProbe: {
119
- httpGet: {
120
- path: (_c = (_b = (_a = deployConfig.values) === null || _a === void 0 ? void 0 : _a.application) === null || _b === void 0 ? void 0 : _b.healthRoute) !== null && _c !== void 0 ? _c : "__health"
121
- }
122
- },
123
- readinessProbe: {
124
- httpGet: {
125
- path: (_f = (_e = (_d = deployConfig.values) === null || _d === void 0 ? void 0 : _d.application) === null || _e === void 0 ? void 0 : _e.healthRoute) !== null && _f !== void 0 ? _f : "__health"
126
- }
127
- },
128
- startupProbe: {
129
- httpGet: {
130
- path: (_j = (_h = (_g = deployConfig.values) === null || _g === void 0 ? void 0 : _g.application) === null || _h === void 0 ? void 0 : _h.healthRoute) !== null && _j !== void 0 ? _j : "__health"
131
- }
132
- }
133
- };
134
-
135
- var defaultKubeValues = __assign(__assign({
136
- application: defaultAppConfig,
137
- env: env
138
- }, ((_l = (_k = deployConfig.values) === null || _k === void 0 ? void 0 : _k.cloudsql) === null || _l === void 0 ? void 0 : _l.enabled) ? (0, cloudsql_1.createCloudsqlBaseConfig)(context) : {}), ((_o = (_m = deployConfig.values) === null || _m === void 0 ? void 0 : _m.mongodb) === null || _o === void 0 ? void 0 : _o.enabled) ? (0, mongodb_1.createMongodbBaseConfig)(context) : {});
139
-
140
- var kubeValues = (0, processSecretsAsFiles_1.processSecretsAsFiles)((0, utils_1.mergeWithMergingArrays)(defaultKubeValues, deployConfig.values));
63
+ var kubeValues = (0, kubeValues_1.createKubeValues)(context);
141
64
  var kubernetesEnvironment = {
142
65
  namespace: context.environment.envVars.KUBE_NAMESPACE
143
66
  };
144
67
  var shared = {
145
68
  image: (0, runner_1.getRunnerImage)("kubernetes"),
146
69
  variables: __assign(__assign({}, context.environment.envVars), {
70
+ RELEASE_NAME: context.environment.fullName,
147
71
  HELM_EXPERIMENTAL_OCI: "1",
148
- IMAGE_PULL_SECRET: "gitlab-registry-".concat(context.componentName),
72
+ KUBE_DOCKER_IMAGE_PULL_SECRET: "gitlab-registry-".concat(context.componentName),
149
73
  KUBE_VALUES: (0, js_yaml_1.dump)(kubeValues, {
150
74
  lineWidth: -1,
151
75
  quotingType: "'",
152
76
  forceQuotes: true
153
77
  }),
154
- HELM_GITLAB_CHART_NAME: "the-panter-chart",
155
- HELM_ARGS: __spreadArray(__spreadArray([], __read(deployConfig.debug ? ["--debug"] : []), false), __read((_p = deployConfig.additionalHelmArgs) !== null && _p !== void 0 ? _p : []), false).join(" "),
78
+ HELM_GITLAB_CHART_NAME: (_a = deployConfig.chartName) !== null && _a !== void 0 ? _a : "/helm-charts/the-panter-chart",
79
+ HELM_ARGS: __spreadArray(__spreadArray([], __read(deployConfig.debug ? ["--debug"] : []), false), __read((_b = deployConfig.additionalHelmArgs) !== null && _b !== void 0 ? _b : []), false).join(" "),
156
80
  COMPONENT_NAME: context.componentName,
157
- BUILD_ID: (_q = context.commitInfo) === null || _q === void 0 ? void 0 : _q.buildId,
158
- // TODO: unify with docker build stage
159
- IMAGE_NAME: context.environment.shortName + "/" + context.componentName,
160
- IMAGE_TAG: "$CI_COMMIT_SHA"
81
+ BUILD_ID: (_c = context.commitInfo) === null || _c === void 0 ? void 0 : _c.buildId
161
82
  })
162
83
  };
163
84
  var baseDeploymentJob = (0, base_1.getBaseDeploymentJob)(context);
164
85
  var baseStopJob = (0, base_1.getBaseDeploymentStopJob)(context);
86
+ var baseRollbackJob = (0, base_1.getBaseRollbackJob)(context);
165
87
  var clusterName = "kube-".concat(context.environment.fullName);
166
88
  var connectContext = ["kubectl config set-cluster \"".concat(clusterName, "\" --server=\"$").concat((0, __1.getSecretVarNameForContext)(context, "KUBE_URL"), "\" --certificate-authority <(echo $").concat((0, __1.getSecretVarNameForContext)(context, "KUBE_CA_PEM"), " | base64 -d) --embed-certs=true"), "kubectl config set-credentials \"".concat(clusterName, "\" --token=\"$").concat((0, __1.getSecretVarNameForContext)(context, "KUBE_TOKEN"), "\""), "kubectl config set-context \"".concat(clusterName, "\" --cluster=\"").concat(clusterName, "\" --user=\"").concat(clusterName, "\" --namespace=\"").concat(context.environment.envVars.KUBE_NAMESPACE, "\""), "kubectl config use-context \"".concat(clusterName, "\"")];
167
89
  return [(0, lodash_1.merge)({}, baseDeploymentJob, shared, {
@@ -174,7 +96,11 @@ var createKubernetesDeployJobs = function (context) {
174
96
  environment: {
175
97
  kubernetes: kubernetesEnvironment
176
98
  }
99
+ }), (0, lodash_1.merge)({}, baseRollbackJob, shared, {
100
+ script: __spreadArray(__spreadArray([], __read(connectContext), false), ["kubernetesRollback"], false),
101
+ environment: {
102
+ kubernetes: kubernetesEnvironment
103
+ }
177
104
  })];
178
105
  };
179
-
180
106
  exports.createKubernetesDeployJobs = createKubernetesDeployJobs;
@@ -1 +1,3 @@
1
- export * from "./deployJob";
1
+ import type { DeployTypeDefinition } from "..";
2
+ export * from "./cloudSql";
3
+ export declare const KUBERNETES_DEPLOY_TYPE: DeployTypeDefinition<"kubernetes">;
@@ -12,11 +12,49 @@ var __createBinding = this && this.__createBinding || (Object.create ? function
12
12
  if (k2 === undefined) k2 = k;
13
13
  o[k2] = m[k];
14
14
  });
15
-
16
15
  var __exportStar = this && this.__exportStar || function (m, exports) {
17
16
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
18
17
  };
19
-
18
+ var __importDefault = this && this.__importDefault || function (mod) {
19
+ return mod && mod.__esModule ? mod : {
20
+ "default": mod
21
+ };
22
+ };
20
23
  exports.__esModule = true;
21
-
22
- __exportStar(require("./deployJob"), exports);
24
+ exports.KUBERNETES_DEPLOY_TYPE = void 0;
25
+ var slugify_1 = __importDefault(require("slugify"));
26
+ var __1 = require("..");
27
+ var additionalSecretKeys_1 = require("./additionalSecretKeys");
28
+ var deployJob_1 = require("./deployJob");
29
+ __exportStar(require("./cloudSql"), exports);
30
+ exports.KUBERNETES_DEPLOY_TYPE = {
31
+ jobs: deployJob_1.createKubernetesDeployJobs,
32
+ defaults: function () {
33
+ return {};
34
+ },
35
+ additionalSecretKeys: additionalSecretKeys_1.additionalKubernetesSecretKeys,
36
+ getAdditionalEnvVars: function (_a) {
37
+ var _b;
38
+ var componentName = _a.componentName,
39
+ fullConfig = _a.fullConfig,
40
+ deployConfigRaw = _a.deployConfigRaw,
41
+ env = _a.env,
42
+ envType = _a.envType,
43
+ commitInfo = _a.commitInfo;
44
+ var KUBE_APP_NAME_PREFIX = envType === "review" && commitInfo ? "".concat(commitInfo.reviewSlug, "-") : "";
45
+ var KUBE_APP_NAME = "".concat(KUBE_APP_NAME_PREFIX).concat(componentName);
46
+ var KUBE_NAMESPACE = (0, __1.getKubernetesNamespace)(fullConfig, env);
47
+ var componentSlug = (0, slugify_1["default"])(componentName);
48
+ var envInUrl = envType === "review" && commitInfo ? "".concat(commitInfo.reviewSlug, ".").concat(env) : env;
49
+ var domainCanonical = deployConfigRaw && ((_b = deployConfigRaw.cluster) === null || _b === void 0 ? void 0 : _b.domainCanonical) ||
50
+ // for convenience, we allow clusters to define a canonical domain, because a cluster has a fixed ip and you will usually have a domain pointing to that cluster
51
+ fullConfig.domainCanonical || "panter.cloud";
52
+ var HOST_CANONICAL = "".concat(componentSlug, ".").concat(envInUrl, ".").concat(fullConfig.appName, ".").concat(fullConfig.customerName, ".").concat(domainCanonical); // default for kubernetes and rest
53
+ return {
54
+ KUBE_NAMESPACE: KUBE_NAMESPACE,
55
+ KUBE_APP_NAME: KUBE_APP_NAME,
56
+ KUBE_APP_NAME_PREFIX: KUBE_APP_NAME_PREFIX,
57
+ HOST_CANONICAL: HOST_CANONICAL
58
+ };
59
+ }
60
+ };
@@ -0,0 +1,9 @@
1
+ import type { Context } from "../../types";
2
+ /**
3
+ * separate by secrets and public.
4
+ * we evalulate the actual values later, but want to store the secrets in kubernetes secrets
5
+ */
6
+ export declare const createKubeEnv: (context: Context) => {
7
+ secret: Record<string, string>;
8
+ public: Record<string, string>;
9
+ };
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+
3
+ var __assign = this && this.__assign || function () {
4
+ __assign = Object.assign || function (t) {
5
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
6
+ s = arguments[i];
7
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __read = this && this.__read || function (o, n) {
14
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
15
+ if (!m) return o;
16
+ var i = m.call(o),
17
+ r,
18
+ ar = [],
19
+ e;
20
+ try {
21
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
22
+ } catch (error) {
23
+ e = {
24
+ error: error
25
+ };
26
+ } finally {
27
+ try {
28
+ if (r && !r.done && (m = i["return"])) m.call(i);
29
+ } finally {
30
+ if (e) throw e.error;
31
+ }
32
+ }
33
+ return ar;
34
+ };
35
+ exports.__esModule = true;
36
+ exports.createKubeEnv = void 0;
37
+ var types_1 = require("../types");
38
+ var shouldGoIntoSecrets = function (key, value) {
39
+ var _a;
40
+ if ((_a = String(value)) === null || _a === void 0 ? void 0 : _a.includes("$CL_")) {
41
+ return true;
42
+ }
43
+ return false;
44
+ };
45
+ /**
46
+ * separate by secrets and public.
47
+ * we evalulate the actual values later, but want to store the secrets in kubernetes secrets
48
+ */
49
+ var createKubeEnv = function (context) {
50
+ if (!(0, types_1.isOfDeployType)(context.componentConfig.deploy, "kubernetes")) {
51
+ // should not happen
52
+ throw new Error("deploy config is not kubernetes");
53
+ }
54
+ var allEnvVars = context.environment.envVars;
55
+ var env = Object.entries(allEnvVars).reduce(function (acc, _a) {
56
+ var _b, _c;
57
+ var _d = __read(_a, 2),
58
+ key = _d[0],
59
+ value = _d[1];
60
+ if (shouldGoIntoSecrets(key, value)) {
61
+ acc.secret = __assign(__assign({}, acc.secret), (_b = {}, _b[key] = value, _b));
62
+ return acc;
63
+ }
64
+ acc.public = __assign(__assign({}, acc.public), (_c = {}, _c[key] = value, _c));
65
+ return acc;
66
+ }, {
67
+ secret: {},
68
+ public: {}
69
+ });
70
+ return env;
71
+ };
72
+ exports.createKubeEnv = createKubeEnv;
@@ -0,0 +1,97 @@
1
+ import type { Context } from "../../types/context";
2
+ export declare const createKubeValues: (context: Context) => never[] | ({
3
+ env: {
4
+ secret: Record<string, string>;
5
+ public: Record<string, string>;
6
+ };
7
+ application: false | import("../types/base").AllowUnknownProps<{
8
+ command?: string | undefined;
9
+ enabled?: boolean | undefined;
10
+ redirects?: import("../types/base").AllowUnknownProps<{
11
+ host: string;
12
+ }>[] | undefined;
13
+ hostAliases?: string[] | undefined;
14
+ replicas?: number | undefined;
15
+ autoscale?: import("../types").KubernetesAutoscale | undefined;
16
+ updateStrategy?: import("../types").KubernetesUpdateStrategy | undefined;
17
+ resources?: import("../types").KubernetesResourcesDef | undefined;
18
+ healthRoute?: string | undefined;
19
+ startupProbe?: {
20
+ httpGet?: {
21
+ path?: string | undefined;
22
+ port?: number | undefined;
23
+ httpHeaders?: {
24
+ name: string;
25
+ value: string;
26
+ }[] | undefined;
27
+ failureThreshold?: number | undefined;
28
+ timeoutSeconds?: number | undefined;
29
+ periodSeconds?: number | undefined;
30
+ successThreshold?: number | undefined;
31
+ } | undefined;
32
+ } | undefined;
33
+ readinessProbe?: {
34
+ httpGet?: {
35
+ path?: string | undefined;
36
+ port?: number | undefined;
37
+ httpHeaders?: {
38
+ name: string;
39
+ value: string;
40
+ }[] | undefined;
41
+ failureThreshold?: number | undefined;
42
+ timeoutSeconds?: number | undefined;
43
+ periodSeconds?: number | undefined;
44
+ successThreshold?: number | undefined;
45
+ } | undefined;
46
+ } | undefined;
47
+ livenessProbe?: {
48
+ httpGet?: {
49
+ path?: string | undefined;
50
+ port?: number | undefined;
51
+ httpHeaders?: {
52
+ name: string;
53
+ value: string;
54
+ }[] | undefined;
55
+ failureThreshold?: number | undefined;
56
+ timeoutSeconds?: number | undefined;
57
+ periodSeconds?: number | undefined;
58
+ successThreshold?: number | undefined;
59
+ } | undefined;
60
+ } | undefined;
61
+ worker?: import("../types").KubernetesWorkerDef | undefined;
62
+ jobDefaults?: {
63
+ resources: import("../types").KubernetesResourcesDef;
64
+ } | undefined;
65
+ }> | undefined;
66
+ } & {
67
+ cloudsql?: {
68
+ enabled: boolean;
69
+ instanceId?: string | undefined;
70
+ projectId?: string | undefined;
71
+ region?: string | undefined;
72
+ } | undefined;
73
+ mongodb?: import("../types").DeployConfigMongodb | undefined;
74
+ mailhog?: {
75
+ enabled: boolean;
76
+ } | undefined;
77
+ secretsFromOtherComponent?: {
78
+ [envVar: string]: string;
79
+ } | undefined;
80
+ mapServiceUrlToEnv?: {
81
+ [envVar: string]: string;
82
+ } | undefined;
83
+ secretsAsFile?: string[] | undefined;
84
+ jobs: {
85
+ [k: string]: false | import("../types/base").AllowUnknownProps<{
86
+ command: string;
87
+ hook?: string | undefined;
88
+ }>;
89
+ } | undefined;
90
+ cronjobs: {
91
+ [k: string]: false | import("../types/base").AllowUnknownProps<{
92
+ schedule: string;
93
+ command: string;
94
+ concurrencyPolicy?: "Forbid" | "Allow" | "Replace" | undefined;
95
+ }>;
96
+ } | undefined;
97
+ });