fleet
fleet copied to clipboard
Feature Request: Skip Bundle based on Cluster Label
Is your feature request related to a problem?
We work on a solution where we have hundred of helm charts developed by our company to be deployed, as is, in hundreds of clusters. To keep track of what actually is installed and due to impact on the production environment, deployment is done by selecting a tag of components and not using always the latest version with autoamtic upgrade.
To avoid having one GitRepo per Helm chart (and due to tag approach actually multiple git repo for the same chart just for different tag), we are following the approach that helm charts are grouped together by "functionality" and basically have one git repo per each functionality with multiple fleet.yaml.
However, several times we would like to being able to specify that for a given GitRepo, a Bunde should be installed or not based on a cluster labels, because this bundle could contain functionality not required in that environment.
This is not possible with today fleet solution, we can just specify which GitRepo are linked to a Cluster but not having a sort of "feature flag" approach to the bundle.
This is limiting a lot our capabilities.
Solution you'd like
Having a flag in the fleet.yaml, where we can "skip" a bundle via cluster label selector.
Alternatives you've considered
Adding a boolean to the Values.yaml of the helm populated via global.cluster.fleet.label, and if that boolean is false add to every helm chart template an {{ if .Values.Enabled}} {{ end }} block to basically not create the kubernetes resource.
This however does not work if the chart has any dependency, because the value from a label is a string and the only way to skip a dependency chart is to set condition: false, but Chart.Yaml does not allow any tpl operation and we cannot convert the given "string" into a boolean.
Anything else?
No response