source-controller icon indicating copy to clipboard operation
source-controller copied to clipboard

Support Helm semver encoding in OCI repositories

Open evankanderson opened this issue 6 months ago • 0 comments

(See also the related https://github.com/fluxcd/flux2/issues/4674, which gave me the hint I needed.)

I'm attempting to use a Helm chart with versions like 0.20250616.4188+ref.2dec694 (which gets encoded as the tag :0.20250616.4188_ref.2dec694) with the instructions here: https://fluxcd.io/flux/cheatsheets/oci-artifacts/#helm-oci

Unfortunately, because 0.20250616.4188_ref.2dec694 is not a valid semver, I get the error message:

failed to determine the artifact tag for 'oci://ghcr.io/mindersec/minder/helm/minder': no match found for semver: >0.0.1

Based on the documentation at https://helm.sh/docs/topics/registries/#oci-feature-deprecation-and-behavior-changes-with-v380 and the discussion at https://github.com/opencontainers/distribution-spec/issues/154, it seems plausible to assume that replacing _ with + (one time) when parsing semantic versions from tags is a reasonable thing to do. I'd be willing to discuss fetching the annotations for all the OCI manifests, but I suspect that's undesirable from an efficiency point of view. I'd also be willing to add a verification of the org.opencontainers.image.version annotation on the actually selected tag, but I was trying to minimize the amount of load Flux induces while supporting build metadata in semver.

evankanderson avatar Jun 16 '25 21:06 evankanderson