SlideShare a Scribd company logo
1 of 37
Download to read offline
On declarative configuration management using
Kubernetes and Helm
Alexander Chistyakov
ITMO University
Software Engineering Conference Russia 2018
October 12-13
Moscow
First things first, what is DevOps?
● I will make a short break for you so you can ship a release
● And if your process is solid enough, you can ship while I talk
● Or even better, a release can ship itself when it’s ready without even
bothering you
● Do you need a couple of minutes just to check if something is shipping right
now?
BTW, who are you?
● Are you a human being?
● Maybe a DevOps engineer?
● Maybe a cyborg?
● Maybe even a Jenkins node?
● If so, how many jobs you can run in parallel?
What does a CM process look like?
● We define a desired state declaratively
What does a CM process look like?
● We define a desired state declaratively
● We instruct a CM master tool to get a system to that state idempotently
What does a CM process look like?
● We define a desired state declaratively
● We instruct a CM master tool to get a system to that state idempotently
● Some CM magic begins
What does a CM process look like?
● We define a desired state declaratively
● We instruct a CM master tool to get a system to that state idempotently
● Some CM magic begins
● Midnight suddenly comes
What does a CM process look like?
● We define a desired state declaratively
● We instruct a CM master tool to get a system to that state idempotently
● Some CM magic begins
● Midnight suddenly comes
● Infrastructure gets to the desired state!
What does a CM process look like?
● We define a desired state declaratively
● We instruct a CM master tool to get a system to that state idempotently
● Some CM magic begins
● Midnight suddenly comes
● Infrastructure gets to the desired state!
● Sounds not too difficult, should be quite easy to implement
A bit of history
● Are you familiar with Puppet CM system?
● Raise your hands if you like it! (But how on Earth is it possible?)
A bit of history
● Are you familiar with Chef CM system?
● Raise your hands if you like it! (Please don’t cry, SECR is a safe place and
I’m your friend)
A bit of history
● Are you familiar with Ansible CM system?
● Raise your hands if you like it!
If you know Ansible, pls help me a bit
● I need to configure a cluster of something
● No, not a cluster yet, just a monitoring tool for a cluster
Okay let’s try
● I need to configure a cluster of something
● Raise your hands if you like it!
What’s inside
● I need to configure a cluster of something
● Raise your hands if you like it!
What’s wrong with it?
● Nothing, this module was just awesome
● Except that it was poorly written, not documented at all, hard to use, not
supported and finally abandoned
● Still 7 stars on GitHub!
Let’s try again
● I need to configure a cluster of something
● Raise your hands if you like it!
What’s inside
● I need to configure a cluster of something
● Raise your hands if you like it!
What’s wrong with it?
What’s terribly wrong with it?
● Can you tell for sure what is a status of the Carbon systemd service?
● And if you can, imagine a situation where you provide a service unit file and
then use Ansible “notify” mechanism to call a handler which in turn enables
the service
What’s terribly wrong with it?
● It’s hard to explain (not so hard to implement though), but people tend to be
extremely proud implementing solutions like this
● Why on Earth does Ansible allow this?
● Please note that Ansible handlers run at the end of script execution
Back to the CM process for a moment
● We want to run a set of microservices on top of a monolithic Linux kernel
● If this still makes sense, we can consider services as building blocks
A dictionary for people from late 90s
● A microservice = a process
● A Docker image = a package
● Kubernetes = an operating system for microservices
● Helm = a package managing system (think apt in Debian or yum in RHEL)
for Kubernetes
Let’s try
● A microservice = a process
What’s inside a lab
● A Vagrant-based Ansible-provisioned K8s setup
● 3 Vagrant boxes
● Using Kubespray (https://github.com/kubernetes-incubator/kubespray) to
set up Kubernetes (Kubespray is where Ansible meets K8s)
● Using Helm to provision Kubernetes apps
What’s inside a playbook
Ansible calls Helm
Tired of dictionaries (the roads must roll!)
● Ansible = Helm
● Ansible role = Helm chart
● Python = Golang (this goes far beyond the scope of this session)
● Jinja templates = some custom templating engine
● ___ = tiller
How Helm works
● Helm generated K8s YAML configs
● Helm transfers generated config files to the K8s cluster
● Tiller is an agent which runs in the cluster, effectively a cluster-side Helm
service
● Tiller applies configuration files and labels a release
● Just like a Chef client 7 years ago but without a memory leak :)
Helm charts repository
● It’s centralised
● It’s on GitHub (https://github.com/helm/charts)
● It grows very fast
● If you submit a patch it will be landed in about a month, which I consider
quite fast
Helm charts repository
● https://hub.kubeapps.com (a nice landing page for non-kinesthetic people)
What’s inside a chart
Templates are just declarative configs
What’s wrong with Helm?
● Unfamiliar templating syntax (if you are not a Lisper)
What’s wrong with K8s and Helm?
● They are written in Golang
● Really, seriously, please stop using Golang for everything!
● We are humans not rodents, we already invented nuclear bombing, Haskell
and even soccer, why Golang after all???
Conclusions
● Classical CM systems were never good
● Kubernetes and Helm are not good too, but we are just not fully aware yet
● And, frankly speaking, I don’t care
Contacts
• Alex Chistyakov
• alexclear@gmail.com
• +7-921-643-93-27 (Please don’t call me, I am
a sociophobe)
• @demeliorator (in Telegram and Skype)

More Related Content

What's hot

Mongrel Handlers
Mongrel HandlersMongrel Handlers
Mongrel Handlers
nextlib
 

What's hot (13)

ReactJS Code Impact
ReactJS Code ImpactReactJS Code Impact
ReactJS Code Impact
 
Reason React
Reason ReactReason React
Reason React
 
Riak at Posterous
Riak at PosterousRiak at Posterous
Riak at Posterous
 
Основы функционального JS
Основы функционального JSОсновы функционального JS
Основы функционального JS
 
Capistrano @ VilniusPHP
Capistrano @ VilniusPHPCapistrano @ VilniusPHP
Capistrano @ VilniusPHP
 
Asynchronous Programming in Kotlin with Coroutines
Asynchronous Programming in Kotlin with CoroutinesAsynchronous Programming in Kotlin with Coroutines
Asynchronous Programming in Kotlin with Coroutines
 
Data + Visualization Toronto Meetup 4: The Google Maps API
Data + Visualization Toronto Meetup 4: The Google Maps APIData + Visualization Toronto Meetup 4: The Google Maps API
Data + Visualization Toronto Meetup 4: The Google Maps API
 
Jenkins automation
Jenkins automationJenkins automation
Jenkins automation
 
Increasing performance with Elixir Tasks
Increasing performance with Elixir TasksIncreasing performance with Elixir Tasks
Increasing performance with Elixir Tasks
 
GitLab Commit 2020: Ubiquitous quality through continuous testing pipelines
GitLab Commit 2020: Ubiquitous quality through continuous testing pipelinesGitLab Commit 2020: Ubiquitous quality through continuous testing pipelines
GitLab Commit 2020: Ubiquitous quality through continuous testing pipelines
 
Elm - never get a runtime error anymore. Almost.
Elm - never get a runtime error anymore. Almost.Elm - never get a runtime error anymore. Almost.
Elm - never get a runtime error anymore. Almost.
 
Mongrel Handlers
Mongrel HandlersMongrel Handlers
Mongrel Handlers
 
Serverless Operations aka. LessOps
Serverless Operations aka. LessOpsServerless Operations aka. LessOps
Serverless Operations aka. LessOps
 

Similar to My slides from SECR'2018

icebreakerwithdevops-150218112943-conversion-gate02
icebreakerwithdevops-150218112943-conversion-gate02icebreakerwithdevops-150218112943-conversion-gate02
icebreakerwithdevops-150218112943-conversion-gate02
Manohar Kumar
 
The elements of kubernetes
The elements of kubernetesThe elements of kubernetes
The elements of kubernetes
Aaron Schlesinger
 
Adversarial Simulation Nickerson/Gates Wild West Hacking Fest Oct 2017
Adversarial Simulation Nickerson/Gates Wild West Hacking Fest Oct 2017Adversarial Simulation Nickerson/Gates Wild West Hacking Fest Oct 2017
Adversarial Simulation Nickerson/Gates Wild West Hacking Fest Oct 2017
Chris Gates
 

Similar to My slides from SECR'2018 (20)

icebreakerwithdevops-150218112943-conversion-gate02
icebreakerwithdevops-150218112943-conversion-gate02icebreakerwithdevops-150218112943-conversion-gate02
icebreakerwithdevops-150218112943-conversion-gate02
 
Ice breaker with dev ops
Ice breaker with dev opsIce breaker with dev ops
Ice breaker with dev ops
 
OSDC 2015: Kris Buytaert | From ConfigManagementSucks to ConfigManagementLove
OSDC 2015: Kris Buytaert | From ConfigManagementSucks to ConfigManagementLoveOSDC 2015: Kris Buytaert | From ConfigManagementSucks to ConfigManagementLove
OSDC 2015: Kris Buytaert | From ConfigManagementSucks to ConfigManagementLove
 
The elements of kubernetes
The elements of kubernetesThe elements of kubernetes
The elements of kubernetes
 
Automating MySQL operations with Puppet
Automating MySQL operations with PuppetAutomating MySQL operations with Puppet
Automating MySQL operations with Puppet
 
Monitoring and automation
Monitoring and automationMonitoring and automation
Monitoring and automation
 
What is dev ops?
What is dev ops?What is dev ops?
What is dev ops?
 
Kubernetes 101
Kubernetes 101Kubernetes 101
Kubernetes 101
 
Getting big without getting fat, in perl
Getting big without getting fat, in perlGetting big without getting fat, in perl
Getting big without getting fat, in perl
 
Idi2018 - Serverless does not mean Opsless
Idi2018 - Serverless does not mean OpslessIdi2018 - Serverless does not mean Opsless
Idi2018 - Serverless does not mean Opsless
 
DevOps: Building by feature with immutable infrastructure at Serv.sg
DevOps: Building by feature with immutable infrastructure at Serv.sgDevOps: Building by feature with immutable infrastructure at Serv.sg
DevOps: Building by feature with immutable infrastructure at Serv.sg
 
Monitoring with sensu
Monitoring with sensuMonitoring with sensu
Monitoring with sensu
 
Scalable, good, cheap
Scalable, good, cheapScalable, good, cheap
Scalable, good, cheap
 
Reasoning about data and consistency in systems
Reasoning about data and consistency in systemsReasoning about data and consistency in systems
Reasoning about data and consistency in systems
 
OSDC 2017 | Experiences with Rudder, is it really for everyone? by Florian Heigl
OSDC 2017 | Experiences with Rudder, is it really for everyone? by Florian HeiglOSDC 2017 | Experiences with Rudder, is it really for everyone? by Florian Heigl
OSDC 2017 | Experiences with Rudder, is it really for everyone? by Florian Heigl
 
OSDC 2017 - Florian Heigl - Experiences with rudder, is it really for everyone
OSDC 2017 - Florian Heigl - Experiences with rudder, is it really for everyoneOSDC 2017 - Florian Heigl - Experiences with rudder, is it really for everyone
OSDC 2017 - Florian Heigl - Experiences with rudder, is it really for everyone
 
Chaos Engineering Talk at DevOps Days Austin
Chaos Engineering Talk at DevOps Days AustinChaos Engineering Talk at DevOps Days Austin
Chaos Engineering Talk at DevOps Days Austin
 
Adversarial Simulation Nickerson/Gates Wild West Hacking Fest Oct 2017
Adversarial Simulation Nickerson/Gates Wild West Hacking Fest Oct 2017Adversarial Simulation Nickerson/Gates Wild West Hacking Fest Oct 2017
Adversarial Simulation Nickerson/Gates Wild West Hacking Fest Oct 2017
 
PuppetConf 2017: Deploying is Only Half the Battle! Operationalizing Applicat...
PuppetConf 2017: Deploying is Only Half the Battle! Operationalizing Applicat...PuppetConf 2017: Deploying is Only Half the Battle! Operationalizing Applicat...
PuppetConf 2017: Deploying is Only Half the Battle! Operationalizing Applicat...
 
Cloud Needs Devops
Cloud Needs DevopsCloud Needs Devops
Cloud Needs Devops
 

More from Alex Chistyakov

More from Alex Chistyakov (20)

My slides from DevOpsDays 2019
My slides from DevOpsDays 2019My slides from DevOpsDays 2019
My slides from DevOpsDays 2019
 
My slides from BMM №3 May 2019
My slides from BMM №3 May 2019My slides from BMM №3 May 2019
My slides from BMM №3 May 2019
 
My slides from DevOps-40 meetup Jun 2019
My slides from DevOps-40 meetup Jun 2019 My slides from DevOps-40 meetup Jun 2019
My slides from DevOps-40 meetup Jun 2019
 
My slides from the first SPb SRE community meetup at DataArt
My slides from the first SPb SRE community meetup at DataArtMy slides from the first SPb SRE community meetup at DataArt
My slides from the first SPb SRE community meetup at DataArt
 
My slides from CC'2019
My slides from CC'2019My slides from CC'2019
My slides from CC'2019
 
My slides from BMM №4 Nov 2019
My slides from BMM №4 Nov 2019My slides from BMM №4 Nov 2019
My slides from BMM №4 Nov 2019
 
My slides from DevOps-40 meetup Oct 2019
My slides from DevOps-40 meetup Oct 2019My slides from DevOps-40 meetup Oct 2019
My slides from DevOps-40 meetup Oct 2019
 
My slides from DevOps-40 meetup Dec 2019
My slides from DevOps-40 meetup Dec 2019My slides from DevOps-40 meetup Dec 2019
My slides from DevOps-40 meetup Dec 2019
 
Configuration management and Kubernetes
Configuration management and KubernetesConfiguration management and Kubernetes
Configuration management and Kubernetes
 
Ansible and other stuff
Ansible and other stuffAnsible and other stuff
Ansible and other stuff
 
Python performance engineering in 2017
Python performance engineering in 2017Python performance engineering in 2017
Python performance engineering in 2017
 
My talk at SPb SQA sub-meetup of ITGM
My talk at SPb SQA sub-meetup of ITGMMy talk at SPb SQA sub-meetup of ITGM
My talk at SPb SQA sub-meetup of ITGM
 
My talk at SECR 2017
My talk at SECR 2017My talk at SECR 2017
My talk at SECR 2017
 
On scaling teams
On scaling teamsOn scaling teams
On scaling teams
 
MariaDB workshop
MariaDB workshopMariaDB workshop
MariaDB workshop
 
Docker for JS people
Docker for JS peopleDocker for JS people
Docker for JS people
 
My talk on DevOps engineer's adventures in the Windows world at UWDC 2017
My talk on DevOps engineer's adventures in the Windows world at UWDC 2017My talk on DevOps engineer's adventures in the Windows world at UWDC 2017
My talk on DevOps engineer's adventures in the Windows world at UWDC 2017
 
My talk on GitHub open data at ITGM #10
 My talk on GitHub open data at ITGM #10 My talk on GitHub open data at ITGM #10
My talk on GitHub open data at ITGM #10
 
My talk on DevOps :) at Stachka 2017
My talk on DevOps :) at Stachka 2017My talk on DevOps :) at Stachka 2017
My talk on DevOps :) at Stachka 2017
 
