diff --git a/.gitignore b/.gitignore index b14fef54..7a7c463c 100644 --- a/.gitignore +++ b/.gitignore @@ -33,4 +33,13 @@ venona/venona *.lock # test values -**/test-values/** \ No newline at end of file +**/test-values/** + +# only ignore the values.yaml file at the root of the repo +/values.yaml + +# helm charts +**/*.tgz +**/charts/**/charts +**/dry-run.yaml +**/values-dev.yaml \ No newline at end of file diff --git a/charts/cf-runtime/.ci/values-ci.yaml b/charts/cf-runtime/.ci/values-ci.yaml index 5dcb05c8..05da30d7 100644 --- a/charts/cf-runtime/.ci/values-ci.yaml +++ b/charts/cf-runtime/.ci/values-ci.yaml @@ -1,6 +1,12 @@ # Values used in `helm-chart-ci` pipeline +# All placeholders will be set during ci build global: codefreshToken: placeholder + accountId: placeholder + context: placeholder + # intentionally empty + runtimeName: "" + agentName: "" appProxy: enabled: true ingress: @@ -23,15 +29,6 @@ runtime: limits: cpu: 1000m memory: 1024Mi - podAnnotations: - karpenter.sh/do-not-evict: 'true' - nodeSelector: - node-type: dind - tolerations: - - effect: NoSchedule - key: codefresh.io - operator: Equal - value: dinds engine: resources: requests: @@ -40,12 +37,3 @@ runtime: limits: cpu: 1000m memory: 1024Mi - podAnnotations: - karpenter.sh/do-not-evict: 'true' - nodeSelector: - node-type: engine - tolerations: - - effect: NoSchedule - key: codefresh.io - operator: Equal - value: engines \ No newline at end of file diff --git a/charts/cf-runtime/Chart.yaml b/charts/cf-runtime/Chart.yaml index d808c2bc..ef5581a3 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: 5.3.1 +version: 6.0.0 keywords: - codefresh - runner @@ -14,8 +14,12 @@ maintainers: url: https://codefresh-io.github.io/ annotations: artifacthub.io/changes: | + - kind: deprecated + description: Deprecated --generate-helm-values-file - kind: changed - description: Updated venona image to 1.9.17 + description: Update engine version + - kind: changed + description: Update dind version dependencies: - name: cf-common repository: https://chartmuseum.codefresh.io/cf-common diff --git a/charts/cf-runtime/README.md b/charts/cf-runtime/README.md index 41210ffe..01286d8d 100644 --- a/charts/cf-runtime/README.md +++ b/charts/cf-runtime/README.md @@ -1,6 +1,6 @@ ## Codefresh Runner -![Version: 5.3.1](https://img.shields.io/badge/Version-5.3.1-informational?style=flat-square) +![Version: 6.0.0](https://img.shields.io/badge/Version-6.0.0-informational?style=flat-square) Helm chart for deploying [Codefresh Runner](https://codefresh.io/docs/docs/installation/codefresh-runner/) to Kubernetes. @@ -9,11 +9,13 @@ Helm chart for deploying [Codefresh Runner](https://codefresh.io/docs/docs/insta - [Prerequisites](#prerequisites) - [Get Repo Info](#get-repo-info) - [Install Chart](#install-chart) +- [Chart Configuration](#chart-configuration) - [Upgrade Chart](#upgrade-chart) - - [To 2.x](#to-2x) - - [To 3.x](#to-3x) - - [To 4.x](#to-4x) - - [To 5.x](#to-5x) + - [To 2.x](#to-2-x) + - [To 3.x](#to-3-x) + - [To 4.x](#to-4-x) + - [To 5.x](#to-5-x) + - [To 6.x](#to-6-x) - [Architecture](#architecture) - [Configuration](#configuration) - [EBS backend volume configuration](#ebs-backend-volume-configuration) @@ -40,31 +42,62 @@ helm repo update **Important:** only helm3 is supported -1. Download the Codefresh CLI and authenticate it with your Codefresh account. Follow [here](https://codefresh-io.github.io/cli/getting-started/) for more detailed instructions. -2. Run the following command to create mandatory values for Codefresh Runner: +- Specify the following mandatory values - ```console - codefresh runner init --generate-helm-values-file - ``` +```yaml +# -- Global parameters +# @default -- See below +global: + # -- User token in plain text (required if `global.codefreshTokenSecretKeyRef` is omitted!) + # Ref: https://g.codefresh.io/user/settings (see API Keys) + codefreshToken: "" + # -- User token that references an existing secret containing API key (required if `global.codefreshToken` is omitted!) + codefreshTokenSecretKeyRef: {} + # E.g. + # codefreshTokenSecretKeyRef: + # name: my-codefresh-api-token + # key: codefresh-api-token + + # -- Account ID (required!) + # Can be obtained here https://g.codefresh.io/2.0/account-settings/account-information + accountId: "" - * This will not install anything on your cluster, except for running cluster acceptance tests, which may be skipped using the `--skip-cluster-test` option. - * This command will also generate a `generated_values.yaml` file in your current directory, which you will need to provide to the `helm upgrade` command later. -3. Run the following to complete the installation: + # -- K8s context name (required!) + context: "" + # E.g. + # context: prod-ue1-runtime-1 - ```console - helm repo add cf-runtime https://chartmuseum.codefresh.io/cf-runtime + # -- Agent Name (optional!) + # If omitted, the following format will be used '{{ .Values.global.context }}_{{ .Release.Namespace }}' + agentName: "" + # E.g. + # agentName: prod-ue1-runtime-1 - helm upgrade --install cf-runtime cf-runtime/cf-runtime -f ./generated_values.yaml --create-namespace --namespace codefresh - ``` + # -- Runtime name (optional!) + # If omitted, the following format will be used '{{ .Values.global.context }}/{{ .Release.Namespace }}' + runtimeName: "" + # E.g. + # runtimeName: prod-ue1-runtime-1/namespace +``` + +- Install chart + +```console +helm upgrade --install cf-runtime cf-runtime/cf-runtime --create-namespace --namespace codefresh +``` + +*Install from OCI-based registry* +```console +helm upgrade --install cf-runtime oci://quay.io/codefresh/cf-runtime --create-namespace --namespace codefresh +``` + +## Chart Configuration + +See [Customizing the Chart Before Installing](https://helm.sh/docs/intro/using_helm/#customizing-the-chart-before-installing). To see all configurable options with detailed comments, visit the chart's [values.yaml](./values.yaml), or run these configuration commands: - *Install from OCI-based registry* - ```console - helm upgrade --install cf-runtime oci://quay.io/codefresh/cf-runtime -f ./generated_values.yaml --create-namespace --namespace codefresh - ``` -4. At this point you should have a working Codefresh Runner. You can verify the installation by running: - ```console - codefresh runner execute-test-pipeline --runtime-name - ``` +```console +helm show values cf-runtime/cf-runtime +``` ## Upgrade Chart @@ -83,7 +116,7 @@ Affected values: ### To 3.x ⚠️⚠️⚠️ -### Please, READ this before the upgrade! +### READ this before the upgrade! This major release adds [runtime-environment](https://codefresh.io/docs/docs/installation/codefresh-runner/#runtime-environment-specification) spec into chart templates. That means it is possible to set parametes for `dind` and `engine` pods via [values.yaml](./values.yaml). @@ -138,6 +171,70 @@ runtime: Affected values: - `.runtime.dind.pvcs` converted from **list** to **dict** +### To 6.x + +⚠️⚠️⚠️ +### READ this before the upgrade! + +This major release deprecates previously required `codefresh runner init --generate-helm-values-file`. + +Affected values: +- **Replaced** `.monitor.clusterId` with `.global.context` as **mandatory** value! +- **Deprecated** `.global.agentToken` / `.global.agentTokenSecretKeyRef` +- **Removed** `.global.agentId` +- **Removed** `.global.keys` / `.global.dindCertsSecretRef` +- **Removed** `.global.existingAgentToken` / `existingDindCertsSecret` +- **Removed** `.monitor.clusterId` / `.monitor.token` / `.monitor.existingMonitorToken` + +#### Migrate the Helm chart from version 5.x to 6.x + +Given this is the legacy `generated_values.yaml` values: + +> legacy `generated_values.yaml` +```yaml +{ + "appProxy": { + "enabled": false, + }, + "monitor": { + "enabled": false, + "clusterId": "my-cluster-name", + "token": "1234567890" + }, + "global": { + "namespace": "namespace", + "codefreshHost": "https://g.codefresh.io", + "agentToken": "0987654321", + "agentId": "agent-id-here", + "agentName": "my-cluster-name_my-namespace", + "accountId": "my-account-id", + "runtimeName": "my-cluster-name/my-namespace", + "codefreshToken": "1234567890", + "keys": { + "key": "-----BEGIN RSA PRIVATE KEY-----...", + "csr": "-----BEGIN CERTIFICATE REQUEST-----...", + "ca": "-----BEGIN CERTIFICATE-----...", + "serverCert": "-----BEGIN CERTIFICATE-----..." + } + } +} +``` + +Update `values.yaml` for new chart version: + +> For existing installation for backward compatibility `.Values.global.agentToken/agentTokenSecretKeyRef` **must be provided!** For installation from scratch this value is no longer required. + +> updated `values.yaml` +```yaml +global: + codefreshToken: "1234567890" + accountId: "my-account-id" + context: "my-cluster-name" + agentToken: "0987654321" # MANDATORY when migrating from < 6.x chart version ! + agentName: "my-cluster-name_my-namespace" # optional + runtimeName: "my-cluster-name/my-namespace" # optional +``` + ## Architecture [Codefresh Runner architecture](https://codefresh.io/docs/docs/installation/codefresh-runner/#codefresh-runner-architecture) @@ -748,26 +845,21 @@ Go to [https:///admin/runtime-environments/system](http | event-exporter.updateStrategy | object | `{"type":"Recreate"}` | Upgrade strategy | | extraResources | list | `[]` | Array of extra objects to deploy with the release | | fullNameOverride | string | `""` | String to fully override cf-runtime.fullname template | -| global | object | See below | Global parameters Global values are in generated_values.yaml. Run `codefresh runner init --generate-helm-values-file`! | -| global.accountId | string | `""` | Account ID | -| global.agentId | string | `""` | Agent ID | -| global.agentName | string | `""` | Agent Name | -| global.agentToken | string | `""` | Agent token in plain text. | -| global.agentTokenSecretKeyRef | object | `{}` | Agent token that references an existing secret containing API key. | -| global.codefreshHost | string | `"https://g.codefresh.io"` | URL of Codefresh Platform | -| global.codefreshToken | string | `""` | User token in plain text. Ref: https://g.codefresh.io/user/settings (see API Keys) | -| global.codefreshTokenSecretKeyRef | object | `{}` | User token that references an existing secret containing API key. | -| global.dindCertsSecretRef | object | `{}` | Certs for Dind docker daemon that references an existing secret | +| global | object | See below | Global parameters | +| global.accountId | string | `""` | Account ID (required!) Can be obtained here https://g.codefresh.io/2.0/account-settings/account-information | +| global.agentName | string | `""` | Agent Name (optional!) If omitted, the following format will be used `{{ .Values.global.context }}_{{ .Release.Namespace }}` | +| global.agentToken | string | `""` | DEPRECATED Agent token in plain text. !!! MUST BE provided if migrating from < 6.x chart version | +| global.agentTokenSecretKeyRef | object | `{}` | DEPRECATED Agent token that references an existing secret containing API key. !!! MUST BE provided if migrating from < 6.x chart version | +| global.codefreshHost | string | `"https://g.codefresh.io"` | URL of Codefresh Platform (required!) | +| global.codefreshToken | string | `""` | User token in plain text (required if `global.codefreshTokenSecretKeyRef` is omitted!) Ref: https://g.codefresh.io/user/settings (see API Keys) | +| global.codefreshTokenSecretKeyRef | object | `{}` | User token that references an existing secret containing API key (required if `global.codefreshToken` is omitted!) | +| global.context | string | `""` | K8s context name (required!) | | global.imagePullSecrets | list | `[]` | Global Docker registry secret names as array | | global.imageRegistry | string | `""` | Global Docker image registry | -| global.keys | object | `{"ca":"","key":"","serverCert":""}` | Certs for Dind docker daemon | -| global.namespace | string | `""` | Runner namespace | -| global.runtimeName | string | `""` | Runtime name | +| global.runtimeName | string | `""` | Runtime name (optional!) If omitted, the following format will be used `{{ .Values.global.context }}/{{ .Release.Namespace }}` | | monitor.affinity | object | `{}` | Set affinity | -| monitor.clusterId | string | `""` | Cluster name as it registered in account Generated from `codefresh runner init --generate-helm-values-file` output | | monitor.enabled | bool | `false` | Enable monitor Ref: https://codefresh.io/docs/docs/installation/codefresh-runner/#install-monitoring-component | | monitor.env | object | `{}` | Add additional env vars | -| monitor.existingMonitorToken | string | `""` | Set Existing secret (name-of-existing-secret) with API token from Codefresh supersedes value of monitor.token; secret must contain `codefresh.token` key | | monitor.image | object | `{"registry":"quay.io","repository":"codefresh/agent","tag":"stable"}` | Set image | | monitor.nodeSelector | object | `{}` | Set node selector | | monitor.podAnnotations | object | `{}` | Set pod annotations | @@ -783,7 +875,6 @@ Go to [https:///admin/runtime-environments/system](http | monitor.serviceAccount.annotations | object | `{}` | Additional service account annotations | | monitor.serviceAccount.create | bool | `true` | Create service account | | monitor.serviceAccount.name | string | `""` | Override service account name | -| monitor.token | string | `""` | API token from Codefresh Generated from `codefresh runner init --generate-helm-values-file` output | | monitor.tolerations | list | `[]` | Set tolerations | | monitor.updateStrategy | object | `{"type":"RollingUpdate"}` | Upgrade strategy | | nameOverride | string | `""` | String to partially override cf-runtime.fullname template (will maintain the release name) | @@ -814,10 +905,10 @@ Go to [https:///admin/runtime-environments/system](http | runtime.accounts | list | `[]` | (for On-Premise only) Assign accounts to runtime (list of account ids) | | runtime.agent | bool | `true` | (for On-Premise only) Enable agent | | runtime.description | string | `""` | Runtime description | -| runtime.dind | object | `{"affinity":{},"env":{},"image":{"registry":"quay.io","repository":"codefresh/dind","tag":"20.10.18-1.25.7"},"nodeSelector":{},"podAnnotations":{},"pvcs":{"dind":{"name":"dind","reuseVolumeSelector":"codefresh-app,io.codefresh.accountName","reuseVolumeSortOrder":"pipeline_id","storageClassName":"{{ include \"dind-volume-provisioner.storageClassName\" . }}","volumeSize":"16Gi"}},"resources":{"limits":{"cpu":"400m","memory":"800Mi"},"requests":null},"schedulerName":"","serviceAccount":"codefresh-engine","tolerations":[],"userAccess":true,"userVolumeMounts":{},"userVolumes":{}}` | Parameters for DinD (docker-in-docker) pod (aka "runtime" pod). | +| runtime.dind | object | `{"affinity":{},"env":{},"image":{"registry":"quay.io","repository":"codefresh/dind","tag":"20.10.24-1.27.0"},"nodeSelector":{},"podAnnotations":{},"pvcs":{"dind":{"name":"dind","reuseVolumeSelector":"codefresh-app,io.codefresh.accountName","reuseVolumeSortOrder":"pipeline_id","storageClassName":"{{ include \"dind-volume-provisioner.storageClassName\" . }}","volumeSize":"16Gi"}},"resources":{"limits":{"cpu":"400m","memory":"800Mi"},"requests":null},"schedulerName":"","serviceAccount":"codefresh-engine","tolerations":[],"userAccess":true,"userVolumeMounts":{},"userVolumes":{}}` | Parameters for DinD (docker-in-docker) pod (aka "runtime" pod). | | runtime.dind.affinity | object | `{}` | Set affinity | | runtime.dind.env | object | `{}` | Set additional env vars. | -| runtime.dind.image | object | `{"registry":"quay.io","repository":"codefresh/dind","tag":"20.10.18-1.25.7"}` | Set dind image. | +| runtime.dind.image | object | `{"registry":"quay.io","repository":"codefresh/dind","tag":"20.10.24-1.27.0"}` | Set dind image. | | runtime.dind.nodeSelector | object | `{}` | Set node selector. | | runtime.dind.podAnnotations | object | `{}` | Set pod annotations. | | runtime.dind.pvcs | object | `{"dind":{"name":"dind","reuseVolumeSelector":"codefresh-app,io.codefresh.accountName","reuseVolumeSortOrder":"pipeline_id","storageClassName":"{{ include \"dind-volume-provisioner.storageClassName\" . }}","volumeSize":"16Gi"}}` | PV claim spec parametes. | @@ -834,11 +925,11 @@ Go to [https:///admin/runtime-environments/system](http | 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":["npm","run","start"],"env":{},"image":{"registry":"quay.io","repository":"codefresh/engine","tag":"1.164.11"},"nodeSelector":{},"podAnnotations":{},"resources":{"limits":{"cpu":"1000m","memory":"2048Mi"},"requests":{"cpu":"100m","memory":"128Mi"}},"runtimeImages":{"COMPOSE_IMAGE":"quay.io/codefresh/compose:1.3.0","CONTAINER_LOGGER_IMAGE":"quay.io/codefresh/cf-container-logger:1.10.2","DOCKER_BUILDER_IMAGE":"quay.io/codefresh/cf-docker-builder:1.3.6","DOCKER_PULLER_IMAGE":"quay.io/codefresh/cf-docker-puller:8.0.12","DOCKER_PUSHER_IMAGE":"quay.io/codefresh/cf-docker-pusher:6.0.13","DOCKER_TAG_PUSHER_IMAGE":"quay.io/codefresh/cf-docker-tag-pusher:1.3.11","FS_OPS_IMAGE":"quay.io/codefresh/fs-ops:1.2.5","GIT_CLONE_IMAGE":"quay.io/codefresh/cf-git-cloner:10.1.21","KUBE_DEPLOY":"quay.io/codefresh/cf-deploy-kubernetes:16.2.5","PIPELINE_DEBUGGER_IMAGE":"quay.io/codefresh/cf-debugger:1.3.3","TEMPLATE_ENGINE":"quay.io/codefresh/pikolo:0.13.8"},"schedulerName":"","serviceAccount":"codefresh-engine","tolerations":[],"userEnvVars":[]}` | Parameters for Engine pod (aka "pipeline" orchestrator). | +| runtime.engine | object | `{"affinity":{},"command":["npm","run","start"],"env":{},"image":{"registry":"quay.io","repository":"codefresh/engine","tag":"1.165.2"},"nodeSelector":{},"podAnnotations":{},"resources":{"limits":{"cpu":"1000m","memory":"2048Mi"},"requests":{"cpu":"100m","memory":"128Mi"}},"runtimeImages":{"COMPOSE_IMAGE":"quay.io/codefresh/compose:1.3.0","CONTAINER_LOGGER_IMAGE":"quay.io/codefresh/cf-container-logger:1.10.3","DOCKER_BUILDER_IMAGE":"quay.io/codefresh/cf-docker-builder:1.3.6","DOCKER_PULLER_IMAGE":"quay.io/codefresh/cf-docker-puller:8.0.14","DOCKER_PUSHER_IMAGE":"quay.io/codefresh/cf-docker-pusher:6.0.13","DOCKER_TAG_PUSHER_IMAGE":"quay.io/codefresh/cf-docker-tag-pusher:1.3.11","FS_OPS_IMAGE":"quay.io/codefresh/fs-ops:1.2.3","GIT_CLONE_IMAGE":"quay.io/codefresh/cf-git-cloner:10.1.21","KUBE_DEPLOY":"quay.io/codefresh/cf-deploy-kubernetes:16.1.11","PIPELINE_DEBUGGER_IMAGE":"quay.io/codefresh/cf-debugger:1.3.0","TEMPLATE_ENGINE":"quay.io/codefresh/pikolo:0.13.8"},"schedulerName":"","serviceAccount":"codefresh-engine","tolerations":[],"userEnvVars":[]}` | Parameters for Engine pod (aka "pipeline" orchestrator). | | runtime.engine.affinity | object | `{}` | Set affinity | | runtime.engine.command | list | `["npm","run","start"]` | Set container command. | | runtime.engine.env | object | `{}` | Set additional env vars. | -| runtime.engine.image | object | `{"registry":"quay.io","repository":"codefresh/engine","tag":"1.164.11"}` | Set image. | +| runtime.engine.image | object | `{"registry":"quay.io","repository":"codefresh/engine","tag":"1.165.2"}` | Set image. | | runtime.engine.nodeSelector | object | `{}` | Set node selector. | | runtime.engine.podAnnotations | object | `{}` | Set pod annotations. | | runtime.engine.resources | object | `{"limits":{"cpu":"1000m","memory":"2048Mi"},"requests":{"cpu":"100m","memory":"128Mi"}}` | Set resources. | diff --git a/charts/cf-runtime/README.md.gotmpl b/charts/cf-runtime/README.md.gotmpl index 4508f8f7..923a10f4 100644 --- a/charts/cf-runtime/README.md.gotmpl +++ b/charts/cf-runtime/README.md.gotmpl @@ -9,11 +9,13 @@ Helm chart for deploying [Codefresh Runner](https://codefresh.io/docs/docs/insta - [Prerequisites](#prerequisites) - [Get Repo Info](#get-repo-info) - [Install Chart](#install-chart) +- [Chart Configuration](#chart-configuration) - [Upgrade Chart](#upgrade-chart) - - [To 2.x](#to-2x) - - [To 3.x](#to-3x) - - [To 4.x](#to-4x) - - [To 5.x](#to-5x) + - [To 2.x](#to-2-x) + - [To 3.x](#to-3-x) + - [To 4.x](#to-4-x) + - [To 5.x](#to-5-x) + - [To 6.x](#to-6-x) - [Architecture](#architecture) - [Configuration](#configuration) - [EBS backend volume configuration](#ebs-backend-volume-configuration) @@ -40,31 +42,62 @@ helm repo update **Important:** only helm3 is supported -1. Download the Codefresh CLI and authenticate it with your Codefresh account. Follow [here](https://codefresh-io.github.io/cli/getting-started/) for more detailed instructions. -2. Run the following command to create mandatory values for Codefresh Runner: +- Specify the following mandatory values - ```console - codefresh runner init --generate-helm-values-file - ``` +```yaml +# -- Global parameters +# @default -- See below +global: + # -- User token in plain text (required if `global.codefreshTokenSecretKeyRef` is omitted!) + # Ref: https://g.codefresh.io/user/settings (see API Keys) + codefreshToken: "" + # -- User token that references an existing secret containing API key (required if `global.codefreshToken` is omitted!) + codefreshTokenSecretKeyRef: {} + # E.g. + # codefreshTokenSecretKeyRef: + # name: my-codefresh-api-token + # key: codefresh-api-token - * This will not install anything on your cluster, except for running cluster acceptance tests, which may be skipped using the `--skip-cluster-test` option. - * This command will also generate a `generated_values.yaml` file in your current directory, which you will need to provide to the `helm upgrade` command later. -3. Run the following to complete the installation: + # -- Account ID (required!) + # Can be obtained here https://g.codefresh.io/2.0/account-settings/account-information + accountId: "" - ```console - helm repo add cf-runtime https://chartmuseum.codefresh.io/cf-runtime + # -- K8s context name (required!) + context: "" + # E.g. + # context: prod-ue1-runtime-1 - helm upgrade --install cf-runtime cf-runtime/cf-runtime -f ./generated_values.yaml --create-namespace --namespace codefresh - ``` + # -- Agent Name (optional!) + # If omitted, the following format will be used '{{ `{{ .Values.global.context }}_{{ .Release.Namespace }}` }}' + agentName: "" + # E.g. + # agentName: prod-ue1-runtime-1 - *Install from OCI-based registry* - ```console - helm upgrade --install cf-runtime oci://quay.io/codefresh/cf-runtime -f ./generated_values.yaml --create-namespace --namespace codefresh - ``` -4. At this point you should have a working Codefresh Runner. You can verify the installation by running: - ```console - codefresh runner execute-test-pipeline --runtime-name - ``` + # -- Runtime name (optional!) + # If omitted, the following format will be used '{{ `{{ .Values.global.context }}/{{ .Release.Namespace }}` }}' + runtimeName: "" + # E.g. + # runtimeName: prod-ue1-runtime-1/namespace +``` + +- Install chart + +```console +helm upgrade --install cf-runtime cf-runtime/cf-runtime --create-namespace --namespace codefresh +``` + +*Install from OCI-based registry* +```console +helm upgrade --install cf-runtime oci://quay.io/codefresh/cf-runtime --create-namespace --namespace codefresh +``` + +## Chart Configuration + +See [Customizing the Chart Before Installing](https://helm.sh/docs/intro/using_helm/#customizing-the-chart-before-installing). To see all configurable options with detailed comments, visit the chart's [values.yaml](./values.yaml), or run these configuration commands: + +```console +helm show values cf-runtime/cf-runtime +``` ## Upgrade Chart @@ -83,7 +116,7 @@ Affected values: ### To 3.x ⚠️⚠️⚠️ -### Please, READ this before the upgrade! +### READ this before the upgrade! This major release adds [runtime-environment](https://codefresh.io/docs/docs/installation/codefresh-runner/#runtime-environment-specification) spec into chart templates. That means it is possible to set parametes for `dind` and `engine` pods via [values.yaml](./values.yaml). @@ -138,6 +171,69 @@ runtime: Affected values: - `.runtime.dind.pvcs` converted from **list** to **dict** +### To 6.x + +⚠️⚠️⚠️ +### READ this before the upgrade! + +This major release deprecates previously required `codefresh runner init --generate-helm-values-file`. + +Affected values: +- **Replaced** `.monitor.clusterId` with `.global.context` as **mandatory** value! +- **Deprecated** `.global.agentToken` / `.global.agentTokenSecretKeyRef` +- **Removed** `.global.agentId` +- **Removed** `.global.keys` / `.global.dindCertsSecretRef` +- **Removed** `.global.existingAgentToken` / `existingDindCertsSecret` +- **Removed** `.monitor.clusterId` / `.monitor.token` / `.monitor.existingMonitorToken` + +#### Migrate the Helm chart from version 5.x to 6.x + +Given this is the legacy `generated_values.yaml` values: + +> legacy `generated_values.yaml` +```yaml +{ + "appProxy": { + "enabled": false, + }, + "monitor": { + "enabled": false, + "clusterId": "my-cluster-name", + "token": "1234567890" + }, + "global": { + "namespace": "namespace", + "codefreshHost": "https://g.codefresh.io", + "agentToken": "0987654321", + "agentId": "agent-id-here", + "agentName": "my-cluster-name_my-namespace", + "accountId": "my-account-id", + "runtimeName": "my-cluster-name/my-namespace", + "codefreshToken": "1234567890", + "keys": { + "key": "-----BEGIN RSA PRIVATE KEY-----...", + "csr": "-----BEGIN CERTIFICATE REQUEST-----...", + "ca": "-----BEGIN CERTIFICATE-----...", + "serverCert": "-----BEGIN CERTIFICATE-----..." + } + } +} +``` + +Update `values.yaml` for new chart version: + +> For existing installation for backward compatibility `.Values.global.agentToken/agentTokenSecretKeyRef` **must be provided!** For installation from scratch this value is no longer required. + +> updated `values.yaml` +```yaml +global: + codefreshToken: "1234567890" + accountId: "my-account-id" + context: "my-cluster-name" + agentToken: "0987654321" # MANDATORY when migrating from < 6.x chart version ! + agentName: "my-cluster-name_my-namespace" # optional + runtimeName: "my-cluster-name/my-namespace" # optional +``` ## Architecture diff --git a/charts/cf-runtime/files/cleanup-runtime.sh b/charts/cf-runtime/files/cleanup-runtime.sh new file mode 100755 index 00000000..a3f6db69 --- /dev/null +++ b/charts/cf-runtime/files/cleanup-runtime.sh @@ -0,0 +1,33 @@ +#!/bin/bash + +echo "-----" +echo "API_HOST: ${API_HOST}" +echo "AGENT_NAME: ${AGENT_NAME}" +echo "RUNTIME_NAME: ${RUNTIME_NAME}" +echo "AGENT: ${AGENT}" +echo "-----" + +auth() { + codefresh auth create-context --api-key ${API_TOKEN} --url ${API_HOST} +} + +remove_runtime() { + if [ "$AGENT" == "true" ]; then + codefresh delete re ${RUNTIME_NAME} || true + else + codefresh delete sys-re ${RUNTIME_NAME} || true + fi +} + +remove_agent() { + codefresh delete agent ${AGENT_NAME} || true +} + +remove_finalizers() { + kubectl patch secret $(kubectl get secret -l codefresh.io/internal=true | awk 'NR>1{print $1}' | xargs) -p '{"metadata":{"finalizers":null}}' --type=merge || true +} + +auth +remove_runtime +remove_agent +remove_finalizers \ No newline at end of file diff --git a/charts/cf-runtime/files/configure-dind-certs.sh b/charts/cf-runtime/files/configure-dind-certs.sh index 4e3366ae..a1092eb1 100644 --- a/charts/cf-runtime/files/configure-dind-certs.sh +++ b/charts/cf-runtime/files/configure-dind-certs.sh @@ -84,7 +84,7 @@ CF_SRV_TLS_CERT=${CERTS_DIR}/cf-server-cert.pem CF_SRV_TLS_CA_CERT=${CERTS_DIR}/cf-ca.pem mkdir -p $TMPDIR $CERTS_DIR -K8S_CERT_SECRET_NAME=cf-certs-dind +K8S_CERT_SECRET_NAME=codefresh-certs-server echo -e "\n------------------\nGenerating server tls certificates ... " SERVER_CERT_CN=${SERVER_CERT_CN:-"docker.codefresh.io"} @@ -123,15 +123,10 @@ SERVER_CERT_EXTRA_SANS="${SERVER_CERT_EXTRA_SANS}" echo -e "\n------------------\nCreating certificate secret " - if ! kubectl -n$NAMESPACE get secret "${K8S_CERT_SECRET_NAME}"; then - kubectl -n$NAMESPACE create secret generic $K8S_CERT_SECRET_NAME \ - --from-file=$SRV_TLS_CA_CERT \ - --from-file=$SRV_TLS_KEY \ - --from-file=$SRV_TLS_CERT || fatal "Failed storing the generated certificates in Kubernetes!" - kubectl label --overwrite secret ${K8S_CERT_SECRET_NAME} app.kubernetes.io/managed-by=Helm - kubectl annotate --overwrite secret ${K8S_CERT_SECRET_NAME} meta.helm.sh/release-name=$RELEASE - kubectl annotate --overwrite secret ${K8S_CERT_SECRET_NAME} meta.helm.sh/release-namespace=$NAMESPACE - else - msg "${K8S_CERT_SECRET_NAME} secret already exists. Skipping." - fi - +kubectl -n $NAMESPACE create secret generic $K8S_CERT_SECRET_NAME \ + --from-file=$SRV_TLS_CA_CERT \ + --from-file=$SRV_TLS_KEY \ + --from-file=$SRV_TLS_CERT \ + --dry-run=client -o yaml | kubectl apply --overwrite -f - +kubectl -n $NAMESPACE label --overwrite secret ${K8S_CERT_SECRET_NAME} codefresh.io/internal=true +kubectl -n $NAMESPACE patch secret $K8S_CERT_SECRET_NAME -p '{"metadata": {"finalizers": ["kubernetes"]}}' diff --git a/charts/cf-runtime/files/init-runtime.sh b/charts/cf-runtime/files/init-runtime.sh new file mode 100755 index 00000000..eb3488af --- /dev/null +++ b/charts/cf-runtime/files/init-runtime.sh @@ -0,0 +1,80 @@ +#!/bin/bash + +echo "-----" +echo "API_HOST: ${API_HOST}" +echo "AGENT_NAME: ${AGENT_NAME}" +echo "KUBE_CONTEXT: ${KUBE_CONTEXT}" +echo "KUBE_NAMESPACE: ${KUBE_NAMESPACE}" +echo "OWNER_NAME: ${OWNER_NAME}" +echo "RUNTIME_NAME: ${RUNTIME_NAME}" +echo "SECRET_NAME: ${SECRET_NAME}" +echo "-----" + +create_agent_secret() { + + kubectl apply -f - < $1\e[0m"; } +err() { echo -e "\e[31mERR ---> $1\e[0m" ; return 1; } + +runtimeJson=$(mktemp) +codefresh get sys-re system/root --extend -o json > $runtimeJson + +RUNTIME_IMAGES=( + ENGINE_IMAGE + DIND_IMAGE + CONTAINER_LOGGER_IMAGE + DOCKER_PUSHER_IMAGE + DOCKER_TAG_PUSHER_IMAGE + DOCKER_PULLER_IMAGE + DOCKER_BUILDER_IMAGE + GIT_CLONE_IMAGE + COMPOSE_IMAGE + KUBE_DEPLOY + FS_OPS_IMAGE + TEMPLATE_ENGINE + PIPELINE_DEBUGGER_IMAGE +) + +filename=$CHARTDIR/values.yaml + +for k in ${RUNTIME_IMAGES[@]}; do + image="$(jq -er .runtimeScheduler.envVars.$k $runtimeJson)" + patch "$filename" <<< $(diff -U0 -w -b --ignore-blank-lines $filename <(yq eval ".runtime.engine.runtimeImages.\"$k\" = \"$image\"" $filename)) || true +done + +msg "The list of updated runtime images:\n" +echo -e "\e[33m$(cat $CHARTDIR/values.yaml)\e[0m" \ No newline at end of file diff --git a/venona/cover/cover.out b/venona/cover/cover.out new file mode 100644 index 00000000..db8532f2 --- /dev/null +++ b/venona/cover/cover.out @@ -0,0 +1,336 @@ +mode: atomic +github.com/codefresh-io/go/venona/pkg/agent/agent.go:104.41,105.43 1 4 +github.com/codefresh-io/go/venona/pkg/agent/agent.go:105.43,107.3 1 4 +github.com/codefresh-io/go/venona/pkg/agent/agent.go:109.2,116.25 7 0 +github.com/codefresh-io/go/venona/pkg/agent/agent.go:116.25,118.3 1 0 +github.com/codefresh-io/go/venona/pkg/agent/agent.go:120.2,140.8 3 0 +github.com/codefresh-io/go/venona/pkg/agent/agent.go:144.50,145.15 1 0 +github.com/codefresh-io/go/venona/pkg/agent/agent.go:145.15,147.3 1 0 +github.com/codefresh-io/go/venona/pkg/agent/agent.go:149.2,160.12 7 0 +github.com/codefresh-io/go/venona/pkg/agent/agent.go:164.30,165.16 1 0 +github.com/codefresh-io/go/venona/pkg/agent/agent.go:165.16,167.3 1 0 +github.com/codefresh-io/go/venona/pkg/agent/agent.go:169.2,176.12 8 0 +github.com/codefresh-io/go/venona/pkg/agent/agent.go:180.33,182.2 1 0 +github.com/codefresh-io/go/venona/pkg/agent/agent.go:184.61,185.6 1 0 +github.com/codefresh-io/go/venona/pkg/agent/agent.go:185.6,186.10 1 0 +github.com/codefresh-io/go/venona/pkg/agent/agent.go:187.21,189.10 2 0 +github.com/codefresh-io/go/venona/pkg/agent/agent.go:190.31,194.30 2 0 +github.com/codefresh-io/go/venona/pkg/agent/agent.go:194.30,196.5 1 0 +github.com/codefresh-io/go/venona/pkg/agent/agent.go:199.4,199.29 1 0 +github.com/codefresh-io/go/venona/pkg/agent/agent.go:199.29,201.5 1 0 +github.com/codefresh-io/go/venona/pkg/agent/agent.go:203.4,206.55 4 0 +github.com/codefresh-io/go/venona/pkg/agent/agent.go:206.55,212.5 1 0 +github.com/codefresh-io/go/venona/pkg/agent/agent.go:214.4,214.61 1 0 +github.com/codefresh-io/go/venona/pkg/agent/agent.go:219.65,220.6 1 0 +github.com/codefresh-io/go/venona/pkg/agent/agent.go:220.6,221.10 1 0 +github.com/codefresh-io/go/venona/pkg/agent/agent.go:222.21,224.10 2 0 +github.com/codefresh-io/go/venona/pkg/agent/agent.go:225.33,227.14 2 0 +github.com/codefresh-io/go/venona/pkg/agent/agent.go:227.14,232.5 2 0 +github.com/codefresh-io/go/venona/pkg/agent/agent.go:237.81,239.16 2 2 +github.com/codefresh-io/go/venona/pkg/agent/agent.go:239.16,241.3 1 1 +github.com/codefresh-io/go/venona/pkg/agent/agent.go:244.82,247.2 2 0 +github.com/codefresh-io/go/venona/pkg/agent/agent.go:249.59,254.16 4 0 +github.com/codefresh-io/go/venona/pkg/agent/agent.go:254.16,257.3 2 0 +github.com/codefresh-io/go/venona/pkg/agent/agent.go:259.2,259.21 1 0 +github.com/codefresh-io/go/venona/pkg/agent/agent.go:259.21,261.3 1 0 +github.com/codefresh-io/go/venona/pkg/agent/agent.go:263.2,263.14 1 0 +github.com/codefresh-io/go/venona/pkg/agent/agent.go:266.81,272.23 4 1 +github.com/codefresh-io/go/venona/pkg/agent/agent.go:272.23,274.17 2 3 +github.com/codefresh-io/go/venona/pkg/agent/agent.go:275.27,277.38 2 0 +github.com/codefresh-io/go/venona/pkg/agent/agent.go:278.87,280.11 2 3 +github.com/codefresh-io/go/venona/pkg/agent/agent.go:280.11,283.5 2 1 +github.com/codefresh-io/go/venona/pkg/agent/agent.go:285.4,286.18 2 3 +github.com/codefresh-io/go/venona/pkg/agent/agent.go:286.18,288.5 1 0 +github.com/codefresh-io/go/venona/pkg/agent/agent.go:289.11,290.115 1 0 +github.com/codefresh-io/go/venona/pkg/agent/agent.go:295.2,295.51 1 1 +github.com/codefresh-io/go/venona/pkg/agent/agent.go:295.51,298.3 2 0 +github.com/codefresh-io/go/venona/pkg/agent/agent.go:300.2,301.27 2 1 +github.com/codefresh-io/go/venona/pkg/agent/agent.go:301.27,306.3 3 1 +github.com/codefresh-io/go/venona/pkg/agent/agent.go:309.2,309.50 1 1 +github.com/codefresh-io/go/venona/pkg/agent/agent.go:309.50,312.3 2 0 +github.com/codefresh-io/go/venona/pkg/agent/agent.go:313.2,313.30 1 1 +github.com/codefresh-io/go/venona/pkg/agent/agent.go:316.47,319.12 3 0 +github.com/codefresh-io/go/venona/pkg/agent/agent.go:319.12,325.17 5 0 +github.com/codefresh-io/go/venona/pkg/agent/agent.go:325.17,328.4 2 0 +github.com/codefresh-io/go/venona/pkg/agent/agent.go:333.54,336.16 3 3 +github.com/codefresh-io/go/venona/pkg/agent/agent.go:336.16,338.3 1 0 +github.com/codefresh-io/go/venona/pkg/agent/agent.go:340.2,341.55 2 3 +github.com/codefresh-io/go/venona/pkg/agent/agent.go:341.55,343.3 1 0 +github.com/codefresh-io/go/venona/pkg/agent/agent.go:345.2,346.9 2 3 +github.com/codefresh-io/go/venona/pkg/agent/agent.go:346.9,348.3 1 0 +github.com/codefresh-io/go/venona/pkg/agent/agent.go:350.2,359.12 5 3 +github.com/codefresh-io/go/venona/pkg/agent/agent.go:362.63,366.17 4 0 +github.com/codefresh-io/go/venona/pkg/agent/agent.go:366.17,368.3 1 0 +github.com/codefresh-io/go/venona/pkg/agent/agent.go:370.2,371.15 2 0 +github.com/codefresh-io/go/venona/pkg/agent/agent.go:371.15,373.3 1 0 +github.com/codefresh-io/go/venona/pkg/agent/agent.go:375.2,378.16 3 0 +github.com/codefresh-io/go/venona/pkg/agent/agent.go:378.16,380.3 1 0 +github.com/codefresh-io/go/venona/pkg/agent/agent.go:382.2,382.17 1 0 +github.com/codefresh-io/go/venona/pkg/agent/agent.go:382.17,384.3 1 0 +github.com/codefresh-io/go/venona/pkg/agent/agent.go:386.2,387.16 2 0 +github.com/codefresh-io/go/venona/pkg/agent/agent.go:387.16,389.3 1 0 +github.com/codefresh-io/go/venona/pkg/agent/agent.go:391.2,399.16 7 0 +github.com/codefresh-io/go/venona/pkg/agent/agent.go:399.16,401.3 1 0 +github.com/codefresh-io/go/venona/pkg/agent/agent.go:403.2,407.12 4 0 +github.com/codefresh-io/go/venona/pkg/agent/agent.go:410.57,412.29 2 1 +github.com/codefresh-io/go/venona/pkg/agent/agent.go:412.29,414.17 2 3 +github.com/codefresh-io/go/venona/pkg/agent/agent.go:414.17,418.4 1 0 +github.com/codefresh-io/go/venona/pkg/agent/agent.go:420.3,420.52 1 3 +github.com/codefresh-io/go/venona/pkg/agent/agent.go:423.2,423.19 1 1 +github.com/codefresh-io/go/venona/pkg/agent/agent.go:426.40,427.17 1 4 +github.com/codefresh-io/go/venona/pkg/agent/agent.go:427.17,429.3 1 1 +github.com/codefresh-io/go/venona/pkg/agent/agent.go:431.2,431.19 1 3 +github.com/codefresh-io/go/venona/pkg/agent/agent.go:431.19,433.3 1 1 +github.com/codefresh-io/go/venona/pkg/agent/agent.go:435.2,435.29 1 2 +github.com/codefresh-io/go/venona/pkg/agent/agent.go:435.29,437.3 1 1 +github.com/codefresh-io/go/venona/pkg/agent/agent.go:439.2,439.24 1 1 +github.com/codefresh-io/go/venona/pkg/agent/agent.go:439.24,441.3 1 1 +github.com/codefresh-io/go/venona/pkg/agent/agent.go:443.2,443.12 1 0 +github.com/codefresh-io/go/venona/pkg/agent/agent.go:446.13,449.2 2 1 +github.com/codefresh-io/go/venona/pkg/config/loader.go:51.88,53.16 2 2 +github.com/codefresh-io/go/venona/pkg/config/loader.go:53.16,55.3 1 0 +github.com/codefresh-io/go/venona/pkg/config/loader.go:57.2,58.73 2 2 +github.com/codefresh-io/go/venona/pkg/config/loader.go:58.73,60.3 1 0 +github.com/codefresh-io/go/venona/pkg/config/loader.go:62.2,62.38 1 2 +github.com/codefresh-io/go/venona/pkg/config/loader.go:65.85,66.62 1 2 +github.com/codefresh-io/go/venona/pkg/config/loader.go:66.62,67.17 1 2 +github.com/codefresh-io/go/venona/pkg/config/loader.go:67.17,70.4 2 0 +github.com/codefresh-io/go/venona/pkg/config/loader.go:72.3,72.19 1 2 +github.com/codefresh-io/go/venona/pkg/config/loader.go:72.19,75.4 2 0 +github.com/codefresh-io/go/venona/pkg/config/loader.go:77.3,77.35 1 2 +github.com/codefresh-io/go/venona/pkg/config/loader.go:77.35,80.4 2 1 +github.com/codefresh-io/go/venona/pkg/config/loader.go:82.3,83.13 2 1 +github.com/codefresh-io/go/venona/pkg/config/loader.go:87.51,89.51 2 1 +github.com/codefresh-io/go/venona/pkg/config/loader.go:89.51,91.3 1 0 +github.com/codefresh-io/go/venona/pkg/config/loader.go:93.2,93.17 1 1 +github.com/codefresh-io/go/venona/pkg/config/loader.go:96.86,98.29 2 2 +github.com/codefresh-io/go/venona/pkg/config/loader.go:98.29,100.17 2 1 +github.com/codefresh-io/go/venona/pkg/config/loader.go:100.17,102.12 2 0 +github.com/codefresh-io/go/venona/pkg/config/loader.go:105.3,106.17 2 1 +github.com/codefresh-io/go/venona/pkg/config/loader.go:106.17,108.12 2 0 +github.com/codefresh-io/go/venona/pkg/config/loader.go:111.3,111.21 1 1 +github.com/codefresh-io/go/venona/pkg/config/loader.go:114.2,114.20 1 2 +github.com/codefresh-io/go/venona/pkg/kubernetes/kubernetes.go:71.82,77.2 2 0 +github.com/codefresh-io/go/venona/pkg/kubernetes/kubernetes.go:80.44,81.28 1 2 +github.com/codefresh-io/go/venona/pkg/kubernetes/kubernetes.go:81.28,83.3 1 1 +github.com/codefresh-io/go/venona/pkg/kubernetes/kubernetes.go:85.2,89.8 2 1 +github.com/codefresh-io/go/venona/pkg/kubernetes/kubernetes.go:92.95,95.16 3 3 +github.com/codefresh-io/go/venona/pkg/kubernetes/kubernetes.go:95.16,97.3 1 0 +github.com/codefresh-io/go/venona/pkg/kubernetes/kubernetes.go:99.2,100.16 2 3 +github.com/codefresh-io/go/venona/pkg/kubernetes/kubernetes.go:100.16,102.3 1 0 +github.com/codefresh-io/go/venona/pkg/kubernetes/kubernetes.go:104.2,105.27 2 3 +github.com/codefresh-io/go/venona/pkg/kubernetes/kubernetes.go:106.33,109.17 3 1 +github.com/codefresh-io/go/venona/pkg/kubernetes/kubernetes.go:109.17,111.4 1 0 +github.com/codefresh-io/go/venona/pkg/kubernetes/kubernetes.go:112.15,115.17 3 1 +github.com/codefresh-io/go/venona/pkg/kubernetes/kubernetes.go:115.17,117.4 1 0 +github.com/codefresh-io/go/venona/pkg/kubernetes/kubernetes.go:118.10,119.99 1 1 +github.com/codefresh-io/go/venona/pkg/kubernetes/kubernetes.go:122.2,130.12 4 2 +github.com/codefresh-io/go/venona/pkg/kubernetes/kubernetes.go:133.77,135.19 2 5 +github.com/codefresh-io/go/venona/pkg/kubernetes/kubernetes.go:136.26,138.17 2 1 +github.com/codefresh-io/go/venona/pkg/kubernetes/kubernetes.go:138.17,140.4 1 0 +github.com/codefresh-io/go/venona/pkg/kubernetes/kubernetes.go:141.26,143.17 2 3 +github.com/codefresh-io/go/venona/pkg/kubernetes/kubernetes.go:143.17,145.4 1 2 +github.com/codefresh-io/go/venona/pkg/kubernetes/kubernetes.go:146.10,147.70 1 1 +github.com/codefresh-io/go/venona/pkg/kubernetes/kubernetes.go:150.2,158.12 4 2 +github.com/codefresh-io/go/venona/pkg/kubernetes/kubernetes.go:161.130,163.14 2 1 +github.com/codefresh-io/go/venona/pkg/kubernetes/kubernetes.go:163.14,167.3 1 0 +github.com/codefresh-io/go/venona/pkg/kubernetes/kubernetes.go:167.8,171.3 1 1 +github.com/codefresh-io/go/venona/pkg/kubernetes/kubernetes.go:173.2,179.4 1 1 +github.com/codefresh-io/go/venona/pkg/kubernetes/kubernetes.go:182.79,184.16 2 0 +github.com/codefresh-io/go/venona/pkg/kubernetes/kubernetes.go:184.16,186.3 1 0 +github.com/codefresh-io/go/venona/pkg/kubernetes/kubernetes.go:188.2,190.40 3 0 +github.com/codefresh-io/go/venona/pkg/kubernetes/kubernetes_mock.go:35.61,37.2 1 0 +github.com/codefresh-io/go/venona/pkg/kubernetes/kubernetes_mock.go:40.107,44.84 3 0 +github.com/codefresh-io/go/venona/pkg/kubernetes/kubernetes_mock.go:44.84,46.3 1 0 +github.com/codefresh-io/go/venona/pkg/kubernetes/kubernetes_mock.go:46.8,48.3 1 0 +github.com/codefresh-io/go/venona/pkg/kubernetes/kubernetes_mock.go:50.2,50.11 1 0 +github.com/codefresh-io/go/venona/pkg/kubernetes/kubernetes_mock.go:62.144,64.2 1 0 +github.com/codefresh-io/go/venona/pkg/kubernetes/kubernetes_mock.go:66.156,67.40 1 0 +github.com/codefresh-io/go/venona/pkg/kubernetes/kubernetes_mock.go:67.40,69.3 1 0 +github.com/codefresh-io/go/venona/pkg/kubernetes/kubernetes_mock.go:70.2,70.11 1 0 +github.com/codefresh-io/go/venona/pkg/kubernetes/kubernetes_mock.go:73.101,76.2 2 0 +github.com/codefresh-io/go/venona/pkg/kubernetes/kubernetes_mock.go:78.153,81.2 2 0 +github.com/codefresh-io/go/venona/pkg/kubernetes/kubernetes_mock.go:84.89,88.75 3 0 +github.com/codefresh-io/go/venona/pkg/kubernetes/kubernetes_mock.go:88.75,90.3 1 0 +github.com/codefresh-io/go/venona/pkg/kubernetes/kubernetes_mock.go:90.8,92.3 1 0 +github.com/codefresh-io/go/venona/pkg/kubernetes/kubernetes_mock.go:94.2,94.11 1 0 +github.com/codefresh-io/go/venona/pkg/kubernetes/kubernetes_mock.go:105.122,107.2 1 0 +github.com/codefresh-io/go/venona/pkg/kubernetes/kubernetes_mock.go:109.138,110.40 1 0 +github.com/codefresh-io/go/venona/pkg/kubernetes/kubernetes_mock.go:110.40,112.3 1 0 +github.com/codefresh-io/go/venona/pkg/kubernetes/kubernetes_mock.go:113.2,113.11 1 0 +github.com/codefresh-io/go/venona/pkg/kubernetes/kubernetes_mock.go:116.101,119.2 2 0 +github.com/codefresh-io/go/venona/pkg/kubernetes/kubernetes_mock.go:121.144,124.2 2 0 +github.com/codefresh-io/go/venona/pkg/kubernetes/kubernetes_mock.go:131.20,135.19 3 0 +github.com/codefresh-io/go/venona/pkg/kubernetes/kubernetes_mock.go:135.19,135.49 1 0 +github.com/codefresh-io/go/venona/pkg/kubernetes/kubernetes_mock.go:137.2,137.13 1 0 +github.com/codefresh-io/go/venona/pkg/codefresh/codefresh.go:65.34,67.16 2 2 +github.com/codefresh-io/go/venona/pkg/codefresh/codefresh.go:67.16,69.3 1 1 +github.com/codefresh-io/go/venona/pkg/codefresh/codefresh.go:71.2,77.3 1 2 +github.com/codefresh-io/go/venona/pkg/codefresh/codefresh.go:81.60,83.16 2 0 +github.com/codefresh-io/go/venona/pkg/codefresh/codefresh.go:83.16,85.3 1 0 +github.com/codefresh-io/go/venona/pkg/codefresh/codefresh.go:87.2,88.16 2 0 +github.com/codefresh-io/go/venona/pkg/codefresh/codefresh.go:88.16,90.3 1 0 +github.com/codefresh-io/go/venona/pkg/codefresh/codefresh.go:92.2,92.19 1 0 +github.com/codefresh-io/go/venona/pkg/codefresh/codefresh.go:96.27,98.2 1 4 +github.com/codefresh-io/go/venona/pkg/codefresh/codefresh.go:101.73,103.16 2 0 +github.com/codefresh-io/go/venona/pkg/codefresh/codefresh.go:103.16,105.3 1 0 +github.com/codefresh-io/go/venona/pkg/codefresh/codefresh.go:107.2,108.16 2 0 +github.com/codefresh-io/go/venona/pkg/codefresh/codefresh.go:108.16,110.3 1 0 +github.com/codefresh-io/go/venona/pkg/codefresh/codefresh.go:112.2,112.12 1 0 +github.com/codefresh-io/go/venona/pkg/codefresh/codefresh.go:115.67,120.2 1 0 +github.com/codefresh-io/go/venona/pkg/codefresh/codefresh.go:122.59,124.16 2 3 +github.com/codefresh-io/go/venona/pkg/codefresh/codefresh.go:124.16,126.3 1 1 +github.com/codefresh-io/go/venona/pkg/codefresh/codefresh.go:128.2,131.26 3 2 +github.com/codefresh-io/go/venona/pkg/codefresh/codefresh.go:131.26,134.3 2 3 +github.com/codefresh-io/go/venona/pkg/codefresh/codefresh.go:136.2,138.15 3 2 +github.com/codefresh-io/go/venona/pkg/codefresh/codefresh.go:141.98,143.16 2 0 +github.com/codefresh-io/go/venona/pkg/codefresh/codefresh.go:143.16,145.3 1 0 +github.com/codefresh-io/go/venona/pkg/codefresh/codefresh.go:147.2,148.16 2 0 +github.com/codefresh-io/go/venona/pkg/codefresh/codefresh.go:148.16,150.3 1 0 +github.com/codefresh-io/go/venona/pkg/codefresh/codefresh.go:152.2,153.19 2 0 +github.com/codefresh-io/go/venona/pkg/codefresh/codefresh.go:153.19,155.3 1 0 +github.com/codefresh-io/go/venona/pkg/codefresh/codefresh.go:157.2,158.17 2 0 +github.com/codefresh-io/go/venona/pkg/codefresh/codefresh.go:161.107,163.16 2 0 +github.com/codefresh-io/go/venona/pkg/codefresh/codefresh.go:163.16,165.3 1 0 +github.com/codefresh-io/go/venona/pkg/codefresh/codefresh.go:167.2,168.16 2 0 +github.com/codefresh-io/go/venona/pkg/codefresh/codefresh.go:168.16,170.3 1 0 +github.com/codefresh-io/go/venona/pkg/codefresh/codefresh.go:172.2,174.16 3 0 +github.com/codefresh-io/go/venona/pkg/codefresh/codefresh.go:174.16,176.3 1 0 +github.com/codefresh-io/go/venona/pkg/codefresh/codefresh.go:178.2,178.28 1 0 +github.com/codefresh-io/go/venona/pkg/codefresh/codefresh.go:178.28,180.3 1 0 +github.com/codefresh-io/go/venona/pkg/codefresh/codefresh.go:182.2,182.18 1 0 +github.com/codefresh-io/go/venona/pkg/codefresh/codefresh_mock.go:35.59,37.2 1 0 +github.com/codefresh-io/go/venona/pkg/codefresh/codefresh_mock.go:40.40,44.46 3 0 +github.com/codefresh-io/go/venona/pkg/codefresh/codefresh_mock.go:44.46,46.3 1 0 +github.com/codefresh-io/go/venona/pkg/codefresh/codefresh_mock.go:46.8,48.3 1 0 +github.com/codefresh-io/go/venona/pkg/codefresh/codefresh_mock.go:50.2,50.11 1 0 +github.com/codefresh-io/go/venona/pkg/codefresh/codefresh_mock.go:59.67,61.2 1 0 +github.com/codefresh-io/go/venona/pkg/codefresh/codefresh_mock.go:63.77,64.40 1 0 +github.com/codefresh-io/go/venona/pkg/codefresh/codefresh_mock.go:64.40,66.3 1 0 +github.com/codefresh-io/go/venona/pkg/codefresh/codefresh_mock.go:67.2,67.11 1 0 +github.com/codefresh-io/go/venona/pkg/codefresh/codefresh_mock.go:70.80,73.2 2 0 +github.com/codefresh-io/go/venona/pkg/codefresh/codefresh_mock.go:75.93,78.2 2 0 +github.com/codefresh-io/go/venona/pkg/codefresh/codefresh_mock.go:81.86,85.73 3 0 +github.com/codefresh-io/go/venona/pkg/codefresh/codefresh_mock.go:85.73,87.3 1 0 +github.com/codefresh-io/go/venona/pkg/codefresh/codefresh_mock.go:87.8,89.3 1 0 +github.com/codefresh-io/go/venona/pkg/codefresh/codefresh_mock.go:91.2,91.11 1 0 +github.com/codefresh-io/go/venona/pkg/codefresh/codefresh_mock.go:102.118,104.2 1 0 +github.com/codefresh-io/go/venona/pkg/codefresh/codefresh_mock.go:106.132,107.40 1 0 +github.com/codefresh-io/go/venona/pkg/codefresh/codefresh_mock.go:107.40,109.3 1 0 +github.com/codefresh-io/go/venona/pkg/codefresh/codefresh_mock.go:110.2,110.11 1 0 +github.com/codefresh-io/go/venona/pkg/codefresh/codefresh_mock.go:113.95,116.2 2 0 +github.com/codefresh-io/go/venona/pkg/codefresh/codefresh_mock.go:118.136,121.2 2 0 +github.com/codefresh-io/go/venona/pkg/codefresh/codefresh_mock.go:124.73,129.74 4 0 +github.com/codefresh-io/go/venona/pkg/codefresh/codefresh_mock.go:129.74,131.3 1 0 +github.com/codefresh-io/go/venona/pkg/codefresh/codefresh_mock.go:132.2,132.65 1 0 +github.com/codefresh-io/go/venona/pkg/codefresh/codefresh_mock.go:132.65,134.3 1 0 +github.com/codefresh-io/go/venona/pkg/codefresh/codefresh_mock.go:134.8,135.24 1 0 +github.com/codefresh-io/go/venona/pkg/codefresh/codefresh_mock.go:135.24,137.4 1 0 +github.com/codefresh-io/go/venona/pkg/codefresh/codefresh_mock.go:140.2,140.60 1 0 +github.com/codefresh-io/go/venona/pkg/codefresh/codefresh_mock.go:140.60,142.3 1 0 +github.com/codefresh-io/go/venona/pkg/codefresh/codefresh_mock.go:142.8,144.3 1 0 +github.com/codefresh-io/go/venona/pkg/codefresh/codefresh_mock.go:146.2,146.15 1 0 +github.com/codefresh-io/go/venona/pkg/codefresh/codefresh_mock.go:156.84,158.2 1 0 +github.com/codefresh-io/go/venona/pkg/codefresh/codefresh_mock.go:160.98,161.40 1 0 +github.com/codefresh-io/go/venona/pkg/codefresh/codefresh_mock.go:161.40,163.3 1 0 +github.com/codefresh-io/go/venona/pkg/codefresh/codefresh_mock.go:164.2,164.11 1 0 +github.com/codefresh-io/go/venona/pkg/codefresh/codefresh_mock.go:167.97,170.2 2 0 +github.com/codefresh-io/go/venona/pkg/codefresh/codefresh_mock.go:172.123,175.2 2 0 +github.com/codefresh-io/go/venona/pkg/codefresh/codefresh_mock.go:182.19,186.19 3 0 +github.com/codefresh-io/go/venona/pkg/codefresh/codefresh_mock.go:186.19,186.49 1 0 +github.com/codefresh-io/go/venona/pkg/codefresh/codefresh_mock.go:188.2,188.13 1 0 +github.com/codefresh-io/go/venona/pkg/codefresh/error.go:27.31,29.2 1 0 +github.com/codefresh-io/go/venona/pkg/codefresh/status.go:27.49,29.2 1 0 +github.com/codefresh-io/go/venona/pkg/queue/queue.go:66.39,77.2 1 4 +github.com/codefresh-io/go/venona/pkg/queue/queue.go:80.52,82.39 2 4 +github.com/codefresh-io/go/venona/pkg/queue/queue.go:82.39,88.3 5 6 +github.com/codefresh-io/go/venona/pkg/queue/queue.go:92.32,93.39 1 4 +github.com/codefresh-io/go/venona/pkg/queue/queue.go:93.39,95.3 1 6 +github.com/codefresh-io/go/venona/pkg/queue/queue.go:99.36,101.2 1 0 +github.com/codefresh-io/go/venona/pkg/queue/queue.go:104.56,106.2 1 14 +github.com/codefresh-io/go/venona/pkg/queue/queue.go:108.88,112.6 3 6 +github.com/codefresh-io/go/venona/pkg/queue/queue.go:112.6,113.10 1 26 +github.com/codefresh-io/go/venona/pkg/queue/queue.go:114.19,116.23 2 6 +github.com/codefresh-io/go/venona/pkg/queue/queue.go:117.26,119.62 2 14 +github.com/codefresh-io/go/venona/pkg/queue/queue.go:119.62,125.13 5 0 +github.com/codefresh-io/go/venona/pkg/queue/queue.go:128.4,135.22 7 14 +github.com/codefresh-io/go/venona/pkg/queue/queue.go:136.11,137.20 1 6 +github.com/codefresh-io/go/venona/pkg/queue/queue.go:137.20,140.5 2 6 +github.com/codefresh-io/go/venona/pkg/queue/queue.go:142.4,142.38 1 0 +github.com/codefresh-io/go/venona/pkg/queue/queue.go:147.84,155.9 7 14 +github.com/codefresh-io/go/venona/pkg/queue/queue.go:155.9,159.3 3 0 +github.com/codefresh-io/go/venona/pkg/queue/queue.go:161.2,161.26 1 14 +github.com/codefresh-io/go/venona/pkg/queue/queue.go:161.26,163.17 2 31 +github.com/codefresh-io/go/venona/pkg/queue/queue.go:163.17,166.4 2 0 +github.com/codefresh-io/go/venona/pkg/queue/queue.go:169.2,177.77 3 14 +github.com/codefresh-io/go/venona/pkg/runtime/runtime.go:43.32,47.2 1 0 +github.com/codefresh-io/go/venona/pkg/runtime/runtime.go:49.70,52.16 2 8 +github.com/codefresh-io/go/venona/pkg/runtime/runtime.go:53.46,55.17 2 3 +github.com/codefresh-io/go/venona/pkg/runtime/runtime.go:55.17,57.4 1 1 +github.com/codefresh-io/go/venona/pkg/runtime/runtime.go:58.46,62.17 4 4 +github.com/codefresh-io/go/venona/pkg/runtime/runtime.go:62.17,64.4 1 0 +github.com/codefresh-io/go/venona/pkg/runtime/runtime.go:66.3,66.50 1 4 +github.com/codefresh-io/go/venona/pkg/runtime/runtime.go:66.50,68.4 1 1 +github.com/codefresh-io/go/venona/pkg/runtime/runtime.go:70.3,70.59 1 3 +github.com/codefresh-io/go/venona/pkg/runtime/runtime.go:70.59,72.4 1 1 +github.com/codefresh-io/go/venona/pkg/runtime/runtime.go:73.10,74.56 1 1 +github.com/codefresh-io/go/venona/pkg/runtime/runtime.go:77.2,77.12 1 4 +github.com/codefresh-io/go/venona/cmd/cmdutils.go:22.28,23.16 1 28 +github.com/codefresh-io/go/venona/cmd/cmdutils.go:23.16,26.3 2 0 +github.com/codefresh-io/go/venona/cmd/root.go:33.16,36.2 2 0 +github.com/codefresh-io/go/venona/cmd/start.go:82.52,83.54 1 0 +github.com/codefresh-io/go/venona/cmd/start.go:83.54,85.4 1 0 +github.com/codefresh-io/go/venona/cmd/start.go:87.3,87.58 1 0 +github.com/codefresh-io/go/venona/cmd/start.go:87.58,89.4 1 0 +github.com/codefresh-io/go/venona/cmd/start.go:91.3,91.39 1 0 +github.com/codefresh-io/go/venona/cmd/start.go:91.39,93.4 1 0 +github.com/codefresh-io/go/venona/cmd/start.go:95.3,95.38 1 0 +github.com/codefresh-io/go/venona/cmd/start.go:95.38,97.4 1 0 +github.com/codefresh-io/go/venona/cmd/start.go:99.3,99.31 1 0 +github.com/codefresh-io/go/venona/cmd/start.go:99.31,101.4 1 0 +github.com/codefresh-io/go/venona/cmd/start.go:103.3,103.33 1 0 +github.com/codefresh-io/go/venona/cmd/start.go:103.33,105.4 1 0 +github.com/codefresh-io/go/venona/cmd/start.go:107.3,107.13 1 0 +github.com/codefresh-io/go/venona/cmd/start.go:109.42,111.3 1 0 +github.com/codefresh-io/go/venona/cmd/start.go:114.13,161.48 44 1 +github.com/codefresh-io/go/venona/cmd/start.go:161.48,162.59 1 16 +github.com/codefresh-io/go/venona/cmd/start.go:162.59,164.4 1 9 +github.com/codefresh-io/go/venona/cmd/start.go:167.2,171.30 4 1 +github.com/codefresh-io/go/venona/cmd/start.go:174.32,180.36 3 0 +github.com/codefresh-io/go/venona/cmd/start.go:180.36,182.3 1 0 +github.com/codefresh-io/go/venona/cmd/start.go:184.2,188.36 4 0 +github.com/codefresh-io/go/venona/cmd/start.go:188.36,190.3 1 0 +github.com/codefresh-io/go/venona/cmd/start.go:190.8,192.3 1 0 +github.com/codefresh-io/go/venona/cmd/start.go:194.2,197.38 3 0 +github.com/codefresh-io/go/venona/cmd/start.go:197.38,202.17 2 0 +github.com/codefresh-io/go/venona/cmd/start.go:202.17,204.4 1 0 +github.com/codefresh-io/go/venona/cmd/start.go:204.9,206.4 1 0 +github.com/codefresh-io/go/venona/cmd/start.go:207.8,209.3 1 0 +github.com/codefresh-io/go/venona/cmd/start.go:211.2,212.2 2 0 +github.com/codefresh-io/go/venona/cmd/start.go:212.2,214.37 2 0 +github.com/codefresh-io/go/venona/cmd/start.go:214.37,222.4 3 0 +github.com/codefresh-io/go/venona/cmd/start.go:224.3,227.3 3 0 +github.com/codefresh-io/go/venona/cmd/start.go:227.3,229.4 1 0 +github.com/codefresh-io/go/venona/cmd/start.go:231.3,237.5 1 0 +github.com/codefresh-io/go/venona/cmd/start.go:240.2,264.12 7 0 +github.com/codefresh-io/go/venona/cmd/start.go:264.12,264.44 1 0 +github.com/codefresh-io/go/venona/cmd/start.go:265.2,265.12 1 0 +github.com/codefresh-io/go/venona/cmd/start.go:265.12,265.42 1 0 +github.com/codefresh-io/go/venona/cmd/start.go:267.2,267.14 1 0 +github.com/codefresh-io/go/venona/cmd/start.go:270.104,277.2 4 0 +github.com/codefresh-io/go/venona/cmd/start.go:279.101,283.36 4 0 +github.com/codefresh-io/go/venona/cmd/start.go:283.36,294.17 2 0 +github.com/codefresh-io/go/venona/cmd/start.go:294.17,296.12 2 0 +github.com/codefresh-io/go/venona/cmd/start.go:299.3,302.29 2 0 +github.com/codefresh-io/go/venona/cmd/start.go:305.2,305.17 1 0 +github.com/codefresh-io/go/venona/cmd/start.go:313.19,320.12 5 3 +github.com/codefresh-io/go/venona/cmd/start.go:320.12,321.7 1 3 +github.com/codefresh-io/go/venona/cmd/start.go:321.7,323.44 2 6 +github.com/codefresh-io/go/venona/cmd/start.go:323.44,328.5 3 1 +github.com/codefresh-io/go/venona/cmd/start.go:330.4,330.14 1 3 +github.com/codefresh-io/go/venona/cmd/start.go:330.14,333.39 2 3 +github.com/codefresh-io/go/venona/cmd/start.go:333.39,335.6 1 0 +github.com/codefresh-io/go/venona/cmd/start.go:337.5,337.43 1 3 +github.com/codefresh-io/go/venona/cmd/start.go:337.43,339.6 1 0 +github.com/codefresh-io/go/venona/cmd/start.go:341.5,341.13 1 3 +github.com/codefresh-io/go/venona/cmd/start.go:346.2,346.12 1 3 diff --git a/venona/cover/coverage.html b/venona/cover/coverage.html new file mode 100644 index 00000000..fe5b8ae8 --- /dev/null +++ b/venona/cover/coverage.html @@ -0,0 +1,2149 @@ + + + + + + cmd: Go Coverage Report + + + +
+ +
+ not tracked + + no coverage + low coverage + * + * + * + * + * + * + * + * + high coverage + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + diff --git a/venonactl/pkg/templates/kubernetes/secret.dind-volume-provisioner.vp.yaml b/venonactl/pkg/templates/kubernetes/secret.dind-volume-provisioner.vp.yaml index 4ecb54fa..f1dcc47f 100644 --- a/venonactl/pkg/templates/kubernetes/secret.dind-volume-provisioner.vp.yaml +++ b/venonactl/pkg/templates/kubernetes/secret.dind-volume-provisioner.vp.yaml @@ -6,13 +6,13 @@ metadata: namespace: {{ .Namespace }} labels: app: dind-volume-provisioner -data: +stringData: {{- if .Storage.GoogleServiceAccount }} - google-service-account.json: {{ .Storage.GoogleServiceAccount | b64enc }} + google-service-account.json: {{ .Storage.GoogleServiceAccount }} {{- end }} {{- if .Storage.AwsAccessKeyId }} - aws_access_key_id: {{ .Storage.AwsAccessKeyId | b64enc }} + aws_access_key_id: {{ .Storage.AwsAccessKeyId }} {{- end }} {{- if .Storage.AwsSecretAccessKey }} - aws_secret_access_key: {{ .Storage.AwsSecretAccessKey | b64enc }} + aws_secret_access_key: {{ .Storage.AwsSecretAccessKey }} {{- end }} \ No newline at end of file diff --git a/venonactl/pkg/templates/kubernetes/secret.venona.yaml b/venonactl/pkg/templates/kubernetes/secret.venona.yaml index be572eda..640b275f 100644 --- a/venonactl/pkg/templates/kubernetes/secret.venona.yaml +++ b/venonactl/pkg/templates/kubernetes/secret.venona.yaml @@ -4,5 +4,5 @@ type: Opaque metadata: name: {{ .AppName }} namespace: {{ .Namespace }} -data: - codefresh.token: {{ .AgentToken | b64enc }} \ No newline at end of file +stringData: + codefresh.token: {{ .AgentToken }} \ No newline at end of file diff --git a/venonactl/pkg/templates/kubernetes/templates.go b/venonactl/pkg/templates/kubernetes/templates.go index 071b3aed..72868a92 100644 --- a/venonactl/pkg/templates/kubernetes/templates.go +++ b/venonactl/pkg/templates/kubernetes/templates.go @@ -177,11 +177,10 @@ spec: - key: 'codefresh/dind' operator: 'Exists' effect: 'NoSchedule' + +{{ toYaml .Tolerations | indent 8 | unescape}} securityContext: fsGroup: 1000 - -{{ toYaml .Tolerations | indent 8 | unescape}} - initContainers: - command: - chown