Open klagroix opened 3 months ago
I could imagine other use-case for this feature. So let's assume that you have a single repository with multiple manifests (applications) (e.g. microservices apps) and would like to track each app separately based on the specific tag group. Then with this feature you could define the tracking rule with some prefix, e.g. targetRevision: app1-*
. Then we could have multiple tags like: app1-1.0.0
, app1-1.0.1
for app1 and app2-1.0.1
, app2-1.0.2
for app 2 - each pushed separately by CI/CD pipeline when specific app is released.
I think above use-case is not possible to handle with current tracking.
Summary
https://github.com/argoproj/argo-cd/pull/17566 updated Argo CD to be able to compare semver tags. This allows us to use a constraint like
>=1.2.0
to select the latest git tag that meets the constraint.While this works well for git repositories that are tagged following semver, this does not work for repositories using a different versioning scheme (example: calver)
Motivation
Auto-discovery of git tags allows for nicer tracking and deployment vs retagging a git tag (like `production) or overwriting the target revision per-application when a new tag is released. While semver is the most widely used versioning scheme, it's not the only one in use. It would be nice if ArgoCD supported different versioning schemes in additon to semver.
(i.e. the same motivation as https://github.com/argoproj/argo-cd/issues/5609 and https://github.com/argoproj/argo-cd/pull/17566)
Proposal
Allow for lexical sort like is supported in ArgoCD Image Updater. Assuming a regex pattern could be provided like ArgoCD Image Updater, this method could be used for non-semver versioning schemes (including calver)