Search⌘ K

Merging Everything into the Same YAML Definition

Explore how to merge multiple Kubernetes deployment and service resources into a single YAML configuration. Understand the practical adjustments made to settings like deployment strategies and default values, and practice creating all necessary cluster objects using one unified file for efficient cluster deployment.

Looking into the merged file

Consider this lesson as a connective tissue. We’ll merge the definitions we used in this chapter into a single YAML file. We’ve already discussed a similar example before, so there’s no need for lengthy explanations.

Let’s look at the definition of go-demo-2.yml:

YAML
apiVersion: apps/v1
kind: Deployment
metadata:
name: go-demo-2-db
labels:
type: db
service: go-demo-2
vendor: MongoLabs
spec:
selector:
matchLabels:
type: db
service: go-demo-2
strategy:
type: Recreate
template:
metadata:
labels:
type: db
service: go-demo-2
vendor: MongoLabs
spec:
containers:
- name: db
image: mongo:3.3
---
apiVersion: v1
kind: Service
metadata:
name: go-demo-2-db
spec:
ports:
- port: 27017
selector:
type: db
service: go-demo-2
---
apiVersion: apps/v1beta2
kind: Deployment
metadata:
name: go-demo-2-api
labels:
type: api
service: go-demo-2
language: go
spec:
replicas: 3
selector:
matchLabels:
type: api
service: go-demo-2
template:
metadata:
labels:
type: api
service: go-demo-2
language: go
spec:
containers:
- name: api
image: vfarcic/go-demo-2
env:
- name: DB
value: go-demo-2-db
readinessProbe:
httpGet:
path: /demo/hello
port: 8080
periodSeconds: 1
livenessProbe:
httpGet:
path: /demo/hello
port: 8080
---
apiVersion: v1
kind: Service
metadata:
name: go-demo-2-api
spec:
type: NodePort
ports:
- port: 8080
selector:
type: api
service: go-demo-2

Differences with previous definitions

If you start searching for differences with the ...