apache / camel-k

Apache Camel K is a lightweight integration platform, born on Kubernetes, with serverless superpowers
https://camel.apache.org/camel-k
Apache License 2.0
859 stars 344 forks source link

Provide Helm Artefacts as part of snapshots, pre-releases and final-releases #5740

Closed mdebarros closed 2 weeks ago

mdebarros commented 1 month ago

Requirement

As a Tester I want to have packaged Helm Charts as part of daily-snapshot-releases, pre-releases and final-releases so that I can test the Camel-K Operator installed via Helm

Problem

Helm charts are only published on final releases.

To be able to test daily-snapshot-releases, and pre-releases using Helm installations - one must manually pull the associated "tag" from Github and build the Helm Chart, and override the image on the Helm values.yaml. When testing with this approach using IaC, it is also necessary to manually publish the Helm Chart to an intermediate Helm repo.

The Helm Chart should instead be made available as part of the release process, similar to a Docker Image.

Proposal

Summary

Publish a Helm Chart whenever a Docker Image is published.

Suggested approach:

  1. As part of all daily-snapshot-releases, pre-releases and final-releases, Helm Charts should be published to the applicable Helm repository (i.e. https://apache.github.io/camel-k/charts) whenever a Docker image is published to either official or test Docker repositories (i.e. https://hub.docker.com/r/camelk/camel-k/tags or https://hub.docker.com/r/testcamelk/camel-k/tags).

  2. Utilise Helm's support for "development versions" for daily-snapshot-releases:

      --devel                                      use development versions, too. Equivalent to version '>0.0.0-0'. If --version is set, this is ignored
  1. All Github releases (inc daily-snapshots, pre, and final releases) should include the packaged Helm Chart as part of the attached artefacts.

  2. Candidate releases are currently released as a tag on Github, but I propose that they should similarly be created as a Github release marked as a pre-release. Upon official release this should instead be removed, and marked as latest instead.

Open questions

No response

squakez commented 3 weeks ago

This is partially completed. The nightly now offers all the artifacts required to install, see https://github.com/apache/camel-k/releases/tag/v2.5.0-nightly