crc-org / crc

CRC is a tool to help you run containers. It manages a local OpenShift 4.x cluster, Microshift or a Podman VM optimized for testing and development purposes
https://crc.dev
Apache License 2.0
1.23k stars 231 forks source link

Define/clarify our bundle 'support' policy #3730

Open cfergeau opened 1 year ago

cfergeau commented 1 year ago

Users can try to use any bundle version they want with crc. Most of the time this works because we did not make breaking changes in CRC recently. I think a warning is printed when crc is used with a version of the bundle which is not the version the crc binary was built/shipped with.

There has been some breaking changes discussions in https://github.com/crc-org/crc/pull/3712#issuecomment-1600058569 but we should document once and for all what our policy is.

Besides, we only 'support' N-1. So anything below OpenShift 4.13 that was part of 2.20.0-4.13.0 by the time we release this (possibly) as part of 2.21, will not receive attention.

This should appear clearly in our documentation if we only ensure N/N-1 keep working wrt bundles and if we make no guarantees for anything else. This is what we commit to/promise/..., but the other question is what we want to try to do. Are we fine with breaking changes in bundles every 2 bundle releases? Or do we prefer to keep compat with older bundles for more time if this is not too complicated?

And last but not least, we need a way to detect these breaking changes so that we can inform the user their bundle/crc combination is too old/too new and won't work, and that they should try something different.

Bundles have a 'format version' https://github.com/crc-org/snc/blob/763e75b9d0608c8b9472092a6fee9bcaa2a6dc17/crc-bundle-info.json.sample#L6-L11 but I'm not sure how much use we make of it.

cfergeau commented 1 year ago

There was more discussion around this in relation with https://github.com/crc-org/crc/commit/b672c81d3e020f460000c69f33a226cadce9e5f4 The discussion was "should disk resize start working for bundle 4.13.0 when we fix it for newer bundles with a newer crc release?" My take on this is that what was working before with the 4.13.0 bundle keeps working, what was not working does not have to start working, especially if this requires 4.13.0-specific code. After disk resizing is fixed for newer bundles, crc start must still be working with a 4.13.0 bundle. But after crc config set disk-size 50, it's ok if crc start fails as it was not working before anyway, and it's easy to workaround (don't try to resize disk if you need to keep using the 4.13.0 bundle, upgrade to a newer bundle if you have to have disk resize)

gbraad commented 1 year ago

This should be a discussion?


This should appear clearly in our documentation if we only ensure N/N-1 keep working wrt bundles and if we make no guarantees for anything else.

Yes. However, the whole CCS is not mentioned. There were concerns about this. Not sure what @themr0c thinks about this?

themr0c commented 1 year ago

I am happy to document whatever you decide. I am not an expert regarding support policies.

gbraad commented 1 year ago

not an expert regarding support policies.

We might want something similar to: https://docs.openshift.com/container-platform/4.13/cli_reference/odo-important-update.html