Publishing charts
Charts are packaged and pushed to the GitLab OCI registry by .gitlab-ci.yml on every push to main.
What triggers a publish
The package_charts job walks every Helm chart under k8s/helm/charts/ and decides whether to publish each one based on the diff:
- Normal commit: a chart is published only if its
Chart.yamlversion:line changed in this commit range. [FORCE-PUBLISH]in the commit message: every chart is republished regardless of diff.
So bumping a chart's version is what releases it. If you change template files without bumping the version, nothing new is pushed.
Where they land
oci://registry.gitlab.com/onyourmarks/k8s/oym-k8s-cluster/helm/<chart-name>:<version>
The generated ArgoCD Application resources reference this URL via repoURL: oci://... with targetRevision taken from parameters.chartVersion in each project's definition/xplatformapp.yaml.
Rolling a new chart version out
Publishing alone changes nothing on the cluster. To roll template changes out:
- Bump
chartVersionin everyk8s/app/platform/*/definition/xplatformapp.yamlthat uses the chart (a fleet-wide bump is one commit touching all of them). - Merge to
main. - Run
./argocd/sync-apps.sh—XPlatformAppdefinitions are applied by that script, not synced by ArgoCD.
Component versions
Components also live under k8s/helm/charts/components/ and are published the same way. App charts pin component versions in their Chart.yaml:
dependencies:
- name: component-tasks
version: "1.2.12"
repository: "file://../components/tasks"
When you bump a component, also bump every app chart that depends on it (so the dependency lock and the published bundle stay consistent).