Upgrade Canvas use case
This use-case describes how a canvas can support seamless upgrade of the underlying component specifications. This is a key requirement for a canvas that is intended to be used in a production environment. The canvas should be able to support the following scenarios:
As the underlying spec is upgraded, the canvas should be able to support components of different versions. This is to support a phased upgrade of the components. We expact a canvas to support the current and previous two versions (N-2). The canvas must also work with the version prior to that, but with deprecation warnings. e.g. if the underlying spec is at version v1beta2, the canvas should support v1beta2, v1beta1, v1alpha4 and v1alpha3 (with warnings).
The canvas should also support operators using different versions of the underlying spec. e.g. if the underlying spec is at version v1beta2, the canvas should support operators using v1beta2, v1beta1, v1alpha4 and v1alpha3 (with warnings).
Note This use case is separate to the use case for supporting seamless upgrade of the same component. This use case is about supporting different versions of the underlying spec. The use case for supporting upgrades of the same component is described in UC003.