diff --git a/charts/cf-runtime/Chart.yaml b/charts/cf-runtime/Chart.yaml index b07b671c..09c4e6da 100644 --- a/charts/cf-runtime/Chart.yaml +++ b/charts/cf-runtime/Chart.yaml @@ -1,7 +1,7 @@ apiVersion: v2 description: A Helm chart for Codefresh Runner name: cf-runtime -version: 8.4.0 +version: 9.0.0 keywords: - codefresh - runner @@ -14,21 +14,28 @@ maintainers: url: https://codefresh-io.github.io/ annotations: # 💡 Do not forget to update this annotation: - artifacthub.io/containsSecurityUpdates: "false" + artifacthub.io/containsSecurityUpdates: "true" # Supported kinds: `added`, `changed`, `deprecated`, `removed`, `fixed`, `security`: artifacthub.io/changes: | - kind: changed - description: "Update \"cf-docker-builder\" to 1.5.2." + description: "Update \"cf-deploy-kubernetes\" to 17.0.0." + - kind: security + description: "Fix various CVE in \"cf-deploy-kubernetes\"." - kind: added - description: "Support \"progress: tty\" for build steps if BuildKit is enabled." - - kind: fixed - description: "Fix \"docker-container\" driver escaping desired control group on cgroup v2 in \"build\" step." - - kind: changed - description: "Update \"engine\" to 1.180.9." + description: "Support k8s 1.32, 1.33, 1.34 in \"deploy\" step." - kind: deprecated - description: "Remove Node.js package managers such as \"npm\" from the \"engine\" image." + description: "Remove support for k8s older than 1.32 in \"deploy\" step." + links: + - name: Codefresh Docs - Deploy + url: https://codefresh.io/docs/docs/pipelines/steps/deploy/ + - kind: changed + description: "Update \"cf-container-logger\" to 2.0.0." - kind: changed - description: "Do not use \"npm\" as the entrypoint for \"engine\"." + description: "Update \"engine\" to 2.0.0." + - kind: deprecated + description: "Remove deprecated Prometheus metrics controlled by env variables \"METRICS_PROMETHEUS_ENABLED\" and \"METRICS_PROMETHEUS_ENABLE_LEGACY_METRICS\"" + - kind: deprecated + description: "Remove \"codefresh.classic.build.deprecated_images.pulled\" OTel metric." dependencies: - name: cf-common repository: oci://quay.io/codefresh/charts diff --git a/charts/cf-runtime/README.md b/charts/cf-runtime/README.md index 296f1fb1..5bf1a1b8 100644 --- a/charts/cf-runtime/README.md +++ b/charts/cf-runtime/README.md @@ -1,6 +1,6 @@ ## Codefresh Runner -![Version: 8.4.0](https://img.shields.io/badge/Version-8.4.0-informational?style=flat-square) +![Version: 9.0.0](https://img.shields.io/badge/Version-9.0.0-informational?style=flat-square) Helm chart for deploying [Codefresh Runner](https://codefresh.io/docs/docs/installation/codefresh-runner/) to Kubernetes. @@ -21,6 +21,7 @@ Helm chart for deploying [Codefresh Runner](https://codefresh.io/docs/docs/insta - [To 7.9.x](#to-7-9-x) - [To 8.x](#to-8-x) - [To 8.2.x](#to-8-2-x) + - [To 9.x](#to-9-x) - [Architecture](#architecture) - [Configuration](#configuration) - [Runtime spec synchronization](#runtime-spec-synchronization) @@ -336,6 +337,14 @@ runtime: METRICS_PROMETHEUS_ENABLED: "true" # Enable old Prometheus metrics ``` +### To 9.x + +* **Removed**: `deploy` step ([docs](https://codefresh.io/docs/docs/pipelines/steps/deploy/)) drops support for Kubernetes versions older than 1.32. Supported versions are: 1.34, 1.33, 1.32. + +* **Removed**: Legacy Prometheus metrics emitted by the `engine` component and controlled by `METRICS_PROMETHEUS_ENABLED` and `METRICS_PROMETHEUS_ENABLE_LEGACY_METRICS` environment variables are dropped. Use modern OpenTelemetry-based metrics instead. See [To 8.2.x](#to-8-2-x) for more details. + +* **Removed**: OTel metric `codefresh.classic.build.deprecated_images.pulled` emitted by the `engine` component is dropped. + ## Architecture [Codefresh Runner architecture](https://codefresh.io/docs/docs/installation/codefresh-runner/#codefresh-runner-architecture) @@ -1342,10 +1351,10 @@ Install the Helm chart | runtime.dind.userVolumeMounts | object | `{}` | Add extra volume mounts | | runtime.dind.userVolumes | object | `{}` | Add extra volumes | | runtime.dindDaemon | object | See below | DinD pod daemon config | -| runtime.engine | object | `{"affinity":{},"command":["node","dist/server/index.js"],"env":{"CF_TELEMETRY_LOGS_LEVEL":"debug","CF_TELEMETRY_OTEL_ALLOW_HTTP_INSTRUMENTATION":"false","CF_TELEMETRY_OTEL_ENABLE":"true","CF_TELEMETRY_PROMETHEUS_ENABLE":"false","CF_TELEMETRY_PROMETHEUS_ENABLE_PROCESS_METRICS":"false","CF_TELEMETRY_PROMETHEUS_HOST":"0.0.0.0","CF_TELEMETRY_PROMETHEUS_PORT":"9100","CF_TELEMETRY_PYROSCOPE_ENABLE":"false","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":false,"METRICS_PROMETHEUS_ENABLE_LEGACY_METRICS":false,"METRICS_PROMETHEUS_HOST":"0.0.0.0","METRICS_PROMETHEUS_PORT":9100,"METRICS_PROMETHEUS_SCRAPE_TIMEOUT":"15000","METRICS_SCRAPE_TIMEOUT_MS":"0","OTEL_EXPORTER_OTLP_COMPRESSION":"gzip","OTEL_EXPORTER_OTLP_ENDPOINT":"http://localhost:4317","OTEL_EXPORTER_OTLP_PROTOCOL":"grpc","OTEL_EXPORTER_PROMETHEUS_HOST":"0.0.0.0","OTEL_EXPORTER_PROMETHEUS_PORT":"9464","OTEL_LOGS_EXPORTER":"none","OTEL_METRICS_EXPORTER":"otlp","OTEL_METRIC_EXPORT_INTERVAL":"10000","OTEL_METRIC_EXPORT_TIMEOUT":"5000","OTEL_SEMCONV_STABILITY_OPT_IN":"http","OTEL_TRACES_EXPORTER":"none","OTEL_TRACES_SAMPLER":"parentbased_always_on","PYROSCOPE_SERVER_ADDRESS":"","TRUSTED_QEMU_IMAGES":"tonistiigi/binfmt"},"image":{"digest":"sha256:946d9b718d92cfb10dabdd3c7f66b3be1056882e023d58da09a66f36af18e781","pullPolicy":"IfNotPresent","registry":"quay.io","repository":"codefresh/engine","tag":"1.180.9"},"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:19f212e9aee62f112f8a1df474122f850357f1c85521e804dcfc9a48b69a840f","registry":"quay.io","repository":"codefresh/compose","tag":"v2.37.0-1.5.6"},"container-logger":{"digest":"sha256:e2ccf1aab9dc118d91a449843842f5d19b4cd25731b5409de412b4ade7a2a524","registry":"quay.io","repository":"codefresh/cf-container-logger","tag":"1.13.3"},"cosign-image-signer":{"digest":"sha256:316cd24c623a26edc59e0f5d9a3fd6269a1307c74e11cf523efa3a42a5573fb5","registry":"quay.io","repository":"codefresh/cf-cosign-image-signer","tag":"2.5.2-cf.3"},"default-qemu":{"digest":"sha256:1b804311fe87047a4c96d38b4b3ef6f62fca8cd125265917a9e3dc3c996c39e6","registry":"docker.io","repository":"tonistiigi/binfmt","tag":"qemu-v9.2.2"},"docker-builder":{"digest":"sha256:aee6cd939ce17708c6d1022bec4d799dfbf81844a6a36ae5fe56e4308ad6d4b1","registry":"quay.io","repository":"codefresh/cf-docker-builder","tag":"1.5.2"},"docker-puller":{"digest":"sha256:09725c496f66cace02b523e1e3be7434519e751b5a1a5927c76cf95fbb0dc7d7","registry":"quay.io","repository":"codefresh/cf-docker-puller","tag":"8.0.24"},"docker-pusher":{"digest":"sha256:5bf734ffea8f3bb9cdafeabbdcff7f26a2db68552cf7a91d48a5eff2699a57a8","registry":"quay.io","repository":"codefresh/cf-docker-pusher","tag":"6.0.23"},"docker-tag-pusher":{"digest":"sha256:69b6154fe34cda7a48b2e44cfe7667acdd79a6a5901001b092f8cf485b75ff3f","registry":"quay.io","repository":"codefresh/cf-docker-tag-pusher","tag":"1.3.20"},"fs-ops":{"digest":"sha256:cade5ace4d05528dfd0cbdbb96bd99c6ccae79dfeebe14661a4b7808e2131dc9","registry":"quay.io","repository":"codefresh/fs-ops","tag":"1.2.11"},"gc-builder":{"digest":"sha256:383306f0775d70776f26284176c5cebd21784b371defecbf96e99b0b7bafe058","registry":"quay.io","repository":"codefresh/gcloud-builder","tag":"0.5.5"},"git-cloner":{"digest":"sha256:ce1e922b94bbf1e5bd224468a2ccfe969200661ca2b6f0182b26ee0ad06e1a6d","registry":"quay.io","repository":"codefresh/cf-git-cloner","tag":"10.3.4"},"kube-deploy":{"digest":"sha256:35649b14eb43717d3752d08597ada77d3737b2508f1b8e1f52f67b7a0e5ff263","registry":"quay.io","repository":"codefresh/cf-deploy-kubernetes","tag":"16.2.9"},"pipeline-debugger":{"digest":"sha256:7f8867af5fd402a98159d674c30965d67861a4dc37e429db3ff0746a6454f88f","registry":"quay.io","repository":"codefresh/cf-debugger","tag":"1.3.11"},"template-engine":{"digest":"sha256:37ec7bed4b09e4055c3600a7805f84e37cccf8d849fe0fdd5b29f079de15010c","registry":"quay.io","repository":"codefresh/pikolo","tag":"0.14.8"}},"runtimeImagesRegistry":"","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_POST_STEPS_GRACE_PERIOD_MINUTES":30,"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). | +| runtime.engine | object | `{"affinity":{},"command":["node","dist/server/index.js"],"env":{"CF_TELEMETRY_LOGS_LEVEL":"debug","CF_TELEMETRY_OTEL_ALLOW_HTTP_INSTRUMENTATION":"false","CF_TELEMETRY_OTEL_ENABLE":"true","CF_TELEMETRY_PROMETHEUS_ENABLE":"false","CF_TELEMETRY_PROMETHEUS_ENABLE_PROCESS_METRICS":"false","CF_TELEMETRY_PROMETHEUS_HOST":"0.0.0.0","CF_TELEMETRY_PROMETHEUS_PORT":"9100","CF_TELEMETRY_PYROSCOPE_ENABLE":"false","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_SCRAPE_TIMEOUT_MS":"0","OTEL_EXPORTER_OTLP_COMPRESSION":"gzip","OTEL_EXPORTER_OTLP_ENDPOINT":"http://localhost:4317","OTEL_EXPORTER_OTLP_PROTOCOL":"grpc","OTEL_EXPORTER_PROMETHEUS_HOST":"0.0.0.0","OTEL_EXPORTER_PROMETHEUS_PORT":"9464","OTEL_LOGS_EXPORTER":"none","OTEL_METRICS_EXPORTER":"otlp","OTEL_METRIC_EXPORT_INTERVAL":"10000","OTEL_METRIC_EXPORT_TIMEOUT":"5000","OTEL_SEMCONV_STABILITY_OPT_IN":"http","OTEL_TRACES_EXPORTER":"none","OTEL_TRACES_SAMPLER":"parentbased_always_on","PYROSCOPE_SERVER_ADDRESS":"","TRUSTED_QEMU_IMAGES":"tonistiigi/binfmt"},"image":{"digest":"sha256:ca1203291a7d36d4e34e8b4823549217fdaa68f8ded107869b396e38009ea962","pullPolicy":"IfNotPresent","registry":"quay.io","repository":"codefresh/engine","tag":"2.0.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:19f212e9aee62f112f8a1df474122f850357f1c85521e804dcfc9a48b69a840f","registry":"quay.io","repository":"codefresh/compose","tag":"v2.37.0-1.5.6"},"container-logger":{"digest":"sha256:6459db2d486f89457ce347ecc1dc037d39c43fb0c1fb67ea6e9d6743e104642f","registry":"quay.io","repository":"codefresh/cf-container-logger","tag":"2.0.0"},"cosign-image-signer":{"digest":"sha256:316cd24c623a26edc59e0f5d9a3fd6269a1307c74e11cf523efa3a42a5573fb5","registry":"quay.io","repository":"codefresh/cf-cosign-image-signer","tag":"2.5.2-cf.3"},"default-qemu":{"digest":"sha256:1b804311fe87047a4c96d38b4b3ef6f62fca8cd125265917a9e3dc3c996c39e6","registry":"docker.io","repository":"tonistiigi/binfmt","tag":"qemu-v9.2.2"},"docker-builder":{"digest":"sha256:aee6cd939ce17708c6d1022bec4d799dfbf81844a6a36ae5fe56e4308ad6d4b1","registry":"quay.io","repository":"codefresh/cf-docker-builder","tag":"1.5.2"},"docker-puller":{"digest":"sha256:09725c496f66cace02b523e1e3be7434519e751b5a1a5927c76cf95fbb0dc7d7","registry":"quay.io","repository":"codefresh/cf-docker-puller","tag":"8.0.24"},"docker-pusher":{"digest":"sha256:5bf734ffea8f3bb9cdafeabbdcff7f26a2db68552cf7a91d48a5eff2699a57a8","registry":"quay.io","repository":"codefresh/cf-docker-pusher","tag":"6.0.23"},"docker-tag-pusher":{"digest":"sha256:69b6154fe34cda7a48b2e44cfe7667acdd79a6a5901001b092f8cf485b75ff3f","registry":"quay.io","repository":"codefresh/cf-docker-tag-pusher","tag":"1.3.20"},"fs-ops":{"digest":"sha256:cade5ace4d05528dfd0cbdbb96bd99c6ccae79dfeebe14661a4b7808e2131dc9","registry":"quay.io","repository":"codefresh/fs-ops","tag":"1.2.11"},"gc-builder":{"digest":"sha256:383306f0775d70776f26284176c5cebd21784b371defecbf96e99b0b7bafe058","registry":"quay.io","repository":"codefresh/gcloud-builder","tag":"0.5.5"},"git-cloner":{"digest":"sha256:ce1e922b94bbf1e5bd224468a2ccfe969200661ca2b6f0182b26ee0ad06e1a6d","registry":"quay.io","repository":"codefresh/cf-git-cloner","tag":"10.3.4"},"kube-deploy":{"digest":"sha256:ee9f56c8c5fc73dfd45511fb003dc53f35e0c46a78acdbb62ad386f33913b765","registry":"quay.io","repository":"codefresh/cf-deploy-kubernetes","tag":"17.0.0"},"pipeline-debugger":{"digest":"sha256:7f8867af5fd402a98159d674c30965d67861a4dc37e429db3ff0746a6454f88f","registry":"quay.io","repository":"codefresh/cf-debugger","tag":"1.3.11"},"template-engine":{"digest":"sha256:37ec7bed4b09e4055c3600a7805f84e37cccf8d849fe0fdd5b29f079de15010c","registry":"quay.io","repository":"codefresh/pikolo","tag":"0.14.8"}},"runtimeImagesRegistry":"","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_POST_STEPS_GRACE_PERIOD_MINUTES":30,"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). | | runtime.engine.affinity | object | `{}` | Set affinity | | runtime.engine.command | list | `["node","dist/server/index.js"]` | Set container command. | -| runtime.engine.env | object | `{"CF_TELEMETRY_LOGS_LEVEL":"debug","CF_TELEMETRY_OTEL_ALLOW_HTTP_INSTRUMENTATION":"false","CF_TELEMETRY_OTEL_ENABLE":"true","CF_TELEMETRY_PROMETHEUS_ENABLE":"false","CF_TELEMETRY_PROMETHEUS_ENABLE_PROCESS_METRICS":"false","CF_TELEMETRY_PROMETHEUS_HOST":"0.0.0.0","CF_TELEMETRY_PROMETHEUS_PORT":"9100","CF_TELEMETRY_PYROSCOPE_ENABLE":"false","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":false,"METRICS_PROMETHEUS_ENABLE_LEGACY_METRICS":false,"METRICS_PROMETHEUS_HOST":"0.0.0.0","METRICS_PROMETHEUS_PORT":9100,"METRICS_PROMETHEUS_SCRAPE_TIMEOUT":"15000","METRICS_SCRAPE_TIMEOUT_MS":"0","OTEL_EXPORTER_OTLP_COMPRESSION":"gzip","OTEL_EXPORTER_OTLP_ENDPOINT":"http://localhost:4317","OTEL_EXPORTER_OTLP_PROTOCOL":"grpc","OTEL_EXPORTER_PROMETHEUS_HOST":"0.0.0.0","OTEL_EXPORTER_PROMETHEUS_PORT":"9464","OTEL_LOGS_EXPORTER":"none","OTEL_METRICS_EXPORTER":"otlp","OTEL_METRIC_EXPORT_INTERVAL":"10000","OTEL_METRIC_EXPORT_TIMEOUT":"5000","OTEL_SEMCONV_STABILITY_OPT_IN":"http","OTEL_TRACES_EXPORTER":"none","OTEL_TRACES_SAMPLER":"parentbased_always_on","PYROSCOPE_SERVER_ADDRESS":"","TRUSTED_QEMU_IMAGES":"tonistiigi/binfmt"}` | Set additional env vars. | +| runtime.engine.env | object | `{"CF_TELEMETRY_LOGS_LEVEL":"debug","CF_TELEMETRY_OTEL_ALLOW_HTTP_INSTRUMENTATION":"false","CF_TELEMETRY_OTEL_ENABLE":"true","CF_TELEMETRY_PROMETHEUS_ENABLE":"false","CF_TELEMETRY_PROMETHEUS_ENABLE_PROCESS_METRICS":"false","CF_TELEMETRY_PROMETHEUS_HOST":"0.0.0.0","CF_TELEMETRY_PROMETHEUS_PORT":"9100","CF_TELEMETRY_PYROSCOPE_ENABLE":"false","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_SCRAPE_TIMEOUT_MS":"0","OTEL_EXPORTER_OTLP_COMPRESSION":"gzip","OTEL_EXPORTER_OTLP_ENDPOINT":"http://localhost:4317","OTEL_EXPORTER_OTLP_PROTOCOL":"grpc","OTEL_EXPORTER_PROMETHEUS_HOST":"0.0.0.0","OTEL_EXPORTER_PROMETHEUS_PORT":"9464","OTEL_LOGS_EXPORTER":"none","OTEL_METRICS_EXPORTER":"otlp","OTEL_METRIC_EXPORT_INTERVAL":"10000","OTEL_METRIC_EXPORT_TIMEOUT":"5000","OTEL_SEMCONV_STABILITY_OPT_IN":"http","OTEL_TRACES_EXPORTER":"none","OTEL_TRACES_SAMPLER":"parentbased_always_on","PYROSCOPE_SERVER_ADDRESS":"","TRUSTED_QEMU_IMAGES":"tonistiigi/binfmt"}` | Set additional env vars. | | runtime.engine.env.CF_TELEMETRY_LOGS_LEVEL | string | `"debug"` | Level of logging for engine | | runtime.engine.env.CF_TELEMETRY_OTEL_ALLOW_HTTP_INSTRUMENTATION | string | `"false"` | Enable OTel HTTP instrumentation. Make sure to sanitize `url.full` and `url.query` span attributes on collector before enabling this flag, as it may contain sensitive information. | | runtime.engine.env.CF_TELEMETRY_OTEL_ENABLE | string | `"true"` | Enable OpenTelemetry signals (logs, metrics, traces) | @@ -1359,12 +1368,6 @@ Install the Helm chart | runtime.engine.env.FORCE_COMPOSE_SERIAL_PULL | bool | `false` | If "true", composition images will be pulled sequentially | | runtime.engine.env.LOGGER_LEVEL | string | `"debug"` | Level of logging for engine | | runtime.engine.env.LOG_OUTGOING_HTTP_REQUESTS | bool | `false` | Enable debug-level logging of outgoing HTTP/HTTPS requests. Use with caution, as it may log sensitive information. | -| runtime.engine.env.METRICS_PROMETHEUS_COLLECT_PROCESS_METRICS | bool | `false` | DEPRECATED: Use OpenTelemetry metrics instead. This option enables process metrics and will be removed in a future release. | -| runtime.engine.env.METRICS_PROMETHEUS_ENABLED | bool | `false` | DEPRECATED: Use OpenTelemetry metrics instead. This option enables Prometheus metrics and will be removed in a future release. If enabled, make sure to disable newest metrics by specifying CF_TELEMETRY_PROMETHEUS_ENABLE=false. | -| runtime.engine.env.METRICS_PROMETHEUS_ENABLE_LEGACY_METRICS | bool | `false` | DEPRECATED: Use OpenTelemetry metrics instead. This option enables legacy metrics and will be removed in a future release. | -| runtime.engine.env.METRICS_PROMETHEUS_HOST | string | `"0.0.0.0"` | DEPRECATED: Use OpenTelemetry metrics instead. This options sets the host for Prometheus metrics server and will be removed in a future release. | -| runtime.engine.env.METRICS_PROMETHEUS_PORT | int | `9100` | DEPRECATED: Use OpenTelemetry metrics instead. This options sets the port for Prometheus metrics server and will be removed in a future release. | -| runtime.engine.env.METRICS_PROMETHEUS_SCRAPE_TIMEOUT | string | `"15000"` | DEPRECATED: Use OpenTelemetry metrics instead. This options sets exit timeout for Prometheus metrics server and will be removed in a future release. If set, the engine will wait ms for the scrape before exiting. | | runtime.engine.env.METRICS_SCRAPE_TIMEOUT_MS | string | `"0"` | On exit, wait ms for the scrape before exiting. No waiting will be done if set to 0. If OTEL_METRICS_EXPORTER=prometheus, it's recommended to set this to 4×scrape_interval. | | runtime.engine.env.OTEL_EXPORTER_OTLP_COMPRESSION | string | `"gzip"` | Specifies the compression algorithm to be used for all telemetry data. Ref: https://opentelemetry.io/docs/specs/otel/protocol/exporter/ | | runtime.engine.env.OTEL_EXPORTER_OTLP_ENDPOINT | string | `"http://localhost:4317"` | Base endpoint URL for all OpenTelemetry signals. Ref: https://opentelemetry.io/docs/languages/sdk-configuration/otlp-exporter/ | @@ -1380,7 +1383,7 @@ Install the Helm chart | runtime.engine.env.OTEL_TRACES_SAMPLER | string | `"parentbased_always_on"` | OTel sampler to be used for traces. Ref: https://opentelemetry.io/docs/specs/otel/configuration/sdk-environment-variables/ | | runtime.engine.env.PYROSCOPE_SERVER_ADDRESS | string | `""` | Pyroscope server address | | runtime.engine.env.TRUSTED_QEMU_IMAGES | string | `"tonistiigi/binfmt"` | Trusted QEMU images used for docker builds - when left blank defaults to .runtime.engine.runtimeImages.DEFAULT_QEMU_IMAGE value | -| runtime.engine.image | object | `{"digest":"sha256:946d9b718d92cfb10dabdd3c7f66b3be1056882e023d58da09a66f36af18e781","pullPolicy":"IfNotPresent","registry":"quay.io","repository":"codefresh/engine","tag":"1.180.9"}` | Set image. | +| runtime.engine.image | object | `{"digest":"sha256:ca1203291a7d36d4e34e8b4823549217fdaa68f8ded107869b396e38009ea962","pullPolicy":"IfNotPresent","registry":"quay.io","repository":"codefresh/engine","tag":"2.0.0"}` | Set image. | | runtime.engine.nodeSelector | object | `{}` | Set node selector. | | runtime.engine.podAnnotations | object | `{}` | Set pod annotations. | | runtime.engine.podLabels | object | `{}` | Set pod labels. | diff --git a/charts/cf-runtime/README.md.gotmpl b/charts/cf-runtime/README.md.gotmpl index b6ee6b15..136a2b6c 100644 --- a/charts/cf-runtime/README.md.gotmpl +++ b/charts/cf-runtime/README.md.gotmpl @@ -21,6 +21,7 @@ Helm chart for deploying [Codefresh Runner](https://codefresh.io/docs/docs/insta - [To 7.9.x](#to-7-9-x) - [To 8.x](#to-8-x) - [To 8.2.x](#to-8-2-x) + - [To 9.x](#to-9-x) - [Architecture](#architecture) - [Configuration](#configuration) - [Runtime spec synchronization](#runtime-spec-synchronization) @@ -336,6 +337,14 @@ runtime: METRICS_PROMETHEUS_ENABLED: "true" # Enable old Prometheus metrics ``` +### To 9.x + +* **Removed**: `deploy` step ([docs](https://codefresh.io/docs/docs/pipelines/steps/deploy/)) drops support for Kubernetes versions older than 1.32. Supported versions are: 1.34, 1.33, 1.32. + +* **Removed**: Legacy Prometheus metrics emitted by the `engine` component and controlled by `METRICS_PROMETHEUS_ENABLED` and `METRICS_PROMETHEUS_ENABLE_LEGACY_METRICS` environment variables are dropped. Use modern OpenTelemetry-based metrics instead. See [To 8.2.x](#to-8-2-x) for more details. + +* **Removed**: OTel metric `codefresh.classic.build.deprecated_images.pulled` emitted by the `engine` component is dropped. + ## Architecture [Codefresh Runner architecture](https://codefresh.io/docs/docs/installation/codefresh-runner/#codefresh-runner-architecture) diff --git a/charts/cf-runtime/tests/private-registry/private_registry_test.yaml b/charts/cf-runtime/tests/private-registry/private_registry_test.yaml index eb83f2a4..3f8499d8 100644 --- a/charts/cf-runtime/tests/private-registry/private_registry_test.yaml +++ b/charts/cf-runtime/tests/private-registry/private_registry_test.yaml @@ -43,12 +43,6 @@ tests: FORCE_COMPOSE_SERIAL_PULL: 'false' LOGGER_LEVEL: 'debug' LOG_OUTGOING_HTTP_REQUESTS: 'false' - METRICS_PROMETHEUS_COLLECT_PROCESS_METRICS: 'false' - METRICS_PROMETHEUS_ENABLED: 'false' - METRICS_PROMETHEUS_ENABLE_LEGACY_METRICS: 'false' - METRICS_PROMETHEUS_HOST: '0.0.0.0' - METRICS_PROMETHEUS_PORT: '9100' - METRICS_PROMETHEUS_SCRAPE_TIMEOUT: '15000' METRICS_SCRAPE_TIMEOUT_MS: '0' OTEL_EXPORTER_OTLP_COMPRESSION: 'gzip' OTEL_EXPORTER_OTLP_ENDPOINT: 'http://localhost:4317' diff --git a/charts/cf-runtime/tests/runtime/runtime_onprem_test.yaml b/charts/cf-runtime/tests/runtime/runtime_onprem_test.yaml index 5d6aed61..036988d0 100644 --- a/charts/cf-runtime/tests/runtime/runtime_onprem_test.yaml +++ b/charts/cf-runtime/tests/runtime/runtime_onprem_test.yaml @@ -57,12 +57,6 @@ tests: INT: '123' LOGGER_LEVEL: 'debug' LOG_OUTGOING_HTTP_REQUESTS: 'false' - METRICS_PROMETHEUS_COLLECT_PROCESS_METRICS: 'false' - METRICS_PROMETHEUS_ENABLED: 'false' - METRICS_PROMETHEUS_ENABLE_LEGACY_METRICS: 'false' - METRICS_PROMETHEUS_HOST: '0.0.0.0' - METRICS_PROMETHEUS_PORT: '9100' - METRICS_PROMETHEUS_SCRAPE_TIMEOUT: '15000' METRICS_SCRAPE_TIMEOUT_MS: '0' OTEL_EXPORTER_OTLP_COMPRESSION: 'gzip' OTEL_EXPORTER_OTLP_ENDPOINT: 'http://localhost:4317' @@ -277,12 +271,6 @@ tests: INT: '123' LOGGER_LEVEL: 'debug' LOG_OUTGOING_HTTP_REQUESTS: 'false' - METRICS_PROMETHEUS_COLLECT_PROCESS_METRICS: 'false' - METRICS_PROMETHEUS_ENABLED: 'false' - METRICS_PROMETHEUS_ENABLE_LEGACY_METRICS: 'false' - METRICS_PROMETHEUS_HOST: '0.0.0.0' - METRICS_PROMETHEUS_PORT: '9100' - METRICS_PROMETHEUS_SCRAPE_TIMEOUT: '15000' METRICS_SCRAPE_TIMEOUT_MS: '0' OTEL_EXPORTER_OTLP_COMPRESSION: 'gzip' OTEL_EXPORTER_OTLP_ENDPOINT: 'http://localhost:4317' diff --git a/charts/cf-runtime/tests/runtime/runtime_test.yaml b/charts/cf-runtime/tests/runtime/runtime_test.yaml index 93f80f90..5043256b 100644 --- a/charts/cf-runtime/tests/runtime/runtime_test.yaml +++ b/charts/cf-runtime/tests/runtime/runtime_test.yaml @@ -59,12 +59,6 @@ tests: INT_AS_STRING: '123' LOGGER_LEVEL: 'debug' LOG_OUTGOING_HTTP_REQUESTS: 'false' - METRICS_PROMETHEUS_COLLECT_PROCESS_METRICS: 'false' - METRICS_PROMETHEUS_ENABLED: 'false' - METRICS_PROMETHEUS_ENABLE_LEGACY_METRICS: 'false' - METRICS_PROMETHEUS_HOST: '0.0.0.0' - METRICS_PROMETHEUS_PORT: '9100' - METRICS_PROMETHEUS_SCRAPE_TIMEOUT: '15000' METRICS_SCRAPE_TIMEOUT_MS: '0' OTEL_EXPORTER_OTLP_COMPRESSION: 'gzip' OTEL_EXPORTER_OTLP_ENDPOINT: 'http://localhost:4317' diff --git a/charts/cf-runtime/values.yaml b/charts/cf-runtime/values.yaml index d6a26836..bc104b1c 100644 --- a/charts/cf-runtime/values.yaml +++ b/charts/cf-runtime/values.yaml @@ -505,9 +505,9 @@ runtime: image: registry: quay.io repository: codefresh/engine - tag: 1.180.9 + tag: 2.0.0 pullPolicy: IfNotPresent - digest: sha256:946d9b718d92cfb10dabdd3c7f66b3be1056882e023d58da09a66f36af18e781 + digest: sha256:ca1203291a7d36d4e34e8b4823549217fdaa68f8ded107869b396e38009ea962 # -- Set container command. command: - 'node' @@ -535,8 +535,8 @@ runtime: container-logger: registry: quay.io repository: codefresh/cf-container-logger - tag: 1.13.3 - digest: sha256:e2ccf1aab9dc118d91a449843842f5d19b4cd25731b5409de412b4ade7a2a524 + tag: 2.0.0 + digest: sha256:6459db2d486f89457ce347ecc1dc037d39c43fb0c1fb67ea6e9d6743e104642f docker-builder: registry: quay.io repository: codefresh/cf-docker-builder @@ -570,8 +570,8 @@ runtime: kube-deploy: registry: quay.io repository: codefresh/cf-deploy-kubernetes - tag: 16.2.9 - digest: sha256:35649b14eb43717d3752d08597ada77d3737b2508f1b8e1f52f67b7a0e5ff263 + tag: 17.0.0 + digest: sha256:ee9f56c8c5fc73dfd45511fb003dc53f35e0c46a78acdbb62ad386f33913b765 pipeline-debugger: registry: quay.io repository: codefresh/cf-debugger @@ -683,22 +683,6 @@ runtime: # -- Emit the stable HTTP and networking OTel conventions if CF_TELEMETRY_OTEL_ALLOW_HTTP_INSTRUMENTATION=true. OTEL_SEMCONV_STABILITY_OPT_IN: 'http' # - # -- Deprecated metrics configuration - # -- DEPRECATED: Use OpenTelemetry metrics instead. This option enables Prometheus metrics and will be removed in a future release. - # If enabled, make sure to disable newest metrics by specifying CF_TELEMETRY_PROMETHEUS_ENABLE=false. - METRICS_PROMETHEUS_ENABLED: false - # -- DEPRECATED: Use OpenTelemetry metrics instead. This option enables legacy metrics and will be removed in a future release. - METRICS_PROMETHEUS_ENABLE_LEGACY_METRICS: false - # -- DEPRECATED: Use OpenTelemetry metrics instead. This option enables process metrics and will be removed in a future release. - METRICS_PROMETHEUS_COLLECT_PROCESS_METRICS: false - # -- DEPRECATED: Use OpenTelemetry metrics instead. This options sets the host for Prometheus metrics server and will be removed in a future release. - METRICS_PROMETHEUS_HOST: '0.0.0.0' - # -- DEPRECATED: Use OpenTelemetry metrics instead. This options sets the port for Prometheus metrics server and will be removed in a future release. - METRICS_PROMETHEUS_PORT: 9100 - # -- DEPRECATED: Use OpenTelemetry metrics instead. This options sets exit timeout for Prometheus metrics server and will be removed in a future release. - # If set, the engine will wait ms for the scrape before exiting. - METRICS_PROMETHEUS_SCRAPE_TIMEOUT: '15000' - # # -- Engine operation configuration # -- Interval to check the exec status in the container-logger CONTAINER_LOGGER_EXEC_CHECK_INTERVAL_MS: 1000