spiffe / helm-charts

Helm charts for SPIRE and other SPIFFE components.
Apache License 2.0
20 stars 22 forks source link

Investigate how we can leverage tags on the dependencies to toggle chart features #174

Open marcofranssen opened 1 year ago

marcofranssen commented 1 year ago

See: https://helm.sh/docs/topics/charts/#tags-and-condition-fields-in-dependencies

Using tags we can conditionally toggle certain features. This might be a good feature to use when toggling features that require a combination of dependencies.

E.g. spire-agent requires spiffe-csi-driver or the nested setup requires another instance of X.

Lets, design/workout a couple of usecases in the context of this chart in this issue. So we can shape our thoughts on the API design as well see if there will be any benefits for us utilizing this feature.

kfox1111 commented 1 year ago

You can either use conditionals with one value to enable/disable a subchart, or you can use a tag to enable a set of charts together. Cant do both. If you use tags, you can't configure the subcharts individually anymore. I have not seen very many charts really use the tag feature. it seems very rare. Guessing due to the limited customizeability

I think we can get the best of both worlds, if we added one level of nested chart that contained the agent/csi driver. Say, you called it: upstream. then there could be upstream.agent and upstream.csi-driver. you'd have upstream.agent.enabled=true, upstream.csi-driver.enabled=true, and upstream.enabled=false by default

You could enable them both by having upstream.enabled=true then, and could control them individually too should the need arise. For example, you have an upstream, but the upstream agent is already installed on the hosts. You just need the csi driver.