ci: publish the kobe Helm chart as an OCI artifact on a helm_v* tag - #46
Conversation
The chart only exists as source in charts/kobe, so installing kobe means cloning the repo. Publish it to Docker Hub as an OCI artifact so users can `helm install oci://registry-1.docker.io/zondax/kobe --version <x>`. Chart releases ride their own tag (helm_v<chart-version>), decoupled from the operator's v* releases and reusing the existing Docker Hub credentials. Before pushing, the workflow asserts the tag version equals the chart's version: and that the operator image for the chart's appVersion already exists, so a published chart can never carry a mismatched version or point at an unbuilt operator image.
d99b181 to
f193f38
Compare
|
Merging this as-is to start publishing charts, with a refactor to follow. Context from the 0.36.0 release: the chart now tracks the operator version (#50) — That makes the version-match assertion here trivially satisfied, and the "operator image must exist" check a belt-and-braces version of what will become a real dependency edge. Planned refactor: fold this into Still blocking a first chart push (unchanged from the description): |
What's New
Publishes the
kobeHelm chart as an OCI artifact, so it can be installed directly without cloning the repo:Technical Details
.github/workflows/publish-chart.ymltriggered only onhelm_v*tags — decoupled from the operator'sv*release tags, so chart releases are an explicit, separate action and never rebuild/re-push the image. (v*globs don't matchhelm_v*, soci.ymlis untouched at runtime.)helm_v0.0.1→0.0.1) equalsversion:incharts/kobe/Chart.yamlbefore publishing.zondax/kobe-operator:<appVersion>exists in the registry before publishing, so a chart release can't point at an operator version that was never built.DOCKERHUB_USER/DOCKERHUB_TOKEN:helm registry login→dependency build→package→helm push … oci://registry-1.docker.io/zondax.env:and referenced quoted — no untrusted input reaches therun:block.To cut a chart release: set
charts/kobe/Chart.yamlversion:toX.Y.Z, then push taghelm_vX.Y.Z.Still to confirm
zondax/kobedoesn't exist yet — the first push creates it private, so it must be flipped to public once, and the CI token needs rights to push a new repo underzondax.