apecloud / kubeblocks

KubeBlocks is an open-source control plane software that runs and manages databases, message queues and other stateful applications on K8s.
https://kubeblocks.io
GNU Affero General Public License v3.0
2.2k stars 184 forks source link

[Features] Support grouping of image lists when setting componentversion #7924

Open ian-hui opened 3 months ago

ian-hui commented 3 months ago

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.

github-actions[bot] commented 2 months ago

This issue has been marked as stale because it has been open for 30 days with no activity