Skip to content

Commit 4faae6d

Browse files
feat: convert runtimeImages to map (#588)
1 parent 1230f4a commit 4faae6d

18 files changed

+434
-121
lines changed

charts/cf-runtime/Chart.yaml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
apiVersion: v2
22
description: A Helm chart for Codefresh Runner
33
name: cf-runtime
4-
version: 7.8.1
4+
version: 7.9.0
55
keywords:
66
- codefresh
77
- runner
@@ -18,7 +18,9 @@ annotations:
1818
# Supported kinds: `added`, `changed`, `deprecated`, `removed`, `fixed`, `security`:
1919
artifacthub.io/changes: |
2020
- kind: changed
21-
description: "Rename dind/engine ballast deployments"
21+
description: "Added ability to specify .Values.runtime.engine.runtimeImages as a maps with registry, repository, tag and digest."
22+
- kind: fixed
23+
description: "Fixed empty lines in misc templates."
2224
dependencies:
2325
- name: cf-common
2426
repository: oci://quay.io/codefresh/charts

charts/cf-runtime/README.md

Lines changed: 27 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
## Codefresh Runner
22

3-
![Version: 7.8.1](https://img.shields.io/badge/Version-7.8.1-informational?style=flat-square)
3+
![Version: 7.9.0](https://img.shields.io/badge/Version-7.9.0-informational?style=flat-square)
44

55
Helm chart for deploying [Codefresh Runner](https://codefresh.io/docs/docs/installation/codefresh-runner/) to Kubernetes.
66

@@ -18,6 +18,7 @@ Helm chart for deploying [Codefresh Runner](https://codefresh.io/docs/docs/insta
1818
- [To 5.x](#to-5-x)
1919
- [To 6.x](#to-6-x)
2020
- [To 7.x](#to-7-x)
21+
- [To 7.9.x](#to-7-9-x)
2122
- [Architecture](#architecture)
2223
- [Configuration](#configuration)
2324
- [EBS backend volume configuration in AWS](#ebs-backend-volume-configuration)
@@ -276,6 +277,30 @@ Which means any overrides for tags won't be used and underlying Kubernetes runti
276277

277278
See [Pull an image by digest (immutable identifier)](https://docs.docker.com/reference/cli/docker/image/pull/#pull-an-image-by-digest-immutable-identifier)
278279

280+
### To 7.9.x
281+
282+
We changed the type of `.Values.runtime.engine.runtimeImages` from key-value maps to a list of maps with `registry`, `repository`, `tag` and `digest` fields.
283+
284+
If you used this value, please migrate like below:
285+
286+
```yaml
287+
# before
288+
runtime:
289+
engine:
290+
runtimeImages:
291+
COMPOSE_IMAGE: quay.io/codefresh/compose:v2.37.0-1.5.4@sha256:e74494370100678ccb1c1058e6ef3ddcf67b21fcd37da8b3482376c8282549ad
292+
293+
# after
294+
runtime:
295+
engine:
296+
runtimeImages:
297+
compose:
298+
registry: quay.io
299+
repository: codefresh/compose
300+
tag: v2.37.0-1.5.4
301+
digest: sha256:e74494370100678ccb1c1058e6ef3ddcf67b21fcd37da8b3482376c8282549ad
302+
```
303+
279304
## Architecture
280305

281306
[Codefresh Runner architecture](https://codefresh.io/docs/docs/installation/codefresh-runner/#codefresh-runner-architecture)
@@ -1223,7 +1248,7 @@ Go to [https://<YOUR_ONPREM_DOMAIN_HERE>/admin/runtime-environments/system](http
12231248
| runtime.dind.userVolumeMounts | object | `{}` | Add extra volume mounts |
12241249
| runtime.dind.userVolumes | object | `{}` | Add extra volumes |
12251250
| runtime.dindDaemon | object | See below | DinD pod daemon config |
1226-
| runtime.engine | object | `{"affinity":{},"command":["npm","run","start"],"env":{"CONTAINER_LOGGER_EXEC_CHECK_INTERVAL_MS":1000,"DOCKER_REQUEST_TIMEOUT_MS":30000,"FORCE_COMPOSE_SERIAL_PULL":false,"LOGGER_LEVEL":"debug","LOG_OUTGOING_HTTP_REQUESTS":false,"METRICS_PROMETHEUS_COLLECT_PROCESS_METRICS":false,"METRICS_PROMETHEUS_ENABLED":true,"METRICS_PROMETHEUS_ENABLE_LEGACY_METRICS":false,"METRICS_PROMETHEUS_HOST":"0.0.0.0","METRICS_PROMETHEUS_PORT":9100,"METRICS_PROMETHEUS_SCRAPE_TIMEOUT":"15000","TRUSTED_QEMU_IMAGES":"tonistiigi/binfmt"},"image":{"digest":"sha256:a00c29cb523c18896b0e069624e8cc32f84450e495330a409620dbbcf1339c8e","pullPolicy":"IfNotPresent","registry":"quay.io","repository":"codefresh/engine","tag":"1.178.0"},"nodeSelector":{},"podAnnotations":{},"podLabels":{},"resources":{"limits":{"cpu":"1000m","memory":"2048Mi"},"requests":{"cpu":"100m","memory":"128Mi"}},"runtimeImages":{"COMPOSE_IMAGE":"quay.io/codefresh/compose:v2.37.0-1.5.4@sha256:e74494370100678ccb1c1058e6ef3ddcf67b21fcd37da8b3482376c8282549ad","CONTAINER_LOGGER_IMAGE":"quay.io/codefresh/cf-container-logger:1.12.5@sha256:9152151faf828dfd3bf52ea568b6d70bcc88ef99d5fa7d011f7b4d9beed652cc","COSIGN_IMAGE_SIGNER_IMAGE":"quay.io/codefresh/cf-cosign-image-signer:2.5.0-cf.1@sha256:f28c2f9f99cc963b190f260c3d5b7374512fcfb93cedf94ba7a0ea7caa2a5833","CR_6177_FIXER":"alpine:edge@sha256:115729ec5cb049ba6359c3ab005ac742012d92bbaa5b8bc1a878f1e8f62c0cb8","DEFAULT_QEMU_IMAGE":"tonistiigi/binfmt:qemu-v9.2.2@sha256:1b804311fe87047a4c96d38b4b3ef6f62fca8cd125265917a9e3dc3c996c39e6","DOCKER_BUILDER_IMAGE":"quay.io/codefresh/cf-docker-builder:1.4.6@sha256:94683c11ac66705ef752b7d4c7f8fb57445cb96d4f1425a52b5b3a9428ec852b","DOCKER_PULLER_IMAGE":"quay.io/codefresh/cf-docker-puller:8.0.21@sha256:fdcae9ab57fd5121409fd7f669795eda2ddcb94e4e50e08f4ff3830a9bf40064","DOCKER_PUSHER_IMAGE":"quay.io/codefresh/cf-docker-pusher:6.0.19@sha256:3753503dcfee41065ffa6ca1527453604ce69fbf31fce5d356d679bf26579417","DOCKER_TAG_PUSHER_IMAGE":"quay.io/codefresh/cf-docker-tag-pusher:1.3.17@sha256:d0f09428b74da4bcae581477db519e694669702bb42a55f4a7977014f2ed21b2","FS_OPS_IMAGE":"quay.io/codefresh/fs-ops:1.2.10@sha256:70d53821b9314d88e3571dfb096e8f577caf3e4c2199253621b8d0c85d20b8ad","GC_BUILDER_IMAGE":"quay.io/codefresh/cf-gc-builder:0.5.3@sha256:33ac914e6b844909f188a208cf90e569358cafa5aaa60f49848f49d99bcaf875","GIT_CLONE_IMAGE":"quay.io/codefresh/cf-git-cloner:10.3.1@sha256:2a7854d00287a181c056ea932652ec8a21300ff729d2e6f5f5b517cf4a3f0abf","KUBE_DEPLOY":"quay.io/codefresh/cf-deploy-kubernetes:16.2.9@sha256:35649b14eb43717d3752d08597ada77d3737b2508f1b8e1f52f67b7a0e5ff263","PIPELINE_DEBUGGER_IMAGE":"quay.io/codefresh/cf-debugger:1.3.9@sha256:37975653b4ef5378bd1e38d453c7dac4721cba1c1977a5ca6118a67b98a47925","TEMPLATE_ENGINE":"quay.io/codefresh/pikolo:0.14.6@sha256:b3f499fcf93037e69fba599d2f292cfc9f28a158052dd57d5de9cdf9756f1f60"},"runtimeImagesRegisty":"","schedulerName":"","serviceAccount":"codefresh-engine","terminationGracePeriodSeconds":180,"tolerations":[],"userEnvVars":[],"workflowLimits":{"MAXIMUM_ALLOWED_TIME_BEFORE_PRE_STEPS_SUCCESS":600,"MAXIMUM_ALLOWED_WORKFLOW_AGE_BEFORE_TERMINATION":86400,"MAXIMUM_ELECTED_STATE_AGE_ALLOWED":900,"MAXIMUM_RETRY_ATTEMPTS_ALLOWED":20,"MAXIMUM_TERMINATING_STATE_AGE_ALLOWED":900,"MAXIMUM_TERMINATING_STATE_AGE_ALLOWED_WITHOUT_UPDATE":300,"TIME_ENGINE_INACTIVE_UNTIL_TERMINATION":300,"TIME_ENGINE_INACTIVE_UNTIL_UNHEALTHY":60,"TIME_INACTIVE_UNTIL_TERMINATION":2700}}` | Parameters for Engine pod (aka "pipeline" orchestrator). |
1251+
| runtime.engine | object | `{"affinity":{},"command":["npm","run","start"],"env":{"CONTAINER_LOGGER_EXEC_CHECK_INTERVAL_MS":1000,"DOCKER_REQUEST_TIMEOUT_MS":30000,"FORCE_COMPOSE_SERIAL_PULL":false,"LOGGER_LEVEL":"debug","LOG_OUTGOING_HTTP_REQUESTS":false,"METRICS_PROMETHEUS_COLLECT_PROCESS_METRICS":false,"METRICS_PROMETHEUS_ENABLED":true,"METRICS_PROMETHEUS_ENABLE_LEGACY_METRICS":false,"METRICS_PROMETHEUS_HOST":"0.0.0.0","METRICS_PROMETHEUS_PORT":9100,"METRICS_PROMETHEUS_SCRAPE_TIMEOUT":"15000","TRUSTED_QEMU_IMAGES":"tonistiigi/binfmt"},"image":{"digest":"sha256:a00c29cb523c18896b0e069624e8cc32f84450e495330a409620dbbcf1339c8e","pullPolicy":"IfNotPresent","registry":"quay.io","repository":"codefresh/engine","tag":"1.178.0"},"nodeSelector":{},"podAnnotations":{},"podLabels":{},"resources":{"limits":{"cpu":"1000m","memory":"2048Mi"},"requests":{"cpu":"100m","memory":"128Mi"}},"runtimeImages":{"alpine":{"digest":"sha256:115729ec5cb049ba6359c3ab005ac742012d92bbaa5b8bc1a878f1e8f62c0cb8","registry":"docker.io","repository":"alpine","tag":"edge"},"compose":{"digest":"sha256:e74494370100678ccb1c1058e6ef3ddcf67b21fcd37da8b3482376c8282549ad","registry":"quay.io","repository":"codefresh/compose","tag":"v2.37.0-1.5.4"},"container-logger":{"digest":"sha256:9152151faf828dfd3bf52ea568b6d70bcc88ef99d5fa7d011f7b4d9beed652cc","registry":"quay.io","repository":"codefresh/cf-container-logger","tag":"1.12.5"},"cosign-image-signer":{"digest":"sha256:f28c2f9f99cc963b190f260c3d5b7374512fcfb93cedf94ba7a0ea7caa2a5833","registry":"quay.io","repository":"codefresh/cf-cosign-image-signer","tag":"2.5.0-cf.1"},"default-qemu":{"digest":"sha256:1b804311fe87047a4c96d38b4b3ef6f62fca8cd125265917a9e3dc3c996c39e6","registry":"docker.io","repository":"tonistiigi/binfmt","tag":"qemu-v9.2.2"},"docker-builder":{"digest":"sha256:94683c11ac66705ef752b7d4c7f8fb57445cb96d4f1425a52b5b3a9428ec852b","registry":"quay.io","repository":"codefresh/cf-docker-builder","tag":"1.4.6"},"docker-puller":{"digest":"sha256:fdcae9ab57fd5121409fd7f669795eda2ddcb94e4e50e08f4ff3830a9bf40064","registry":"quay.io","repository":"codefresh/cf-docker-puller","tag":"8.0.21"},"docker-pusher":{"digest":"sha256:3753503dcfee41065ffa6ca1527453604ce69fbf31fce5d356d679bf26579417","registry":"quay.io","repository":"codefresh/cf-docker-pusher","tag":"6.0.19"},"docker-tag-pusher":{"digest":"sha256:d0f09428b74da4bcae581477db519e694669702bb42a55f4a7977014f2ed21b2","registry":"quay.io","repository":"codefresh/cf-docker-tag-pusher","tag":"1.3.17"},"fs-ops":{"digest":"sha256:70d53821b9314d88e3571dfb096e8f577caf3e4c2199253621b8d0c85d20b8ad","registry":"quay.io","repository":"codefresh/fs-ops","tag":"1.2.10"},"gc-builder":{"digest":"sha256:33ac914e6b844909f188a208cf90e569358cafa5aaa60f49848f49d99bcaf875","registry":"quay.io","repository":"codefresh/cf-gc-builder","tag":"0.5.3"},"git-cloner":{"digest":"sha256:2a7854d00287a181c056ea932652ec8a21300ff729d2e6f5f5b517cf4a3f0abf","registry":"quay.io","repository":"codefresh/cf-git-cloner","tag":"10.3.1"},"kube-deploy":{"digest":"sha256:35649b14eb43717d3752d08597ada77d3737b2508f1b8e1f52f67b7a0e5ff263","registry":"quay.io","repository":"codefresh/cf-deploy-kubernetes","tag":"16.2.9"},"pipeline-debugger":{"digest":"sha256:37975653b4ef5378bd1e38d453c7dac4721cba1c1977a5ca6118a67b98a47925","registry":"quay.io","repository":"codefresh/cf-debugger","tag":"1.3.9"},"template-engine":{"digest":"sha256:b3f499fcf93037e69fba599d2f292cfc9f28a158052dd57d5de9cdf9756f1f60","registry":"quay.io","repository":"codefresh/pikolo","tag":"0.14.6"}},"runtimeImagesRegisty":"","schedulerName":"","serviceAccount":"codefresh-engine","terminationGracePeriodSeconds":180,"tolerations":[],"userEnvVars":[],"workflowLimits":{"MAXIMUM_ALLOWED_TIME_BEFORE_PRE_STEPS_SUCCESS":600,"MAXIMUM_ALLOWED_WORKFLOW_AGE_BEFORE_TERMINATION":86400,"MAXIMUM_ELECTED_STATE_AGE_ALLOWED":900,"MAXIMUM_RETRY_ATTEMPTS_ALLOWED":20,"MAXIMUM_TERMINATING_STATE_AGE_ALLOWED":900,"MAXIMUM_TERMINATING_STATE_AGE_ALLOWED_WITHOUT_UPDATE":300,"TIME_ENGINE_INACTIVE_UNTIL_TERMINATION":300,"TIME_ENGINE_INACTIVE_UNTIL_UNHEALTHY":60,"TIME_INACTIVE_UNTIL_TERMINATION":2700}}` | Parameters for Engine pod (aka "pipeline" orchestrator). |
12271252
| runtime.engine.affinity | object | `{}` | Set affinity |
12281253
| runtime.engine.command | list | `["npm","run","start"]` | Set container command. |
12291254
| runtime.engine.env | object | `{"CONTAINER_LOGGER_EXEC_CHECK_INTERVAL_MS":1000,"DOCKER_REQUEST_TIMEOUT_MS":30000,"FORCE_COMPOSE_SERIAL_PULL":false,"LOGGER_LEVEL":"debug","LOG_OUTGOING_HTTP_REQUESTS":false,"METRICS_PROMETHEUS_COLLECT_PROCESS_METRICS":false,"METRICS_PROMETHEUS_ENABLED":true,"METRICS_PROMETHEUS_ENABLE_LEGACY_METRICS":false,"METRICS_PROMETHEUS_HOST":"0.0.0.0","METRICS_PROMETHEUS_PORT":9100,"METRICS_PROMETHEUS_SCRAPE_TIMEOUT":"15000","TRUSTED_QEMU_IMAGES":"tonistiigi/binfmt"}` | Set additional env vars. |

charts/cf-runtime/README.md.gotmpl

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ Helm chart for deploying [Codefresh Runner](https://codefresh.io/docs/docs/insta
1818
- [To 5.x](#to-5-x)
1919
- [To 6.x](#to-6-x)
2020
- [To 7.x](#to-7-x)
21+
- [To 7.9.x](#to-7-9-x)
2122
- [Architecture](#architecture)
2223
- [Configuration](#configuration)
2324
- [EBS backend volume configuration in AWS](#ebs-backend-volume-configuration)
@@ -276,7 +277,29 @@ Which means any overrides for tags won't be used and underlying Kubernetes runti
276277

277278
See [Pull an image by digest (immutable identifier)](https://docs.docker.com/reference/cli/docker/image/pull/#pull-an-image-by-digest-immutable-identifier)
278279

280+
### To 7.9.x
279281

282+
We changed the type of `.Values.runtime.engine.runtimeImages` from key-value maps to a list of maps with `registry`, `repository`, `tag` and `digest` fields.
283+
284+
If you used this value, please migrate like below:
285+
286+
```yaml
287+
# before
288+
runtime:
289+
engine:
290+
runtimeImages:
291+
COMPOSE_IMAGE: quay.io/codefresh/compose:v2.37.0-1.5.4@sha256:e74494370100678ccb1c1058e6ef3ddcf67b21fcd37da8b3482376c8282549ad
292+
293+
# after
294+
runtime:
295+
engine:
296+
runtimeImages:
297+
compose:
298+
registry: quay.io
299+
repository: codefresh/compose
300+
tag: v2.37.0-1.5.4
301+
digest: sha256:e74494370100678ccb1c1058e6ef3ddcf67b21fcd37da8b3482376c8282549ad
302+
```
280303

281304
## Architecture
282305

charts/cf-runtime/templates/_components/runner/_deployment.yaml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,8 @@ spec:
3535
- /bin/bash
3636
args:
3737
- -ec
38-
- | {{ .Files.Get "files/init-runtime.sh" | nindent 10 }}
38+
- |
39+
{{- .Files.Get "files/init-runtime.sh" | nindent 10 }}
3940
env:
4041
{{- include "runner-init.environment-variables" . | nindent 8 }}
4142
{{- with .Values.init.resources }}
@@ -76,7 +77,8 @@ spec:
7677
- /bin/bash
7778
args:
7879
- -ec
79-
- | {{ .Files.Get "files/reconcile-runtime.sh" | nindent 10 }}
80+
- |
81+
{{- .Files.Get "files/reconcile-runtime.sh" | nindent 10 }}
8082
env:
8183
{{- include "runner-sidecar.environment-variables" . | nindent 8 }}
8284
{{- with .Values.sidecar.resources }}
Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{{ $cfCommonTplSemver := printf "cf-common-%s" (index .Subcharts "cf-common").Chart.Version }}
2-
{{ $values := .Values.runtime.engine.runtimeImages }}
2+
{{ $images := .Values.runtime.engine.runtimeImages }}
33
---
44
kind: ConfigMap
55
apiVersion: v1
@@ -8,12 +8,10 @@ metadata:
88
name: {{ include "runtime.fullname" . }}-images
99
labels:
1010
{{- include "runtime.labels" . | nindent 4 }}
11-
annotations:
12-
{{- with $values.annotations }}
13-
{{- toYaml . | nindent 4 }}
14-
{{- end }}
1511
data:
1612
images: |
17-
{{- range $key, $val := $values }}
18-
image: {{ $val }}
13+
{{- range $key, $val := $images }}
14+
{{- if kindIs "map" $val }}
15+
image: {{ printf "%s/%s:%s@%s" $val.registry $val.repository $val.tag $val.digest }}
16+
{{- end }}
1917
{{- end }}

charts/cf-runtime/templates/hooks/post-install/job-gencerts-dind.yaml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,8 @@ spec:
4141
- "/bin/bash"
4242
args:
4343
- -ec
44-
- | {{ .Files.Get "files/configure-dind-certs.sh" | nindent 10 }}
44+
- |
45+
{{- .Files.Get "files/configure-dind-certs.sh" | nindent 10 }}
4546
env:
4647
- name: NAMESPACE
4748
value: {{ .Release.Namespace }}

charts/cf-runtime/templates/hooks/post-install/job-update-runtime.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ spec:
3939
args:
4040
- -ec
4141
- |
42-
{{ .Files.Get "files/patch-runtime.sh" | nindent 10 }}
42+
{{- .Files.Get "files/patch-runtime.sh" | nindent 10 }}
4343
env:
4444
- name: API_KEY
4545
{{- include "runtime.installation-token-env-var-value" . | indent 10}}

charts/cf-runtime/templates/hooks/pre-delete/job-cleanup-resources.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ spec:
4141
args:
4242
- -ec
4343
- |
44-
{{ .Files.Get "files/cleanup-runtime.sh" | nindent 10 }}
44+
{{- .Files.Get "files/cleanup-runtime.sh" | nindent 10 }}
4545
env:
4646
{{- if .Values.runtime.agent }}
4747
- name: AGENT_NAME

charts/cf-runtime/templates/runtime/cronjob-update-runtimes.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ spec:
4949
args:
5050
- -ec
5151
- |
52-
{{ .Files.Get "files/patch-runtime.sh" | nindent 14 }}
52+
{{- .Files.Get "files/patch-runtime.sh" | nindent 14 }}
5353
env:
5454
- name: API_KEY
5555
{{- include "runtime.installation-token-env-var-value" . | indent 14 }}

0 commit comments

Comments
 (0)