SlideShare a Scribd company logo
1 of 45
Steering the course with
Dirk Jablonski
ePages GmbH
Motivation
March 8, 2018 2
How we use Kubernetes
BUILD ACCEPTANCE PRE-PROD PROD
CREATE
DEPLOY
DEPLOY
DEPLOY
March 8, 2018 Motivation 3
How we want out deployments to be…
DEV PROD
March 8, 2018 Motivation 4
…and how it often ended up
DEV PDPROD
March 8, 2018 Motivation 5
What Kinds of Icebergs we hit
handwritten manifests are error-prone
March 8, 2018 Motivation 6
What Kinds of Icebergs we hit
overriding values per environment is quirky
March 8, 2018 Motivation 7
What Kinds of Icebergs we hit
manifests are mostly duplicated code
March 8, 2018 Motivation 8
to the rescue!
March 8, 2018 9
What is Helm?
“Kubernetes Package Manager”
March 8, 2018 Helm to the rescue 10
What does Helm do?
• bundles related manifests
into charts, e.g.
• deployment.yaml
• service.yaml
• ingress.yaml
• etc.
• when installing a chart, Helm
creates a release
March 8, 2018 Helm to the rescue 11
What does Helm do?
• provides solid templating
• utilizes Go templates &
Sprig template library
March 8, 2018 Helm to the rescue 12
What does Helm do?
• allows to override values
easily
• overrides can originate from
• child charts
• additional values files
• command-line values
• override order is clearly
defined
March 8, 2018 Helm to the rescue 13
What does Helm do?
• enables reuse & composition
via dependencies
March 8, 2018 Helm to the rescue 14
Use Cases?
Managing your own charts
• create charts for your own
applications
Utilizing community charts
• easily install standard
applications, e.g. Prometheus
March 8, 2018 Helm to the rescue 15
How it works
March 8, 2018 16
Initializing the Cluster
API
server
$ helm init «Pod»
tiller
March 8, 2018 How it works 17
Installing a Chart
API
server
$ helm install <chart> «Pod»
tiller
«service»
xyz
«deploym»
xyz
«secret»
xyz
Release
March 8, 2018 How it works 18
Upgrading a Chart
API
server
$ helm upgrade <release>
<chart>
«Pod»
tiller
«service»
xyz
«deploym»
xyz
«secret»
xyz
March 8, 2018 How it works 19
Charts
March 8, 2018 20
Charts
• bundle meta data, templates,
default values & docs
• use “helm create“ to generate
skeleton
• need semantic version numbers
March 8, 2018 Charts 21
Chart.yaml
• defines name & version
• may include additional meta data,
e.g. app version, maintainer etc.
March 8, 2018 Charts 22
Templates
• YAML files for whatever manifests you
need to create
• will be rendered as part of the release
March 8, 2018 Charts 23
Template Example
March 8, 2018 Charts 24
Helpers
• files beginning with “_” will NOT be rendered as
part of the release
• contain helper templates used in multiple places
within the chart
• By convention end with “.tpl”
March 8, 2018 Charts 25
values.yaml
• contains default values for the chart
March 8, 2018 Charts 26
requirements.yaml
• lists dependencies for this chart
March 8, 2018 Charts 27
How to organize Charts
Chart per service One Chart to Rule Them All
March 8, 2018 Charts 28
Chart per Service
Pro
• flexible
• low complexity of charts
• simple versioning
Contra
• huge amount of duplication
• difficult to keep consistent
• hard to introduce global
changes
March 8, 2018 Charts 29
One Chart to Rule Them All
Pro
• avoids unnecessary
duplication
• consistency
• easy to introduce global
changes
Contra
• high complexity of templates
• tight coupling
• less flexible
March 8, 2018 Charts 30
Hybrid Approach
• one “master” chart per service group
• one dependent chart per service, containing
• values
• specific additions
March 8, 2018 Charts 31
Writing Templates
March 8, 2018 32
Built-in Objects
• provide access to specific
sets of values
• the main ones are:
• Chart
• Release
• Values
March 8, 2018 Writing Templates 33
Control Structures
• Go templates provide typical
control structures:
• if / else
• range (loop)
• with (scoping)
March 8, 2018 Writing Templates 34
Functions
• Go templates provide some
basic functions
• Sprig template library provide
a lot of additions
• Examples:
• default
• quote
• b64enc
• sha256sum
• trim
• …
March 8, 2018 Writing Templates 35
Pipelines
• most functions (and expressions) can be pipelined
• provides the well-known benefits of composability
March 8, 2018 Writing Templates 36
Checking the Results
helm lint
• examines a chart for possible
issues
• emits ERROR messages
when the chart will fail
• emits WARNING when
conventions & best practices
are violated
helm template
• locally render templates
• does not require Tiller
March 8, 2018 Writing Templates 37
Helpful Tools & Tricks
March 8, 2018 38
kubeval
• kubeval validates manifests against specific API versions
• mostly provides detailed validation errors
• pass a manifest file name or pipe to stdin:
March 8, 2018 Helpful Tools & Tricks 39
kubetest
• kubetest let‘s you write automatic tests to check the
generated manifests
• tests are written in Skylark, a lightweight Python dialect
• can be used to verify some invariants, e.g.
• existence of specific labels or annotations
• minimum number of replicas
• etc.
March 8, 2018 Helpful Tools & Tricks 40
Tips & Tricks (1)
If you want to override value lists…
March 8, 2018 Helpful Tools & Tricks 41
Tips & Tricks (2)
This way, you can override them indiviually, instead of only whole lists
March 8, 2018 Helpful Tools & Tricks 42
…use hashes instead
Questions?
March 8, 2018 43
Resources
• Helm docs
https://docs.helm.sh/
• Michael Goodness: One
Chart to Rule Them All
(YouTube)
http://bit.ly/2DoERqM
• kubeval
https://github.com/garethr/kub
eval
• kubetest
https://github.com/garethr/kub
etest
• Artifactory Helm integration
https://jfrog.com/integration/k
ubernetes-helm/
• ChartMuseum
https://github.com/kubernetes
-helm/chartmuseum
March 8, 2018 44
Thank you!
d.jablonski@epages.com
@djablonski

