Understanding options for template code generation on Kubernetes
As discussed in Chapter 1, Communicating with Kubernetes, one of the greatest strengths of Kubernetes is that its API can communicate in terms of declarative resource files. This allows us to run commands such as kubectl apply
and have the control plane ensure that whatever resources are running in the cluster match our YAML or JSON file.
However, this capability introduces some unwieldiness. Since we want to have all our workloads declared in configuration files, any large or complex applications, especially if they include many microservices, could result in a large number of configuration files to write and maintain.
This issue is further compounded with multiple environments. Say we want development, staging, UAT, and production environments, this would require four separate YAML files per Kubernetes resource, assuming we wanted to maintain one resource per file for cleanliness.
One way to fix these issues...