kubeblocks
kubeblocks copied to clipboard
[Features] Support grouping of image lists when setting componentversion
What is the user interaction of your feature I wanna request for a feature for grouping image in componentVersion. In general componentVersion's yaml:
apiVersion: apps.kubeblocks.io/v1alpha1
kind: ComponentVersion
metadata:
name: xxx
spec:
……
images:
redis-proxy: proxy:0.1.1
xxx-sidecar: xxx-sidecar:0.2.0
proxy-sidecar: sidecar:0.1.0
In my mind, it should be improve like:
apiVersion: apps.kubeblocks.io/v1alpha1
kind: ComponentVersion
metadata:
name: xxx
spec:
……
imagesGroups:
- proxy-image-v1
- proxy-sidecar-image-v2
grouping these 3 image into 2 groups like:
...
kind: imageGroups
...
spec:
imageGroupName: proxy-image-v1
images:
redis-proxy: proxy:0.1.1
xxx-sidecar: xxx-sidecar:0.2.0
...
kind: imageGroups
...
spec:
imageGroupName: proxy-sidecar-image-v2
images:
proxy-sidecar: sidecar:0.1.0
Is your feature request related to a problem? Please describe. In real-world scenarios, if an image in componentVersion is accidentally modified, it will cause large-scale in-place upgrades of images, which is disastrous in real-world scenarios. So I hope to manage the images in componentVersion separately.
For example, in the example above, the impact of changing the proxy-image and xxx-sidecar on the entire redis cluster is really high. On the contrary, the impact of proxy-sidecar is very small, so I manage this image separately. If I need to upgrade a newer proxy-sidecar image, I only need to modify the imageGroups file ——"proxy-sidecar-image-v2". This greatly reduces the risk of accidental operation.