fluxcd / pkg

Toolkit common packages
https://pkg.go.dev/github.com/fluxcd/pkg
Apache License 2.0
45 stars 84 forks source link

Why do we need to check for a strict semver in ParseVersion? #771

Open mo-rieger opened 2 months ago

mo-rieger commented 2 months ago

I stumbled on this, when I was using an ImagePolicy with policy.semver.range defined.

Some repositories strip the patch version when doing a minor release, e.g. kubernetes-event-exporter. The image-reflector-controller cant evaluate the latest tag of such tags and logs: unable to determine latest version from provided list.

ImagePolicy

```yaml apiVersion: image.toolkit.fluxcd.io/v1beta2 kind: ImagePolicy metadata: name: kubernetes-event-exporter spec: imageRepositoryRef: name: kubernetes-event-exporter policy: semver: range: ^1.1 ```

We see this because we check for a strict semver in ParseVersion, even though semver.NewVersion is used to return the version which could actually handle missing patch versions, like 1.1.