Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Composition/Function Revision Semver Versioning #5793

Open
Mikel-Landa opened this issue Jun 20, 2024 · 0 comments
Open

Composition/Function Revision Semver Versioning #5793

Mikel-Landa opened this issue Jun 20, 2024 · 0 comments
Labels
enhancement New feature or request

Comments

@Mikel-Landa
Copy link

Mikel-Landa commented Jun 20, 2024

What problem are you facing?

Currently our implementation of Compositions involves a main function per composition.

pipeline:
- step: render
  functionRef:
    name: workload
- step: automatically-detect-ready-composed-resources
  functionRef:
    name: function-auto-ready

This means that the main changes between revisions are in the function, not in the composition itself.
While there is a way to pin down the CompositionRevision in use for the XR, as I understand, currently there is no way to do it for functions inside of the Composition itself and even for compositions, revision names are not predictable so you need to first define the revision and then reference it. Also, revisions may not be consistent across clusters.

How could Crossplane help solve your problem?

When pushing a new version for either a composition or a function there should be an optional field that allows specifying a version, ideally semver so then, at composition definition time we could specify the appropriate version:

pipeline:
- step: render
  functionRef:
    name: workload
    version: 1.0.1 #also something like >=1.0.0 for example.
# This would remove the need for fields like `compositionUpdatePolicy` 
# because you could do something like ~0, >0, etc
- step: automatically-detect-ready-composed-resources
  functionRef:
    name: function-auto-ready

This would remove the need for fields like compositionUpdatePolicy because you could do something like ~0/>0 (meaning any version), etc.

@Mikel-Landa Mikel-Landa added the enhancement New feature or request label Jun 20, 2024
@Mikel-Landa Mikel-Landa changed the title Composition/Function Revision Semver Revisions Composition/Function Revision Semver Versioning Jun 20, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant