Professional Documents
Culture Documents
Continuousdeliveryonkuberneteswithhelm 170222181602
Continuousdeliveryonkuberneteswithhelm 170222181602
Introduction to Helm
Why?
Version Control
Consistent
Reproducible
Rollbacks
Auditing
Tools
apiVersion: v1
kind: Deployment
metadata:
name: my-app
spec:
replicas: 3
template:
metadata:
labels:
app: my-app
spec:
containers:
- name: my-app
image: prydonius/node-todo:v1.0.0
ports:
- containerPort: 8080
livenessProbe:
httpGet:
path: /
port: 8080
initialDelaySeconds: 120
timeoutSeconds: 5
Example: Deploying to Kubernetes
No history of releases
Tool for managing
resources as a
single unit
Reuse resources
Consist of
Metadata (Chart.yaml)
Documentation
myapp
├── Chart.yaml
├── README.md
├── charts
│ └── mariadb-0.5.8.tgz
├── templates
│ ├── deployment.yaml
│ └── ...
└── values.yaml
Public charts repository
How the Helm can I setup CD?
CLI tool
Code/config change
Build
Test
Publish artifacts
Staging/QA Deployment
Manual verification
Production Deployment
Demo: CI/CD Pipeline
Code/config change
Build
Test
Staging/QA Deployment
Manual verification
Production Deployment
Demo: Todo List App
Helm Chart
● Express.js server
Dockerfile
● Angular frontend
● MongoDB database
Application Code
prydonius/node-todo
Demo
Helm + Jenkins vs. Spinnaker
Helm and Jenkins
Spinnaker