More Related Content

What's hot

Helm - Package Manager for Kubernetes
Helm - Package Manager for KubernetesHelm - Package Manager for Kubernetes
Helm - Package Manager for KubernetesKnoldus Inc.
 
Helm - Package manager in K8S
Helm - Package manager in K8SHelm - Package manager in K8S
Helm - Package manager in K8SPiotr Perzyna
 
Kubernetes Helm: Why It Matters
Kubernetes Helm: Why It MattersKubernetes Helm: Why It Matters
Kubernetes Helm: Why It MattersPlatform9
 
Free GitOps Workshop + Intro to Kubernetes & GitOps
Free GitOps Workshop + Intro to Kubernetes & GitOpsFree GitOps Workshop + Intro to Kubernetes & GitOps
Free GitOps Workshop + Intro to Kubernetes & GitOpsWeaveworks
 
Kubernetes for Beginners: An Introductory Guide
Kubernetes for Beginners: An Introductory GuideKubernetes for Beginners: An Introductory Guide
Kubernetes for Beginners: An Introductory GuideBytemark
 
Kubernetes Application Deployment with Helm - A beginner Guide!
Kubernetes Application Deployment with Helm - A beginner Guide!Kubernetes Application Deployment with Helm - A beginner Guide!
Kubernetes Application Deployment with Helm - A beginner Guide!Krishna-Kumar
 
Intro to Helm for Kubernetes
Intro to Helm for KubernetesIntro to Helm for Kubernetes
Intro to Helm for KubernetesCarlos E. Salazar
 
Introduction to Kubernetes Workshop
Introduction to Kubernetes WorkshopIntroduction to Kubernetes Workshop
Introduction to Kubernetes WorkshopBob Killen
 
Hands-On Introduction to Kubernetes at LISA17
Hands-On Introduction to Kubernetes at LISA17Hands-On Introduction to Kubernetes at LISA17
Hands-On Introduction to Kubernetes at LISA17Ryan Jarvinen
 
Kubernetes: A Short Introduction (2019)
Kubernetes: A Short Introduction (2019)Kubernetes: A Short Introduction (2019)
Kubernetes: A Short Introduction (2019)Megan O'Keefe
 
