Architecture #19536
closedArchitecture #18730: Move allowed network data to settings
Do not fail technique parsing on missing system variable
Description
We have a sanity check for system technique parsing that verify that all system variables are defined. That check created uncomensurable suffering when a system variable is not used anymore and removed, or a new one is added, because it almost always broke migration: at some point, we have new rudder with old techniques or the opposite, and rudder miserably fails in complicated way (you have an error at the begining of boot that is easely missed, and then during generation, rudder complains that "commons/1.0" (for ex) is not defined, which is surprising and not the real reason).
So we used to impose migration path where in one version, we remove use of a system variable, and in the next, we remove it from rudder known system variable. Of course, it does not work when adding a new variable (an old rudder with new technique will fails).
So I propose to in place of failing the technique parsing, only fail the generation by creating a placeholder system variable with a mandatory value (which won't be provided, since it's missing). The variable name can be: "Missing system variable, please check logs: NAME_OF_VAR"