DOP 229: The Evolution of Installing Applications into Kubernetes
Sep 20, 2023
auto_awesome
The podcast discusses the evolution of installing applications into Kubernetes, highlighting the challenges faced and tools introduced. It explores the use of YAML files, the emergence of tools like YQ and templating languages, and the importance of value substitution, conditionals, and loops. The chapter also discusses the benefits and challenges of using Helm for application installation and whether Helm charts are necessary for first-party applications.
No matter what tool or language you use, the end result of installing applications into Kubernetes is always in the form of big, ugly YAML files.
The choice of tool or language for writing Kubernetes manifests depends on the application's complexity and the team's familiarity, but the output should always be a declarative format that can be easily understood by other team members.
Deep dives
The Evolution of Installing Applications into Kubernetes
The podcast episode discusses the evolution of installing applications into Kubernetes over the years. It explores how the process has changed and the various tools and languages that have been used. The main focus is on the different approaches to writing and managing YAML files, including Helm templates, customization with overlays, and other languages like JSONnet and Q. The episode emphasizes the importance of choosing the best format for writing and managing Kubernetes manifests based on the complexity of the application and the team's familiarity with the language. Overall, the key takeaway is that regardless of the chosen format or language, the end result is always YAML, which remains the de facto standard for defining Kubernetes resources.
YAML as a Declarative Format for State
The podcast highlights the significance of using YAML as a declarative format for managing the state of Kubernetes resources. It explains that while various languages and tools can be utilized to generate YAML files, the output should always be in a declarative format. The episode emphasizes that as long as the resulting state is declarative, the choice of language or tool is flexible based on what works best for the team. Whether writing YAML by hand or using languages like Java or Q, the ultimate goal is to have a declarative format that can be easily consumed and understood by other team members.
Choosing the Right Tool or Language
The podcast explores different tools and languages used to write Kubernetes manifests, such as Helm templates, customization with overlays, Q, and JSONnet. It suggests that the choice of tool or language depends on the complexity of the application and the team's comfort level. For simple use cases, writing YAML directly or using a simple tool like customization is sufficient. However, for more complex scenarios, tools like Q or programming languages like Java may be preferable. The episode emphasizes that the output of these tools should still be stored and observed as YAML, to facilitate understanding and collaboration within the team.
The Longevity of YAML in Kubernetes
The podcast concludes by highlighting the enduring importance of YAML in Kubernetes. It acknowledges that while different tools and languages have emerged, YAML remains the standard format for defining Kubernetes resources and manifests. The episode clarifies that regardless of the tool or language used to generate YAML, the focus should always be on producing a declarative format that accurately represents the desired state of the system. Whether it is handcrafted YAML files or output generated from various tools, the key is to ensure compatibility and consistency in the YAML structure, allowing for easier comprehension and management of Kubernetes resources.
#229: When Kubernetes was first released in September 2014, the only way we could get applications installed to the cluster was by using kubectl apply and big, ugly YAML files. Since that time, many tools have been introduced to help manage application installation into Kubernetes clusters.
However, no matter what tool you are using in 2023, under the hood, we’re still just submitting those big, ugly YAML files to the Kubernetes. Once you realize this, things become much clearer.
In this episode, we take a stroll down memory lane of how it all started and what you should consider doing today when creating (or maybe not creating) the YAML files for your application.
Today’s sponsor:
Save 25% on your first Barbaro Mojo order using the code "DevOps25”