The use of Puppet to manage Kubernetes improves on the basic YAML file approach in a few ways:
-
The Puppet language supports logic and abstractions, allowing you to craft business-specific user interfaces. You can also create higher-level types, and then instantiate multiple copies of those.
-
Modifications can be made to the Puppet code, and Puppet will handle updating the relevant resources. You don't have to describe the full state of the resource, or manually modify individual resources via the command line interface (CLI).
-
Puppet has tools for validating code and for writing unit tests, as well as distributing and sharing reusable modules.
-
Puppet supports relationships between resources, so you can enforce ordering where necessary. With the new application orchestration capabilities, you can even order across nodes where part of the infrastructure isn’t using Kubernetes.