Draft: Helm chart improvements & publication to public repo#290
Closed
ianroberts wants to merge 13 commits intodevfrom
Closed
Draft: Helm chart improvements & publication to public repo#290ianroberts wants to merge 13 commits intodevfrom
ianroberts wants to merge 13 commits intodevfrom
Conversation
v2beta1 ceased to be supported as of k8s 1.25
…can allow the default behaviour of the upstream chart. Requiring an existingSecret was a holdover from an earlier iteration of the chart that used an older Helm that didn't support $.Subcharts. However this is a breaking change for upgrades, so noted in the changelog.
…e values file itself.
…d the version constraint to a more general 11.x to pull the latest available image in that series.
…ed charts when you do "helm search repo"
…ather than having to clone gate-teamware
Jest Coverage
Details
|
…apshot version of _Teamware_ - you have to request that specifically by overriding the image tags
Member
Author
|
The more I think about this the more I’m coming round to the idea of a separate GateNLP/charts repo for all our public Helm charts (initially only this one but could add others later). This is in line with how Bitnami works with a separate repo for each of the actual images and then one “charts” repo that holds all the independently versioned charts for everything. |
Member
Author
|
Following discussion with @davidwilby I will close this PR and start a new one with just the documentation changes, once I've migrated the chart itself to a separate repo. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR includes a few miscellaneous improvements to the Helm chart
existingSecret(this was a holdover from earlier in my development of the chart when i was using an older Helm that couldn't extract the generated secret name from the postgresql subchart)ghcr.ioimages by defaultbut the most important change is that I've set up a chart repository on
repo.gate.ac.ukso we will be able to follow normal Helm practice and publish versioned copies of the chart in a way that allows them to be installed without having to clone the wholegate-teamwarerepo. A cluster manager will be able to docreate their own
values.yamlwith config overrides, thento get the latest stable version of Teamware without having to clone anything.
The bit I'm still puzzling over is exactly what the release cycle is going to look like. Helm charts are typically versioned independently of the version numbers of the software that they are installing (e.g. the postgresql subchart we depend on is versioned 11.x but installs postgresql 14) and there's a distinction in the
Chart.yamlbetween the app version and the chart version. The chart version changes on every change to the chart, even if that's just to upgrade one of the dependencies.The way I've got the chart set up at the moment it uses the
appVersionfromChart.yamlas the default docker image tag forghcr.io/gatenlp/teamware-backendandteamware-static. Those immutable-tagged images are built by a GitHub workflow that fires when we create avX.Ytag on GitHub. If the chart was in lock-step with the app version then we could have a nice workflow where thevX.Ytag triggers a build of the docker images and also publishes the chart to the repository, which should nicely mean that we only publish anappVersion: X.Ychart once we've also publishedX.Y-tagged images. But if it's only the tag workflow that publishes charts then we can't update the chart without bumping the appVersion.If instead we publish the chart on every push to
dev, that means we can update the chart for a given appVersion as often as we want, but since we don't want to publish a chart with a given appVersion until the matching docker images exist, it means that if you look at the state of the repository at the point of a givenvX.Ytag, the chart in that revision will still be one that installs versionX.(Y-1). When we put a chart for a new appVersion onto dev, that published chart will be broken until the release cycle is complete, dev has merged to master and thevX.Ytag exists.I can't see a "nice" way out of this other than to move the chart to its own repository separate from the rest of Teamware... can you see any way to square this circle?