boulder/features
Jacob Hoffman-Andrews 29249b4aad
Add feature flag AllowUnrecognizedFeatures (#6056)
By default, Boulder's feature flag code verifies that the list of flags
being set (from a JSON file) maps to actually-existing flags.

However, this gets in the way of a deployment strategy where feature
flags are added to config templates during a staging deploy with "true"
or "false" filled in depending on production or staging status - for
instance, when rolling out a deprecation to staging ahead of production.
If those configs get rolled to prod before the corresponding Boulder
deploy, Boulder will refuse to start up, even though it would be fine to
start up with the unrecognized flag ignored.

The envisioned deployment behavior here is that prod will have
AllowUnrecognizedFeatures: true while staging will have it set to false,
to ensure that misspellings of feature flag names are caught during
staging deploy. As a correlary, this assumes that the list of flags in
configs will be the same between staging and prod, with only their
values changing.
2022-04-21 18:05:18 -07:00
..
featureflag_string.go Add feature flag AllowUnrecognizedFeatures (#6056) 2022-04-21 18:05:18 -07:00
features.go Add feature flag AllowUnrecognizedFeatures (#6056) 2022-04-21 18:05:18 -07:00
features_test.go Add feature flag AllowUnrecognizedFeatures (#6056) 2022-04-21 18:05:18 -07:00