I have been building my application mostly as a 12-factor application and am now looking at the configuration part.
Right now as it stands, I have separate configuration files for development and production and through the build process, we either build a development or production image. The code is 100% the same; the only thing that changes is the configuration.
Now I 100% understand that in a 12-factor application the configuration should come from external sources, such as: environment variables, or maybe a safe store like a vault, etc.
So what the various articles and blogs fail to mention about the configuration is how the configuration is stored/processed. If the code is separated in its own Git repository and it doesn't have any configuration stored with it, then how do we handle the configuration?
Do we store the actual configuration values in a separate Git repository and then somehow merge/push/execute those on the target environment (Kubernetes configuration map, marathon JSON configuration, Vault, etc...) through the build process using some kind of trigger?