Classified by rendering, not by hand. Every switch below was auto-extracted from the chart's own values (oci://registry-1.docker.io/bitnamicharts/redis@25.5.3), flipped, and the rendered object set compared against the baseline (14 objects). A switch that changes the object set is structural and belongs in a base variant. A switch that only changes field values is a data edit on a derived variant. The verdict is the diff, not an opinion.
Structural switches (change the object set)
| Switch | Objects | Adds | Removes |
|---|---|---|---|
architecture=standalone | 10 | - | policy/v1/PodDisruptionBudget/redis-replicas<br>v1/ServiceAccount/redis-replica<br>v1/Service/redis-replicas<br>apps/v1/StatefulSet/redis-replicas |
auth.enabled=false | 13 | - | v1/Secret/redis |
sentinel.enabled=true | 10 | policy/v1/PodDisruptionBudget/redis-node<br>v1/ServiceAccount/redis<br>v1/Service/redis<br>apps/v1/StatefulSet/redis-node | policy/v1/PodDisruptionBudget/redis-master<br>policy/v1/PodDisruptionBudget/redis-replicas<br>v1/ServiceAccount/redis-master<br>v1/ServiceAccount/redis-replica<br>v1/Service/redis-master<br>v1/Service/redis-replicas<br>apps/v1/StatefulSet/redis-master<br>apps/v1/StatefulSet/redis-replicas |
serviceBindings.enabled=true | 15 | v1/Secret/redis-svcbind | - |
networkPolicy.enabled=false | 13 | - | networking.k8s.io/v1/NetworkPolicy/redis |
metrics.enabled=true | 15 | v1/Service/redis-metrics | - |
Data-edit switches (values only, no object-set change)
| Switch | Objects |
|---|---|
diagnosticMode.enabled=true | 14 (unchanged set) |
podSecurityPolicy.enabled=true | 14 (unchanged set) |
volumePermissions.enabled=true | 14 (unchanged set) |
sysctl.enabled=true | 14 (unchanged set) |
useExternalDNS.enabled=true | 14 (unchanged set) |
Switches that failed to render when flipped
| Switch | Error |
|---|---|
tls.enabled=true | Command failed: helm template redis oci://registry-1.docker.io/bitnamicharts/redis --version 25.5.3 --namespace redis --values /var/folders/4l/8wvwwzxs3xl78749bmmqzzbw0000gp/T/pilot-switch-map-QCjHW6/ |
A flip that breaks the render is itself a finding: the chart requires more than the toggle to enable that feature.
What this means
Of 12 switches tested, 6 are structural, 5 are data edits, and 1 refuse to render without more inputs. Naming the structural axes as base variants and leaving the rest as data edits avoids both the values-file sprawl and the combinatorial explosion. Switches were tested independently; a generated variant renders the actual combination and proves parity, so interaction effects are caught at generation, not assumed here.