My talk on programming languages at SPbLUG Mar 2017
My talk on programming languages at SPbLUG Mar 2017My talk on programming languages at SPbLUG Mar 2017
My talk on programming languages at SPbLUG Mar 2017
 

Recently uploaded

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

Recently uploaded (20)

Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 

My slides from SECR'2018

  • 1. On declarative configuration management using Kubernetes and Helm Alexander Chistyakov ITMO University Software Engineering Conference Russia 2018 October 12-13 Moscow
  • 2. First things first, what is DevOps? ● I will make a short break for you so you can ship a release ● And if your process is solid enough, you can ship while I talk ● Or even better, a release can ship itself when it’s ready without even bothering you ● Do you need a couple of minutes just to check if something is shipping right now?
  • 3. BTW, who are you? ● Are you a human being? ● Maybe a DevOps engineer? ● Maybe a cyborg? ● Maybe even a Jenkins node? ● If so, how many jobs you can run in parallel?
  • 4. What does a CM process look like? ● We define a desired state declaratively
  • 5. What does a CM process look like? ● We define a desired state declaratively ● We instruct a CM master tool to get a system to that state idempotently
  • 6. What does a CM process look like? ● We define a desired state declaratively ● We instruct a CM master tool to get a system to that state idempotently ● Some CM magic begins
  • 7. What does a CM process look like? ● We define a desired state declaratively ● We instruct a CM master tool to get a system to that state idempotently ● Some CM magic begins ● Midnight suddenly comes
  • 8. What does a CM process look like? ● We define a desired state declaratively ● We instruct a CM master tool to get a system to that state idempotently ● Some CM magic begins ● Midnight suddenly comes ● Infrastructure gets to the desired state!
  • 9. What does a CM process look like? ● We define a desired state declaratively ● We instruct a CM master tool to get a system to that state idempotently ● Some CM magic begins ● Midnight suddenly comes ● Infrastructure gets to the desired state! ● Sounds not too difficult, should be quite easy to implement
  • 10. A bit of history ● Are you familiar with Puppet CM system? ● Raise your hands if you like it! (But how on Earth is it possible?)
  • 11. A bit of history ● Are you familiar with Chef CM system? ● Raise your hands if you like it! (Please don’t cry, SECR is a safe place and I’m your friend)
  • 12. A bit of history ● Are you familiar with Ansible CM system? ● Raise your hands if you like it!
  • 13. If you know Ansible, pls help me a bit ● I need to configure a cluster of something ● No, not a cluster yet, just a monitoring tool for a cluster
  • 14. Okay let’s try ● I need to configure a cluster of something ● Raise your hands if you like it!
  • 15. What’s inside ● I need to configure a cluster of something ● Raise your hands if you like it!
  • 16. What’s wrong with it? ● Nothing, this module was just awesome ● Except that it was poorly written, not documented at all, hard to use, not supported and finally abandoned ● Still 7 stars on GitHub!
  • 17. Let’s try again ● I need to configure a cluster of something ● Raise your hands if you like it!
  • 18. What’s inside ● I need to configure a cluster of something ● Raise your hands if you like it!
  • 20. What’s terribly wrong with it? ● Can you tell for sure what is a status of the Carbon systemd service? ● And if you can, imagine a situation where you provide a service unit file and then use Ansible “notify” mechanism to call a handler which in turn enables the service
  • 21. What’s terribly wrong with it? ● It’s hard to explain (not so hard to implement though), but people tend to be extremely proud implementing solutions like this ● Why on Earth does Ansible allow this? ● Please note that Ansible handlers run at the end of script execution
  • 22. Back to the CM process for a moment ● We want to run a set of microservices on top of a monolithic Linux kernel ● If this still makes sense, we can consider services as building blocks
  • 23. A dictionary for people from late 90s ● A microservice = a process ● A Docker image = a package ● Kubernetes = an operating system for microservices ● Helm = a package managing system (think apt in Debian or yum in RHEL) for Kubernetes
  • 24. Let’s try ● A microservice = a process
  • 25. What’s inside a lab ● A Vagrant-based Ansible-provisioned K8s setup ● 3 Vagrant boxes ● Using Kubespray (https://github.com/kubernetes-incubator/kubespray) to set up Kubernetes (Kubespray is where Ansible meets K8s) ● Using Helm to provision Kubernetes apps
  • 26. What’s inside a playbook
  • 28. Tired of dictionaries (the roads must roll!) ● Ansible = Helm ● Ansible role = Helm chart ● Python = Golang (this goes far beyond the scope of this session) ● Jinja templates = some custom templating engine ● ___ = tiller
  • 29. How Helm works ● Helm generated K8s YAML configs ● Helm transfers generated config files to the K8s cluster ● Tiller is an agent which runs in the cluster, effectively a cluster-side Helm service ● Tiller applies configuration files and labels a release ● Just like a Chef client 7 years ago but without a memory leak :)
  • 30. Helm charts repository ● It’s centralised ● It’s on GitHub (https://github.com/helm/charts) ● It grows very fast ● If you submit a patch it will be landed in about a month, which I consider quite fast
  • 31. Helm charts repository ● https://hub.kubeapps.com (a nice landing page for non-kinesthetic people)
  • 33. Templates are just declarative configs
  • 34. What’s wrong with Helm? ● Unfamiliar templating syntax (if you are not a Lisper)
  • 35. What’s wrong with K8s and Helm? ● They are written in Golang ● Really, seriously, please stop using Golang for everything! ● We are humans not rodents, we already invented nuclear bombing, Haskell and even soccer, why Golang after all???
  • 36. Conclusions ● Classical CM systems were never good ● Kubernetes and Helm are not good too, but we are just not fully aware yet ● And, frankly speaking, I don’t care
  • 37. Contacts • Alex Chistyakov • alexclear@gmail.com • +7-921-643-93-27 (Please don’t call me, I am a sociophobe) • @demeliorator (in Telegram and Skype)