Kubernetes Architecture | Understanding Kubernetes Components | Kubernetes Tu...
Kubernetes Architecture | Understanding Kubernetes Components | Kubernetes Tu...Kubernetes Architecture | Understanding Kubernetes Components | Kubernetes Tu...
Kubernetes Architecture | Understanding Kubernetes Components | Kubernetes Tu...Edureka!
 
Red Hat Openshift Fundamentals.pptx
Red Hat Openshift Fundamentals.pptxRed Hat Openshift Fundamentals.pptx
Red Hat Openshift Fundamentals.pptxssuser18b1c6
 
Kubernetes Introduction
Kubernetes IntroductionKubernetes Introduction
Kubernetes IntroductionEric Gustafson
 
Kubernetes
KubernetesKubernetes
Kuberneteserialc_w
 

What's hot (20)

Helm - Package Manager for Kubernetes
Helm - Package Manager for KubernetesHelm - Package Manager for Kubernetes
Helm - Package Manager for Kubernetes
 
Helm - Package manager in K8S
Helm - Package manager in K8SHelm - Package manager in K8S
Helm - Package manager in K8S
 
Kubernetes Helm: Why It Matters
Kubernetes Helm: Why It MattersKubernetes Helm: Why It Matters
Kubernetes Helm: Why It Matters
 
Hands-on Helm
Hands-on Helm Hands-on Helm
Hands-on Helm
 
Introduction to helm
Introduction to helmIntroduction to helm
Introduction to helm
 
Free GitOps Workshop + Intro to Kubernetes & GitOps
Free GitOps Workshop + Intro to Kubernetes & GitOpsFree GitOps Workshop + Intro to Kubernetes & GitOps
Free GitOps Workshop + Intro to Kubernetes & GitOps
 
DevOps with Kubernetes
DevOps with KubernetesDevOps with Kubernetes
DevOps with Kubernetes
 
Kubernetes for Beginners: An Introductory Guide
Kubernetes for Beginners: An Introductory GuideKubernetes for Beginners: An Introductory Guide
Kubernetes for Beginners: An Introductory Guide
 
Kubernetes Application Deployment with Helm - A beginner Guide!
Kubernetes Application Deployment with Helm - A beginner Guide!Kubernetes Application Deployment with Helm - A beginner Guide!
Kubernetes Application Deployment with Helm - A beginner Guide!
 
Helm.pptx
Helm.pptxHelm.pptx
Helm.pptx
 
Intro to Helm for Kubernetes
Intro to Helm for KubernetesIntro to Helm for Kubernetes
Intro to Helm for Kubernetes
 
Introduction to Kubernetes Workshop
Introduction to Kubernetes WorkshopIntroduction to Kubernetes Workshop
Introduction to Kubernetes Workshop
 
Hands-On Introduction to Kubernetes at LISA17
Hands-On Introduction to Kubernetes at LISA17Hands-On Introduction to Kubernetes at LISA17
Hands-On Introduction to Kubernetes at LISA17
 
Kubernetes: A Short Introduction (2019)
Kubernetes: A Short Introduction (2019)Kubernetes: A Short Introduction (2019)
Kubernetes: A Short Introduction (2019)
 
Kubernetes Architecture | Understanding Kubernetes Components | Kubernetes Tu...
Kubernetes Architecture | Understanding Kubernetes Components | Kubernetes Tu...Kubernetes Architecture | Understanding Kubernetes Components | Kubernetes Tu...
Kubernetes Architecture | Understanding Kubernetes Components | Kubernetes Tu...
 
Red Hat Openshift Fundamentals.pptx
Red Hat Openshift Fundamentals.pptxRed Hat Openshift Fundamentals.pptx
Red Hat Openshift Fundamentals.pptx
 
Gitlab, GitOps & ArgoCD
Gitlab, GitOps & ArgoCDGitlab, GitOps & ArgoCD
Gitlab, GitOps & ArgoCD
 
Kubernetes Introduction
Kubernetes IntroductionKubernetes Introduction
Kubernetes Introduction
 
Kubernetes 101
Kubernetes 101Kubernetes 101
Kubernetes 101
 
Kubernetes
KubernetesKubernetes
Kubernetes
 

