{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:

f(x) = \int_{-\infty}^\infty \hat f(\xi)\,e^{2 \pi i \xi x} \,d\xi
  • 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

  • 422