-
Notifications
You must be signed in to change notification settings - Fork 4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: package helm chart on push #74
Conversation
we should not create a helm release for every commit since the artifacts in the oci registry will explode. i would suggest to include a filter to just build a pre-release/commit helm bundle if at least one file has been changed in |
@y-eight I don't think it's an issue tbh. The helm chart is currently 5.2 KiB small. We could push like a thousand charts for every docker image that we build. Don't think its worth the effort |
TLDR; we should only create charts for new, working and tagged releases of sparrow. When we start doing proper E2E testing, we should re-evaluate how we handle charts and container images for usage with E2E testing. We don't really need a new container on each push and we most definetely don't need a new chart. My two cents: I'm already questioning if it's meaningful to create a container image and pushing it to github for each commit (we only have 500Mi of space for packages and each container is about 12Mi big. We don't even need to push the image to the registry to do the e2e tests (the local image can be pushed into the kubernetes cluster directly). Do we need this to manually test the helm chart? Since we don't have any test automation, I doubt we're gaining something from having a OCI chart lying around, that we can deploy. I can just build my image locally (it's much quicker) and deploy the current helm chart locally (also quicker). |
Building the helm chart for every image makes testing internally easier, since we can just pull in the right version from our registry without having to fork around it with submodules or something like that in fleet. I'd like to easily test prerelease versions of the image and chart internally without having to build a bunch of workarounds |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Since we're in the early testing stages of the product, I think it's ok to release a new chart each time. Since we're automatically deploying to our staging environment, as the new charts come in, then it's the lesser evil here to choose the creation of a chart for each commit.
Down the line we should really invest time into a solid E2E suite, which would minimize the need to do deployments to a staging/test cluster first.
merging this, but definitely agree with you @puffitos |
Motivation
Since we build and publish a docker image for every pr and main push, we should do the same thing for the helm chart.
Changes
Packages the helm chart in the ci workflow on every pr and main commit, and releases it with its version and appVersion set to commit-<GIT_SHORT_SHA>. Ensures that, whenever we build a new docker image, we also have a helm chart available.
For additional information look at the commits.
Tests done
helm upgrade -n sparrow sparrow oci://ghcr.io/caas-team/charts/sparrow --version 0.2.2-commit-3158f2d
resulted in image ghcr.io/caas-team/sparrow:commit-3158f2d being used, as expectedTODO