Similar to Steering the Course with Helm

O365Con18 - Using ARM Templates to Deploy Solutions on Azure - Kevin Timmermann
O365Con18 - Using ARM Templates to Deploy Solutions on Azure - Kevin TimmermannO365Con18 - Using ARM Templates to Deploy Solutions on Azure - Kevin Timmermann
O365Con18 - Using ARM Templates to Deploy Solutions on Azure - Kevin TimmermannNCCOMMS
 
Airline Reservations and Routing: A Graph Use Case
Airline Reservations and Routing: A Graph Use CaseAirline Reservations and Routing: A Graph Use Case
Airline Reservations and Routing: A Graph Use CaseJason Plurad
 
ODSC18, London, How to build high performing weighted XGBoost ML Model for Re...
ODSC18, London, How to build high performing weighted XGBoost ML Model for Re...ODSC18, London, How to build high performing weighted XGBoost ML Model for Re...
ODSC18, London, How to build high performing weighted XGBoost ML Model for Re...Alok Singh
 
Keeping up a Competitive Ceph/RadosGW S3 API (Cephalocon Barcelona 2019)
Keeping up a Competitive Ceph/RadosGW S3 API (Cephalocon Barcelona 2019)Keeping up a Competitive Ceph/RadosGW S3 API (Cephalocon Barcelona 2019)
Keeping up a Competitive Ceph/RadosGW S3 API (Cephalocon Barcelona 2019)Igalia
 
Airline reservations and routing: a graph use case
Airline reservations and routing: a graph use caseAirline reservations and routing: a graph use case
Airline reservations and routing: a graph use caseDataWorks Summit
 
Jfokus 2019-dowling-logical-clocks
Jfokus 2019-dowling-logical-clocksJfokus 2019-dowling-logical-clocks
Jfokus 2019-dowling-logical-clocksJim Dowling
 
Webinar - Building Custom Extensions With AppDynamics
Webinar - Building Custom Extensions With AppDynamicsWebinar - Building Custom Extensions With AppDynamics
Webinar - Building Custom Extensions With AppDynamicsTodd Radel
 
Spark logs made easy
Spark logs made easySpark logs made easy
Spark logs made easySimona Meriam
 
Serverless Data Prep with AWS Glue (ANT313) - AWS re:Invent 2018
Serverless Data Prep with AWS Glue (ANT313) - AWS re:Invent 2018Serverless Data Prep with AWS Glue (ANT313) - AWS re:Invent 2018
Serverless Data Prep with AWS Glue (ANT313) - AWS re:Invent 2018Amazon Web Services
 
Model Parallelism in Spark ML Cross-Validation with Nick Pentreath and Bryan ...
Model Parallelism in Spark ML Cross-Validation with Nick Pentreath and Bryan ...Model Parallelism in Spark ML Cross-Validation with Nick Pentreath and Bryan ...
Model Parallelism in Spark ML Cross-Validation with Nick Pentreath and Bryan ...Databricks
 
Build Modern Applications that Align with Twelve-Factor Methods (API303) - AW...
Build Modern Applications that Align with Twelve-Factor Methods (API303) - AW...Build Modern Applications that Align with Twelve-Factor Methods (API303) - AW...
Build Modern Applications that Align with Twelve-Factor Methods (API303) - AW...Amazon Web Services
 
Productionizing Spark ML Pipelines with the Portable Format for Analytics
Productionizing Spark ML Pipelines with the Portable Format for AnalyticsProductionizing Spark ML Pipelines with the Portable Format for Analytics
Productionizing Spark ML Pipelines with the Portable Format for AnalyticsNick Pentreath
 
Index conf sparkml-feb20-n-pentreath
Index conf sparkml-feb20-n-pentreathIndex conf sparkml-feb20-n-pentreath
Index conf sparkml-feb20-n-pentreathChester Chen
 
