SlideShare a Scribd company logo
Design templates and inheritance.
Best practices for K8S releases.
2022 | apprecode.com
CEO and Co-founder
BY VOLODYMYR SHYNKAR
WRITE YOUR HELM CHARTS
AS A PROFESSIONAL
[devops@stage ~]$ cat ABOUT_ME.md
7+ years of commercial DevOps experience.
Overall 9+ years of Engineering
Successfully migrated, rolled out, consulted over
20 projects in the healthcare, gambling,
automotive, fintech, ecommerce, construction
industries
Certified SAFe Agile Software Engineer
Addicted to IoT and Smart Home
Cyclist, promoter of a healthy lifestyle
[devops@stage ~]$
VOLODYMYR SHYNKAR
CEO/Co-founder at AppRecode
AGENDA
Helm - benefits and lifecycle
Helm - basic functions and templates
Helm - advanced loops and inheritance
CI/CD releases and integrations
01
02
03
04
HELM - BENEFITS
AND LIFECYCLE
01
BENEFITS Packaging way (Artifact)
Well customizable application
during deployment
Gets your CI/CD pipelines to the
next level
Ready to use community
packages as dependencies
Reduces the complexity of
creating various environments
BENEFITS
Can be reused
Versionable
Easy rollbacks
Better than your ex kubectl apply -f
How to use? It is easy!
Chart structure
~ $ helm create myapp
Creating myapp
Chart.yaml
Dependencies
What is Helm Repository?
https://charts.bitnami.com/bitnami/index.yaml
GitHub Pages
GitHub branch
S3 WSH (CloudFront)
S3 Proxy to serve repo internally
Any other web server
Dependencies
Values file
Must have
Built-in
Inteprolated? Yes, but no.
Multiple envs
Multiple values files
Override via console argument
Git branches (not the best)
How to verify and test charts?
Lint: helm lint
Print results: helm template –debug
Print results and verify with cluster:
helm install --dry-run –debug
Validate templates: helm validate
Connection tests via hooks in templates/tests:
helm.sh/hook: test
Versioning and Release
Continuous development/improvement
Keep track of the changes + change log
Different environments
Your are provide Helm charts as a service
Helm - basic functions
and templates
02
Variables
Built-in Objects
Values file
Custom variables
Global values
Named templates
Trigger deployment if ConfigMap was changed
Built-in Objects
Values file
Custom variables
Global values
Named templates
Release, Chart, Files, Capabilities, Template
Variables
Built-in Objects
Values file
Custom variables
Global values
Named templates
Interpolation in Values file
Built-in Objects
Values file
Custom variables
Global values
Named templates
Variables
Built-in Objects
Values file
Custom variables
Global values
Named templates
Sometimes you might need to use the same construction several times.
In this case you can create a custom variable {{- $fullName := include ”myapp.fullname" . -}}
Variables
Built-in Objects
Values file
Custom variables
Global values
Named templates
• Sometimes you might need to use the same inputs in several charts
• You don’t want to manage the same scope in several places
• You can mismatch or forget to update another place
Variables
Built-in Objects
Values file
Custom variables
Global values
Named templates
This template will help you to set repeated attributes which should be common for your manifects
- labels, selectors, names, complicated constructions what is that?
Variables
Built-in Objects
Values file
Custom variables
Global values
Named templates
Functions and Pipelines
Helm has over 60 available functions.
quote; squote; default; lower; upper; repeat; replace; printf;
lookup; range; with; if; indent; nindent; toYaml; camelcase
Helm - advanced loops
and inheritance
03
Loops and conditions
Finally, we came to the most exciting part.
•if/else for creating conditional blocks
•with to specify a scope
•range, which provides a "for each"-style loop
Conditions
If not | eq | or | and
{{- if and .Values.val1 (not .Values.val2) }}
Loops
Modifying scope using with
Looping with the range action
Another use case of using Custom Variable
We can reffer a root scope by $ sign.
Loops
Modifying scope using with
Looping with the range action
Another use case of using Custom Variable
We can reffer a root scope by $ sign.
Inheritance
Helm has several inheritances
• charts
• global values
• templates
Sharing Templates with Subcharts
Parent charts and subcharts can share templates. Any defined block in any
chart is available to other charts.
For example, we can define a simple template like this:
{{- define "labels" }}from: mysubchart{{ end }}
CD releases and
integrations
04
CI/CD releases for Helm charts
Release your Helm charts as any other products
https://github.com/marketplace/actions/helm-chart-releaser
CD releases with Helm
You can keep your Helm charts in code repo and just replace
image tag during release
You can reuse the Chart as dependency and override things
with short values file(s)
CD releases with Helm and GitOps
All the same as on previous slide, but GitOps operator will
take care of:
• Managing versions
• Keep state and avoid diffs
• Overview of installed resources and their statuses
• Nice UI with possibility to install other Helm charts without
touching Kubernetes at all
Helm and OperatorHub
OperatorHub.io is a new home for the Kubernetes community
to share Operators. Find an existing Operator or list your own
today.
WE ARE CODE
DEPLOY
BUILD
ARCHITECTURE
HIRING
WE ARE ARCHITECTURE
WE ARE DESIGN
DESIGN
WE ARE BUILD
WE ARE DEPLOY
WE ARE HIRING
CODE

More Related Content

What's hot

Introduction to Gitlab | Gitlab 101 | Training Session
Introduction to Gitlab | Gitlab 101 | Training SessionIntroduction to Gitlab | Gitlab 101 | Training Session
Introduction to Gitlab | Gitlab 101 | Training Session
Anwarul Islam
 
Helm intro
Helm introHelm intro
Argo Workflows 3.0, a detailed look at what’s new from the Argo Team
Argo Workflows 3.0, a detailed look at what’s new from the Argo TeamArgo Workflows 3.0, a detailed look at what’s new from the Argo Team
Argo Workflows 3.0, a detailed look at what’s new from the Argo Team
LibbySchulze
 
Terraform
TerraformTerraform
How to test infrastructure code: automated testing for Terraform, Kubernetes,...
How to test infrastructure code: automated testing for Terraform, Kubernetes,...How to test infrastructure code: automated testing for Terraform, Kubernetes,...
How to test infrastructure code: automated testing for Terraform, Kubernetes,...
Yevgeniy Brikman
 
Prometheus
PrometheusPrometheus
Prometheus
wyukawa
 
Opa gatekeeper
Opa gatekeeperOpa gatekeeper
Opa gatekeeper
Rita Zhang
 
[MeetUp][1st] 오리뎅이의_쿠버네티스_네트워킹
[MeetUp][1st] 오리뎅이의_쿠버네티스_네트워킹[MeetUp][1st] 오리뎅이의_쿠버네티스_네트워킹
[MeetUp][1st] 오리뎅이의_쿠버네티스_네트워킹
InfraEngineer
 
GitOps w/argocd
GitOps w/argocdGitOps w/argocd
GitOps w/argocd
Jean-Philippe Bélanger
 
stupid-simple-kubernetes-final.pdf
stupid-simple-kubernetes-final.pdfstupid-simple-kubernetes-final.pdf
stupid-simple-kubernetes-final.pdf
DaniloQueirozMota
 
Kubernetes Basics
Kubernetes BasicsKubernetes Basics
Kubernetes Basics
Eueung Mulyana
 
An intro to Kubernetes operators
An intro to Kubernetes operatorsAn intro to Kubernetes operators
An intro to Kubernetes operators
J On The Beach
 
DevOps with Kubernetes
DevOps with KubernetesDevOps with Kubernetes
DevOps with Kubernetes
EastBanc Tachnologies
 
Introducing GitLab (June 2018)
Introducing GitLab (June 2018)Introducing GitLab (June 2018)
Introducing GitLab (June 2018)
Noa Harel
 
Helm - Application deployment management for Kubernetes
Helm - Application deployment management for KubernetesHelm - Application deployment management for Kubernetes
Helm - Application deployment management for Kubernetes
Alexei Ledenev
 
Comprehensive Terraform Training
Comprehensive Terraform TrainingComprehensive Terraform Training
Comprehensive Terraform Training
Yevgeniy Brikman
 
Application Load Balancer and the integration with AutoScaling and ECS - Pop-...
Application Load Balancer and the integration with AutoScaling and ECS - Pop-...Application Load Balancer and the integration with AutoScaling and ECS - Pop-...
Application Load Balancer and the integration with AutoScaling and ECS - Pop-...
Amazon Web Services
 
Rancher 2.0 Technical Deep Dive
Rancher 2.0 Technical Deep DiveRancher 2.0 Technical Deep Dive
Rancher 2.0 Technical Deep Dive
LINE Corporation
 
FIWARE: Managing Context Information at large scale
FIWARE: Managing Context Information at large scaleFIWARE: Managing Context Information at large scale
FIWARE: Managing Context Information at large scale
Fermin Galan
 
Helm 3
Helm 3Helm 3

What's hot (20)

Introduction to Gitlab | Gitlab 101 | Training Session
Introduction to Gitlab | Gitlab 101 | Training SessionIntroduction to Gitlab | Gitlab 101 | Training Session
Introduction to Gitlab | Gitlab 101 | Training Session
 
Helm intro
Helm introHelm intro
Helm intro
 
Argo Workflows 3.0, a detailed look at what’s new from the Argo Team
Argo Workflows 3.0, a detailed look at what’s new from the Argo TeamArgo Workflows 3.0, a detailed look at what’s new from the Argo Team
Argo Workflows 3.0, a detailed look at what’s new from the Argo Team
 
Terraform
TerraformTerraform
Terraform
 
How to test infrastructure code: automated testing for Terraform, Kubernetes,...
How to test infrastructure code: automated testing for Terraform, Kubernetes,...How to test infrastructure code: automated testing for Terraform, Kubernetes,...
How to test infrastructure code: automated testing for Terraform, Kubernetes,...
 
Prometheus
PrometheusPrometheus
Prometheus
 
Opa gatekeeper
Opa gatekeeperOpa gatekeeper
Opa gatekeeper
 
[MeetUp][1st] 오리뎅이의_쿠버네티스_네트워킹
[MeetUp][1st] 오리뎅이의_쿠버네티스_네트워킹[MeetUp][1st] 오리뎅이의_쿠버네티스_네트워킹
[MeetUp][1st] 오리뎅이의_쿠버네티스_네트워킹
 
GitOps w/argocd
GitOps w/argocdGitOps w/argocd
GitOps w/argocd
 
stupid-simple-kubernetes-final.pdf
stupid-simple-kubernetes-final.pdfstupid-simple-kubernetes-final.pdf
stupid-simple-kubernetes-final.pdf
 
Kubernetes Basics
Kubernetes BasicsKubernetes Basics
Kubernetes Basics
 
An intro to Kubernetes operators
An intro to Kubernetes operatorsAn intro to Kubernetes operators
An intro to Kubernetes operators
 
DevOps with Kubernetes
DevOps with KubernetesDevOps with Kubernetes
DevOps with Kubernetes
 
Introducing GitLab (June 2018)
Introducing GitLab (June 2018)Introducing GitLab (June 2018)
Introducing GitLab (June 2018)
 
Helm - Application deployment management for Kubernetes
Helm - Application deployment management for KubernetesHelm - Application deployment management for Kubernetes
Helm - Application deployment management for Kubernetes
 
Comprehensive Terraform Training
Comprehensive Terraform TrainingComprehensive Terraform Training
Comprehensive Terraform Training
 
Application Load Balancer and the integration with AutoScaling and ECS - Pop-...
Application Load Balancer and the integration with AutoScaling and ECS - Pop-...Application Load Balancer and the integration with AutoScaling and ECS - Pop-...
Application Load Balancer and the integration with AutoScaling and ECS - Pop-...
 
Rancher 2.0 Technical Deep Dive
Rancher 2.0 Technical Deep DiveRancher 2.0 Technical Deep Dive
Rancher 2.0 Technical Deep Dive
 
FIWARE: Managing Context Information at large scale
FIWARE: Managing Context Information at large scaleFIWARE: Managing Context Information at large scale
FIWARE: Managing Context Information at large scale
 
Helm 3
Helm 3Helm 3
Helm 3
 

Similar to Write your Helm charts as a professional. Design templates and inheritance. Best practices for K8S releases

Devoxx UK 2018 - A cloud application journey with helm and kubernetes
Devoxx UK 2018 - A cloud application journey with helm and kubernetesDevoxx UK 2018 - A cloud application journey with helm and kubernetes
Devoxx UK 2018 - A cloud application journey with helm and kubernetes
Ana-Maria Mihalceanu
 
Best Practices with Azure & Kubernetes
Best Practices with Azure & KubernetesBest Practices with Azure & Kubernetes
Best Practices with Azure & Kubernetes
Microsoft Tech Community
 
Building a Custom Theme in Drupal 8
Building a Custom Theme in Drupal 8Building a Custom Theme in Drupal 8
Building a Custom Theme in Drupal 8
Anne Tomasevich
 
Refactoring to Scala DSLs and LiftOff 2009 Recap
Refactoring to Scala DSLs and LiftOff 2009 RecapRefactoring to Scala DSLs and LiftOff 2009 Recap
Refactoring to Scala DSLs and LiftOff 2009 Recap
Dave Orme
 
Development workflow guide for building docker apps
Development workflow guide for building docker appsDevelopment workflow guide for building docker apps
Development workflow guide for building docker apps
Abdul Khan
 
Development workflow guide for building docker apps
Development workflow guide for building docker appsDevelopment workflow guide for building docker apps
Development workflow guide for building docker apps
Abdul Khan
 
Building and Maintaining a Distribution in Drupal 7 with Features
Building and Maintaining a  Distribution in Drupal 7 with FeaturesBuilding and Maintaining a  Distribution in Drupal 7 with Features
Building and Maintaining a Distribution in Drupal 7 with Features
Nuvole
 
Manual
ManualManual
Manual
imaduddin91
 
Building and Deployment of Drupal sites with Features and Context
Building and Deployment of Drupal sites with Features and ContextBuilding and Deployment of Drupal sites with Features and Context
Building and Deployment of Drupal sites with Features and Context
Svilen Sabev
 
Case Study _Cloud Native Transformation Deploying Integration workloads to AK...
Case Study _Cloud Native Transformation Deploying Integration workloads to AK...Case Study _Cloud Native Transformation Deploying Integration workloads to AK...
Case Study _Cloud Native Transformation Deploying Integration workloads to AK...
Srikanth Prathipati
 
Coding standards
Coding standards Coding standards
Coding standards
saurabh kapoor
 
CD in kubernetes using helm and ksonnet. Stas Kolenkin
CD in kubernetes using helm and ksonnet. Stas KolenkinCD in kubernetes using helm and ksonnet. Stas Kolenkin
CD in kubernetes using helm and ksonnet. Stas Kolenkin
DataArt
 
Kubecon 2019 - Promoting Kubernetes CI/CD to the Next Level
Kubecon 2019 - Promoting Kubernetes CI/CD to the Next LevelKubecon 2019 - Promoting Kubernetes CI/CD to the Next Level
Kubecon 2019 - Promoting Kubernetes CI/CD to the Next Level
Tim Pouyer
 
Advanced EPUB creation for iPad with Adobe InDesign CC - Digital Book World 2014
Advanced EPUB creation for iPad with Adobe InDesign CC - Digital Book World 2014Advanced EPUB creation for iPad with Adobe InDesign CC - Digital Book World 2014
Advanced EPUB creation for iPad with Adobe InDesign CC - Digital Book World 2014
DouglasWaterfall
 
Strategies and Tips for Building Enterprise Drupal Applications - PNWDS 2013
Strategies and Tips for Building Enterprise Drupal Applications - PNWDS 2013Strategies and Tips for Building Enterprise Drupal Applications - PNWDS 2013
Strategies and Tips for Building Enterprise Drupal Applications - PNWDS 2013
Mack Hardy
 
DevOps: Kubernetes + Helm with Azure
DevOps: Kubernetes + Helm with AzureDevOps: Kubernetes + Helm with Azure
DevOps: Kubernetes + Helm with Azure
Jessica Deen
 
Brand Your Community Using Less and Gulp
Brand Your Community Using Less and GulpBrand Your Community Using Less and Gulp
Brand Your Community Using Less and Gulp
shujiui
 
Brand Your Community Using Less and Gulp
Brand Your Community Using Less and GulpBrand Your Community Using Less and Gulp
Brand Your Community Using Less and Gulp
Salesforce Developers
 
Arc+ EXEcutive 2010
Arc+ EXEcutive 2010Arc+ EXEcutive 2010
Arc+ EXEcutive 2010
Logical Impact, Inc.
 
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
 

Similar to Write your Helm charts as a professional. Design templates and inheritance. Best practices for K8S releases (20)

Devoxx UK 2018 - A cloud application journey with helm and kubernetes
Devoxx UK 2018 - A cloud application journey with helm and kubernetesDevoxx UK 2018 - A cloud application journey with helm and kubernetes
Devoxx UK 2018 - A cloud application journey with helm and kubernetes
 
Best Practices with Azure & Kubernetes
Best Practices with Azure & KubernetesBest Practices with Azure & Kubernetes
Best Practices with Azure & Kubernetes
 
Building a Custom Theme in Drupal 8
Building a Custom Theme in Drupal 8Building a Custom Theme in Drupal 8
Building a Custom Theme in Drupal 8
 
Refactoring to Scala DSLs and LiftOff 2009 Recap
Refactoring to Scala DSLs and LiftOff 2009 RecapRefactoring to Scala DSLs and LiftOff 2009 Recap
Refactoring to Scala DSLs and LiftOff 2009 Recap
 
Development workflow guide for building docker apps
Development workflow guide for building docker appsDevelopment workflow guide for building docker apps
Development workflow guide for building docker apps
 
Development workflow guide for building docker apps
Development workflow guide for building docker appsDevelopment workflow guide for building docker apps
Development workflow guide for building docker apps
 
Building and Maintaining a Distribution in Drupal 7 with Features
Building and Maintaining a  Distribution in Drupal 7 with FeaturesBuilding and Maintaining a  Distribution in Drupal 7 with Features
Building and Maintaining a Distribution in Drupal 7 with Features
 
Manual
ManualManual
Manual
 
Building and Deployment of Drupal sites with Features and Context
Building and Deployment of Drupal sites with Features and ContextBuilding and Deployment of Drupal sites with Features and Context
Building and Deployment of Drupal sites with Features and Context
 
Case Study _Cloud Native Transformation Deploying Integration workloads to AK...
Case Study _Cloud Native Transformation Deploying Integration workloads to AK...Case Study _Cloud Native Transformation Deploying Integration workloads to AK...
Case Study _Cloud Native Transformation Deploying Integration workloads to AK...
 
Coding standards
Coding standards Coding standards
Coding standards
 
CD in kubernetes using helm and ksonnet. Stas Kolenkin
CD in kubernetes using helm and ksonnet. Stas KolenkinCD in kubernetes using helm and ksonnet. Stas Kolenkin
CD in kubernetes using helm and ksonnet. Stas Kolenkin
 
Kubecon 2019 - Promoting Kubernetes CI/CD to the Next Level
Kubecon 2019 - Promoting Kubernetes CI/CD to the Next LevelKubecon 2019 - Promoting Kubernetes CI/CD to the Next Level
Kubecon 2019 - Promoting Kubernetes CI/CD to the Next Level
 
Advanced EPUB creation for iPad with Adobe InDesign CC - Digital Book World 2014
Advanced EPUB creation for iPad with Adobe InDesign CC - Digital Book World 2014Advanced EPUB creation for iPad with Adobe InDesign CC - Digital Book World 2014
Advanced EPUB creation for iPad with Adobe InDesign CC - Digital Book World 2014
 
Strategies and Tips for Building Enterprise Drupal Applications - PNWDS 2013
Strategies and Tips for Building Enterprise Drupal Applications - PNWDS 2013Strategies and Tips for Building Enterprise Drupal Applications - PNWDS 2013
Strategies and Tips for Building Enterprise Drupal Applications - PNWDS 2013
 
DevOps: Kubernetes + Helm with Azure
DevOps: Kubernetes + Helm with AzureDevOps: Kubernetes + Helm with Azure
DevOps: Kubernetes + Helm with Azure
 
Brand Your Community Using Less and Gulp
Brand Your Community Using Less and GulpBrand Your Community Using Less and Gulp
Brand Your Community Using Less and Gulp
 
Brand Your Community Using Less and Gulp
Brand Your Community Using Less and GulpBrand Your Community Using Less and Gulp
Brand Your Community Using Less and Gulp
 
Arc+ EXEcutive 2010
Arc+ EXEcutive 2010Arc+ EXEcutive 2010
Arc+ EXEcutive 2010
 
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!
 

Recently uploaded

Presentation of IEEE Slovenia CIS (Computational Intelligence Society) Chapte...
Presentation of IEEE Slovenia CIS (Computational Intelligence Society) Chapte...Presentation of IEEE Slovenia CIS (Computational Intelligence Society) Chapte...
Presentation of IEEE Slovenia CIS (Computational Intelligence Society) Chapte...
University of Maribor
 
BPV-GUI-01-Guide-for-ASME-Review-Teams-(General)-10-10-2023.pdf
BPV-GUI-01-Guide-for-ASME-Review-Teams-(General)-10-10-2023.pdfBPV-GUI-01-Guide-for-ASME-Review-Teams-(General)-10-10-2023.pdf
BPV-GUI-01-Guide-for-ASME-Review-Teams-(General)-10-10-2023.pdf
MIGUELANGEL966976
 
Heat Resistant Concrete Presentation ppt
Heat Resistant Concrete Presentation pptHeat Resistant Concrete Presentation ppt
Heat Resistant Concrete Presentation ppt
mamunhossenbd75
 
Iron and Steel Technology Roadmap - Towards more sustainable steelmaking.pdf
Iron and Steel Technology Roadmap - Towards more sustainable steelmaking.pdfIron and Steel Technology Roadmap - Towards more sustainable steelmaking.pdf
Iron and Steel Technology Roadmap - Towards more sustainable steelmaking.pdf
RadiNasr
 
Properties Railway Sleepers and Test.pptx
Properties Railway Sleepers and Test.pptxProperties Railway Sleepers and Test.pptx
Properties Railway Sleepers and Test.pptx
MDSABBIROJJAMANPAYEL
 
Swimming pool mechanical components design.pptx
Swimming pool  mechanical components design.pptxSwimming pool  mechanical components design.pptx
Swimming pool mechanical components design.pptx
yokeleetan1
 
Series of visio cisco devices Cisco_Icons.ppt
Series of visio cisco devices Cisco_Icons.pptSeries of visio cisco devices Cisco_Icons.ppt
Series of visio cisco devices Cisco_Icons.ppt
PauloRodrigues104553
 
Recycled Concrete Aggregate in Construction Part III
Recycled Concrete Aggregate in Construction Part IIIRecycled Concrete Aggregate in Construction Part III
Recycled Concrete Aggregate in Construction Part III
Aditya Rajan Patra
 
Modelagem de um CSTR com reação endotermica.pdf
Modelagem de um CSTR com reação endotermica.pdfModelagem de um CSTR com reação endotermica.pdf
Modelagem de um CSTR com reação endotermica.pdf
camseq
 
CSM Cloud Service Management Presentarion
CSM Cloud Service Management PresentarionCSM Cloud Service Management Presentarion
CSM Cloud Service Management Presentarion
rpskprasana
 
RAT: Retrieval Augmented Thoughts Elicit Context-Aware Reasoning in Long-Hori...
RAT: Retrieval Augmented Thoughts Elicit Context-Aware Reasoning in Long-Hori...RAT: Retrieval Augmented Thoughts Elicit Context-Aware Reasoning in Long-Hori...
RAT: Retrieval Augmented Thoughts Elicit Context-Aware Reasoning in Long-Hori...
thanhdowork
 
2. Operations Strategy in a Global Environment.ppt
2. Operations Strategy in a Global Environment.ppt2. Operations Strategy in a Global Environment.ppt
2. Operations Strategy in a Global Environment.ppt
PuktoonEngr
 
PPT on GRP pipes manufacturing and testing
PPT on GRP pipes manufacturing and testingPPT on GRP pipes manufacturing and testing
PPT on GRP pipes manufacturing and testing
anoopmanoharan2
 
Understanding Inductive Bias in Machine Learning
Understanding Inductive Bias in Machine LearningUnderstanding Inductive Bias in Machine Learning
Understanding Inductive Bias in Machine Learning
SUTEJAS
 
Generative AI leverages algorithms to create various forms of content
Generative AI leverages algorithms to create various forms of contentGenerative AI leverages algorithms to create various forms of content
Generative AI leverages algorithms to create various forms of content
Hitesh Mohapatra
 
Technical Drawings introduction to drawing of prisms
Technical Drawings introduction to drawing of prismsTechnical Drawings introduction to drawing of prisms
Technical Drawings introduction to drawing of prisms
heavyhaig
 
22CYT12-Unit-V-E Waste and its Management.ppt
22CYT12-Unit-V-E Waste and its Management.ppt22CYT12-Unit-V-E Waste and its Management.ppt
22CYT12-Unit-V-E Waste and its Management.ppt
KrishnaveniKrishnara1
 
Wearable antenna for antenna applications
Wearable antenna for antenna applicationsWearable antenna for antenna applications
Wearable antenna for antenna applications
Madhumitha Jayaram
 
14 Template Contractual Notice - EOT Application
14 Template Contractual Notice - EOT Application14 Template Contractual Notice - EOT Application
14 Template Contractual Notice - EOT Application
SyedAbiiAzazi1
 
哪里办理(csu毕业证书)查尔斯特大学毕业证硕士学历原版一模一样
哪里办理(csu毕业证书)查尔斯特大学毕业证硕士学历原版一模一样哪里办理(csu毕业证书)查尔斯特大学毕业证硕士学历原版一模一样
哪里办理(csu毕业证书)查尔斯特大学毕业证硕士学历原版一模一样
insn4465
 

Recently uploaded (20)

Presentation of IEEE Slovenia CIS (Computational Intelligence Society) Chapte...
Presentation of IEEE Slovenia CIS (Computational Intelligence Society) Chapte...Presentation of IEEE Slovenia CIS (Computational Intelligence Society) Chapte...
Presentation of IEEE Slovenia CIS (Computational Intelligence Society) Chapte...
 
BPV-GUI-01-Guide-for-ASME-Review-Teams-(General)-10-10-2023.pdf
BPV-GUI-01-Guide-for-ASME-Review-Teams-(General)-10-10-2023.pdfBPV-GUI-01-Guide-for-ASME-Review-Teams-(General)-10-10-2023.pdf
BPV-GUI-01-Guide-for-ASME-Review-Teams-(General)-10-10-2023.pdf
 
Heat Resistant Concrete Presentation ppt
Heat Resistant Concrete Presentation pptHeat Resistant Concrete Presentation ppt
Heat Resistant Concrete Presentation ppt
 
Iron and Steel Technology Roadmap - Towards more sustainable steelmaking.pdf
Iron and Steel Technology Roadmap - Towards more sustainable steelmaking.pdfIron and Steel Technology Roadmap - Towards more sustainable steelmaking.pdf
Iron and Steel Technology Roadmap - Towards more sustainable steelmaking.pdf
 
Properties Railway Sleepers and Test.pptx
Properties Railway Sleepers and Test.pptxProperties Railway Sleepers and Test.pptx
Properties Railway Sleepers and Test.pptx
 
Swimming pool mechanical components design.pptx
Swimming pool  mechanical components design.pptxSwimming pool  mechanical components design.pptx
Swimming pool mechanical components design.pptx
 
Series of visio cisco devices Cisco_Icons.ppt
Series of visio cisco devices Cisco_Icons.pptSeries of visio cisco devices Cisco_Icons.ppt
Series of visio cisco devices Cisco_Icons.ppt
 
Recycled Concrete Aggregate in Construction Part III
Recycled Concrete Aggregate in Construction Part IIIRecycled Concrete Aggregate in Construction Part III
Recycled Concrete Aggregate in Construction Part III
 
Modelagem de um CSTR com reação endotermica.pdf
Modelagem de um CSTR com reação endotermica.pdfModelagem de um CSTR com reação endotermica.pdf
Modelagem de um CSTR com reação endotermica.pdf
 
CSM Cloud Service Management Presentarion
CSM Cloud Service Management PresentarionCSM Cloud Service Management Presentarion
CSM Cloud Service Management Presentarion
 
RAT: Retrieval Augmented Thoughts Elicit Context-Aware Reasoning in Long-Hori...
RAT: Retrieval Augmented Thoughts Elicit Context-Aware Reasoning in Long-Hori...RAT: Retrieval Augmented Thoughts Elicit Context-Aware Reasoning in Long-Hori...
RAT: Retrieval Augmented Thoughts Elicit Context-Aware Reasoning in Long-Hori...
 
2. Operations Strategy in a Global Environment.ppt
2. Operations Strategy in a Global Environment.ppt2. Operations Strategy in a Global Environment.ppt
2. Operations Strategy in a Global Environment.ppt
 
PPT on GRP pipes manufacturing and testing
PPT on GRP pipes manufacturing and testingPPT on GRP pipes manufacturing and testing
PPT on GRP pipes manufacturing and testing
 
Understanding Inductive Bias in Machine Learning
Understanding Inductive Bias in Machine LearningUnderstanding Inductive Bias in Machine Learning
Understanding Inductive Bias in Machine Learning
 
Generative AI leverages algorithms to create various forms of content
Generative AI leverages algorithms to create various forms of contentGenerative AI leverages algorithms to create various forms of content
Generative AI leverages algorithms to create various forms of content
 
Technical Drawings introduction to drawing of prisms
Technical Drawings introduction to drawing of prismsTechnical Drawings introduction to drawing of prisms
Technical Drawings introduction to drawing of prisms
 
22CYT12-Unit-V-E Waste and its Management.ppt
22CYT12-Unit-V-E Waste and its Management.ppt22CYT12-Unit-V-E Waste and its Management.ppt
22CYT12-Unit-V-E Waste and its Management.ppt
 
Wearable antenna for antenna applications
Wearable antenna for antenna applicationsWearable antenna for antenna applications
Wearable antenna for antenna applications
 
14 Template Contractual Notice - EOT Application
14 Template Contractual Notice - EOT Application14 Template Contractual Notice - EOT Application
14 Template Contractual Notice - EOT Application
 
哪里办理(csu毕业证书)查尔斯特大学毕业证硕士学历原版一模一样
哪里办理(csu毕业证书)查尔斯特大学毕业证硕士学历原版一模一样哪里办理(csu毕业证书)查尔斯特大学毕业证硕士学历原版一模一样
哪里办理(csu毕业证书)查尔斯特大学毕业证硕士学历原版一模一样
 

Write your Helm charts as a professional. Design templates and inheritance. Best practices for K8S releases

  • 1. Design templates and inheritance. Best practices for K8S releases. 2022 | apprecode.com CEO and Co-founder BY VOLODYMYR SHYNKAR WRITE YOUR HELM CHARTS AS A PROFESSIONAL
  • 2. [devops@stage ~]$ cat ABOUT_ME.md 7+ years of commercial DevOps experience. Overall 9+ years of Engineering Successfully migrated, rolled out, consulted over 20 projects in the healthcare, gambling, automotive, fintech, ecommerce, construction industries Certified SAFe Agile Software Engineer Addicted to IoT and Smart Home Cyclist, promoter of a healthy lifestyle [devops@stage ~]$ VOLODYMYR SHYNKAR CEO/Co-founder at AppRecode
  • 3. AGENDA Helm - benefits and lifecycle Helm - basic functions and templates Helm - advanced loops and inheritance CI/CD releases and integrations 01 02 03 04
  • 4. HELM - BENEFITS AND LIFECYCLE 01
  • 5. BENEFITS Packaging way (Artifact) Well customizable application during deployment Gets your CI/CD pipelines to the next level Ready to use community packages as dependencies Reduces the complexity of creating various environments
  • 6. BENEFITS Can be reused Versionable Easy rollbacks Better than your ex kubectl apply -f
  • 7. How to use? It is easy!
  • 8. Chart structure ~ $ helm create myapp Creating myapp
  • 11. What is Helm Repository? https://charts.bitnami.com/bitnami/index.yaml GitHub Pages GitHub branch S3 WSH (CloudFront) S3 Proxy to serve repo internally Any other web server
  • 14. Multiple envs Multiple values files Override via console argument Git branches (not the best)
  • 15. How to verify and test charts? Lint: helm lint Print results: helm template –debug Print results and verify with cluster: helm install --dry-run –debug Validate templates: helm validate Connection tests via hooks in templates/tests: helm.sh/hook: test
  • 16. Versioning and Release Continuous development/improvement Keep track of the changes + change log Different environments Your are provide Helm charts as a service
  • 17. Helm - basic functions and templates 02
  • 18. Variables Built-in Objects Values file Custom variables Global values Named templates
  • 19. Trigger deployment if ConfigMap was changed Built-in Objects Values file Custom variables Global values Named templates Release, Chart, Files, Capabilities, Template
  • 20. Variables Built-in Objects Values file Custom variables Global values Named templates
  • 21. Interpolation in Values file Built-in Objects Values file Custom variables Global values Named templates
  • 22. Variables Built-in Objects Values file Custom variables Global values Named templates Sometimes you might need to use the same construction several times. In this case you can create a custom variable {{- $fullName := include ”myapp.fullname" . -}}
  • 23. Variables Built-in Objects Values file Custom variables Global values Named templates • Sometimes you might need to use the same inputs in several charts • You don’t want to manage the same scope in several places • You can mismatch or forget to update another place
  • 24. Variables Built-in Objects Values file Custom variables Global values Named templates This template will help you to set repeated attributes which should be common for your manifects - labels, selectors, names, complicated constructions what is that?
  • 25. Variables Built-in Objects Values file Custom variables Global values Named templates
  • 26. Functions and Pipelines Helm has over 60 available functions. quote; squote; default; lower; upper; repeat; replace; printf; lookup; range; with; if; indent; nindent; toYaml; camelcase
  • 27. Helm - advanced loops and inheritance 03
  • 28. Loops and conditions Finally, we came to the most exciting part. •if/else for creating conditional blocks •with to specify a scope •range, which provides a "for each"-style loop
  • 29. Conditions If not | eq | or | and {{- if and .Values.val1 (not .Values.val2) }}
  • 30. Loops Modifying scope using with Looping with the range action Another use case of using Custom Variable We can reffer a root scope by $ sign.
  • 31. Loops Modifying scope using with Looping with the range action Another use case of using Custom Variable We can reffer a root scope by $ sign.
  • 32. Inheritance Helm has several inheritances • charts • global values • templates
  • 33. Sharing Templates with Subcharts Parent charts and subcharts can share templates. Any defined block in any chart is available to other charts. For example, we can define a simple template like this: {{- define "labels" }}from: mysubchart{{ end }}
  • 35. CI/CD releases for Helm charts Release your Helm charts as any other products https://github.com/marketplace/actions/helm-chart-releaser
  • 36. CD releases with Helm You can keep your Helm charts in code repo and just replace image tag during release You can reuse the Chart as dependency and override things with short values file(s)
  • 37. CD releases with Helm and GitOps All the same as on previous slide, but GitOps operator will take care of: • Managing versions • Keep state and avoid diffs • Overview of installed resources and their statuses • Nice UI with possibility to install other Helm charts without touching Kubernetes at all
  • 38. Helm and OperatorHub OperatorHub.io is a new home for the Kubernetes community to share Operators. Find an existing Operator or list your own today.
  • 39. WE ARE CODE DEPLOY BUILD ARCHITECTURE HIRING WE ARE ARCHITECTURE WE ARE DESIGN DESIGN WE ARE BUILD WE ARE DEPLOY WE ARE HIRING CODE