@catladder/cli 0.0.0-next-f0ea63b5 → 0.0.0-next-52feb889
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/bundles/catenv/index.js +42 -8
- package/dist/bundles/cli/index.js +122 -10
- package/dist/cli/src/apps/cli/commands/project/setup/ensureGcloudProjectNumbers.d.ts +12 -0
- package/dist/cli/src/apps/cli/commands/project/setup/ensureGcloudProjectNumbers.js +64 -0
- package/dist/cli/src/apps/cli/commands/project/setup/ensureGcloudProjectNumbers.js.map +1 -0
- package/dist/cli/src/apps/cli/commands/project/setup/index.js +3 -0
- package/dist/cli/src/apps/cli/commands/project/setup/index.js.map +1 -1
- package/dist/cli/src/config/getProjectConfig.d.ts +6 -0
- package/dist/cli/src/config/getProjectConfig.js +10 -1
- package/dist/cli/src/config/getProjectConfig.js.map +1 -1
- package/dist/cli/src/gcloud/cloudSql/copyDb.js +6 -2
- package/dist/cli/src/gcloud/cloudSql/copyDb.js.map +1 -1
- package/dist/pipeline/src/constants.js +1 -1
- package/dist/pipeline/src/context/index.d.ts +1 -0
- package/dist/pipeline/src/context/index.js +1 -0
- package/dist/pipeline/src/context/index.js.map +1 -1
- package/dist/pipeline/src/deploy/cloudRun/createJobs/execute/schedules.js +18 -3
- package/dist/pipeline/src/deploy/cloudRun/createJobs/execute/schedules.js.map +1 -1
- package/dist/pipeline/src/deploy/types/googleCloudRun.d.ts +5 -1
- package/dist/pipeline/src/store/index.d.ts +4 -0
- package/dist/pipeline/src/store/index.js +12 -3
- package/dist/pipeline/src/store/index.js.map +1 -1
- package/dist/runner-images/agent-claude/Dockerfile +5 -0
- package/dist/runner-images/docker-build/Dockerfile +26 -0
- package/dist/runner-images/docker-build/scripts/ensureMeteorDockerfile +55 -0
- package/dist/runner-images/docker-build/scripts/ensureNginxDockerfile +85 -0
- package/dist/runner-images/docker-build/scripts/ensureNodeDockerfile +50 -0
- package/dist/runner-images/gcloud/Dockerfile +3 -0
- package/dist/runner-images/jobs-default/Dockerfile +22 -0
- package/dist/runner-images/jobs-meteor/Dockerfile +7 -0
- package/dist/runner-images/jobs-testing-chrome/Dockerfile +15 -0
- package/dist/runner-images/kubernetes/Dockerfile +26 -0
- package/dist/runner-images/kubernetes/helm-charts/the-panter-chart/Chart.lock +9 -0
- package/dist/runner-images/kubernetes/helm-charts/the-panter-chart/Chart.yaml +14 -0
- package/dist/runner-images/kubernetes/helm-charts/the-panter-chart/README.md +24 -0
- package/dist/runner-images/kubernetes/helm-charts/the-panter-chart/charts/mailhog-5.0.1.tgz +0 -0
- package/dist/runner-images/kubernetes/helm-charts/the-panter-chart/charts/mongodb-12.1.27.tgz +0 -0
- package/dist/runner-images/kubernetes/helm-charts/the-panter-chart/myvalues.yaml +15 -0
- package/dist/runner-images/kubernetes/helm-charts/the-panter-chart/templates/_helpers.tpl +202 -0
- package/dist/runner-images/kubernetes/helm-charts/the-panter-chart/templates/app.cloudsql-proxy-credentials.yml +10 -0
- package/dist/runner-images/kubernetes/helm-charts/the-panter-chart/templates/app.cronjobs.yml +69 -0
- package/dist/runner-images/kubernetes/helm-charts/the-panter-chart/templates/app.deployment.autoscaler.yml +19 -0
- package/dist/runner-images/kubernetes/helm-charts/the-panter-chart/templates/app.deployment.yml +103 -0
- package/dist/runner-images/kubernetes/helm-charts/the-panter-chart/templates/app.env.configmap.yml +27 -0
- package/dist/runner-images/kubernetes/helm-charts/the-panter-chart/templates/app.env.secrets.yml +10 -0
- package/dist/runner-images/kubernetes/helm-charts/the-panter-chart/templates/app.ingress.redirects.yaml +91 -0
- package/dist/runner-images/kubernetes/helm-charts/the-panter-chart/templates/app.ingress.yaml +48 -0
- package/dist/runner-images/kubernetes/helm-charts/the-panter-chart/templates/app.jobs.yml +70 -0
- package/dist/runner-images/kubernetes/helm-charts/the-panter-chart/templates/app.service.yaml +31 -0
- package/dist/runner-images/kubernetes/helm-charts/the-panter-chart/templates/app.volumes.yml +20 -0
- package/dist/runner-images/kubernetes/helm-charts/the-panter-chart/templates/app.worker.deployment.yml +104 -0
- package/dist/runner-images/kubernetes/helm-charts/the-panter-chart/templates/app.worker.service.yaml +34 -0
- package/dist/runner-images/kubernetes/helm-charts/the-panter-chart/templates/mailhog.ingress.yaml +35 -0
- package/dist/runner-images/kubernetes/helm-charts/the-panter-chart/templates/maintenance.deployment.yml +45 -0
- package/dist/runner-images/kubernetes/helm-charts/the-panter-chart/templates/maintenance.service.yml +24 -0
- package/dist/runner-images/kubernetes/helm-charts/the-panter-chart/templates/mongodb.backup.cronjob.yml +120 -0
- package/dist/runner-images/kubernetes/helm-charts/the-panter-chart/values.yaml +154 -0
- package/dist/runner-images/kubernetes/scripts/kubernetesCreateSecret +11 -0
- package/dist/runner-images/kubernetes/scripts/kubernetesDelete +5 -0
- package/dist/runner-images/kubernetes/scripts/kubernetesDeploy +57 -0
- package/dist/runner-images/kubernetes/scripts/kubernetesRollback +5 -0
- package/dist/runner-images/semantic-release/Dockerfile +24 -0
- package/dist/runner-images/semantic-release/scripts/semanticRelease +67 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +2 -2
- package/src/apps/cli/commands/project/setup/ensureGcloudProjectNumbers.ts +61 -0
- package/src/apps/cli/commands/project/setup/index.ts +3 -0
- package/src/config/getProjectConfig.ts +9 -0
- package/src/gcloud/cloudSql/copyDb.ts +7 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schedules.js","sourceRoot":"","sources":["../../../../../../../../pipeline/src/deploy/cloudRun/createJobs/execute/schedules.ts"],"names":[],"mappings":";;;AAAA,2CAA8C;AAM9C,6CAA2C;AAK3C,2EAA4E;AAC5E,mEAAgE;AAChE,iDAA2D;AAC3D,kDAA2D;AAC3D,sCAImB;AAEZ,MAAM,wBAAwB,GAAG,CAAC,OAAyB,EAAE,EAAE;IACpE,MAAM,YAAY,GAAG,IAAA,gCAAuB,EAAC,OAAO,CAAC,CAAC;IACtD,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IACxC,MAAM,UAAU,GAAG,IAAA,mCAAgB,EAAC;QAClC,OAAO,EAAE,YAAY,CAAC,SAAS;QAC/B,QAAQ,EAAE,YAAY,CAAC,MAAM;KAC9B,CAAC,CAAC;IAEH,OAAO,SAAS;SACb,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;QACpB,OAAO,CAAC,GAAG,IAAA,2BAAkB,GAAE,gBAAgB,QAAQ,IAAI,UAAU,EAAE,CAAC,CAAC;IAC3E,CAAC,CAAC;SACD,IAAI,EAAE,CAAC;AACZ,CAAC,CAAC;AAbW,QAAA,wBAAwB,4BAanC;AAEK,MAAM,uBAAuB,GAAG,CACrC,OAAyB,EACf,EAAE;IACZ,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IACxC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,GAC5C,IAAA,gCAAuB,EAAC,OAAO,CAAC,CAAC;IAEnC,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAU,EAAE;;QAC9D,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"schedules.js","sourceRoot":"","sources":["../../../../../../../../pipeline/src/deploy/cloudRun/createJobs/execute/schedules.ts"],"names":[],"mappings":"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"}
|
|
@@ -477,7 +477,11 @@ export type DeployConfigCloudRunExecuteHttp = {
|
|
|
477
477
|
*/
|
|
478
478
|
method?: "GET" | "POST" | "PUT" | "DELETE" | "PATCH" | "PURGE";
|
|
479
479
|
/**
|
|
480
|
-
* the body to send
|
|
480
|
+
* the body to send.
|
|
481
|
+
*
|
|
482
|
+
* When a body is set and no `Content-Type` header is provided, it defaults to
|
|
483
|
+
* `application/json` (Cloud Scheduler would otherwise fall back to
|
|
484
|
+
* `application/octet-stream`).
|
|
481
485
|
*/
|
|
482
486
|
body?: string;
|
|
483
487
|
/**
|
|
@@ -21,6 +21,10 @@ export declare const getCatladderStorePath: (directory: string) => string;
|
|
|
21
21
|
/**
|
|
22
22
|
* reads and validates the catladder store. Returns an empty store when the
|
|
23
23
|
* file does not exist (project setup has not run yet).
|
|
24
|
+
*
|
|
25
|
+
* An unreadable or invalid store is treated the same as a missing one
|
|
26
|
+
* (with a warning): the store only holds machine-fetched values, so the
|
|
27
|
+
* remedy is always rerunning project setup — not hand-editing the file.
|
|
24
28
|
*/
|
|
25
29
|
export declare const readCatladderStore: (directory?: string) => CatladderStore;
|
|
26
30
|
/**
|
|
@@ -33,6 +33,10 @@ exports.getCatladderStorePath = getCatladderStorePath;
|
|
|
33
33
|
/**
|
|
34
34
|
* reads and validates the catladder store. Returns an empty store when the
|
|
35
35
|
* file does not exist (project setup has not run yet).
|
|
36
|
+
*
|
|
37
|
+
* An unreadable or invalid store is treated the same as a missing one
|
|
38
|
+
* (with a warning): the store only holds machine-fetched values, so the
|
|
39
|
+
* remedy is always rerunning project setup — not hand-editing the file.
|
|
36
40
|
*/
|
|
37
41
|
const readCatladderStore = (directory = process.cwd()) => {
|
|
38
42
|
var _a;
|
|
@@ -40,9 +44,14 @@ const readCatladderStore = (directory = process.cwd()) => {
|
|
|
40
44
|
if (!(0, fs_1.existsSync)(path)) {
|
|
41
45
|
return {};
|
|
42
46
|
}
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
47
|
+
try {
|
|
48
|
+
return exports.catladderStoreSchema.parse((_a = (0, yaml_1.parse)((0, fs_1.readFileSync)(path, {
|
|
49
|
+
encoding: "utf-8"
|
|
50
|
+
}))) !== null && _a !== void 0 ? _a : {});
|
|
51
|
+
} catch (error) {
|
|
52
|
+
console.warn(`⚠️ ignoring invalid ${exports.CATLADDER_STORE_FILE} (rerun "catladder project setup" to regenerate it): ${error instanceof Error ? error.message : error}`);
|
|
53
|
+
return {};
|
|
54
|
+
}
|
|
46
55
|
};
|
|
47
56
|
exports.readCatladderStore = readCatladderStore;
|
|
48
57
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../pipeline/src/store/index.ts"],"names":[],"mappings":";;;AAAA,2BAA8C;AAC9C,+BAA4B;AAC5B,+BAA6B;AAC7B,6BAAwB;AAEX,QAAA,mBAAmB,GAAG,kBAAkB,CAAC;AACzC,QAAA,yBAAyB,GAAG,WAAW,CAAC;AACxC,QAAA,oBAAoB,GAAG,GAAG,2BAAmB,IAAI,iCAAyB,EAAE,CAAC;AAE1F;;;;;;;;GAQG;AACU,QAAA,oBAAoB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC3C;;OAEG;IACH,cAAc,EAAE,OAAC;SACd,MAAM,CACL,OAAC,CAAC,MAAM,EAAE,EACV,OAAC,CAAC,MAAM,CAAC;QACP,aAAa,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC;KACzC,CAAC,CACH;SACA,QAAQ,EAAE;CACd,CAAC,CAAC;AAII,MAAM,qBAAqB,GAAG,CAAC,SAAiB,EAAE,EAAE,CACzD,IAAA,WAAI,EAAC,SAAS,EAAE,2BAAmB,EAAE,iCAAyB,CAAC,CAAC;AADrD,QAAA,qBAAqB,yBACgC;AAElE
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../pipeline/src/store/index.ts"],"names":[],"mappings":";;;AAAA,2BAA8C;AAC9C,+BAA4B;AAC5B,+BAA6B;AAC7B,6BAAwB;AAEX,QAAA,mBAAmB,GAAG,kBAAkB,CAAC;AACzC,QAAA,yBAAyB,GAAG,WAAW,CAAC;AACxC,QAAA,oBAAoB,GAAG,GAAG,2BAAmB,IAAI,iCAAyB,EAAE,CAAC;AAE1F;;;;;;;;GAQG;AACU,QAAA,oBAAoB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC3C;;OAEG;IACH,cAAc,EAAE,OAAC;SACd,MAAM,CACL,OAAC,CAAC,MAAM,EAAE,EACV,OAAC,CAAC,MAAM,CAAC;QACP,aAAa,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC;KACzC,CAAC,CACH;SACA,QAAQ,EAAE;CACd,CAAC,CAAC;AAII,MAAM,qBAAqB,GAAG,CAAC,SAAiB,EAAE,EAAE,CACzD,IAAA,WAAI,EAAC,SAAS,EAAE,2BAAmB,EAAE,iCAAyB,CAAC,CAAC;AADrD,QAAA,qBAAqB,yBACgC;AAElE;;;;;;;GAOG;AACI,MAAM,kBAAkB,GAAG,CAChC,YAAoB,OAAO,CAAC,GAAG,EAAE,EACjB,EAAE;;IAClB,MAAM,IAAI,GAAG,IAAA,6BAAqB,EAAC,SAAS,CAAC,CAAC;IAC9C,IAAI,CAAC,IAAA,eAAU,EAAC,IAAI,CAAC,EAAE,CAAC;QACtB,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,IAAI,CAAC;QACH,OAAO,4BAAoB,CAAC,KAAK,CAC/B,MAAA,IAAA,YAAK,EAAC,IAAA,iBAAY,EAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,mCAAI,EAAE,CACvD,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CACV,uBAAuB,4BAAoB,wDACzC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAC3C,EAAE,CACH,CAAC;QACF,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC,CAAC;AAnBW,QAAA,kBAAkB,sBAmB7B;AAEF;;;;;;;GAOG;AACI,MAAM,sBAAsB,GAAG,CACpC,MAAkC,EAClC,SAAiB,EACT,EAAE;;IACV,MAAM,aAAa,GACjB,MAAA,MAAA,MAAA,MAAM,CAAC,KAAK,0CAAE,cAAc,0CAAG,SAAS,CAAC,0CAAE,aAAa,CAAC;IAC3D,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CACb,8CAA8C,SAAS,QAAQ,4BAAoB,KAAK;YACtF,sDAAsD,CACzD,CAAC;IACJ,CAAC;IACD,OAAO,aAAa,CAAC;AACvB,CAAC,CAAC;AAbW,QAAA,sBAAsB,0BAajC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
|
|
2
|
+
FROM docker:29.5.1
|
|
3
|
+
|
|
4
|
+
# add bash
|
|
5
|
+
RUN apk add --no-cache bash
|
|
6
|
+
|
|
7
|
+
# for glcoud
|
|
8
|
+
ARG GCLOUD_SDK_VERSION=525.0.0
|
|
9
|
+
|
|
10
|
+
RUN apk --update add curl python3 py3-crcmod libc6-compat
|
|
11
|
+
RUN curl -O https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-${GCLOUD_SDK_VERSION}-linux-x86_64.tar.gz && \
|
|
12
|
+
tar zxvf google-cloud-sdk-${GCLOUD_SDK_VERSION}-linux-x86_64.tar.gz && \
|
|
13
|
+
rm google-cloud-sdk-${GCLOUD_SDK_VERSION}-linux-x86_64.tar.gz && \
|
|
14
|
+
./google-cloud-sdk/install.sh
|
|
15
|
+
ENV PATH="/google-cloud-sdk/bin:${PATH}"
|
|
16
|
+
|
|
17
|
+
# end gcloud
|
|
18
|
+
|
|
19
|
+
# for scripts
|
|
20
|
+
|
|
21
|
+
RUN mkdir p /scripts
|
|
22
|
+
COPY ./scripts/* /scripts/
|
|
23
|
+
RUN chmod +x /scripts/*
|
|
24
|
+
|
|
25
|
+
ENV PATH="/scripts:${PATH}"
|
|
26
|
+
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
if [ ! -f $APP_DIR/.dockerignore ]; then
|
|
4
|
+
|
|
5
|
+
cat >$APP_DIR/.dockerignore <<EOF
|
|
6
|
+
$APP_DIR/node_modules
|
|
7
|
+
**/__snapshots__/**
|
|
8
|
+
.git
|
|
9
|
+
|
|
10
|
+
EOF
|
|
11
|
+
fi
|
|
12
|
+
|
|
13
|
+
if [ ! -f $APP_DIR/Dockerfile ]; then
|
|
14
|
+
echo "Creating Dockerfile"
|
|
15
|
+
if [[ ! -z "$METEOR_OVERRIDE_NODE_VERSION" ]]; then
|
|
16
|
+
NODE_VERSION=$METEOR_OVERRIDE_NODE_VERSION
|
|
17
|
+
else
|
|
18
|
+
NODE_VERSION_FULL=$(cat $APP_DIR/dist/bundle/.node_version.txt)
|
|
19
|
+
NODE_VERSION=${NODE_VERSION_FULL/v/} # remove v
|
|
20
|
+
fi
|
|
21
|
+
if [ "$NODE_VERSION" = "14.21.4" ]; then
|
|
22
|
+
DOCKER_IMAGE="meteor/node:$NODE_VERSION" # meteor maintenance for because of fibers
|
|
23
|
+
else
|
|
24
|
+
DOCKER_IMAGE="node:$NODE_VERSION"
|
|
25
|
+
fi
|
|
26
|
+
cat >$APP_DIR/Dockerfile <<EOF
|
|
27
|
+
FROM $DOCKER_IMAGE
|
|
28
|
+
|
|
29
|
+
# install yarn. new meteor image has no yarn installed
|
|
30
|
+
# only install if it does not exist
|
|
31
|
+
RUN command -v yarn || npm install --global yarn
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
$DOCKERFILE_ADDITIONS
|
|
35
|
+
|
|
36
|
+
# we copy also source code and scripts for commands
|
|
37
|
+
# This is technically not required for meteor, but useful if we have additional scripts
|
|
38
|
+
WORKDIR /src
|
|
39
|
+
$METEOR_INSTALL_SCRIPTS
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
# copy the bundle
|
|
43
|
+
COPY $APP_DIR/dist /src/dist
|
|
44
|
+
|
|
45
|
+
# now install meteor deps
|
|
46
|
+
RUN cd /src/dist/bundle/programs/server && npm install
|
|
47
|
+
|
|
48
|
+
$DOCKERFILE_ADDITIONS_END
|
|
49
|
+
|
|
50
|
+
WORKDIR /src/dist/bundle
|
|
51
|
+
|
|
52
|
+
CMD ["node", "main.js"]
|
|
53
|
+
EOF
|
|
54
|
+
|
|
55
|
+
fi
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
# ensure nginx config
|
|
4
|
+
echo "ensureNginxDockerfile in $APP_DIR"
|
|
5
|
+
|
|
6
|
+
if [ ! -f $APP_DIR/nginx.conf ]; then
|
|
7
|
+
echo "Creating nginx.conf"
|
|
8
|
+
|
|
9
|
+
cat >$APP_DIR/nginx.conf <<NGINX
|
|
10
|
+
|
|
11
|
+
server {
|
|
12
|
+
listen 8080;
|
|
13
|
+
server_name localhost;
|
|
14
|
+
error_page 404 =200 /index.html;
|
|
15
|
+
|
|
16
|
+
charset utf-8;
|
|
17
|
+
|
|
18
|
+
add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";
|
|
19
|
+
add_header Referrer-Policy "strict-origin-when-cross-origin";
|
|
20
|
+
add_header X-Content-Type-Options "nosniff";
|
|
21
|
+
add_header X-Frame-Options "SAMEORIGIN";
|
|
22
|
+
|
|
23
|
+
location / {
|
|
24
|
+
root /usr/share/nginx/html;
|
|
25
|
+
index index.html index.htm;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
location /__health {
|
|
29
|
+
access_log off;
|
|
30
|
+
types { } default_type "text/html; charset=utf-8";
|
|
31
|
+
return 200 "ok\n";
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
# https://trac.nginx.org/nginx/ticket/2216
|
|
35
|
+
include mime.types;
|
|
36
|
+
types
|
|
37
|
+
{
|
|
38
|
+
application/javascript mjs;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
NGINX
|
|
43
|
+
|
|
44
|
+
fi
|
|
45
|
+
# ensure docker ignore
|
|
46
|
+
if [ ! -f $APP_DIR/.dockerignore ]; then
|
|
47
|
+
|
|
48
|
+
cat >.dockerignore <<EOF
|
|
49
|
+
**/node_modules
|
|
50
|
+
**/__snapshots__/**
|
|
51
|
+
.git
|
|
52
|
+
|
|
53
|
+
EOF
|
|
54
|
+
|
|
55
|
+
fi
|
|
56
|
+
|
|
57
|
+
if [ ! -f $APP_DIR/Dockerfile ]; then
|
|
58
|
+
echo "Creating Dockerfile"
|
|
59
|
+
|
|
60
|
+
cat >$APP_DIR/Dockerfile <<EOF
|
|
61
|
+
|
|
62
|
+
$DOCKERFILE_ADDITIONS
|
|
63
|
+
|
|
64
|
+
FROM nginx:stable
|
|
65
|
+
WORKDIR /app
|
|
66
|
+
|
|
67
|
+
RUN sed --in-place "s/^\s*user .*//" /etc/nginx/nginx.conf && \
|
|
68
|
+
chown -R nginx:nginx /app && \
|
|
69
|
+
chmod -R 755 /app && \
|
|
70
|
+
chown -R nginx:nginx /var/cache/nginx && \
|
|
71
|
+
chown -R nginx:nginx /var/log/nginx && \
|
|
72
|
+
chown -R nginx:nginx /etc/nginx/conf.d && \
|
|
73
|
+
touch /var/run/nginx.pid && \
|
|
74
|
+
chown -R nginx:nginx /var/run/nginx.pid
|
|
75
|
+
|
|
76
|
+
COPY $APP_DIR/nginx.conf /etc/nginx/conf.d/default.conf
|
|
77
|
+
COPY $APP_DIR/dist/ /usr/share/nginx/html/
|
|
78
|
+
|
|
79
|
+
$DOCKERFILE_ADDITIONS_END
|
|
80
|
+
|
|
81
|
+
USER nginx
|
|
82
|
+
EXPOSE 8080
|
|
83
|
+
|
|
84
|
+
EOF
|
|
85
|
+
fi
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
# the default dockerfile includes node alpine
|
|
4
|
+
|
|
5
|
+
# the dockerignore ignores node_modules as these have to be rebuilt anyway
|
|
6
|
+
# as well as __snapshots__ are used for unitests (if any)
|
|
7
|
+
|
|
8
|
+
if [ ! -f $APP_DIR/.dockerignore ]; then
|
|
9
|
+
|
|
10
|
+
cat >$APP_DIR/.dockerignore <<EOF
|
|
11
|
+
**/node_modules
|
|
12
|
+
**/__snapshots__/**
|
|
13
|
+
.git
|
|
14
|
+
|
|
15
|
+
EOF
|
|
16
|
+
|
|
17
|
+
fi
|
|
18
|
+
|
|
19
|
+
if [ -f $APP_DIR/.nvmrc ]; then
|
|
20
|
+
NODE_VERSION="$(cat $APP_DIR/.nvmrc | sed '/^$/d' | sed 's/[a-z-]//g')"
|
|
21
|
+
elif [ -f .nvmrc ]; then
|
|
22
|
+
NODE_VERSION="$(cat .nvmrc | sed '/^$/d' | sed 's/[a-z-]//g')"
|
|
23
|
+
else
|
|
24
|
+
NODE_VERSION=14
|
|
25
|
+
fi
|
|
26
|
+
|
|
27
|
+
if [ ! -f $APP_DIR/Dockerfile ]; then
|
|
28
|
+
echo "Creating Dockerfile"
|
|
29
|
+
|
|
30
|
+
cat >$APP_DIR/Dockerfile <<EOF
|
|
31
|
+
FROM node:$NODE_VERSION-alpine
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
$DOCKERFILE_ADDITIONS
|
|
36
|
+
|
|
37
|
+
RUN apk add --no-cache git curl
|
|
38
|
+
USER node
|
|
39
|
+
|
|
40
|
+
$DOCKER_COPY_WORKSPACE_FILES
|
|
41
|
+
|
|
42
|
+
WORKDIR /app/$APP_DIR
|
|
43
|
+
|
|
44
|
+
$DOCKER_COPY_AND_INSTALL_APP
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
$DOCKERFILE_ADDITIONS_END
|
|
48
|
+
|
|
49
|
+
EOF
|
|
50
|
+
fi
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
|
|
2
|
+
|
|
3
|
+
FROM node:18
|
|
4
|
+
|
|
5
|
+
RUN rm /bin/sh && \
|
|
6
|
+
ln -s /bin/bash /bin/sh && \
|
|
7
|
+
mkdir -p /root/.nvm
|
|
8
|
+
|
|
9
|
+
# set high timeout for yarn, see https://github.com/dhis2/notes/issues/29
|
|
10
|
+
RUN yarn config set network-timeout 600000 -g
|
|
11
|
+
|
|
12
|
+
# install nvm && some common node versions
|
|
13
|
+
RUN curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash && \
|
|
14
|
+
source /root/.nvm/nvm.sh && \
|
|
15
|
+
chmod +x /root/.nvm/nvm.sh && \
|
|
16
|
+
/root/.nvm/nvm.sh install 12 && \
|
|
17
|
+
/root/.nvm/nvm.sh install 14 && \
|
|
18
|
+
/root/.nvm/nvm.sh install 16 && \
|
|
19
|
+
/root/.nvm/nvm.sh install 18 && \
|
|
20
|
+
/root/.nvm/nvm.sh install 20 && \
|
|
21
|
+
/root/.nvm/nvm.sh install 22 && \
|
|
22
|
+
/root/.nvm/nvm.sh install 24
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# syntax = docker.io/devthefuture/dockerfile-x
|
|
2
|
+
|
|
3
|
+
INCLUDE ./jobs-default/Dockerfile
|
|
4
|
+
|
|
5
|
+
# add sources
|
|
6
|
+
# Google Chrome (for testing purposes)
|
|
7
|
+
RUN wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add - && \
|
|
8
|
+
sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list'
|
|
9
|
+
|
|
10
|
+
# install some sources
|
|
11
|
+
# not sure if libxss1 is required
|
|
12
|
+
RUN apt-get update && apt-get install -y \
|
|
13
|
+
libxss1 \
|
|
14
|
+
google-chrome-stable
|
|
15
|
+
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
|
|
2
|
+
FROM alpine:3.15
|
|
3
|
+
|
|
4
|
+
# add bash curl and git
|
|
5
|
+
RUN apk add --no-cache bash curl git
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
# kubernetes & helm
|
|
9
|
+
ENV KUBERNETES_VERSION 1.19.14
|
|
10
|
+
RUN curl -L -o /usr/bin/kubectl "https://storage.googleapis.com/kubernetes-release/release/v${KUBERNETES_VERSION}/bin/linux/amd64/kubectl" ;\
|
|
11
|
+
chmod +x /usr/bin/kubectl ;\
|
|
12
|
+
kubectl version --client
|
|
13
|
+
|
|
14
|
+
# helm 3
|
|
15
|
+
ENV HELM_VERSION 3.10.0
|
|
16
|
+
RUN curl "https://get.helm.sh/helm-v${HELM_VERSION}-linux-amd64.tar.gz" | tar zx ;\
|
|
17
|
+
mv linux-amd64/helm /usr/bin/helm ;\
|
|
18
|
+
helm version --client
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
COPY ./scripts/* /scripts/
|
|
22
|
+
RUN chmod +x /scripts/*
|
|
23
|
+
|
|
24
|
+
ENV PATH="/scripts:${PATH}"
|
|
25
|
+
|
|
26
|
+
COPY ./helm-charts /helm-charts
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
dependencies:
|
|
2
|
+
- name: mongodb
|
|
3
|
+
repository: https://charts.bitnami.com/bitnami
|
|
4
|
+
version: 12.1.27
|
|
5
|
+
- name: mailhog
|
|
6
|
+
repository: https://codecentric.github.io/helm-charts
|
|
7
|
+
version: 5.0.1
|
|
8
|
+
digest: sha256:8963e4182d88c519cf73b6c1e18f9993827b7bf7b54432f56b7b8c5d758bcf8e
|
|
9
|
+
generated: "2022-07-25T19:15:40.334548+02:00"
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
apiVersion: v2
|
|
2
|
+
description: a chart to rule them all
|
|
3
|
+
name: the-panter-chart
|
|
4
|
+
version: 1.0.0 # should not matter
|
|
5
|
+
|
|
6
|
+
dependencies:
|
|
7
|
+
- name: mongodb
|
|
8
|
+
version: 12.1.27
|
|
9
|
+
condition: mongodb.enabled
|
|
10
|
+
repository: https://charts.bitnami.com/bitnami
|
|
11
|
+
- name: mailhog
|
|
12
|
+
version: 5.0.1
|
|
13
|
+
condition: mailhog.enabled
|
|
14
|
+
repository: https://codecentric.github.io/helm-charts
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# The panter chart
|
|
2
|
+
|
|
3
|
+
**Main chart used in https://git.panter.ch/catladder/gitlab-ci/ **
|
|
4
|
+
|
|
5
|
+
Developing helm charts can be complex and they tend to be very verbose.
|
|
6
|
+
Our goal is therefore to provide a common chart that provides all functionalities that you might need
|
|
7
|
+
and make it configurable by values.yml files in your project.
|
|
8
|
+
|
|
9
|
+
This way we avoid having complexity in the projects and make it easier to share innovations and improvements.
|
|
10
|
+
|
|
11
|
+
## Features
|
|
12
|
+
|
|
13
|
+
- scalable stateless webapplications, supports any technology
|
|
14
|
+
- ready-to-use but configurable ingress with optional redirects
|
|
15
|
+
- 1 optional worker pod (uses same image as webapp) for continuous background jobs
|
|
16
|
+
- configurable cronjobs
|
|
17
|
+
- configurable helm-hooks (post-install, post-uninstall, etc.)
|
|
18
|
+
- optional in-namespace mongodb. _kindof deprecated, We recommend to use google cloud dbs if possible._
|
|
19
|
+
- optional cloud-sql proxy that is available in webapp, worker, cronjobs and helm-hooks
|
|
20
|
+
- a lot of useful predefined env-vars in all pods.
|
|
21
|
+
- support for namespace secrets and custom env-vars (using catladder-shell and gitlab-ci)
|
|
22
|
+
- optional prisam1 (_deprecated, prisma2 does not need a separate instance anymore_)
|
|
23
|
+
|
|
24
|
+
See https://git.panter.ch/catladder/catladder/ for usage information
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
{{/* vim: set filetype=mustache: */}}
|
|
2
|
+
{{/*
|
|
3
|
+
Expand the name of the chart.
|
|
4
|
+
*/}}
|
|
5
|
+
{{- define "name" -}}
|
|
6
|
+
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
|
|
7
|
+
{{- end -}}
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
{{- define "appImage" -}}
|
|
11
|
+
{{ .Values.image.repository }}/{{ .Values.image.name }}:{{ .Values.image.tag }}
|
|
12
|
+
{{- end -}}
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
{{/*
|
|
16
|
+
Create a default fully qualified app name.
|
|
17
|
+
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
|
|
18
|
+
*/}}
|
|
19
|
+
{{- define "fullname" -}}
|
|
20
|
+
{{- default .Release.Name .Values.global.appName | trunc 63 | trimSuffix "-" -}}
|
|
21
|
+
{{- end -}}
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
{{/*
|
|
26
|
+
create a prefix for variable names, this is useful in service discovery in review apps
|
|
27
|
+
*/}}
|
|
28
|
+
{{- define "serviceVarPrefix" -}}
|
|
29
|
+
{{ include "fullname" . | snakecase | upper }}
|
|
30
|
+
{{- end -}}
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
{{/*
|
|
34
|
+
Create chart name and version as used by the chart label.
|
|
35
|
+
*/}}
|
|
36
|
+
{{- define "chart" -}}
|
|
37
|
+
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
|
|
38
|
+
{{- end -}}
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
{{/*
|
|
42
|
+
get the right host
|
|
43
|
+
*/}}
|
|
44
|
+
{{- define "host" -}}
|
|
45
|
+
{{- default .Values.application.hostCanonical .Values.application.host -}}
|
|
46
|
+
{{- end -}}
|
|
47
|
+
|
|
48
|
+
{{- define "MAILHOG_SMTP_URL" -}}
|
|
49
|
+
{{- $namespace := .Release.Namespace -}}
|
|
50
|
+
{{- printf "smtp://%s.%s.svc.cluster.local:1025" .Values.mailhog.fullnameOverride $namespace -}}
|
|
51
|
+
{{- end -}}
|
|
52
|
+
|
|
53
|
+
{{- define "DB_NAME" -}}
|
|
54
|
+
{{ .Values.cloudsql.fullDbName }}
|
|
55
|
+
{{- end -}}
|
|
56
|
+
|
|
57
|
+
{{- define "POSTGRESQL_URL" -}}
|
|
58
|
+
postgresql://{{ .Values.cloudsql.dbUser }}:$(POSTGRESQL_PASSWORD)@localhost/{{ .Values.cloudsql.fullDbName }}?schema=public
|
|
59
|
+
{{- end -}}
|
|
60
|
+
|
|
61
|
+
{{- define "POSTGRESQL_HOST" -}}
|
|
62
|
+
localhost
|
|
63
|
+
{{- end -}}
|
|
64
|
+
|
|
65
|
+
{{- define "DB_USERNAME" -}}
|
|
66
|
+
{{ .Values.cloudsql.dbUser }}
|
|
67
|
+
{{- end -}}
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
{{- define "DB_PASSWORD" -}}
|
|
71
|
+
$(POSTGRESQL_PASSWORD)
|
|
72
|
+
{{- end -}}
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
{{- define "cloudSqlContainer" -}}
|
|
76
|
+
name: cloudsql-proxy
|
|
77
|
+
image: eu.gcr.io/cloud-sql-connectors/cloud-sql-proxy:2.18.0-alpine
|
|
78
|
+
# see https://github.com/kubernetes/kubernetes/issues/25908#issuecomment-308569672
|
|
79
|
+
# and https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/753-sidecar-containers
|
|
80
|
+
command: ["/bin/sh", "-c"]
|
|
81
|
+
args:
|
|
82
|
+
- |
|
|
83
|
+
/cloud-sql-proxy --auto-ip --credentials-file /secrets/cloudsql/credentials.json "{{ .Values.cloudsql.instanceConnectionName }}" &
|
|
84
|
+
CHILD_PID=$!
|
|
85
|
+
(while true; do if [[ -f "/tmp/pod/main-terminated" ]]; then kill $CHILD_PID; fi; sleep 1; done) &
|
|
86
|
+
wait $CHILD_PID
|
|
87
|
+
if [[ -f "/tmp/pod/main-terminated" ]]; then exit 0; fi
|
|
88
|
+
securityContext:
|
|
89
|
+
runAsUser: 2 # non-root user
|
|
90
|
+
allowPrivilegeEscalation: false
|
|
91
|
+
resources: # each container needs requests, or the auto load balancer does not work
|
|
92
|
+
requests:
|
|
93
|
+
cpu: 50m
|
|
94
|
+
memory: 150Mi
|
|
95
|
+
volumeMounts:
|
|
96
|
+
- name: cloudsql-proxy-credentials
|
|
97
|
+
mountPath: /secrets/cloudsql
|
|
98
|
+
readOnly: true
|
|
99
|
+
|
|
100
|
+
- mountPath: /tmp/pod
|
|
101
|
+
name: tmp-pod
|
|
102
|
+
readOnly: true
|
|
103
|
+
{{- end -}}
|
|
104
|
+
|
|
105
|
+
{{- define "cloudSqlCredentialsVolume" -}}
|
|
106
|
+
name: cloudsql-proxy-credentials
|
|
107
|
+
secret:
|
|
108
|
+
secretName: {{ template "fullname" $ }}-cloudsql-proxy-credentials
|
|
109
|
+
{{- end -}}
|
|
110
|
+
{{/*
|
|
111
|
+
Generate prisma-URL
|
|
112
|
+
*/}}
|
|
113
|
+
{{- define "PRISMA_ENDPOINT" -}}
|
|
114
|
+
{{- $appName := default .Release.Name .Values.global.appName -}}
|
|
115
|
+
{{- $namespace := .Release.Namespace -}}
|
|
116
|
+
{{- printf "http://%s-prisma.%s:4466/default/default" $appName $namespace -}}
|
|
117
|
+
{{- end -}}
|
|
118
|
+
|
|
119
|
+
|
|
120
|
+
|
|
121
|
+
|
|
122
|
+
{{/*
|
|
123
|
+
convert value to json-string if its an object
|
|
124
|
+
*/}}
|
|
125
|
+
{{- define "envValue" -}}
|
|
126
|
+
{{- if (kindIs "map" .) -}}
|
|
127
|
+
{{ toJson . | quote}}
|
|
128
|
+
{{- else -}}
|
|
129
|
+
{{ quote . }}
|
|
130
|
+
{{- end -}}
|
|
131
|
+
{{- end -}}
|
|
132
|
+
|
|
133
|
+
|
|
134
|
+
{{- define "env" -}}
|
|
135
|
+
{{ $context := . }}
|
|
136
|
+
|
|
137
|
+
|
|
138
|
+
|
|
139
|
+
envFrom:
|
|
140
|
+
- configMapRef:
|
|
141
|
+
name: {{ template "fullname" $ }}-app-env
|
|
142
|
+
env:
|
|
143
|
+
{{- range $key, $val := .Values.env.secret }}
|
|
144
|
+
- name: {{ $key }}
|
|
145
|
+
valueFrom:
|
|
146
|
+
secretKeyRef:
|
|
147
|
+
name: {{ template "fullname" $ }}-app-secrets
|
|
148
|
+
key: {{ $key }}
|
|
149
|
+
{{- end }}
|
|
150
|
+
|
|
151
|
+
{{- range $key, $val := .Values.secretsFromOtherComponent }}
|
|
152
|
+
|
|
153
|
+
- name: {{ $key }}
|
|
154
|
+
valueFrom:
|
|
155
|
+
secretKeyRef:
|
|
156
|
+
name: {{ $.Values.global.appPrefix}}{{ $val }}-app-secrets
|
|
157
|
+
key: {{ $key }}
|
|
158
|
+
optional: true
|
|
159
|
+
{{- end }}
|
|
160
|
+
|
|
161
|
+
{{- range $key, $val := .Values.mapServiceUrlToEnv }}
|
|
162
|
+
{{- $otherServiceFullName := (printf "%s%s" $.Values.global.appPrefix $val) }}
|
|
163
|
+
{{- $variablePrefix := $otherServiceFullName | snakecase | upper }}
|
|
164
|
+
- name: {{ $key }}
|
|
165
|
+
value: "http://$({{ $variablePrefix }}_SERVICE_HOST):$({{ $variablePrefix }}_SERVICE_PORT)"
|
|
166
|
+
{{- end }}
|
|
167
|
+
|
|
168
|
+
# can't have these in app.env.configmap as some values contain $(OTHER_ENV_VAR)
|
|
169
|
+
{{ if .Values.cloudsql.enabled }}
|
|
170
|
+
- name: POSTGRESQL_URL
|
|
171
|
+
value: "{{- template "POSTGRESQL_URL" . -}}"
|
|
172
|
+
- name: DATABASE_URL
|
|
173
|
+
value: "{{- template "POSTGRESQL_URL" . -}}"
|
|
174
|
+
|
|
175
|
+
- name: POSTGRESQL_HOST
|
|
176
|
+
value: "{{- template "POSTGRESQL_HOST" . -}}"
|
|
177
|
+
- name: DB_HOST # alias
|
|
178
|
+
value: "{{- template "POSTGRESQL_HOST" . -}}"
|
|
179
|
+
- name: DB_NAME
|
|
180
|
+
value: "{{- template "DB_NAME" . -}}"
|
|
181
|
+
- name: DB_USERNAME #alias
|
|
182
|
+
value: "{{- template "DB_USERNAME" . -}}"
|
|
183
|
+
- name: DB_PASSWORD #alias
|
|
184
|
+
value: "{{- template "DB_PASSWORD" . -}}"
|
|
185
|
+
- name: POSTGRESQL_DBNAME # alias
|
|
186
|
+
value: "{{- template "DB_NAME" . -}}"
|
|
187
|
+
{{- end -}}
|
|
188
|
+
|
|
189
|
+
{{- end -}}
|
|
190
|
+
|
|
191
|
+
|
|
192
|
+
|
|
193
|
+
{{- define "visualReviewSnippet" -}}
|
|
194
|
+
<script
|
|
195
|
+
data-project-id='{{.Values.gitlab.projectId}}'
|
|
196
|
+
data-merge-request-id='{{.Values.gitlab.mergeRequestId}}'
|
|
197
|
+
data-mr-url='https://git.panter.ch'
|
|
198
|
+
data-project-path='{{.Values.gitlab.projectPath}}'
|
|
199
|
+
id='review-app-toolbar-script'
|
|
200
|
+
src='https://git.panter.ch/assets/webpack/visual_review_toolbar.js'>
|
|
201
|
+
</script>
|
|
202
|
+
{{- end -}}
|