Value overrides don't overwrite values from spec
From the Fluxcd documentation:
The simplest way to define values overrides is inline via spec.values. It is also possible to define a list of ConfigMap and Secret resources from which to take values via spec.valuesFrom. The values are merged in the order given, with the later values overwriting earlier, and then spec.values overwriting those
This means that whatever values we put in an oas-<app>-override
ConfigMap or Secret can never overwrite values that are in the release.yaml
's spec.values
field.
Solution: we should remove values that users are allowed to overwrite from release.yaml
and move them to a separate, flux-managed <app>-configmap.yaml
file. This file should be the first in the valuesFrom
list, so they can get overwritten with files from the ConfigMap and then from the Secret.
Unfortunately, this does slow reconciliation of the application's values down a bit:
ConfigMap and Secret values overrides. Changes to these do not trigger an immediate reconciliation, but will be handled upon the next reconciliation. This is to avoid a large number of upgrades occurring when multiple resources are updated.