@catladder/pipeline 1.170.1 → 2.0.1
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/bash/BashExpression.d.ts +1 -6
- package/dist/bash/BashExpression.js +2 -15
- package/dist/bash/bashEscape.d.ts +34 -0
- package/dist/bash/bashEscape.js +114 -0
- package/dist/bash/bashYaml.js +25 -2
- package/dist/bash/getInjectVarsScript.js +4 -2
- package/dist/bash/index.d.ts +2 -0
- package/dist/bash/index.js +26 -0
- package/dist/build/base/createAppBuildJob.js +3 -3
- package/dist/build/base/writeDotEnv.js +6 -4
- package/dist/build/custom/testJob.js +12 -12
- package/dist/build/docker.d.ts +3 -3
- package/dist/build/node/buildJob.js +1 -1
- package/dist/build/node/cache.d.ts +2 -4
- package/dist/build/node/cache.js +3 -24
- package/dist/build/node/testJob.js +11 -11
- package/dist/build/rails/build.js +1 -1
- package/dist/build/rails/test.js +8 -8
- package/dist/build/types.d.ts +0 -10
- package/dist/constants.js +1 -1
- package/dist/context/createComponentContext.js +0 -1
- package/dist/context/getEnvConfig.js +2 -1
- package/dist/context/getEnvironment.js +1 -2
- package/dist/context/getEnvironmentVariables.d.ts +5 -6
- package/dist/context/getEnvironmentVariables.js +50 -38
- package/dist/deploy/base/deploy.js +3 -3
- package/dist/deploy/cloudRun/createJobs/getCloudRunDeployScripts.js +2 -2
- package/dist/deploy/cloudRun/index.js +2 -2
- package/dist/deploy/cloudRun/utils/getServiceName.d.ts +1 -1
- package/dist/deploy/kubernetes/cloudSql/index.d.ts +2 -2
- package/dist/deploy/kubernetes/cloudSql/index.js +3 -14
- package/dist/deploy/kubernetes/deployJob.js +1 -3
- package/dist/deploy/kubernetes/index.js +2 -2
- package/dist/deploy/kubernetes/kubeEnv.d.ts +3 -3
- package/dist/deploy/kubernetes/kubeValues.d.ts +3 -4
- package/dist/deploy/kubernetes/kubeValues.js +2 -3
- package/dist/deploy/types/base.d.ts +0 -6
- package/dist/deploy/types/kubernetes.d.ts +1 -34
- package/dist/globalScriptFunctions/index.d.ts +14 -0
- package/dist/globalScriptFunctions/index.js +37 -0
- package/dist/index.d.ts +3 -1
- package/dist/index.js +3 -1
- package/dist/pipeline/gitlab/createGitlabJobs.js +3 -5
- package/dist/pipeline/gitlab/createGitlabPipeline.d.ts +1 -0
- package/dist/pipeline/gitlab/createGitlabPipeline.js +38 -2
- package/dist/pipeline/packageManager.js +1 -1
- package/dist/runner/index.d.ts +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types/config.d.ts +6 -9
- package/dist/types/context.d.ts +2 -9
- package/dist/types/gitlab-types.d.ts +1 -0
- package/dist/types/jobs.d.ts +0 -8
- package/dist/utils/gitlab.js +4 -1
- package/dist/utils/writeFiles.js +1 -7
- package/dist/variables/VariableValue.d.ts +3 -0
- package/dist/variables/VariableValue.js +5 -0
- package/dist/variables/VariableValueContainingReferences.d.ts +24 -0
- package/dist/variables/VariableValueContainingReferences.js +97 -0
- package/dist/variables/__tests__/resolveAllReferences.test.js +219 -0
- package/dist/variables/__tests__/resolveAllReferencesOnce.test.d.ts +1 -0
- package/dist/variables/__tests__/resolveAllReferencesOnce.test.js +171 -0
- package/dist/variables/__tests__/resolveReferencesOnce.test.d.ts +1 -0
- package/dist/variables/__tests__/resolveReferencesOnce.test.js +202 -0
- package/dist/variables/__tests__/variableValue.test.d.ts +1 -0
- package/dist/variables/__tests__/variableValue.test.js +36 -0
- package/dist/variables/resolveAllReferences.d.ts +3 -0
- package/dist/{bash/replaceAsync.js → variables/resolveAllReferences.js} +60 -40
- package/dist/variables/resolveAllReferencesOnce.d.ts +5 -0
- package/dist/variables/resolveAllReferencesOnce.js +191 -0
- package/dist/variables/resolveReferencesOnce.d.ts +8 -0
- package/dist/variables/resolveReferencesOnce.js +22 -0
- package/examples/__snapshots__/cloud-run-http2.test.ts.snap +312 -238
- package/examples/__snapshots__/cloud-run-memory-limit.test.ts.snap +312 -238
- package/examples/__snapshots__/cloud-run-meteor-with-worker.test.ts.snap +312 -222
- package/examples/__snapshots__/cloud-run-nextjs.test.ts.snap +1436 -0
- package/examples/__snapshots__/cloud-run-no-cpu-throttling.test.ts.snap +312 -238
- package/examples/__snapshots__/cloud-run-no-service.test.ts.snap +316 -238
- package/examples/__snapshots__/cloud-run-non-public.test.ts.snap +312 -238
- package/examples/__snapshots__/cloud-run-post-stop-job.test.ts.snap +313 -238
- package/examples/__snapshots__/cloud-run-service-custom-vpc-connector.test.ts.snap +312 -238
- package/examples/__snapshots__/cloud-run-service-custom-vpc.test.ts.snap +312 -238
- package/examples/__snapshots__/cloud-run-service-gen2.test.ts.snap +312 -238
- package/examples/__snapshots__/cloud-run-service-increase-timout.test.ts.snap +312 -238
- package/examples/__snapshots__/cloud-run-service-with-volumes.test.ts.snap +316 -238
- package/examples/__snapshots__/cloud-run-storybook.test.ts.snap +294 -220
- package/examples/__snapshots__/cloud-run-with-ngnix.test.ts.snap +312 -238
- package/examples/__snapshots__/cloud-run-with-sql-reuse-db.test.ts.snap +652 -486
- package/examples/__snapshots__/cloud-run-with-sql.test.ts.snap +282 -288
- package/examples/__snapshots__/cloud-run-with-worker.test.ts.snap +312 -238
- package/examples/__snapshots__/custom-build-job-with-tests.test.ts.snap +284 -194
- package/examples/__snapshots__/custom-build-job.test.ts.snap +278 -188
- package/examples/__snapshots__/custom-deploy.test.ts.snap +220 -154
- package/examples/__snapshots__/custom-envs.test.ts.snap +216 -126
- package/examples/__snapshots__/custom-sbom-java.test.ts.snap +278 -188
- package/examples/__snapshots__/git-submodule.test.ts.snap +312 -238
- package/examples/__snapshots__/kubernetes-application-customization.test.ts.snap +231 -253
- package/examples/__snapshots__/kubernetes-with-cloud-sql.test.ts.snap +240 -262
- package/examples/__snapshots__/kubernetes-with-jobs.test.ts.snap +504 -506
- package/examples/__snapshots__/kubernetes-with-mongodb.test.ts.snap +239 -261
- package/examples/__snapshots__/local-dot-env.test.ts.snap +236 -238
- package/examples/__snapshots__/meteor-kubernetes.test.ts.snap +236 -242
- package/examples/__snapshots__/multiline-var.test.ts.snap +1355 -973
- package/examples/__snapshots__/native-app.test.ts.snap +438 -392
- package/examples/__snapshots__/node-build-with-custom-image.test.ts.snap +312 -238
- package/examples/__snapshots__/node-build-with-docker-additions.test.ts.snap +312 -238
- package/examples/__snapshots__/rails-k8s-with-worker-dockerfile.test.ts.snap +186 -188
- package/examples/__snapshots__/rails-k8s-with-worker.test.ts.snap +162 -164
- package/examples/__snapshots__/referencing-other-vars.test.ts.snap +971 -765
- package/examples/__snapshots__/wait-for-other-deploy.test.ts.snap +330 -228
- package/examples/__snapshots__/{workspace-api-www-custom-cache.test.ts.snap → workspace-api-www-turbo-cache.test.ts.snap} +457 -499
- package/examples/__snapshots__/workspace-api-www.test.ts.snap +452 -482
- package/examples/{workspace-api-www-custom-cache.test.ts → cloud-run-nextjs.test.ts} +2 -2
- package/examples/cloud-run-nextjs.ts +28 -0
- package/examples/cloud-run-with-sql.ts +0 -1
- package/examples/kubernetes-application-customization.ts +1 -0
- package/examples/kubernetes-with-cloud-sql.ts +1 -0
- package/examples/kubernetes-with-jobs.ts +1 -0
- package/examples/kubernetes-with-mongodb.ts +1 -0
- package/examples/meteor-kubernetes.ts +1 -1
- package/examples/native-app.ts +10 -7
- package/examples/rails-k8s-with-worker.ts +7 -1
- package/examples/{kubernetes-with-cloud-sql-legacy.test.ts → workspace-api-www-turbo-cache.test.ts} +2 -2
- package/examples/{workspace-api-www-custom-cache.ts → workspace-api-www-turbo-cache.ts} +4 -3
- package/examples/workspace-api-www.ts +3 -2
- package/package.json +2 -6
- package/scripts/generate-examples-test.ts +0 -7
- package/src/bash/BashExpression.ts +0 -13
- package/src/bash/bashEscape.ts +158 -0
- package/src/bash/bashYaml.ts +36 -2
- package/src/bash/getInjectVarsScript.ts +11 -2
- package/src/bash/index.ts +2 -0
- package/src/build/base/createAppBuildJob.ts +0 -1
- package/src/build/base/writeDotEnv.ts +6 -6
- package/src/build/custom/testJob.ts +0 -1
- package/src/build/node/buildJob.ts +2 -2
- package/src/build/node/cache.ts +0 -29
- package/src/build/node/testJob.ts +0 -1
- package/src/build/rails/build.ts +0 -1
- package/src/build/rails/test.ts +0 -1
- package/src/build/types.ts +0 -13
- package/src/context/createComponentContext.ts +0 -1
- package/src/context/getEnvConfig.ts +2 -2
- package/src/context/getEnvironment.ts +1 -1
- package/src/context/getEnvironmentContext.ts +1 -1
- package/src/context/getEnvironmentVariables.ts +44 -51
- package/src/deploy/base/deploy.ts +1 -1
- package/src/deploy/cloudRun/createJobs/getCloudRunDeployScripts.ts +4 -12
- package/src/deploy/cloudRun/index.ts +2 -2
- package/src/deploy/kubernetes/cloudSql/index.ts +3 -16
- package/src/deploy/kubernetes/deployJob.ts +0 -2
- package/src/deploy/kubernetes/index.ts +2 -2
- package/src/deploy/kubernetes/kubeEnv.ts +3 -3
- package/src/deploy/kubernetes/kubeValues.ts +5 -8
- package/src/deploy/types/base.ts +0 -6
- package/src/deploy/types/kubernetes.ts +1 -36
- package/src/globalScriptFunctions/index.ts +30 -0
- package/src/index.ts +2 -0
- package/src/pipeline/gitlab/createGitlabJobs.ts +1 -4
- package/src/pipeline/gitlab/createGitlabPipeline.ts +8 -1
- package/src/pipeline/packageManager.ts +7 -5
- package/src/runner/index.ts +0 -1
- package/src/types/config.ts +6 -9
- package/src/types/context.ts +3 -9
- package/src/types/gitlab-types.ts +1 -0
- package/src/types/jobs.ts +0 -8
- package/src/utils/gitlab.ts +19 -2
- package/src/utils/writeFiles.ts +1 -2
- package/src/variables/VariableValue.ts +6 -0
- package/src/variables/VariableValueContainingReferences.ts +89 -0
- package/src/variables/__tests__/resolveAllReferences.test.ts +110 -0
- package/src/variables/__tests__/resolveAllReferencesOnce.test.ts +64 -0
- package/src/variables/__tests__/resolveReferencesOnce.test.ts +117 -0
- package/src/variables/__tests__/variableValue.test.ts +73 -0
- package/src/variables/resolveAllReferences.ts +46 -0
- package/src/variables/resolveAllReferencesOnce.ts +44 -0
- package/src/variables/resolveReferencesOnce.ts +29 -0
- package/bin/catladder-gitlab-dev.js +0 -3
- package/bin/catladder-gitlab.js +0 -3
- package/dist/bash/replaceAsync.d.ts +0 -2
- package/dist/bundles/catladder-gitlab/index.js +0 -15
- package/dist/context/__tests__/resolveReferences.test.js +0 -368
- package/dist/context/resolveReferences.d.ts +0 -6
- package/dist/context/resolveReferences.js +0 -286
- package/dist/deploy/kubernetes/processSecretsAsFiles.d.ts +0 -85
- package/dist/deploy/kubernetes/processSecretsAsFiles.js +0 -33
- package/examples/__snapshots__/kubernetes-with-cloud-sql-legacy.test.ts.snap +0 -1795
- package/examples/kubernetes-with-cloud-sql-legacy.ts +0 -35
- package/scripts/bundle +0 -2
- package/src/bash/replaceAsync.ts +0 -49
- package/src/context/__tests__/resolveReferences.test.ts +0 -148
- package/src/context/resolveReferences.ts +0 -93
- package/src/deploy/kubernetes/processSecretsAsFiles.ts +0 -35
- /package/dist/{context/__tests__/resolveReferences.test.d.ts → variables/__tests__/resolveAllReferences.test.d.ts} +0 -0
|
@@ -45,13 +45,43 @@ variables:
|
|
|
45
45
|
CACHE_COMPRESSION_LEVEL: fast
|
|
46
46
|
TRANSFER_METER_FREQUENCY: 5s
|
|
47
47
|
GIT_DEPTH: '1'
|
|
48
|
+
before_script:
|
|
49
|
+
- |-
|
|
50
|
+
function escapeForDotEnv () {
|
|
51
|
+
input="\${1:-$(cat)}"
|
|
52
|
+
input="\${input//$'\\n'/\\\\n}"
|
|
53
|
+
if [[ "$input" == *\\\\n* ]]; then
|
|
54
|
+
if [[ "$input" == *\\"* && "$input" == *\\'* && "$input" == *\\\`* ]]; then
|
|
55
|
+
printf "\\"%s\\"\\n" "$input"
|
|
56
|
+
elif [[ "$input" == *\\"* && "$input" == *\\'* ]]; then
|
|
57
|
+
printf "\`%s\`\\n" "$input"
|
|
58
|
+
elif [[ "$input" == *\\"* ]]; then
|
|
59
|
+
printf "'%s'\\n" "$input"
|
|
60
|
+
else
|
|
61
|
+
printf "\\"%s\\"\\n" "$input"
|
|
62
|
+
fi
|
|
63
|
+
else
|
|
64
|
+
printf "%s\\n" "$input"
|
|
65
|
+
fi
|
|
66
|
+
}
|
|
67
|
+
- |-
|
|
68
|
+
function collapseable_section_start () {
|
|
69
|
+
local section_title="\${1}"
|
|
70
|
+
local section_description="\${2:-$section_title}"
|
|
71
|
+
echo -e "section_start:\`date +%s\`:\${section_title}[collapsed=true]\\r\\e[0K\${section_description}"
|
|
72
|
+
}
|
|
73
|
+
- |-
|
|
74
|
+
function collapseable_section_end () {
|
|
75
|
+
local section_title="\${1}"
|
|
76
|
+
echo -e "section_end:\`date +%s\`:\${section_title}\\r\\e[0K"
|
|
77
|
+
}
|
|
48
78
|
app 🛡 audit:
|
|
49
79
|
stage: test
|
|
50
80
|
image: ruby:3.2.1
|
|
51
81
|
variables: {}
|
|
52
82
|
script:
|
|
53
|
-
-
|
|
54
|
-
-
|
|
83
|
+
- collapseable_section_start "injectvars" "Injecting variables"
|
|
84
|
+
- collapseable_section_end "injectvars"
|
|
55
85
|
- cd .
|
|
56
86
|
- gem install bundler-audit
|
|
57
87
|
- bundle audit check
|
|
@@ -73,8 +103,8 @@ app 👮 lint:
|
|
|
73
103
|
image: ruby:3.2.1
|
|
74
104
|
variables: {}
|
|
75
105
|
script:
|
|
76
|
-
-
|
|
77
|
-
-
|
|
106
|
+
- collapseable_section_start "injectvars" "Injecting variables"
|
|
107
|
+
- collapseable_section_end "injectvars"
|
|
78
108
|
- cd .
|
|
79
109
|
- bundle config set path 'tmp/cache'
|
|
80
110
|
- bundle install -j $(nproc)
|
|
@@ -99,8 +129,8 @@ app 🧪 test:
|
|
|
99
129
|
image: ruby:3.2.1
|
|
100
130
|
variables: {}
|
|
101
131
|
script:
|
|
102
|
-
-
|
|
103
|
-
-
|
|
132
|
+
- collapseable_section_start "injectvars" "Injecting variables"
|
|
133
|
+
- collapseable_section_end "injectvars"
|
|
104
134
|
- cd .
|
|
105
135
|
- bundle config set path 'tmp/cache'
|
|
106
136
|
- bundle install -j $(nproc)
|
|
@@ -131,7 +161,7 @@ app 🧪 test:
|
|
|
131
161
|
KUBERNETES_MEMORY_REQUEST: 1Gi
|
|
132
162
|
KUBERNETES_MEMORY_LIMIT: 2Gi
|
|
133
163
|
script:
|
|
134
|
-
-
|
|
164
|
+
- collapseable_section_start "injectvars" "Injecting variables"
|
|
135
165
|
- export APP_DIR="."
|
|
136
166
|
- export DOCKER_BUILD_CONTEXT="."
|
|
137
167
|
- export DOCKER_REGISTRY="$CI_REGISTRY"
|
|
@@ -139,7 +169,7 @@ app 🧪 test:
|
|
|
139
169
|
- export DOCKER_IMAGE_NAME="dev/app"
|
|
140
170
|
- export DOCKER_IMAGE="$CI_REGISTRY_IMAGE/$DOCKER_IMAGE_NAME"
|
|
141
171
|
- export DOCKER_IMAGE_TAG="$CI_COMMIT_SHA"
|
|
142
|
-
-
|
|
172
|
+
- collapseable_section_end "injectvars"
|
|
143
173
|
- docker login --username gitlab-ci-token --password $CI_JOB_TOKEN $CI_REGISTRY
|
|
144
174
|
- cd .
|
|
145
175
|
- docker pull $DOCKER_CACHE_IMAGE || true
|
|
@@ -159,8 +189,8 @@ app 🧪 test:
|
|
|
159
189
|
image: aquasec/trivy:0.38.3
|
|
160
190
|
variables: {}
|
|
161
191
|
script:
|
|
162
|
-
-
|
|
163
|
-
-
|
|
192
|
+
- collapseable_section_start "injectvars" "Injecting variables"
|
|
193
|
+
- collapseable_section_end "injectvars"
|
|
164
194
|
- trivy fs --quiet --format cyclonedx --output "__sbom.json" .
|
|
165
195
|
artifacts:
|
|
166
196
|
paths:
|
|
@@ -181,7 +211,7 @@ app 🧪 test:
|
|
|
181
211
|
KUBERNETES_MEMORY_REQUEST: 200Mi
|
|
182
212
|
KUBERNETES_MEMORY_LIMIT: 400Mi
|
|
183
213
|
script:
|
|
184
|
-
-
|
|
214
|
+
- collapseable_section_start "injectvars" "Injecting variables"
|
|
185
215
|
- export ENV_SHORT="dev"
|
|
186
216
|
- export APP_DIR="."
|
|
187
217
|
- export ENV_TYPE="dev"
|
|
@@ -189,8 +219,7 @@ app 🧪 test:
|
|
|
189
219
|
- export BUILD_INFO_BUILD_TIME="$CI_JOB_STARTED_AT"
|
|
190
220
|
- export BUILD_INFO_CURRENT_VERSION="$(tag=$(git ls-remote origin "refs/tags/v*[0-9]" 2>/dev/null | cut -f 2- | sort -V | tail -1 | sed 's/refs\\/tags\\/v//'); [ -z "$tag" ] && echo "0.0.0" || echo "$tag")"
|
|
191
221
|
- export ROOT_URL="https://app.dev.test-app.pan.panter.cloud"
|
|
192
|
-
- export
|
|
193
|
-
- export HOST_CANONICAL="app.dev.test-app.pan.panter.cloud"
|
|
222
|
+
- export HOSTNAME_INTERNAL="app.dev.test-app.pan.panter.cloud"
|
|
194
223
|
- export ROOT_URL_INTERNAL="https://app.dev.test-app.pan.panter.cloud"
|
|
195
224
|
- export KUBE_NAMESPACE="pan-test-app-dev"
|
|
196
225
|
- export KUBE_APP_NAME="app"
|
|
@@ -199,7 +228,7 @@ app 🧪 test:
|
|
|
199
228
|
- export POSTGRESQL_PASSWORD="$CL_dev_app_POSTGRESQL_PASSWORD"
|
|
200
229
|
- export cloudsqlProxyCredentials="$CL_dev_app_cloudsqlProxyCredentials"
|
|
201
230
|
- export RAILS_ENV="production"
|
|
202
|
-
- export _ALL_ENV_VAR_KEYS="[\\"ENV_SHORT\\",\\"APP_DIR\\",\\"ENV_TYPE\\",\\"BUILD_INFO_BUILD_ID\\",\\"BUILD_INFO_BUILD_TIME\\",\\"BUILD_INFO_CURRENT_VERSION\\",\\"ROOT_URL\\",\\"
|
|
231
|
+
- export _ALL_ENV_VAR_KEYS="[\\"ENV_SHORT\\",\\"APP_DIR\\",\\"ENV_TYPE\\",\\"BUILD_INFO_BUILD_ID\\",\\"BUILD_INFO_BUILD_TIME\\",\\"BUILD_INFO_CURRENT_VERSION\\",\\"ROOT_URL\\",\\"HOSTNAME_INTERNAL\\",\\"ROOT_URL_INTERNAL\\",\\"KUBE_NAMESPACE\\",\\"KUBE_APP_NAME\\",\\"KUBE_APP_NAME_PREFIX\\",\\"SECRET_KEY_BASE\\",\\"POSTGRESQL_PASSWORD\\",\\"cloudsqlProxyCredentials\\",\\"RAILS_ENV\\"]"
|
|
203
232
|
- export DOCKER_REGISTRY="$CI_REGISTRY"
|
|
204
233
|
- export DOCKER_CACHE_IMAGE="$CI_REGISTRY_IMAGE/caches/app"
|
|
205
234
|
- export DOCKER_IMAGE_NAME="dev/app"
|
|
@@ -211,23 +240,22 @@ app 🧪 test:
|
|
|
211
240
|
- export HELM_GITLAB_CHART_NAME="/helm-charts/the-panter-chart"
|
|
212
241
|
- export HELM_ARGS=""
|
|
213
242
|
- export COMPONENT_NAME="app"
|
|
214
|
-
-
|
|
215
|
-
- echo -e "\\e[0Ksection_end:$(date +%s):injectvars\\r\\e[0K"
|
|
243
|
+
- collapseable_section_end "injectvars"
|
|
216
244
|
- kubectl config set-cluster "kube-pan-test-app-dev-app" --server="$CL_dev_app_KUBE_URL" --certificate-authority <(echo $CL_dev_app_KUBE_CA_PEM | base64 -d) --embed-certs=true
|
|
217
245
|
- kubectl config set-credentials "kube-pan-test-app-dev-app" --token="$CL_dev_app_KUBE_TOKEN"
|
|
218
246
|
- kubectl config set-context "kube-pan-test-app-dev-app" --cluster="kube-pan-test-app-dev-app" --user="kube-pan-test-app-dev-app" --namespace="pan-test-app-dev"
|
|
219
247
|
- kubectl config use-context "kube-pan-test-app-dev-app"
|
|
220
|
-
-
|
|
248
|
+
- collapseable_section_start "writeallvalues" "Write __all_values.yml for helm deployment"
|
|
221
249
|
- |
|
|
222
250
|
cat > __all_values.yml <<EOF
|
|
223
251
|
env:
|
|
224
252
|
secret:
|
|
225
253
|
SECRET_KEY_BASE: |-
|
|
226
|
-
|
|
254
|
+
$(printf %s "$CL_dev_app_SECRET_KEY_BASE" | sed '1!s/^/ /')
|
|
227
255
|
POSTGRESQL_PASSWORD: |-
|
|
228
|
-
|
|
256
|
+
$(printf %s "$CL_dev_app_POSTGRESQL_PASSWORD" | sed '1!s/^/ /')
|
|
229
257
|
cloudsqlProxyCredentials: |-
|
|
230
|
-
|
|
258
|
+
$(printf %s "$CL_dev_app_cloudsqlProxyCredentials" | sed '1!s/^/ /')
|
|
231
259
|
public:
|
|
232
260
|
ENV_SHORT: |-
|
|
233
261
|
dev
|
|
@@ -236,16 +264,14 @@ app 🧪 test:
|
|
|
236
264
|
ENV_TYPE: |-
|
|
237
265
|
dev
|
|
238
266
|
BUILD_INFO_BUILD_ID: |-
|
|
239
|
-
|
|
267
|
+
$(printf %s "$(git describe --tags 2>/dev/null || git rev-parse HEAD)" | sed '1!s/^/ /')
|
|
240
268
|
BUILD_INFO_BUILD_TIME: |-
|
|
241
|
-
|
|
269
|
+
$(printf %s "$CI_JOB_STARTED_AT" | sed '1!s/^/ /')
|
|
242
270
|
BUILD_INFO_CURRENT_VERSION: |-
|
|
243
|
-
|
|
271
|
+
$(printf %s "$(tag=$(git ls-remote origin "refs/tags/v*[0-9]" 2>/dev/null | cut -f 2- | sort -V | tail -1 | sed 's/refs\\/tags\\/v//'); [ -z "$tag" ] && echo "0.0.0" || echo "$tag")" | sed '1!s/^/ /')
|
|
244
272
|
ROOT_URL: |-
|
|
245
273
|
https://app.dev.test-app.pan.panter.cloud
|
|
246
|
-
|
|
247
|
-
app.dev.test-app.pan.panter.cloud
|
|
248
|
-
HOST_CANONICAL: |-
|
|
274
|
+
HOSTNAME_INTERNAL: |-
|
|
249
275
|
app.dev.test-app.pan.panter.cloud
|
|
250
276
|
ROOT_URL_INTERNAL: |-
|
|
251
277
|
https://app.dev.test-app.pan.panter.cloud
|
|
@@ -257,7 +283,7 @@ app 🧪 test:
|
|
|
257
283
|
RAILS_ENV: |-
|
|
258
284
|
production
|
|
259
285
|
_ALL_ENV_VAR_KEYS: |-
|
|
260
|
-
["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_BUILD_ID","BUILD_INFO_BUILD_TIME","BUILD_INFO_CURRENT_VERSION","ROOT_URL","
|
|
286
|
+
["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_BUILD_ID","BUILD_INFO_BUILD_TIME","BUILD_INFO_CURRENT_VERSION","ROOT_URL","HOSTNAME_INTERNAL","ROOT_URL_INTERNAL","KUBE_NAMESPACE","KUBE_APP_NAME","KUBE_APP_NAME_PREFIX","SECRET_KEY_BASE","POSTGRESQL_PASSWORD","cloudsqlProxyCredentials","RAILS_ENV"]
|
|
261
287
|
application:
|
|
262
288
|
host: |-
|
|
263
289
|
app.dev.test-app.pan.panter.cloud
|
|
@@ -285,13 +311,13 @@ app 🧪 test:
|
|
|
285
311
|
dbUser: |-
|
|
286
312
|
postgres
|
|
287
313
|
instanceConnectionName: |-
|
|
288
|
-
|
|
314
|
+
myproject:europe-west6:instance-name
|
|
289
315
|
proxyCredentials: |-
|
|
290
316
|
$CL_dev_app_cloudsqlProxyCredentials
|
|
291
317
|
fullDbName: |-
|
|
292
|
-
app
|
|
293
|
-
|
|
294
|
-
|
|
318
|
+
pan-test-app-dev-app
|
|
319
|
+
type: |-
|
|
320
|
+
unmanaged
|
|
295
321
|
jobs:
|
|
296
322
|
db-migrate:
|
|
297
323
|
hook: |-
|
|
@@ -300,7 +326,7 @@ app 🧪 test:
|
|
|
300
326
|
launcher bundle exec rake db:migrate
|
|
301
327
|
|
|
302
328
|
EOF
|
|
303
|
-
-
|
|
329
|
+
- collapseable_section_end "writeallvalues"
|
|
304
330
|
- kubernetesCreateSecret
|
|
305
331
|
- kubernetesDeploy
|
|
306
332
|
- echo 'Uploading SBOM to Dependency Track'
|
|
@@ -343,7 +369,7 @@ app 🧪 test:
|
|
|
343
369
|
KUBERNETES_MEMORY_LIMIT: 400Mi
|
|
344
370
|
GIT_STRATEGY: none
|
|
345
371
|
script:
|
|
346
|
-
-
|
|
372
|
+
- collapseable_section_start "injectvars" "Injecting variables"
|
|
347
373
|
- export ENV_SHORT="dev"
|
|
348
374
|
- export APP_DIR="."
|
|
349
375
|
- export ENV_TYPE="dev"
|
|
@@ -351,8 +377,7 @@ app 🧪 test:
|
|
|
351
377
|
- export BUILD_INFO_BUILD_TIME="$CI_JOB_STARTED_AT"
|
|
352
378
|
- export BUILD_INFO_CURRENT_VERSION="$(tag=$(git ls-remote origin "refs/tags/v*[0-9]" 2>/dev/null | cut -f 2- | sort -V | tail -1 | sed 's/refs\\/tags\\/v//'); [ -z "$tag" ] && echo "0.0.0" || echo "$tag")"
|
|
353
379
|
- export ROOT_URL="https://app.dev.test-app.pan.panter.cloud"
|
|
354
|
-
- export
|
|
355
|
-
- export HOST_CANONICAL="app.dev.test-app.pan.panter.cloud"
|
|
380
|
+
- export HOSTNAME_INTERNAL="app.dev.test-app.pan.panter.cloud"
|
|
356
381
|
- export ROOT_URL_INTERNAL="https://app.dev.test-app.pan.panter.cloud"
|
|
357
382
|
- export KUBE_NAMESPACE="pan-test-app-dev"
|
|
358
383
|
- export KUBE_APP_NAME="app"
|
|
@@ -361,15 +386,14 @@ app 🧪 test:
|
|
|
361
386
|
- export POSTGRESQL_PASSWORD="$CL_dev_app_POSTGRESQL_PASSWORD"
|
|
362
387
|
- export cloudsqlProxyCredentials="$CL_dev_app_cloudsqlProxyCredentials"
|
|
363
388
|
- export RAILS_ENV="production"
|
|
364
|
-
- export _ALL_ENV_VAR_KEYS="[\\"ENV_SHORT\\",\\"APP_DIR\\",\\"ENV_TYPE\\",\\"BUILD_INFO_BUILD_ID\\",\\"BUILD_INFO_BUILD_TIME\\",\\"BUILD_INFO_CURRENT_VERSION\\",\\"ROOT_URL\\",\\"
|
|
389
|
+
- export _ALL_ENV_VAR_KEYS="[\\"ENV_SHORT\\",\\"APP_DIR\\",\\"ENV_TYPE\\",\\"BUILD_INFO_BUILD_ID\\",\\"BUILD_INFO_BUILD_TIME\\",\\"BUILD_INFO_CURRENT_VERSION\\",\\"ROOT_URL\\",\\"HOSTNAME_INTERNAL\\",\\"ROOT_URL_INTERNAL\\",\\"KUBE_NAMESPACE\\",\\"KUBE_APP_NAME\\",\\"KUBE_APP_NAME_PREFIX\\",\\"SECRET_KEY_BASE\\",\\"POSTGRESQL_PASSWORD\\",\\"cloudsqlProxyCredentials\\",\\"RAILS_ENV\\"]"
|
|
365
390
|
- export RELEASE_NAME="pan-test-app-dev-app"
|
|
366
391
|
- export HELM_EXPERIMENTAL_OCI="1"
|
|
367
392
|
- export KUBE_DOCKER_IMAGE_PULL_SECRET="gitlab-registry-app"
|
|
368
393
|
- export HELM_GITLAB_CHART_NAME="/helm-charts/the-panter-chart"
|
|
369
394
|
- export HELM_ARGS=""
|
|
370
395
|
- export COMPONENT_NAME="app"
|
|
371
|
-
-
|
|
372
|
-
- echo -e "\\e[0Ksection_end:$(date +%s):injectvars\\r\\e[0K"
|
|
396
|
+
- collapseable_section_end "injectvars"
|
|
373
397
|
- kubectl config set-cluster "kube-pan-test-app-dev-app" --server="$CL_dev_app_KUBE_URL" --certificate-authority <(echo $CL_dev_app_KUBE_CA_PEM | base64 -d) --embed-certs=true
|
|
374
398
|
- kubectl config set-credentials "kube-pan-test-app-dev-app" --token="$CL_dev_app_KUBE_TOKEN"
|
|
375
399
|
- kubectl config set-context "kube-pan-test-app-dev-app" --cluster="kube-pan-test-app-dev-app" --user="kube-pan-test-app-dev-app" --namespace="pan-test-app-dev"
|
|
@@ -405,7 +429,7 @@ app 🧪 test:
|
|
|
405
429
|
KUBERNETES_MEMORY_LIMIT: 400Mi
|
|
406
430
|
GIT_STRATEGY: none
|
|
407
431
|
script:
|
|
408
|
-
-
|
|
432
|
+
- collapseable_section_start "injectvars" "Injecting variables"
|
|
409
433
|
- export ENV_SHORT="dev"
|
|
410
434
|
- export APP_DIR="."
|
|
411
435
|
- export ENV_TYPE="dev"
|
|
@@ -413,8 +437,7 @@ app 🧪 test:
|
|
|
413
437
|
- export BUILD_INFO_BUILD_TIME="$CI_JOB_STARTED_AT"
|
|
414
438
|
- export BUILD_INFO_CURRENT_VERSION="$(tag=$(git ls-remote origin "refs/tags/v*[0-9]" 2>/dev/null | cut -f 2- | sort -V | tail -1 | sed 's/refs\\/tags\\/v//'); [ -z "$tag" ] && echo "0.0.0" || echo "$tag")"
|
|
415
439
|
- export ROOT_URL="https://app.dev.test-app.pan.panter.cloud"
|
|
416
|
-
- export
|
|
417
|
-
- export HOST_CANONICAL="app.dev.test-app.pan.panter.cloud"
|
|
440
|
+
- export HOSTNAME_INTERNAL="app.dev.test-app.pan.panter.cloud"
|
|
418
441
|
- export ROOT_URL_INTERNAL="https://app.dev.test-app.pan.panter.cloud"
|
|
419
442
|
- export KUBE_NAMESPACE="pan-test-app-dev"
|
|
420
443
|
- export KUBE_APP_NAME="app"
|
|
@@ -423,15 +446,14 @@ app 🧪 test:
|
|
|
423
446
|
- export POSTGRESQL_PASSWORD="$CL_dev_app_POSTGRESQL_PASSWORD"
|
|
424
447
|
- export cloudsqlProxyCredentials="$CL_dev_app_cloudsqlProxyCredentials"
|
|
425
448
|
- export RAILS_ENV="production"
|
|
426
|
-
- export _ALL_ENV_VAR_KEYS="[\\"ENV_SHORT\\",\\"APP_DIR\\",\\"ENV_TYPE\\",\\"BUILD_INFO_BUILD_ID\\",\\"BUILD_INFO_BUILD_TIME\\",\\"BUILD_INFO_CURRENT_VERSION\\",\\"ROOT_URL\\",\\"
|
|
449
|
+
- export _ALL_ENV_VAR_KEYS="[\\"ENV_SHORT\\",\\"APP_DIR\\",\\"ENV_TYPE\\",\\"BUILD_INFO_BUILD_ID\\",\\"BUILD_INFO_BUILD_TIME\\",\\"BUILD_INFO_CURRENT_VERSION\\",\\"ROOT_URL\\",\\"HOSTNAME_INTERNAL\\",\\"ROOT_URL_INTERNAL\\",\\"KUBE_NAMESPACE\\",\\"KUBE_APP_NAME\\",\\"KUBE_APP_NAME_PREFIX\\",\\"SECRET_KEY_BASE\\",\\"POSTGRESQL_PASSWORD\\",\\"cloudsqlProxyCredentials\\",\\"RAILS_ENV\\"]"
|
|
427
450
|
- export RELEASE_NAME="pan-test-app-dev-app"
|
|
428
451
|
- export HELM_EXPERIMENTAL_OCI="1"
|
|
429
452
|
- export KUBE_DOCKER_IMAGE_PULL_SECRET="gitlab-registry-app"
|
|
430
453
|
- export HELM_GITLAB_CHART_NAME="/helm-charts/the-panter-chart"
|
|
431
454
|
- export HELM_ARGS=""
|
|
432
455
|
- export COMPONENT_NAME="app"
|
|
433
|
-
-
|
|
434
|
-
- echo -e "\\e[0Ksection_end:$(date +%s):injectvars\\r\\e[0K"
|
|
456
|
+
- collapseable_section_end "injectvars"
|
|
435
457
|
- kubectl config set-cluster "kube-pan-test-app-dev-app" --server="$CL_dev_app_KUBE_URL" --certificate-authority <(echo $CL_dev_app_KUBE_CA_PEM | base64 -d) --embed-certs=true
|
|
436
458
|
- kubectl config set-credentials "kube-pan-test-app-dev-app" --token="$CL_dev_app_KUBE_TOKEN"
|
|
437
459
|
- kubectl config set-context "kube-pan-test-app-dev-app" --cluster="kube-pan-test-app-dev-app" --user="kube-pan-test-app-dev-app" --namespace="pan-test-app-dev"
|
|
@@ -471,7 +493,7 @@ app 🧪 test:
|
|
|
471
493
|
KUBERNETES_MEMORY_REQUEST: 1Gi
|
|
472
494
|
KUBERNETES_MEMORY_LIMIT: 2Gi
|
|
473
495
|
script:
|
|
474
|
-
-
|
|
496
|
+
- collapseable_section_start "injectvars" "Injecting variables"
|
|
475
497
|
- export APP_DIR="."
|
|
476
498
|
- export DOCKER_BUILD_CONTEXT="."
|
|
477
499
|
- export DOCKER_REGISTRY="$CI_REGISTRY"
|
|
@@ -479,7 +501,7 @@ app 🧪 test:
|
|
|
479
501
|
- export DOCKER_IMAGE_NAME="review/app"
|
|
480
502
|
- export DOCKER_IMAGE="$CI_REGISTRY_IMAGE/$DOCKER_IMAGE_NAME"
|
|
481
503
|
- export DOCKER_IMAGE_TAG="$CI_COMMIT_SHA"
|
|
482
|
-
-
|
|
504
|
+
- collapseable_section_end "injectvars"
|
|
483
505
|
- docker login --username gitlab-ci-token --password $CI_JOB_TOKEN $CI_REGISTRY
|
|
484
506
|
- cd .
|
|
485
507
|
- docker pull $DOCKER_CACHE_IMAGE || true
|
|
@@ -497,8 +519,8 @@ app 🧪 test:
|
|
|
497
519
|
image: aquasec/trivy:0.38.3
|
|
498
520
|
variables: {}
|
|
499
521
|
script:
|
|
500
|
-
-
|
|
501
|
-
-
|
|
522
|
+
- collapseable_section_start "injectvars" "Injecting variables"
|
|
523
|
+
- collapseable_section_end "injectvars"
|
|
502
524
|
- trivy fs --quiet --format cyclonedx --output "__sbom.json" .
|
|
503
525
|
artifacts:
|
|
504
526
|
paths:
|
|
@@ -517,7 +539,7 @@ app 🧪 test:
|
|
|
517
539
|
KUBERNETES_MEMORY_REQUEST: 200Mi
|
|
518
540
|
KUBERNETES_MEMORY_LIMIT: 400Mi
|
|
519
541
|
script:
|
|
520
|
-
-
|
|
542
|
+
- collapseable_section_start "injectvars" "Injecting variables"
|
|
521
543
|
- export ENV_SHORT="review"
|
|
522
544
|
- export APP_DIR="."
|
|
523
545
|
- export ENV_TYPE="review"
|
|
@@ -525,8 +547,7 @@ app 🧪 test:
|
|
|
525
547
|
- export BUILD_INFO_BUILD_TIME="$CI_JOB_STARTED_AT"
|
|
526
548
|
- export BUILD_INFO_CURRENT_VERSION="$(tag=$(git ls-remote origin "refs/tags/v*[0-9]" 2>/dev/null | cut -f 2- | sort -V | tail -1 | sed 's/refs\\/tags\\/v//'); [ -z "$tag" ] && echo "0.0.0" || echo "$tag")"
|
|
527
549
|
- export ROOT_URL="https://app.$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; }).review.test-app.pan.panter.cloud"
|
|
528
|
-
- export
|
|
529
|
-
- export HOST_CANONICAL="app.$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; }).review.test-app.pan.panter.cloud"
|
|
550
|
+
- export HOSTNAME_INTERNAL="app.$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; }).review.test-app.pan.panter.cloud"
|
|
530
551
|
- export ROOT_URL_INTERNAL="https://app.$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; }).review.test-app.pan.panter.cloud"
|
|
531
552
|
- export KUBE_NAMESPACE="pan-test-app-review"
|
|
532
553
|
- export KUBE_APP_NAME="$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; })-app"
|
|
@@ -535,7 +556,7 @@ app 🧪 test:
|
|
|
535
556
|
- export POSTGRESQL_PASSWORD="$CL_review_app_POSTGRESQL_PASSWORD"
|
|
536
557
|
- export cloudsqlProxyCredentials="$CL_review_app_cloudsqlProxyCredentials"
|
|
537
558
|
- export RAILS_ENV="production"
|
|
538
|
-
- export _ALL_ENV_VAR_KEYS="[\\"ENV_SHORT\\",\\"APP_DIR\\",\\"ENV_TYPE\\",\\"BUILD_INFO_BUILD_ID\\",\\"BUILD_INFO_BUILD_TIME\\",\\"BUILD_INFO_CURRENT_VERSION\\",\\"ROOT_URL\\",\\"
|
|
559
|
+
- export _ALL_ENV_VAR_KEYS="[\\"ENV_SHORT\\",\\"APP_DIR\\",\\"ENV_TYPE\\",\\"BUILD_INFO_BUILD_ID\\",\\"BUILD_INFO_BUILD_TIME\\",\\"BUILD_INFO_CURRENT_VERSION\\",\\"ROOT_URL\\",\\"HOSTNAME_INTERNAL\\",\\"ROOT_URL_INTERNAL\\",\\"KUBE_NAMESPACE\\",\\"KUBE_APP_NAME\\",\\"KUBE_APP_NAME_PREFIX\\",\\"SECRET_KEY_BASE\\",\\"POSTGRESQL_PASSWORD\\",\\"cloudsqlProxyCredentials\\",\\"RAILS_ENV\\"]"
|
|
539
560
|
- export DOCKER_REGISTRY="$CI_REGISTRY"
|
|
540
561
|
- export DOCKER_CACHE_IMAGE="$CI_REGISTRY_IMAGE/caches/app"
|
|
541
562
|
- export DOCKER_IMAGE_NAME="review/app"
|
|
@@ -547,23 +568,22 @@ app 🧪 test:
|
|
|
547
568
|
- export HELM_GITLAB_CHART_NAME="/helm-charts/the-panter-chart"
|
|
548
569
|
- export HELM_ARGS=""
|
|
549
570
|
- export COMPONENT_NAME="app"
|
|
550
|
-
-
|
|
551
|
-
- echo -e "\\e[0Ksection_end:$(date +%s):injectvars\\r\\e[0K"
|
|
571
|
+
- collapseable_section_end "injectvars"
|
|
552
572
|
- kubectl config set-cluster "kube-pan-test-app-review-$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; })-app" --server="$CL_review_app_KUBE_URL" --certificate-authority <(echo $CL_review_app_KUBE_CA_PEM | base64 -d) --embed-certs=true
|
|
553
573
|
- kubectl config set-credentials "kube-pan-test-app-review-$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; })-app" --token="$CL_review_app_KUBE_TOKEN"
|
|
554
574
|
- kubectl config set-context "kube-pan-test-app-review-$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; })-app" --cluster="kube-pan-test-app-review-$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; })-app" --user="kube-pan-test-app-review-$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; })-app" --namespace="pan-test-app-review"
|
|
555
575
|
- kubectl config use-context "kube-pan-test-app-review-$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; })-app"
|
|
556
|
-
-
|
|
576
|
+
- collapseable_section_start "writeallvalues" "Write __all_values.yml for helm deployment"
|
|
557
577
|
- |
|
|
558
578
|
cat > __all_values.yml <<EOF
|
|
559
579
|
env:
|
|
560
580
|
secret:
|
|
561
581
|
SECRET_KEY_BASE: |-
|
|
562
|
-
|
|
582
|
+
$(printf %s "$CL_review_app_SECRET_KEY_BASE" | sed '1!s/^/ /')
|
|
563
583
|
POSTGRESQL_PASSWORD: |-
|
|
564
|
-
|
|
584
|
+
$(printf %s "$CL_review_app_POSTGRESQL_PASSWORD" | sed '1!s/^/ /')
|
|
565
585
|
cloudsqlProxyCredentials: |-
|
|
566
|
-
|
|
586
|
+
$(printf %s "$CL_review_app_cloudsqlProxyCredentials" | sed '1!s/^/ /')
|
|
567
587
|
public:
|
|
568
588
|
ENV_SHORT: |-
|
|
569
589
|
review
|
|
@@ -572,32 +592,30 @@ app 🧪 test:
|
|
|
572
592
|
ENV_TYPE: |-
|
|
573
593
|
review
|
|
574
594
|
BUILD_INFO_BUILD_ID: |-
|
|
575
|
-
|
|
595
|
+
$(printf %s "$(git describe --tags 2>/dev/null || git rev-parse HEAD)" | sed '1!s/^/ /')
|
|
576
596
|
BUILD_INFO_BUILD_TIME: |-
|
|
577
|
-
|
|
597
|
+
$(printf %s "$CI_JOB_STARTED_AT" | sed '1!s/^/ /')
|
|
578
598
|
BUILD_INFO_CURRENT_VERSION: |-
|
|
579
|
-
|
|
599
|
+
$(printf %s "$(tag=$(git ls-remote origin "refs/tags/v*[0-9]" 2>/dev/null | cut -f 2- | sort -V | tail -1 | sed 's/refs\\/tags\\/v//'); [ -z "$tag" ] && echo "0.0.0" || echo "$tag")" | sed '1!s/^/ /')
|
|
580
600
|
ROOT_URL: |-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
HOST_CANONICAL: |-
|
|
585
|
-
$(printf %s "app.$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; }).review.test-app.pan.panter.cloud" | sed 's/^/ /')
|
|
601
|
+
$(printf %s "https://app.$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; }).review.test-app.pan.panter.cloud" | sed '1!s/^/ /')
|
|
602
|
+
HOSTNAME_INTERNAL: |-
|
|
603
|
+
$(printf %s "app.$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; }).review.test-app.pan.panter.cloud" | sed '1!s/^/ /')
|
|
586
604
|
ROOT_URL_INTERNAL: |-
|
|
587
|
-
|
|
605
|
+
$(printf %s "https://app.$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; }).review.test-app.pan.panter.cloud" | sed '1!s/^/ /')
|
|
588
606
|
KUBE_NAMESPACE: |-
|
|
589
607
|
pan-test-app-review
|
|
590
608
|
KUBE_APP_NAME: |-
|
|
591
|
-
|
|
609
|
+
$(printf %s "$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; })-app" | sed '1!s/^/ /')
|
|
592
610
|
KUBE_APP_NAME_PREFIX: |-
|
|
593
|
-
|
|
611
|
+
$(printf %s "$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; })-" | sed '1!s/^/ /')
|
|
594
612
|
RAILS_ENV: |-
|
|
595
613
|
production
|
|
596
614
|
_ALL_ENV_VAR_KEYS: |-
|
|
597
|
-
["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_BUILD_ID","BUILD_INFO_BUILD_TIME","BUILD_INFO_CURRENT_VERSION","ROOT_URL","
|
|
615
|
+
["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_BUILD_ID","BUILD_INFO_BUILD_TIME","BUILD_INFO_CURRENT_VERSION","ROOT_URL","HOSTNAME_INTERNAL","ROOT_URL_INTERNAL","KUBE_NAMESPACE","KUBE_APP_NAME","KUBE_APP_NAME_PREFIX","SECRET_KEY_BASE","POSTGRESQL_PASSWORD","cloudsqlProxyCredentials","RAILS_ENV"]
|
|
598
616
|
application:
|
|
599
617
|
host: |-
|
|
600
|
-
|
|
618
|
+
$(printf %s "app.$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; }).review.test-app.pan.panter.cloud" | sed '1!s/^/ /')
|
|
601
619
|
command: |-
|
|
602
620
|
/cnb/process/web
|
|
603
621
|
livenessProbe:
|
|
@@ -622,13 +640,13 @@ app 🧪 test:
|
|
|
622
640
|
dbUser: |-
|
|
623
641
|
postgres
|
|
624
642
|
instanceConnectionName: |-
|
|
625
|
-
|
|
643
|
+
myproject:europe-west6:instance-name
|
|
626
644
|
proxyCredentials: |-
|
|
627
645
|
$CL_review_app_cloudsqlProxyCredentials
|
|
628
646
|
fullDbName: |-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
647
|
+
$(printf %s "pan-test-app-review-$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; })-app" | sed '1!s/^/ /')
|
|
648
|
+
type: |-
|
|
649
|
+
unmanaged
|
|
632
650
|
jobs:
|
|
633
651
|
db-migrate:
|
|
634
652
|
hook: |-
|
|
@@ -642,7 +660,7 @@ app 🧪 test:
|
|
|
642
660
|
launcher bundle exec rake db:prepare db:seed
|
|
643
661
|
|
|
644
662
|
EOF
|
|
645
|
-
-
|
|
663
|
+
- collapseable_section_end "writeallvalues"
|
|
646
664
|
- kubernetesCreateSecret
|
|
647
665
|
- kubernetesDeploy
|
|
648
666
|
- echo 'Uploading SBOM to Dependency Track'
|
|
@@ -683,7 +701,7 @@ app 🧪 test:
|
|
|
683
701
|
KUBERNETES_MEMORY_LIMIT: 400Mi
|
|
684
702
|
GIT_STRATEGY: none
|
|
685
703
|
script:
|
|
686
|
-
-
|
|
704
|
+
- collapseable_section_start "injectvars" "Injecting variables"
|
|
687
705
|
- export ENV_SHORT="review"
|
|
688
706
|
- export APP_DIR="."
|
|
689
707
|
- export ENV_TYPE="review"
|
|
@@ -691,8 +709,7 @@ app 🧪 test:
|
|
|
691
709
|
- export BUILD_INFO_BUILD_TIME="$CI_JOB_STARTED_AT"
|
|
692
710
|
- export BUILD_INFO_CURRENT_VERSION="$(tag=$(git ls-remote origin "refs/tags/v*[0-9]" 2>/dev/null | cut -f 2- | sort -V | tail -1 | sed 's/refs\\/tags\\/v//'); [ -z "$tag" ] && echo "0.0.0" || echo "$tag")"
|
|
693
711
|
- export ROOT_URL="https://app.$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; }).review.test-app.pan.panter.cloud"
|
|
694
|
-
- export
|
|
695
|
-
- export HOST_CANONICAL="app.$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; }).review.test-app.pan.panter.cloud"
|
|
712
|
+
- export HOSTNAME_INTERNAL="app.$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; }).review.test-app.pan.panter.cloud"
|
|
696
713
|
- export ROOT_URL_INTERNAL="https://app.$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; }).review.test-app.pan.panter.cloud"
|
|
697
714
|
- export KUBE_NAMESPACE="pan-test-app-review"
|
|
698
715
|
- export KUBE_APP_NAME="$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; })-app"
|
|
@@ -701,15 +718,14 @@ app 🧪 test:
|
|
|
701
718
|
- export POSTGRESQL_PASSWORD="$CL_review_app_POSTGRESQL_PASSWORD"
|
|
702
719
|
- export cloudsqlProxyCredentials="$CL_review_app_cloudsqlProxyCredentials"
|
|
703
720
|
- export RAILS_ENV="production"
|
|
704
|
-
- export _ALL_ENV_VAR_KEYS="[\\"ENV_SHORT\\",\\"APP_DIR\\",\\"ENV_TYPE\\",\\"BUILD_INFO_BUILD_ID\\",\\"BUILD_INFO_BUILD_TIME\\",\\"BUILD_INFO_CURRENT_VERSION\\",\\"ROOT_URL\\",\\"
|
|
721
|
+
- export _ALL_ENV_VAR_KEYS="[\\"ENV_SHORT\\",\\"APP_DIR\\",\\"ENV_TYPE\\",\\"BUILD_INFO_BUILD_ID\\",\\"BUILD_INFO_BUILD_TIME\\",\\"BUILD_INFO_CURRENT_VERSION\\",\\"ROOT_URL\\",\\"HOSTNAME_INTERNAL\\",\\"ROOT_URL_INTERNAL\\",\\"KUBE_NAMESPACE\\",\\"KUBE_APP_NAME\\",\\"KUBE_APP_NAME_PREFIX\\",\\"SECRET_KEY_BASE\\",\\"POSTGRESQL_PASSWORD\\",\\"cloudsqlProxyCredentials\\",\\"RAILS_ENV\\"]"
|
|
705
722
|
- export RELEASE_NAME="pan-test-app-review-$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; })-app"
|
|
706
723
|
- export HELM_EXPERIMENTAL_OCI="1"
|
|
707
724
|
- export KUBE_DOCKER_IMAGE_PULL_SECRET="gitlab-registry-app"
|
|
708
725
|
- export HELM_GITLAB_CHART_NAME="/helm-charts/the-panter-chart"
|
|
709
726
|
- export HELM_ARGS=""
|
|
710
727
|
- export COMPONENT_NAME="app"
|
|
711
|
-
-
|
|
712
|
-
- echo -e "\\e[0Ksection_end:$(date +%s):injectvars\\r\\e[0K"
|
|
728
|
+
- collapseable_section_end "injectvars"
|
|
713
729
|
- kubectl config set-cluster "kube-pan-test-app-review-$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; })-app" --server="$CL_review_app_KUBE_URL" --certificate-authority <(echo $CL_review_app_KUBE_CA_PEM | base64 -d) --embed-certs=true
|
|
714
730
|
- kubectl config set-credentials "kube-pan-test-app-review-$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; })-app" --token="$CL_review_app_KUBE_TOKEN"
|
|
715
731
|
- kubectl config set-context "kube-pan-test-app-review-$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; })-app" --cluster="kube-pan-test-app-review-$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; })-app" --user="kube-pan-test-app-review-$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; })-app" --namespace="pan-test-app-review"
|
|
@@ -743,7 +759,7 @@ app 🧪 test:
|
|
|
743
759
|
KUBERNETES_MEMORY_LIMIT: 400Mi
|
|
744
760
|
GIT_STRATEGY: none
|
|
745
761
|
script:
|
|
746
|
-
-
|
|
762
|
+
- collapseable_section_start "injectvars" "Injecting variables"
|
|
747
763
|
- export ENV_SHORT="review"
|
|
748
764
|
- export APP_DIR="."
|
|
749
765
|
- export ENV_TYPE="review"
|
|
@@ -751,8 +767,7 @@ app 🧪 test:
|
|
|
751
767
|
- export BUILD_INFO_BUILD_TIME="$CI_JOB_STARTED_AT"
|
|
752
768
|
- export BUILD_INFO_CURRENT_VERSION="$(tag=$(git ls-remote origin "refs/tags/v*[0-9]" 2>/dev/null | cut -f 2- | sort -V | tail -1 | sed 's/refs\\/tags\\/v//'); [ -z "$tag" ] && echo "0.0.0" || echo "$tag")"
|
|
753
769
|
- export ROOT_URL="https://app.$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; }).review.test-app.pan.panter.cloud"
|
|
754
|
-
- export
|
|
755
|
-
- export HOST_CANONICAL="app.$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; }).review.test-app.pan.panter.cloud"
|
|
770
|
+
- export HOSTNAME_INTERNAL="app.$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; }).review.test-app.pan.panter.cloud"
|
|
756
771
|
- export ROOT_URL_INTERNAL="https://app.$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; }).review.test-app.pan.panter.cloud"
|
|
757
772
|
- export KUBE_NAMESPACE="pan-test-app-review"
|
|
758
773
|
- export KUBE_APP_NAME="$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; })-app"
|
|
@@ -761,15 +776,14 @@ app 🧪 test:
|
|
|
761
776
|
- export POSTGRESQL_PASSWORD="$CL_review_app_POSTGRESQL_PASSWORD"
|
|
762
777
|
- export cloudsqlProxyCredentials="$CL_review_app_cloudsqlProxyCredentials"
|
|
763
778
|
- export RAILS_ENV="production"
|
|
764
|
-
- export _ALL_ENV_VAR_KEYS="[\\"ENV_SHORT\\",\\"APP_DIR\\",\\"ENV_TYPE\\",\\"BUILD_INFO_BUILD_ID\\",\\"BUILD_INFO_BUILD_TIME\\",\\"BUILD_INFO_CURRENT_VERSION\\",\\"ROOT_URL\\",\\"
|
|
779
|
+
- export _ALL_ENV_VAR_KEYS="[\\"ENV_SHORT\\",\\"APP_DIR\\",\\"ENV_TYPE\\",\\"BUILD_INFO_BUILD_ID\\",\\"BUILD_INFO_BUILD_TIME\\",\\"BUILD_INFO_CURRENT_VERSION\\",\\"ROOT_URL\\",\\"HOSTNAME_INTERNAL\\",\\"ROOT_URL_INTERNAL\\",\\"KUBE_NAMESPACE\\",\\"KUBE_APP_NAME\\",\\"KUBE_APP_NAME_PREFIX\\",\\"SECRET_KEY_BASE\\",\\"POSTGRESQL_PASSWORD\\",\\"cloudsqlProxyCredentials\\",\\"RAILS_ENV\\"]"
|
|
765
780
|
- export RELEASE_NAME="pan-test-app-review-$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; })-app"
|
|
766
781
|
- export HELM_EXPERIMENTAL_OCI="1"
|
|
767
782
|
- export KUBE_DOCKER_IMAGE_PULL_SECRET="gitlab-registry-app"
|
|
768
783
|
- export HELM_GITLAB_CHART_NAME="/helm-charts/the-panter-chart"
|
|
769
784
|
- export HELM_ARGS=""
|
|
770
785
|
- export COMPONENT_NAME="app"
|
|
771
|
-
-
|
|
772
|
-
- echo -e "\\e[0Ksection_end:$(date +%s):injectvars\\r\\e[0K"
|
|
786
|
+
- collapseable_section_end "injectvars"
|
|
773
787
|
- kubectl config set-cluster "kube-pan-test-app-review-$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; })-app" --server="$CL_review_app_KUBE_URL" --certificate-authority <(echo $CL_review_app_KUBE_CA_PEM | base64 -d) --embed-certs=true
|
|
774
788
|
- kubectl config set-credentials "kube-pan-test-app-review-$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; })-app" --token="$CL_review_app_KUBE_TOKEN"
|
|
775
789
|
- kubectl config set-context "kube-pan-test-app-review-$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; })-app" --cluster="kube-pan-test-app-review-$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; })-app" --user="kube-pan-test-app-review-$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; })-app" --namespace="pan-test-app-review"
|
|
@@ -807,7 +821,7 @@ app 🧪 test:
|
|
|
807
821
|
KUBERNETES_MEMORY_REQUEST: 1Gi
|
|
808
822
|
KUBERNETES_MEMORY_LIMIT: 2Gi
|
|
809
823
|
script:
|
|
810
|
-
-
|
|
824
|
+
- collapseable_section_start "injectvars" "Injecting variables"
|
|
811
825
|
- export APP_DIR="."
|
|
812
826
|
- export DOCKER_BUILD_CONTEXT="."
|
|
813
827
|
- export DOCKER_REGISTRY="$CI_REGISTRY"
|
|
@@ -815,7 +829,7 @@ app 🧪 test:
|
|
|
815
829
|
- export DOCKER_IMAGE_NAME="stage/app"
|
|
816
830
|
- export DOCKER_IMAGE="$CI_REGISTRY_IMAGE/$DOCKER_IMAGE_NAME"
|
|
817
831
|
- export DOCKER_IMAGE_TAG="$CI_COMMIT_SHA"
|
|
818
|
-
-
|
|
832
|
+
- collapseable_section_end "injectvars"
|
|
819
833
|
- docker login --username gitlab-ci-token --password $CI_JOB_TOKEN $CI_REGISTRY
|
|
820
834
|
- cd .
|
|
821
835
|
- docker pull $DOCKER_CACHE_IMAGE || true
|
|
@@ -833,8 +847,8 @@ app 🧪 test:
|
|
|
833
847
|
image: aquasec/trivy:0.38.3
|
|
834
848
|
variables: {}
|
|
835
849
|
script:
|
|
836
|
-
-
|
|
837
|
-
-
|
|
850
|
+
- collapseable_section_start "injectvars" "Injecting variables"
|
|
851
|
+
- collapseable_section_end "injectvars"
|
|
838
852
|
- trivy fs --quiet --format cyclonedx --output "__sbom.json" .
|
|
839
853
|
artifacts:
|
|
840
854
|
paths:
|
|
@@ -853,7 +867,7 @@ app 🧪 test:
|
|
|
853
867
|
KUBERNETES_MEMORY_REQUEST: 200Mi
|
|
854
868
|
KUBERNETES_MEMORY_LIMIT: 400Mi
|
|
855
869
|
script:
|
|
856
|
-
-
|
|
870
|
+
- collapseable_section_start "injectvars" "Injecting variables"
|
|
857
871
|
- export ENV_SHORT="stage"
|
|
858
872
|
- export APP_DIR="."
|
|
859
873
|
- export ENV_TYPE="stage"
|
|
@@ -861,8 +875,7 @@ app 🧪 test:
|
|
|
861
875
|
- export BUILD_INFO_BUILD_TIME="$CI_JOB_STARTED_AT"
|
|
862
876
|
- export BUILD_INFO_CURRENT_VERSION="$(tag=$(git ls-remote origin "refs/tags/v*[0-9]" 2>/dev/null | cut -f 2- | sort -V | tail -1 | sed 's/refs\\/tags\\/v//'); [ -z "$tag" ] && echo "0.0.0" || echo "$tag")"
|
|
863
877
|
- export ROOT_URL="https://app.stage.test-app.pan.panter.cloud"
|
|
864
|
-
- export
|
|
865
|
-
- export HOST_CANONICAL="app.stage.test-app.pan.panter.cloud"
|
|
878
|
+
- export HOSTNAME_INTERNAL="app.stage.test-app.pan.panter.cloud"
|
|
866
879
|
- export ROOT_URL_INTERNAL="https://app.stage.test-app.pan.panter.cloud"
|
|
867
880
|
- export KUBE_NAMESPACE="pan-test-app-stage"
|
|
868
881
|
- export KUBE_APP_NAME="app"
|
|
@@ -871,7 +884,7 @@ app 🧪 test:
|
|
|
871
884
|
- export POSTGRESQL_PASSWORD="$CL_stage_app_POSTGRESQL_PASSWORD"
|
|
872
885
|
- export cloudsqlProxyCredentials="$CL_stage_app_cloudsqlProxyCredentials"
|
|
873
886
|
- export RAILS_ENV="production"
|
|
874
|
-
- export _ALL_ENV_VAR_KEYS="[\\"ENV_SHORT\\",\\"APP_DIR\\",\\"ENV_TYPE\\",\\"BUILD_INFO_BUILD_ID\\",\\"BUILD_INFO_BUILD_TIME\\",\\"BUILD_INFO_CURRENT_VERSION\\",\\"ROOT_URL\\",\\"
|
|
887
|
+
- export _ALL_ENV_VAR_KEYS="[\\"ENV_SHORT\\",\\"APP_DIR\\",\\"ENV_TYPE\\",\\"BUILD_INFO_BUILD_ID\\",\\"BUILD_INFO_BUILD_TIME\\",\\"BUILD_INFO_CURRENT_VERSION\\",\\"ROOT_URL\\",\\"HOSTNAME_INTERNAL\\",\\"ROOT_URL_INTERNAL\\",\\"KUBE_NAMESPACE\\",\\"KUBE_APP_NAME\\",\\"KUBE_APP_NAME_PREFIX\\",\\"SECRET_KEY_BASE\\",\\"POSTGRESQL_PASSWORD\\",\\"cloudsqlProxyCredentials\\",\\"RAILS_ENV\\"]"
|
|
875
888
|
- export DOCKER_REGISTRY="$CI_REGISTRY"
|
|
876
889
|
- export DOCKER_CACHE_IMAGE="$CI_REGISTRY_IMAGE/caches/app"
|
|
877
890
|
- export DOCKER_IMAGE_NAME="stage/app"
|
|
@@ -883,23 +896,22 @@ app 🧪 test:
|
|
|
883
896
|
- export HELM_GITLAB_CHART_NAME="/helm-charts/the-panter-chart"
|
|
884
897
|
- export HELM_ARGS=""
|
|
885
898
|
- export COMPONENT_NAME="app"
|
|
886
|
-
-
|
|
887
|
-
- echo -e "\\e[0Ksection_end:$(date +%s):injectvars\\r\\e[0K"
|
|
899
|
+
- collapseable_section_end "injectvars"
|
|
888
900
|
- kubectl config set-cluster "kube-pan-test-app-stage-app" --server="$CL_stage_app_KUBE_URL" --certificate-authority <(echo $CL_stage_app_KUBE_CA_PEM | base64 -d) --embed-certs=true
|
|
889
901
|
- kubectl config set-credentials "kube-pan-test-app-stage-app" --token="$CL_stage_app_KUBE_TOKEN"
|
|
890
902
|
- kubectl config set-context "kube-pan-test-app-stage-app" --cluster="kube-pan-test-app-stage-app" --user="kube-pan-test-app-stage-app" --namespace="pan-test-app-stage"
|
|
891
903
|
- kubectl config use-context "kube-pan-test-app-stage-app"
|
|
892
|
-
-
|
|
904
|
+
- collapseable_section_start "writeallvalues" "Write __all_values.yml for helm deployment"
|
|
893
905
|
- |
|
|
894
906
|
cat > __all_values.yml <<EOF
|
|
895
907
|
env:
|
|
896
908
|
secret:
|
|
897
909
|
SECRET_KEY_BASE: |-
|
|
898
|
-
|
|
910
|
+
$(printf %s "$CL_stage_app_SECRET_KEY_BASE" | sed '1!s/^/ /')
|
|
899
911
|
POSTGRESQL_PASSWORD: |-
|
|
900
|
-
|
|
912
|
+
$(printf %s "$CL_stage_app_POSTGRESQL_PASSWORD" | sed '1!s/^/ /')
|
|
901
913
|
cloudsqlProxyCredentials: |-
|
|
902
|
-
|
|
914
|
+
$(printf %s "$CL_stage_app_cloudsqlProxyCredentials" | sed '1!s/^/ /')
|
|
903
915
|
public:
|
|
904
916
|
ENV_SHORT: |-
|
|
905
917
|
stage
|
|
@@ -908,16 +920,14 @@ app 🧪 test:
|
|
|
908
920
|
ENV_TYPE: |-
|
|
909
921
|
stage
|
|
910
922
|
BUILD_INFO_BUILD_ID: |-
|
|
911
|
-
|
|
923
|
+
$(printf %s "$(git describe --tags 2>/dev/null || git rev-parse HEAD)" | sed '1!s/^/ /')
|
|
912
924
|
BUILD_INFO_BUILD_TIME: |-
|
|
913
|
-
|
|
925
|
+
$(printf %s "$CI_JOB_STARTED_AT" | sed '1!s/^/ /')
|
|
914
926
|
BUILD_INFO_CURRENT_VERSION: |-
|
|
915
|
-
|
|
927
|
+
$(printf %s "$(tag=$(git ls-remote origin "refs/tags/v*[0-9]" 2>/dev/null | cut -f 2- | sort -V | tail -1 | sed 's/refs\\/tags\\/v//'); [ -z "$tag" ] && echo "0.0.0" || echo "$tag")" | sed '1!s/^/ /')
|
|
916
928
|
ROOT_URL: |-
|
|
917
929
|
https://app.stage.test-app.pan.panter.cloud
|
|
918
|
-
|
|
919
|
-
app.stage.test-app.pan.panter.cloud
|
|
920
|
-
HOST_CANONICAL: |-
|
|
930
|
+
HOSTNAME_INTERNAL: |-
|
|
921
931
|
app.stage.test-app.pan.panter.cloud
|
|
922
932
|
ROOT_URL_INTERNAL: |-
|
|
923
933
|
https://app.stage.test-app.pan.panter.cloud
|
|
@@ -929,7 +939,7 @@ app 🧪 test:
|
|
|
929
939
|
RAILS_ENV: |-
|
|
930
940
|
production
|
|
931
941
|
_ALL_ENV_VAR_KEYS: |-
|
|
932
|
-
["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_BUILD_ID","BUILD_INFO_BUILD_TIME","BUILD_INFO_CURRENT_VERSION","ROOT_URL","
|
|
942
|
+
["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_BUILD_ID","BUILD_INFO_BUILD_TIME","BUILD_INFO_CURRENT_VERSION","ROOT_URL","HOSTNAME_INTERNAL","ROOT_URL_INTERNAL","KUBE_NAMESPACE","KUBE_APP_NAME","KUBE_APP_NAME_PREFIX","SECRET_KEY_BASE","POSTGRESQL_PASSWORD","cloudsqlProxyCredentials","RAILS_ENV"]
|
|
933
943
|
application:
|
|
934
944
|
host: |-
|
|
935
945
|
app.stage.test-app.pan.panter.cloud
|
|
@@ -957,13 +967,13 @@ app 🧪 test:
|
|
|
957
967
|
dbUser: |-
|
|
958
968
|
postgres
|
|
959
969
|
instanceConnectionName: |-
|
|
960
|
-
|
|
970
|
+
myproject:europe-west6:instance-name
|
|
961
971
|
proxyCredentials: |-
|
|
962
972
|
$CL_stage_app_cloudsqlProxyCredentials
|
|
963
973
|
fullDbName: |-
|
|
964
|
-
app
|
|
965
|
-
|
|
966
|
-
|
|
974
|
+
pan-test-app-stage-app
|
|
975
|
+
type: |-
|
|
976
|
+
unmanaged
|
|
967
977
|
jobs:
|
|
968
978
|
db-migrate:
|
|
969
979
|
hook: |-
|
|
@@ -972,7 +982,7 @@ app 🧪 test:
|
|
|
972
982
|
launcher bundle exec rake db:migrate
|
|
973
983
|
|
|
974
984
|
EOF
|
|
975
|
-
-
|
|
985
|
+
- collapseable_section_end "writeallvalues"
|
|
976
986
|
- kubernetesCreateSecret
|
|
977
987
|
- kubernetesDeploy
|
|
978
988
|
- echo 'Uploading SBOM to Dependency Track'
|
|
@@ -1006,7 +1016,7 @@ app 🧪 test:
|
|
|
1006
1016
|
KUBERNETES_MEMORY_LIMIT: 400Mi
|
|
1007
1017
|
GIT_STRATEGY: none
|
|
1008
1018
|
script:
|
|
1009
|
-
-
|
|
1019
|
+
- collapseable_section_start "injectvars" "Injecting variables"
|
|
1010
1020
|
- export ENV_SHORT="stage"
|
|
1011
1021
|
- export APP_DIR="."
|
|
1012
1022
|
- export ENV_TYPE="stage"
|
|
@@ -1014,8 +1024,7 @@ app 🧪 test:
|
|
|
1014
1024
|
- export BUILD_INFO_BUILD_TIME="$CI_JOB_STARTED_AT"
|
|
1015
1025
|
- export BUILD_INFO_CURRENT_VERSION="$(tag=$(git ls-remote origin "refs/tags/v*[0-9]" 2>/dev/null | cut -f 2- | sort -V | tail -1 | sed 's/refs\\/tags\\/v//'); [ -z "$tag" ] && echo "0.0.0" || echo "$tag")"
|
|
1016
1026
|
- export ROOT_URL="https://app.stage.test-app.pan.panter.cloud"
|
|
1017
|
-
- export
|
|
1018
|
-
- export HOST_CANONICAL="app.stage.test-app.pan.panter.cloud"
|
|
1027
|
+
- export HOSTNAME_INTERNAL="app.stage.test-app.pan.panter.cloud"
|
|
1019
1028
|
- export ROOT_URL_INTERNAL="https://app.stage.test-app.pan.panter.cloud"
|
|
1020
1029
|
- export KUBE_NAMESPACE="pan-test-app-stage"
|
|
1021
1030
|
- export KUBE_APP_NAME="app"
|
|
@@ -1024,15 +1033,14 @@ app 🧪 test:
|
|
|
1024
1033
|
- export POSTGRESQL_PASSWORD="$CL_stage_app_POSTGRESQL_PASSWORD"
|
|
1025
1034
|
- export cloudsqlProxyCredentials="$CL_stage_app_cloudsqlProxyCredentials"
|
|
1026
1035
|
- export RAILS_ENV="production"
|
|
1027
|
-
- export _ALL_ENV_VAR_KEYS="[\\"ENV_SHORT\\",\\"APP_DIR\\",\\"ENV_TYPE\\",\\"BUILD_INFO_BUILD_ID\\",\\"BUILD_INFO_BUILD_TIME\\",\\"BUILD_INFO_CURRENT_VERSION\\",\\"ROOT_URL\\",\\"
|
|
1036
|
+
- export _ALL_ENV_VAR_KEYS="[\\"ENV_SHORT\\",\\"APP_DIR\\",\\"ENV_TYPE\\",\\"BUILD_INFO_BUILD_ID\\",\\"BUILD_INFO_BUILD_TIME\\",\\"BUILD_INFO_CURRENT_VERSION\\",\\"ROOT_URL\\",\\"HOSTNAME_INTERNAL\\",\\"ROOT_URL_INTERNAL\\",\\"KUBE_NAMESPACE\\",\\"KUBE_APP_NAME\\",\\"KUBE_APP_NAME_PREFIX\\",\\"SECRET_KEY_BASE\\",\\"POSTGRESQL_PASSWORD\\",\\"cloudsqlProxyCredentials\\",\\"RAILS_ENV\\"]"
|
|
1028
1037
|
- export RELEASE_NAME="pan-test-app-stage-app"
|
|
1029
1038
|
- export HELM_EXPERIMENTAL_OCI="1"
|
|
1030
1039
|
- export KUBE_DOCKER_IMAGE_PULL_SECRET="gitlab-registry-app"
|
|
1031
1040
|
- export HELM_GITLAB_CHART_NAME="/helm-charts/the-panter-chart"
|
|
1032
1041
|
- export HELM_ARGS=""
|
|
1033
1042
|
- export COMPONENT_NAME="app"
|
|
1034
|
-
-
|
|
1035
|
-
- echo -e "\\e[0Ksection_end:$(date +%s):injectvars\\r\\e[0K"
|
|
1043
|
+
- collapseable_section_end "injectvars"
|
|
1036
1044
|
- kubectl config set-cluster "kube-pan-test-app-stage-app" --server="$CL_stage_app_KUBE_URL" --certificate-authority <(echo $CL_stage_app_KUBE_CA_PEM | base64 -d) --embed-certs=true
|
|
1037
1045
|
- kubectl config set-credentials "kube-pan-test-app-stage-app" --token="$CL_stage_app_KUBE_TOKEN"
|
|
1038
1046
|
- kubectl config set-context "kube-pan-test-app-stage-app" --cluster="kube-pan-test-app-stage-app" --user="kube-pan-test-app-stage-app" --namespace="pan-test-app-stage"
|
|
@@ -1066,7 +1074,7 @@ app 🧪 test:
|
|
|
1066
1074
|
KUBERNETES_MEMORY_LIMIT: 400Mi
|
|
1067
1075
|
GIT_STRATEGY: none
|
|
1068
1076
|
script:
|
|
1069
|
-
-
|
|
1077
|
+
- collapseable_section_start "injectvars" "Injecting variables"
|
|
1070
1078
|
- export ENV_SHORT="stage"
|
|
1071
1079
|
- export APP_DIR="."
|
|
1072
1080
|
- export ENV_TYPE="stage"
|
|
@@ -1074,8 +1082,7 @@ app 🧪 test:
|
|
|
1074
1082
|
- export BUILD_INFO_BUILD_TIME="$CI_JOB_STARTED_AT"
|
|
1075
1083
|
- export BUILD_INFO_CURRENT_VERSION="$(tag=$(git ls-remote origin "refs/tags/v*[0-9]" 2>/dev/null | cut -f 2- | sort -V | tail -1 | sed 's/refs\\/tags\\/v//'); [ -z "$tag" ] && echo "0.0.0" || echo "$tag")"
|
|
1076
1084
|
- export ROOT_URL="https://app.stage.test-app.pan.panter.cloud"
|
|
1077
|
-
- export
|
|
1078
|
-
- export HOST_CANONICAL="app.stage.test-app.pan.panter.cloud"
|
|
1085
|
+
- export HOSTNAME_INTERNAL="app.stage.test-app.pan.panter.cloud"
|
|
1079
1086
|
- export ROOT_URL_INTERNAL="https://app.stage.test-app.pan.panter.cloud"
|
|
1080
1087
|
- export KUBE_NAMESPACE="pan-test-app-stage"
|
|
1081
1088
|
- export KUBE_APP_NAME="app"
|
|
@@ -1084,15 +1091,14 @@ app 🧪 test:
|
|
|
1084
1091
|
- export POSTGRESQL_PASSWORD="$CL_stage_app_POSTGRESQL_PASSWORD"
|
|
1085
1092
|
- export cloudsqlProxyCredentials="$CL_stage_app_cloudsqlProxyCredentials"
|
|
1086
1093
|
- export RAILS_ENV="production"
|
|
1087
|
-
- export _ALL_ENV_VAR_KEYS="[\\"ENV_SHORT\\",\\"APP_DIR\\",\\"ENV_TYPE\\",\\"BUILD_INFO_BUILD_ID\\",\\"BUILD_INFO_BUILD_TIME\\",\\"BUILD_INFO_CURRENT_VERSION\\",\\"ROOT_URL\\",\\"
|
|
1094
|
+
- export _ALL_ENV_VAR_KEYS="[\\"ENV_SHORT\\",\\"APP_DIR\\",\\"ENV_TYPE\\",\\"BUILD_INFO_BUILD_ID\\",\\"BUILD_INFO_BUILD_TIME\\",\\"BUILD_INFO_CURRENT_VERSION\\",\\"ROOT_URL\\",\\"HOSTNAME_INTERNAL\\",\\"ROOT_URL_INTERNAL\\",\\"KUBE_NAMESPACE\\",\\"KUBE_APP_NAME\\",\\"KUBE_APP_NAME_PREFIX\\",\\"SECRET_KEY_BASE\\",\\"POSTGRESQL_PASSWORD\\",\\"cloudsqlProxyCredentials\\",\\"RAILS_ENV\\"]"
|
|
1088
1095
|
- export RELEASE_NAME="pan-test-app-stage-app"
|
|
1089
1096
|
- export HELM_EXPERIMENTAL_OCI="1"
|
|
1090
1097
|
- export KUBE_DOCKER_IMAGE_PULL_SECRET="gitlab-registry-app"
|
|
1091
1098
|
- export HELM_GITLAB_CHART_NAME="/helm-charts/the-panter-chart"
|
|
1092
1099
|
- export HELM_ARGS=""
|
|
1093
1100
|
- export COMPONENT_NAME="app"
|
|
1094
|
-
-
|
|
1095
|
-
- echo -e "\\e[0Ksection_end:$(date +%s):injectvars\\r\\e[0K"
|
|
1101
|
+
- collapseable_section_end "injectvars"
|
|
1096
1102
|
- kubectl config set-cluster "kube-pan-test-app-stage-app" --server="$CL_stage_app_KUBE_URL" --certificate-authority <(echo $CL_stage_app_KUBE_CA_PEM | base64 -d) --embed-certs=true
|
|
1097
1103
|
- kubectl config set-credentials "kube-pan-test-app-stage-app" --token="$CL_stage_app_KUBE_TOKEN"
|
|
1098
1104
|
- kubectl config set-context "kube-pan-test-app-stage-app" --cluster="kube-pan-test-app-stage-app" --user="kube-pan-test-app-stage-app" --namespace="pan-test-app-stage"
|
|
@@ -1130,7 +1136,7 @@ app 🧪 test:
|
|
|
1130
1136
|
KUBERNETES_MEMORY_REQUEST: 1Gi
|
|
1131
1137
|
KUBERNETES_MEMORY_LIMIT: 2Gi
|
|
1132
1138
|
script:
|
|
1133
|
-
-
|
|
1139
|
+
- collapseable_section_start "injectvars" "Injecting variables"
|
|
1134
1140
|
- export APP_DIR="."
|
|
1135
1141
|
- export DOCKER_BUILD_CONTEXT="."
|
|
1136
1142
|
- export DOCKER_REGISTRY="$CI_REGISTRY"
|
|
@@ -1138,7 +1144,7 @@ app 🧪 test:
|
|
|
1138
1144
|
- export DOCKER_IMAGE_NAME="prod/app"
|
|
1139
1145
|
- export DOCKER_IMAGE="$CI_REGISTRY_IMAGE/$DOCKER_IMAGE_NAME"
|
|
1140
1146
|
- export DOCKER_IMAGE_TAG="$CI_COMMIT_SHA"
|
|
1141
|
-
-
|
|
1147
|
+
- collapseable_section_end "injectvars"
|
|
1142
1148
|
- docker login --username gitlab-ci-token --password $CI_JOB_TOKEN $CI_REGISTRY
|
|
1143
1149
|
- cd .
|
|
1144
1150
|
- docker pull $DOCKER_CACHE_IMAGE || true
|
|
@@ -1156,8 +1162,8 @@ app 🧪 test:
|
|
|
1156
1162
|
image: aquasec/trivy:0.38.3
|
|
1157
1163
|
variables: {}
|
|
1158
1164
|
script:
|
|
1159
|
-
-
|
|
1160
|
-
-
|
|
1165
|
+
- collapseable_section_start "injectvars" "Injecting variables"
|
|
1166
|
+
- collapseable_section_end "injectvars"
|
|
1161
1167
|
- trivy fs --quiet --format cyclonedx --output "__sbom.json" .
|
|
1162
1168
|
artifacts:
|
|
1163
1169
|
paths:
|
|
@@ -1176,7 +1182,7 @@ app 🧪 test:
|
|
|
1176
1182
|
KUBERNETES_MEMORY_REQUEST: 200Mi
|
|
1177
1183
|
KUBERNETES_MEMORY_LIMIT: 400Mi
|
|
1178
1184
|
script:
|
|
1179
|
-
-
|
|
1185
|
+
- collapseable_section_start "injectvars" "Injecting variables"
|
|
1180
1186
|
- export ENV_SHORT="prod"
|
|
1181
1187
|
- export APP_DIR="."
|
|
1182
1188
|
- export ENV_TYPE="prod"
|
|
@@ -1184,8 +1190,7 @@ app 🧪 test:
|
|
|
1184
1190
|
- export BUILD_INFO_BUILD_TIME="$CI_JOB_STARTED_AT"
|
|
1185
1191
|
- export BUILD_INFO_CURRENT_VERSION="$(tag=$(git ls-remote origin "refs/tags/v*[0-9]" 2>/dev/null | cut -f 2- | sort -V | tail -1 | sed 's/refs\\/tags\\/v//'); [ -z "$tag" ] && echo "0.0.0" || echo "$tag")"
|
|
1186
1192
|
- export ROOT_URL="https://my-fancy-website.com"
|
|
1187
|
-
- export
|
|
1188
|
-
- export HOST_CANONICAL="app.prod.test-app.pan.panter.cloud"
|
|
1193
|
+
- export HOSTNAME_INTERNAL="app.prod.test-app.pan.panter.cloud"
|
|
1189
1194
|
- export ROOT_URL_INTERNAL="https://app.prod.test-app.pan.panter.cloud"
|
|
1190
1195
|
- export KUBE_NAMESPACE="pan-test-app-prod"
|
|
1191
1196
|
- export KUBE_APP_NAME="app"
|
|
@@ -1194,7 +1199,7 @@ app 🧪 test:
|
|
|
1194
1199
|
- export POSTGRESQL_PASSWORD="$CL_prod_app_POSTGRESQL_PASSWORD"
|
|
1195
1200
|
- export cloudsqlProxyCredentials="$CL_prod_app_cloudsqlProxyCredentials"
|
|
1196
1201
|
- export RAILS_ENV="production"
|
|
1197
|
-
- export _ALL_ENV_VAR_KEYS="[\\"ENV_SHORT\\",\\"APP_DIR\\",\\"ENV_TYPE\\",\\"BUILD_INFO_BUILD_ID\\",\\"BUILD_INFO_BUILD_TIME\\",\\"BUILD_INFO_CURRENT_VERSION\\",\\"ROOT_URL\\",\\"
|
|
1202
|
+
- export _ALL_ENV_VAR_KEYS="[\\"ENV_SHORT\\",\\"APP_DIR\\",\\"ENV_TYPE\\",\\"BUILD_INFO_BUILD_ID\\",\\"BUILD_INFO_BUILD_TIME\\",\\"BUILD_INFO_CURRENT_VERSION\\",\\"ROOT_URL\\",\\"HOSTNAME_INTERNAL\\",\\"ROOT_URL_INTERNAL\\",\\"KUBE_NAMESPACE\\",\\"KUBE_APP_NAME\\",\\"KUBE_APP_NAME_PREFIX\\",\\"SECRET_KEY_BASE\\",\\"POSTGRESQL_PASSWORD\\",\\"cloudsqlProxyCredentials\\",\\"RAILS_ENV\\"]"
|
|
1198
1203
|
- export DOCKER_REGISTRY="$CI_REGISTRY"
|
|
1199
1204
|
- export DOCKER_CACHE_IMAGE="$CI_REGISTRY_IMAGE/caches/app"
|
|
1200
1205
|
- export DOCKER_IMAGE_NAME="prod/app"
|
|
@@ -1206,23 +1211,22 @@ app 🧪 test:
|
|
|
1206
1211
|
- export HELM_GITLAB_CHART_NAME="/helm-charts/the-panter-chart"
|
|
1207
1212
|
- export HELM_ARGS=""
|
|
1208
1213
|
- export COMPONENT_NAME="app"
|
|
1209
|
-
-
|
|
1210
|
-
- echo -e "\\e[0Ksection_end:$(date +%s):injectvars\\r\\e[0K"
|
|
1214
|
+
- collapseable_section_end "injectvars"
|
|
1211
1215
|
- kubectl config set-cluster "kube-pan-test-app-prod-app" --server="$CL_prod_app_KUBE_URL" --certificate-authority <(echo $CL_prod_app_KUBE_CA_PEM | base64 -d) --embed-certs=true
|
|
1212
1216
|
- kubectl config set-credentials "kube-pan-test-app-prod-app" --token="$CL_prod_app_KUBE_TOKEN"
|
|
1213
1217
|
- kubectl config set-context "kube-pan-test-app-prod-app" --cluster="kube-pan-test-app-prod-app" --user="kube-pan-test-app-prod-app" --namespace="pan-test-app-prod"
|
|
1214
1218
|
- kubectl config use-context "kube-pan-test-app-prod-app"
|
|
1215
|
-
-
|
|
1219
|
+
- collapseable_section_start "writeallvalues" "Write __all_values.yml for helm deployment"
|
|
1216
1220
|
- |
|
|
1217
1221
|
cat > __all_values.yml <<EOF
|
|
1218
1222
|
env:
|
|
1219
1223
|
secret:
|
|
1220
1224
|
SECRET_KEY_BASE: |-
|
|
1221
|
-
|
|
1225
|
+
$(printf %s "$CL_prod_app_SECRET_KEY_BASE" | sed '1!s/^/ /')
|
|
1222
1226
|
POSTGRESQL_PASSWORD: |-
|
|
1223
|
-
|
|
1227
|
+
$(printf %s "$CL_prod_app_POSTGRESQL_PASSWORD" | sed '1!s/^/ /')
|
|
1224
1228
|
cloudsqlProxyCredentials: |-
|
|
1225
|
-
|
|
1229
|
+
$(printf %s "$CL_prod_app_cloudsqlProxyCredentials" | sed '1!s/^/ /')
|
|
1226
1230
|
public:
|
|
1227
1231
|
ENV_SHORT: |-
|
|
1228
1232
|
prod
|
|
@@ -1231,16 +1235,14 @@ app 🧪 test:
|
|
|
1231
1235
|
ENV_TYPE: |-
|
|
1232
1236
|
prod
|
|
1233
1237
|
BUILD_INFO_BUILD_ID: |-
|
|
1234
|
-
|
|
1238
|
+
$(printf %s "$(git describe --tags 2>/dev/null || git rev-parse HEAD)" | sed '1!s/^/ /')
|
|
1235
1239
|
BUILD_INFO_BUILD_TIME: |-
|
|
1236
|
-
|
|
1240
|
+
$(printf %s "$CI_JOB_STARTED_AT" | sed '1!s/^/ /')
|
|
1237
1241
|
BUILD_INFO_CURRENT_VERSION: |-
|
|
1238
|
-
|
|
1242
|
+
$(printf %s "$(tag=$(git ls-remote origin "refs/tags/v*[0-9]" 2>/dev/null | cut -f 2- | sort -V | tail -1 | sed 's/refs\\/tags\\/v//'); [ -z "$tag" ] && echo "0.0.0" || echo "$tag")" | sed '1!s/^/ /')
|
|
1239
1243
|
ROOT_URL: |-
|
|
1240
1244
|
https://my-fancy-website.com
|
|
1241
|
-
|
|
1242
|
-
app.prod.test-app.pan.panter.cloud
|
|
1243
|
-
HOST_CANONICAL: |-
|
|
1245
|
+
HOSTNAME_INTERNAL: |-
|
|
1244
1246
|
app.prod.test-app.pan.panter.cloud
|
|
1245
1247
|
ROOT_URL_INTERNAL: |-
|
|
1246
1248
|
https://app.prod.test-app.pan.panter.cloud
|
|
@@ -1252,7 +1254,7 @@ app 🧪 test:
|
|
|
1252
1254
|
RAILS_ENV: |-
|
|
1253
1255
|
production
|
|
1254
1256
|
_ALL_ENV_VAR_KEYS: |-
|
|
1255
|
-
["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_BUILD_ID","BUILD_INFO_BUILD_TIME","BUILD_INFO_CURRENT_VERSION","ROOT_URL","
|
|
1257
|
+
["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_BUILD_ID","BUILD_INFO_BUILD_TIME","BUILD_INFO_CURRENT_VERSION","ROOT_URL","HOSTNAME_INTERNAL","ROOT_URL_INTERNAL","KUBE_NAMESPACE","KUBE_APP_NAME","KUBE_APP_NAME_PREFIX","SECRET_KEY_BASE","POSTGRESQL_PASSWORD","cloudsqlProxyCredentials","RAILS_ENV"]
|
|
1256
1258
|
application:
|
|
1257
1259
|
host: |-
|
|
1258
1260
|
my-fancy-website.com
|
|
@@ -1280,13 +1282,13 @@ app 🧪 test:
|
|
|
1280
1282
|
dbUser: |-
|
|
1281
1283
|
postgres
|
|
1282
1284
|
instanceConnectionName: |-
|
|
1283
|
-
|
|
1285
|
+
myproject:europe-west6:instance-name
|
|
1284
1286
|
proxyCredentials: |-
|
|
1285
1287
|
$CL_prod_app_cloudsqlProxyCredentials
|
|
1286
1288
|
fullDbName: |-
|
|
1287
|
-
app
|
|
1288
|
-
|
|
1289
|
-
|
|
1289
|
+
pan-test-app-prod-app
|
|
1290
|
+
type: |-
|
|
1291
|
+
unmanaged
|
|
1290
1292
|
jobs:
|
|
1291
1293
|
db-migrate:
|
|
1292
1294
|
hook: |-
|
|
@@ -1295,7 +1297,7 @@ app 🧪 test:
|
|
|
1295
1297
|
launcher bundle exec rake db:migrate
|
|
1296
1298
|
|
|
1297
1299
|
EOF
|
|
1298
|
-
-
|
|
1300
|
+
- collapseable_section_end "writeallvalues"
|
|
1299
1301
|
- kubernetesCreateSecret
|
|
1300
1302
|
- kubernetesDeploy
|
|
1301
1303
|
- echo 'Uploading SBOM to Dependency Track'
|
|
@@ -1329,7 +1331,7 @@ app 🧪 test:
|
|
|
1329
1331
|
KUBERNETES_MEMORY_LIMIT: 400Mi
|
|
1330
1332
|
GIT_STRATEGY: none
|
|
1331
1333
|
script:
|
|
1332
|
-
-
|
|
1334
|
+
- collapseable_section_start "injectvars" "Injecting variables"
|
|
1333
1335
|
- export ENV_SHORT="prod"
|
|
1334
1336
|
- export APP_DIR="."
|
|
1335
1337
|
- export ENV_TYPE="prod"
|
|
@@ -1337,8 +1339,7 @@ app 🧪 test:
|
|
|
1337
1339
|
- export BUILD_INFO_BUILD_TIME="$CI_JOB_STARTED_AT"
|
|
1338
1340
|
- export BUILD_INFO_CURRENT_VERSION="$(tag=$(git ls-remote origin "refs/tags/v*[0-9]" 2>/dev/null | cut -f 2- | sort -V | tail -1 | sed 's/refs\\/tags\\/v//'); [ -z "$tag" ] && echo "0.0.0" || echo "$tag")"
|
|
1339
1341
|
- export ROOT_URL="https://my-fancy-website.com"
|
|
1340
|
-
- export
|
|
1341
|
-
- export HOST_CANONICAL="app.prod.test-app.pan.panter.cloud"
|
|
1342
|
+
- export HOSTNAME_INTERNAL="app.prod.test-app.pan.panter.cloud"
|
|
1342
1343
|
- export ROOT_URL_INTERNAL="https://app.prod.test-app.pan.panter.cloud"
|
|
1343
1344
|
- export KUBE_NAMESPACE="pan-test-app-prod"
|
|
1344
1345
|
- export KUBE_APP_NAME="app"
|
|
@@ -1347,15 +1348,14 @@ app 🧪 test:
|
|
|
1347
1348
|
- export POSTGRESQL_PASSWORD="$CL_prod_app_POSTGRESQL_PASSWORD"
|
|
1348
1349
|
- export cloudsqlProxyCredentials="$CL_prod_app_cloudsqlProxyCredentials"
|
|
1349
1350
|
- export RAILS_ENV="production"
|
|
1350
|
-
- export _ALL_ENV_VAR_KEYS="[\\"ENV_SHORT\\",\\"APP_DIR\\",\\"ENV_TYPE\\",\\"BUILD_INFO_BUILD_ID\\",\\"BUILD_INFO_BUILD_TIME\\",\\"BUILD_INFO_CURRENT_VERSION\\",\\"ROOT_URL\\",\\"
|
|
1351
|
+
- export _ALL_ENV_VAR_KEYS="[\\"ENV_SHORT\\",\\"APP_DIR\\",\\"ENV_TYPE\\",\\"BUILD_INFO_BUILD_ID\\",\\"BUILD_INFO_BUILD_TIME\\",\\"BUILD_INFO_CURRENT_VERSION\\",\\"ROOT_URL\\",\\"HOSTNAME_INTERNAL\\",\\"ROOT_URL_INTERNAL\\",\\"KUBE_NAMESPACE\\",\\"KUBE_APP_NAME\\",\\"KUBE_APP_NAME_PREFIX\\",\\"SECRET_KEY_BASE\\",\\"POSTGRESQL_PASSWORD\\",\\"cloudsqlProxyCredentials\\",\\"RAILS_ENV\\"]"
|
|
1351
1352
|
- export RELEASE_NAME="pan-test-app-prod-app"
|
|
1352
1353
|
- export HELM_EXPERIMENTAL_OCI="1"
|
|
1353
1354
|
- export KUBE_DOCKER_IMAGE_PULL_SECRET="gitlab-registry-app"
|
|
1354
1355
|
- export HELM_GITLAB_CHART_NAME="/helm-charts/the-panter-chart"
|
|
1355
1356
|
- export HELM_ARGS=""
|
|
1356
1357
|
- export COMPONENT_NAME="app"
|
|
1357
|
-
-
|
|
1358
|
-
- echo -e "\\e[0Ksection_end:$(date +%s):injectvars\\r\\e[0K"
|
|
1358
|
+
- collapseable_section_end "injectvars"
|
|
1359
1359
|
- kubectl config set-cluster "kube-pan-test-app-prod-app" --server="$CL_prod_app_KUBE_URL" --certificate-authority <(echo $CL_prod_app_KUBE_CA_PEM | base64 -d) --embed-certs=true
|
|
1360
1360
|
- kubectl config set-credentials "kube-pan-test-app-prod-app" --token="$CL_prod_app_KUBE_TOKEN"
|
|
1361
1361
|
- kubectl config set-context "kube-pan-test-app-prod-app" --cluster="kube-pan-test-app-prod-app" --user="kube-pan-test-app-prod-app" --namespace="pan-test-app-prod"
|
|
@@ -1389,7 +1389,7 @@ app 🧪 test:
|
|
|
1389
1389
|
KUBERNETES_MEMORY_LIMIT: 400Mi
|
|
1390
1390
|
GIT_STRATEGY: none
|
|
1391
1391
|
script:
|
|
1392
|
-
-
|
|
1392
|
+
- collapseable_section_start "injectvars" "Injecting variables"
|
|
1393
1393
|
- export ENV_SHORT="prod"
|
|
1394
1394
|
- export APP_DIR="."
|
|
1395
1395
|
- export ENV_TYPE="prod"
|
|
@@ -1397,8 +1397,7 @@ app 🧪 test:
|
|
|
1397
1397
|
- export BUILD_INFO_BUILD_TIME="$CI_JOB_STARTED_AT"
|
|
1398
1398
|
- export BUILD_INFO_CURRENT_VERSION="$(tag=$(git ls-remote origin "refs/tags/v*[0-9]" 2>/dev/null | cut -f 2- | sort -V | tail -1 | sed 's/refs\\/tags\\/v//'); [ -z "$tag" ] && echo "0.0.0" || echo "$tag")"
|
|
1399
1399
|
- export ROOT_URL="https://my-fancy-website.com"
|
|
1400
|
-
- export
|
|
1401
|
-
- export HOST_CANONICAL="app.prod.test-app.pan.panter.cloud"
|
|
1400
|
+
- export HOSTNAME_INTERNAL="app.prod.test-app.pan.panter.cloud"
|
|
1402
1401
|
- export ROOT_URL_INTERNAL="https://app.prod.test-app.pan.panter.cloud"
|
|
1403
1402
|
- export KUBE_NAMESPACE="pan-test-app-prod"
|
|
1404
1403
|
- export KUBE_APP_NAME="app"
|
|
@@ -1407,15 +1406,14 @@ app 🧪 test:
|
|
|
1407
1406
|
- export POSTGRESQL_PASSWORD="$CL_prod_app_POSTGRESQL_PASSWORD"
|
|
1408
1407
|
- export cloudsqlProxyCredentials="$CL_prod_app_cloudsqlProxyCredentials"
|
|
1409
1408
|
- export RAILS_ENV="production"
|
|
1410
|
-
- export _ALL_ENV_VAR_KEYS="[\\"ENV_SHORT\\",\\"APP_DIR\\",\\"ENV_TYPE\\",\\"BUILD_INFO_BUILD_ID\\",\\"BUILD_INFO_BUILD_TIME\\",\\"BUILD_INFO_CURRENT_VERSION\\",\\"ROOT_URL\\",\\"
|
|
1409
|
+
- export _ALL_ENV_VAR_KEYS="[\\"ENV_SHORT\\",\\"APP_DIR\\",\\"ENV_TYPE\\",\\"BUILD_INFO_BUILD_ID\\",\\"BUILD_INFO_BUILD_TIME\\",\\"BUILD_INFO_CURRENT_VERSION\\",\\"ROOT_URL\\",\\"HOSTNAME_INTERNAL\\",\\"ROOT_URL_INTERNAL\\",\\"KUBE_NAMESPACE\\",\\"KUBE_APP_NAME\\",\\"KUBE_APP_NAME_PREFIX\\",\\"SECRET_KEY_BASE\\",\\"POSTGRESQL_PASSWORD\\",\\"cloudsqlProxyCredentials\\",\\"RAILS_ENV\\"]"
|
|
1411
1410
|
- export RELEASE_NAME="pan-test-app-prod-app"
|
|
1412
1411
|
- export HELM_EXPERIMENTAL_OCI="1"
|
|
1413
1412
|
- export KUBE_DOCKER_IMAGE_PULL_SECRET="gitlab-registry-app"
|
|
1414
1413
|
- export HELM_GITLAB_CHART_NAME="/helm-charts/the-panter-chart"
|
|
1415
1414
|
- export HELM_ARGS=""
|
|
1416
1415
|
- export COMPONENT_NAME="app"
|
|
1417
|
-
-
|
|
1418
|
-
- echo -e "\\e[0Ksection_end:$(date +%s):injectvars\\r\\e[0K"
|
|
1416
|
+
- collapseable_section_end "injectvars"
|
|
1419
1417
|
- kubectl config set-cluster "kube-pan-test-app-prod-app" --server="$CL_prod_app_KUBE_URL" --certificate-authority <(echo $CL_prod_app_KUBE_CA_PEM | base64 -d) --embed-certs=true
|
|
1420
1418
|
- kubectl config set-credentials "kube-pan-test-app-prod-app" --token="$CL_prod_app_KUBE_TOKEN"
|
|
1421
1419
|
- kubectl config set-context "kube-pan-test-app-prod-app" --cluster="kube-pan-test-app-prod-app" --user="kube-pan-test-app-prod-app" --namespace="pan-test-app-prod"
|