ML Best Practices: Prepare Data, Build Models, and Manage Lifecycle (AIM396-S...
ML Best Practices: Prepare Data, Build Models, and Manage Lifecycle (AIM396-S...ML Best Practices: Prepare Data, Build Models, and Manage Lifecycle (AIM396-S...
ML Best Practices: Prepare Data, Build Models, and Manage Lifecycle (AIM396-S...Amazon Web Services
 
Tableau Visual analytics complete deck 2
Tableau Visual analytics complete deck 2Tableau Visual analytics complete deck 2
Tableau Visual analytics complete deck 2Arun K
 
Mathematical content in documentation (DITA Europe 2008)
Mathematical content in documentation (DITA Europe 2008)Mathematical content in documentation (DITA Europe 2008)
Mathematical content in documentation (DITA Europe 2008)Lois Patterson
 
Productionizing Spark ML pipelines with the portable format for analytics
Productionizing Spark ML pipelines with the portable format for analyticsProductionizing Spark ML pipelines with the portable format for analytics
Productionizing Spark ML pipelines with the portable format for analyticsDataWorks Summit
 
Angular 4 and TypeScript
Angular 4 and TypeScriptAngular 4 and TypeScript
Angular 4 and TypeScriptAhmed El-Kady
 
Optimizing your SparkML pipelines using the latest features in Spark 2.3
Optimizing your SparkML pipelines using the latest features in Spark 2.3Optimizing your SparkML pipelines using the latest features in Spark 2.3
Optimizing your SparkML pipelines using the latest features in Spark 2.3DataWorks Summit
 

Similar to Steering the Course with Helm (20)

O365Con18 - Using ARM Templates to Deploy Solutions on Azure - Kevin Timmermann
O365Con18 - Using ARM Templates to Deploy Solutions on Azure - Kevin TimmermannO365Con18 - Using ARM Templates to Deploy Solutions on Azure - Kevin Timmermann
O365Con18 - Using ARM Templates to Deploy Solutions on Azure - Kevin Timmermann
 
Airline Reservations and Routing: A Graph Use Case
Airline Reservations and Routing: A Graph Use CaseAirline Reservations and Routing: A Graph Use Case
Airline Reservations and Routing: A Graph Use Case
 
ODSC18, London, How to build high performing weighted XGBoost ML Model for Re...
ODSC18, London, How to build high performing weighted XGBoost ML Model for Re...ODSC18, London, How to build high performing weighted XGBoost ML Model for Re...
ODSC18, London, How to build high performing weighted XGBoost ML Model for Re...
 
Keeping up a Competitive Ceph/RadosGW S3 API (Cephalocon Barcelona 2019)
Keeping up a Competitive Ceph/RadosGW S3 API (Cephalocon Barcelona 2019)Keeping up a Competitive Ceph/RadosGW S3 API (Cephalocon Barcelona 2019)
Keeping up a Competitive Ceph/RadosGW S3 API (Cephalocon Barcelona 2019)
 
Airline reservations and routing: a graph use case
Airline reservations and routing: a graph use caseAirline reservations and routing: a graph use case
Airline reservations and routing: a graph use case
 
Jfokus 2019-dowling-logical-clocks
Jfokus 2019-dowling-logical-clocksJfokus 2019-dowling-logical-clocks
Jfokus 2019-dowling-logical-clocks
 
Webinar - Building Custom Extensions With AppDynamics
Webinar - Building Custom Extensions With AppDynamicsWebinar - Building Custom Extensions With AppDynamics
Webinar - Building Custom Extensions With AppDynamics
 
Spark logs made easy
Spark logs made easySpark logs made easy
Spark logs made easy
 
Serverless Data Prep with AWS Glue (ANT313) - AWS re:Invent 2018
Serverless Data Prep with AWS Glue (ANT313) - AWS re:Invent 2018Serverless Data Prep with AWS Glue (ANT313) - AWS re:Invent 2018
Serverless Data Prep with AWS Glue (ANT313) - AWS re:Invent 2018
 
Model Parallelism in Spark ML Cross-Validation with Nick Pentreath and Bryan ...
Model Parallelism in Spark ML Cross-Validation with Nick Pentreath and Bryan ...Model Parallelism in Spark ML Cross-Validation with Nick Pentreath and Bryan ...
Model Parallelism in Spark ML Cross-Validation with Nick Pentreath and Bryan ...
 
Build Modern Applications that Align with Twelve-Factor Methods (API303) - AW...
Build Modern Applications that Align with Twelve-Factor Methods (API303) - AW...Build Modern Applications that Align with Twelve-Factor Methods (API303) - AW...
Build Modern Applications that Align with Twelve-Factor Methods (API303) - AW...
 
Productionizing Spark ML Pipelines with the Portable Format for Analytics
Productionizing Spark ML Pipelines with the Portable Format for AnalyticsProductionizing Spark ML Pipelines with the Portable Format for Analytics
Productionizing Spark ML Pipelines with the Portable Format for Analytics
 
Machine Learning on AWS
Machine Learning on AWSMachine Learning on AWS
Machine Learning on AWS
 
Index conf sparkml-feb20-n-pentreath
Index conf sparkml-feb20-n-pentreathIndex conf sparkml-feb20-n-pentreath
Index conf sparkml-feb20-n-pentreath
 
ML Best Practices: Prepare Data, Build Models, and Manage Lifecycle (AIM396-S...
ML Best Practices: Prepare Data, Build Models, and Manage Lifecycle (AIM396-S...ML Best Practices: Prepare Data, Build Models, and Manage Lifecycle (AIM396-S...
ML Best Practices: Prepare Data, Build Models, and Manage Lifecycle (AIM396-S...
 
Tableau Visual analytics complete deck 2
Tableau Visual analytics complete deck 2Tableau Visual analytics complete deck 2
Tableau Visual analytics complete deck 2
 
Mathematical content in documentation (DITA Europe 2008)
Mathematical content in documentation (DITA Europe 2008)Mathematical content in documentation (DITA Europe 2008)
Mathematical content in documentation (DITA Europe 2008)
 
Productionizing Spark ML pipelines with the portable format for analytics
Productionizing Spark ML pipelines with the portable format for analyticsProductionizing Spark ML pipelines with the portable format for analytics
Productionizing Spark ML pipelines with the portable format for analytics
 
Angular 4 and TypeScript
Angular 4 and TypeScriptAngular 4 and TypeScript
Angular 4 and TypeScript
 
Optimizing your SparkML pipelines using the latest features in Spark 2.3
Optimizing your SparkML pipelines using the latest features in Spark 2.3Optimizing your SparkML pipelines using the latest features in Spark 2.3
Optimizing your SparkML pipelines using the latest features in Spark 2.3
 

Recently uploaded

Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfCionsystems
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationkaushalgiri8080
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AIABDERRAOUF MEHENNI
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfkalichargn70th171
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendArshad QA
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 

Recently uploaded (20)

Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdf
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanation
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and Backend
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
Exploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the ProcessExploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the Process
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 

Steering the Course with Helm

  • 1. Steering the course with Dirk Jablonski ePages GmbH
  • 3. How we use Kubernetes BUILD ACCEPTANCE PRE-PROD PROD CREATE DEPLOY DEPLOY DEPLOY March 8, 2018 Motivation 3
  • 4. How we want out deployments to be… DEV PROD March 8, 2018 Motivation 4
  • 5. …and how it often ended up DEV PDPROD March 8, 2018 Motivation 5
  • 6. What Kinds of Icebergs we hit handwritten manifests are error-prone March 8, 2018 Motivation 6
  • 7. What Kinds of Icebergs we hit overriding values per environment is quirky March 8, 2018 Motivation 7
  • 8. What Kinds of Icebergs we hit manifests are mostly duplicated code March 8, 2018 Motivation 8
  • 10. What is Helm? “Kubernetes Package Manager” March 8, 2018 Helm to the rescue 10
  • 11. What does Helm do? • bundles related manifests into charts, e.g. • deployment.yaml • service.yaml • ingress.yaml • etc. • when installing a chart, Helm creates a release March 8, 2018 Helm to the rescue 11
  • 12. What does Helm do? • provides solid templating • utilizes Go templates & Sprig template library March 8, 2018 Helm to the rescue 12
  • 13. What does Helm do? • allows to override values easily • overrides can originate from • child charts • additional values files • command-line values • override order is clearly defined March 8, 2018 Helm to the rescue 13
  • 14. What does Helm do? • enables reuse & composition via dependencies March 8, 2018 Helm to the rescue 14
  • 15. Use Cases? Managing your own charts • create charts for your own applications Utilizing community charts • easily install standard applications, e.g. Prometheus March 8, 2018 Helm to the rescue 15
  • 16. How it works March 8, 2018 16
  • 17. Initializing the Cluster API server $ helm init «Pod» tiller March 8, 2018 How it works 17
  • 18. Installing a Chart API server $ helm install <chart> «Pod» tiller «service» xyz «deploym» xyz «secret» xyz Release March 8, 2018 How it works 18
  • 19. Upgrading a Chart API server $ helm upgrade <release> <chart> «Pod» tiller «service» xyz «deploym» xyz «secret» xyz March 8, 2018 How it works 19
  • 21. Charts • bundle meta data, templates, default values & docs • use “helm create“ to generate skeleton • need semantic version numbers March 8, 2018 Charts 21
  • 22. Chart.yaml • defines name & version • may include additional meta data, e.g. app version, maintainer etc. March 8, 2018 Charts 22
  • 23. Templates • YAML files for whatever manifests you need to create • will be rendered as part of the release March 8, 2018 Charts 23
  • 24. Template Example March 8, 2018 Charts 24
  • 25. Helpers • files beginning with “_” will NOT be rendered as part of the release • contain helper templates used in multiple places within the chart • By convention end with “.tpl” March 8, 2018 Charts 25
  • 26. values.yaml • contains default values for the chart March 8, 2018 Charts 26
  • 27. requirements.yaml • lists dependencies for this chart March 8, 2018 Charts 27
  • 28. How to organize Charts Chart per service One Chart to Rule Them All March 8, 2018 Charts 28
  • 29. Chart per Service Pro • flexible • low complexity of charts • simple versioning Contra • huge amount of duplication • difficult to keep consistent • hard to introduce global changes March 8, 2018 Charts 29
  • 30. One Chart to Rule Them All Pro • avoids unnecessary duplication • consistency • easy to introduce global changes Contra • high complexity of templates • tight coupling • less flexible March 8, 2018 Charts 30
  • 31. Hybrid Approach • one “master” chart per service group • one dependent chart per service, containing • values • specific additions March 8, 2018 Charts 31
  • 33. Built-in Objects • provide access to specific sets of values • the main ones are: • Chart • Release • Values March 8, 2018 Writing Templates 33
  • 34. Control Structures • Go templates provide typical control structures: • if / else • range (loop) • with (scoping) March 8, 2018 Writing Templates 34
  • 35. Functions • Go templates provide some basic functions • Sprig template library provide a lot of additions • Examples: • default • quote • b64enc • sha256sum • trim • … March 8, 2018 Writing Templates 35
  • 36. Pipelines • most functions (and expressions) can be pipelined • provides the well-known benefits of composability March 8, 2018 Writing Templates 36
  • 37. Checking the Results helm lint • examines a chart for possible issues • emits ERROR messages when the chart will fail • emits WARNING when conventions & best practices are violated helm template • locally render templates • does not require Tiller March 8, 2018 Writing Templates 37
  • 38. Helpful Tools & Tricks March 8, 2018 38
  • 39. kubeval • kubeval validates manifests against specific API versions • mostly provides detailed validation errors • pass a manifest file name or pipe to stdin: March 8, 2018 Helpful Tools & Tricks 39
  • 40. kubetest • kubetest let‘s you write automatic tests to check the generated manifests • tests are written in Skylark, a lightweight Python dialect • can be used to verify some invariants, e.g. • existence of specific labels or annotations • minimum number of replicas • etc. March 8, 2018 Helpful Tools & Tricks 40
  • 41. Tips & Tricks (1) If you want to override value lists… March 8, 2018 Helpful Tools & Tricks 41
  • 42. Tips & Tricks (2) This way, you can override them indiviually, instead of only whole lists March 8, 2018 Helpful Tools & Tricks 42 …use hashes instead
  • 44. Resources • Helm docs https://docs.helm.sh/ • Michael Goodness: One Chart to Rule Them All (YouTube) http://bit.ly/2DoERqM • kubeval https://github.com/garethr/kub eval • kubetest https://github.com/garethr/kub etest • Artifactory Helm integration https://jfrog.com/integration/k ubernetes-helm/ • ChartMuseum https://github.com/kubernetes -helm/chartmuseum March 8, 2018 44