It is a concept that extends the Infrastructure as Code (IaC) philosophy to the management of configuration variables, secrets, and environment-specific settings.
More precisely, this extends Configuration as Code (CaC) principles.
The idea is to treat variables — not just infrastructure or configuration — as version-controlled, declarative, and automated code rather than manual, static, or hardcoded values.
With growing complexity of the infrastructure, it is difficult to manage all the variables.
A typical example is the management of Ansible collections.
Currently, when you distribute an Ansible collection, you distribute the recipes that allow you to deploy a component, the default values for certain variables, and possibly variable validation.
However, you don't share the variable declarations. Therefore, each user would have to rewrite the user documentation, define the global context themselves, and so on. It is therefore the user's responsibility to maintain the consistency of the variables with these given problems.