Avoid coding in YAML. Use a DSL.

Configuration in YAML is fine. Avoid coding in YAML (if conditions, looping, etc.).

When designing something for non-full-time-programmers to create new entries / configurations, I prefer a DSL in a programming language rather than programming in YAML.

Why? Because a DSL is not restricted (since it builds on top of a general-purpose language), and accomodates customization / complexity.

Plus, the DSL can generate the YAML for you, if you still wish to use YAML.


Kelsey Hightower on Kubernetes & YAML