Skip to content

docs: Add CRD versioning ADR - #712

Draft
Techassi wants to merge 3 commits into
mainfrom
adr/crd-versioning
Draft

docs: Add CRD versioning ADR#712
Techassi wants to merge 3 commits into
mainfrom
adr/crd-versioning

Conversation

@Techassi

@TechassiTechassi commented Feb 25, 2025

Copy link
Copy Markdown
Member

@TechassiTechassi self-assigned this Feb 25, 2025
@netlify

netlifyBot commented Feb 25, 2025

Copy link
Copy Markdown

Deploy Preview for stackable-docs ready!

NameLink
🔨 Latest commit7d1df0b
🔍 Latest deploy loghttps://app.netlify.com/sites/stackable-docs/deploys/6819e61dbf441600087ee3e2
😎 Deploy Previewhttps://deploy-preview-712--stackable-docs.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify site configuration.

@sbernauersbernauer left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM in general, just some small remarks

> [!TIP]
> This approach can be used for fields which opt into optional (experimental) features but still providing the ability to customize using the field. Using `Option<T>` will push the responsibility of dealing with `None` (eg. using a default fallback value) to the operator.

**TODO:** Can we detect the addition of an optional field and thus enable not needing to bump / introduce a new version? We *can* somehow reliable detect `Option`, but it is not guaranteed to be the `Option` (from the standard library) we expect.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I fear it's very complicated to determine this and I'm fine not automating this for now (and rely on human intelligence to determine if the version should bumped).
If we determine the breakingness however, I think we should be looking at the generated crd.yaml, not the Rust code. Maybe there are already some tools for that already ;)

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I fear it's very complicated to determine this and I'm fine not automating this for now

It is indeed very complicated. I would even say impossible to do it reliably (right). I just left this to note down a random thought I had.

If we determine the breakingness however, I think we should be looking at the generated crd.yaml, not the Rust code. Maybe there are already some tools for that already ;)

Sure, that also makes sense. If we would down that road, I would still explore defining this in Rust code. This would also enforce specific rules around code. But as stated above, this was mostly just a random thought which will be removed from the final ADR anyway.

Comment threadmodules/contributor/pages/adr/ADR000-crd-versioning.md
Comment threadmodules/contributor/pages/adr/ADR000-crd-versioning.md
@sbernauersbernauer moved this from Development: In Progress to Development: In Review in Stackable EngineeringApr 28, 2025
@sbernauersbernauer moved this from Development: In Review to Development: In Progress in Stackable EngineeringApr 28, 2025
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@Techassi@sbernauer