{YAML Hell 🔥}*
* In the context of Kubernetes
The Origin
The Needs
The problem
The solutions
THE ORIGIN
We want an automated way to deploy, scale, and manage our containerized applications.
We want an automated way to deploy, scale, and manage our containerized applications.
Kubernetes Objects
Persistent entities to represent the (desired), state of the cluster.
PODS
DEPLOYMENTS
JOBS
DAEMONSETS
1. What containerized processes are running in the cluster.
IN OTHER WORDS...
2. The resources available to those containerized processes.
3. Policies around how those processes behave.
Kubernetes objects are described using...
YAML FILES
---
apiVersion: v1
kind: Service
metadata:
name: bahn-id-mock-web
namespace: dima
labels:
app: dima-backend
spec:
type: ClusterIP
ports:
- port: 8130
targetPort: 8130
publishNotReadyAddresses: true
selector:
app: dima-backend
tier: app
1. We want to use KUBERNETES.
2. We have to use KUBERNETES OBJECTS to describe the state of the cluster.
3. We have to use YAML FILES to describe those objects.
KUBERNETES
OBJECTS
KUBERNETES
YAML
SO FAR...
FILES
IN CONCLUSION...
KUBERNETES
=
YAML FILES*
*LOTS OF THEM
THE NEEDS
- Describe complex systems.
- Different states of the system, per environment.
Describing Complex Systems
Running many processes that communicate with each other, each using different resources and configuration...
Lots of Kubernetes objects...
Lots of YAML files...
Having different states of the system
Changing the number of processes that are run, the resources available, the configuration etc. Per environment.
Even more Kubernetes objects (duplication).
Even more YAML files (duplication).
IN CONCLUSION...
KUBERNETES
=
LOTS OF YAML FILES
THE PROBLEM
Too much duplication
Too many YAML files
Hard to manage & maintain.
Hard to manage & maintain.
Error prone.
IN CONCLUSION...
We have a problem and we need solutions...
THE SOLUTION
Kustomize
Helm Charts
KUSTOMIZE
Kustomize provides a solution for customizing Kubernetes resource configuration free from templates and DSLs.
Kustomize lets you customize raw, template-free YAML files for multiple purposes, leaving the original YAML untouched and usable as is.
How it works?
1. Make a kustomization file.
The kustomization file is a YAML specification of a Kubernetes Resource Model (KRM) object called a Kustomization. A kustomization describes how to generate or transform other KRM objects.
How it works?
2. Create variants/overlays.
blah blah blah..
Too much talk, show me ...
// Measure the distance between two points
const distanceBetween = ( p1, p2 ) => {
const dx = p1[0]-p2[0];
const dy = p1[1]-p2[1];
return Math.sqrt( dx*dx + dy*dy );
}
distanceBetween([10,10], [50,50])
# PRESENTING CODE
Code Transitions
# CHAPTER 2
Our Services
We offer a variety of services and plans tailored to business needs of any kind and of any size.
Process
Ideation
During the ideation phase, expect to discuss the project in depth to clearly understand the goals and requirements.
1.
2.
Build
Our team makes each part of the build phase seamless with regular check-ins and deliverables.
3.
Launch
It's time to take the product live - the end if the build phase but the beginning of being in market.
# CHAPTER 2
# CHAPTER 2
Team & Background
Our design team has a collective 75 years of experience in crafting digital products. Our diverse backgrounds offer a thorough mix of points of view.
Meet the Team
COO
George
CEO
Elaine
Advisor
Susan
With built-in \( \LaTeX \) typesetting, you can include math formulas like this:
- Conceptualization
- Product Design
- Development
- UI/UX Testing
- Branding
Our Services
SOLO
Price $149 /mo
One project
Two designs
7-day turnaround
Premium support
PRO
Price $299Â /mo
Up to three projects
Three designs/project
7-day turnaround
Premium support
NEW
PREMIUM
Price $599 /mo
Up to five projects
Five designs/project
3-day turnaround
24/7 support
Services & Pricing
Available 24/7
Contact us at +01 555 0194
1
Discovery of requirements for a project.
2
Research into the project space, competitors and the market.
3
Creating a Plan that sets the requirements for the design and build phases.
5
Review and Iterate on the designs with testing of ideas, client feedback and prototypes.
4
Design a number of iterations that capture the plans and requirements.
6
Build the project to an MVP to test and evaluate. Iterate using these learnings.
ACME Offices
Country | City | Contact |
---|---|---|
USA | Los Angeles | +1 555 0194 |
USA | New York | +1 555 0142 |
Sweden | Stockholm | +46 555 0077 |
UK | London | +44 555 0211 |
South Korea | Seoul | +82 555 0138 |
Get in touch
Our team is ready to hear about your project. We're available by email or phone 24/7
+1 555 0194
Kubernetes Yaml Hell
By ammancilla
Kubernetes Yaml Hell
- 565