Kube cfg-mgmt
Kube cfg-mgmt
Kube cfg-mgmt
Kube cfg-mgmt
Kube cfg-mgmt
Kube cfg-mgmt
Kube cfg-mgmt
Kube cfg-mgmt
Kube cfg-mgmt
Kube cfg-mgmt
Kube cfg-mgmt
Kube cfg-mgmt
Kube cfg-mgmt
Kube cfg-mgmt
Kube cfg-mgmt
Kube cfg-mgmt
Kube cfg-mgmt
Kube cfg-mgmt
Kube cfg-mgmt
Kube cfg-mgmt
Kube cfg-mgmt
Kube cfg-mgmt
https://github.com/apptio/kr8
https://github.com/jaxxstorm/kr8-cluster-config
https://github.com/jaxxstorm/kr8-cfgmgmt-example
https://leebriggs.co.uk/blog/2018/05/08/kubernetes-config-mgmt.html
https://leebriggs.co.uk/blog/2018/11/07/kr8-kubernetes-config-mgmt.html
Kube cfg-mgmt

More Related Content

PPTX
PPTX
GulpGruntNPM
PPTX
GWTcon 2015 - Best development practices for GWT web applications
PDF
Google api應用入門
PPTX
AKS: Keep your Devs close and your OpsSec closer…
PDF
Foss4g2018 Presentation
PPT
Making your application realtime with signal r
PDF
Geospatial web development with GeoEXT
GulpGruntNPM
GWTcon 2015 - Best development practices for GWT web applications
Google api應用入門
AKS: Keep your Devs close and your OpsSec closer…
Foss4g2018 Presentation
Making your application realtime with signal r
Geospatial web development with GeoEXT

What's hot (9)

PDF
Difference Between ASP.NET 2.0 and ASP.NET 3.5
PPTX
Drive chrome(headless) with puppeteer
PDF
Dockerを用いたマイクロサービスについて
PDF
Servo and GStreamer (GStreamer Conference 2018)
PPTX
Desenvolvimento .NET no Linux. Veja porque a Microsoft ama Linux e Open Source
PPTX
Improving Workflows With Grunt.js - Big D Design 2014 - Dallas Texas
PDF
Continuous delivery@LesFurets - DC Continuous delivery meetup
PPT
MVP with GWT and GWTP
PDF
Difference Between ASP.NET 2.0 and ASP.NET 3.5
Drive chrome(headless) with puppeteer
Dockerを用いたマイクロサービスについて
Servo and GStreamer (GStreamer Conference 2018)
Desenvolvimento .NET no Linux. Veja porque a Microsoft ama Linux e Open Source
Improving Workflows With Grunt.js - Big D Design 2014 - Dallas Texas
Continuous delivery@LesFurets - DC Continuous delivery meetup
MVP with GWT and GWTP
Ad

Recently uploaded (20)

PPTX
Digital Project Mastery using Autodesk Docs Workshops
PPTX
在线订购名古屋艺术大学毕业证, buy NUA diploma学历认证失败怎么办
PDF
Virtual Guard Technology Provider_ Remote Security Service Solutions.pdf
PPTX
北安普顿大学毕业证UoN成绩单GPA修改北安普顿大学i20学历认证文凭
PDF
The_Decisive_Battle_of_Yarmuk,battle of yarmuk
PDF
ilide.info-huawei-odn-solution-introduction-pdf-pr_a17152ead66ea2617ffbd01e8c...
PPTX
Networking2-LECTURE2 this is our lessons
PPTX
WEEK 15.pptx WEEK 15.pptx WEEK 15.pptx WEEK 15.pptx
PDF
Lesson.-Reporting-and-Sharing-of-Findings.pdf
PPTX
Going_to_Greece presentation Greek mythology
PPTX
购买林肯大学毕业证|i20Lincoln成绩单GPA修改本科毕业证书购买学历认证
PDF
healthwealthtech4all-blogspot-com-2025-08-top-5-tech-innovations-that-will-ht...
PDF
JuanConnect E-Wallet Guide for new users.pdf
PPTX
ECO SAFE AI - SUSTAINABLE SAFE AND HOME HUB
PPT
chapter 5: system unit computing essentials
PPTX
IT-Human Computer Interaction Report.pptx
PPTX
最新版美国埃默里大学毕业证(Emory毕业证书)原版定制文凭学历认证
PPSX
AI AppSec Threats and Defenses 20250822.ppsx
PPTX
IOT LECTURE IOT LECTURE IOT LECTURE IOT LECTURE
PPTX
using the citation of Research to create a research
Digital Project Mastery using Autodesk Docs Workshops
在线订购名古屋艺术大学毕业证, buy NUA diploma学历认证失败怎么办
Virtual Guard Technology Provider_ Remote Security Service Solutions.pdf
北安普顿大学毕业证UoN成绩单GPA修改北安普顿大学i20学历认证文凭
The_Decisive_Battle_of_Yarmuk,battle of yarmuk
ilide.info-huawei-odn-solution-introduction-pdf-pr_a17152ead66ea2617ffbd01e8c...
Networking2-LECTURE2 this is our lessons
WEEK 15.pptx WEEK 15.pptx WEEK 15.pptx WEEK 15.pptx
Lesson.-Reporting-and-Sharing-of-Findings.pdf
Going_to_Greece presentation Greek mythology
购买林肯大学毕业证|i20Lincoln成绩单GPA修改本科毕业证书购买学历认证
healthwealthtech4all-blogspot-com-2025-08-top-5-tech-innovations-that-will-ht...
JuanConnect E-Wallet Guide for new users.pdf
ECO SAFE AI - SUSTAINABLE SAFE AND HOME HUB
chapter 5: system unit computing essentials
IT-Human Computer Interaction Report.pptx
最新版美国埃默里大学毕业证(Emory毕业证书)原版定制文凭学历认证
AI AppSec Threats and Defenses 20250822.ppsx
IOT LECTURE IOT LECTURE IOT LECTURE IOT LECTURE
using the citation of Research to create a research
Ad

Editor's Notes

  • #2: Yes, I’ve gone for hipster hand drawn slides I bought an Apple Pencil so I’ve gotta justify it somehow
  • #3: Introduction Mention Apptio
  • #4: Don’t worry, I’m not going to try wrap this prez. I’m going to tell you a story about how we got here This is a story about how we discovered we need configuration mgmt for our Kubernetes clusters
  • #5: Our old deployment system consists of a bunch of java wrappers around some Bash scripts which whet some artifacts It’s slow. We wanted to try something else, and Kubernetes was a thing
  • #6: We built the clusters the way we know how to build stuff - with puppet We used kubeadm and consul for load balancing EKS was a twinkle in Amazon’s eye (and it’s still shit) Using cloud-init didn’t sound like much fun Everyone saying configuration management isn’t needed hasn’t had their Infoseek team run a Nessus scan
  • #7: We realized that clusters aren’t very usable out of the box So we added a bunch of stuff and called it AKP A better name than EKS fwiw We generally used helm charts
  • #8: Helm is amazing, it makes installing default components simple and easy. However, this is fine unless you need to make a change to a helm chart. Pull requests can be slow Helm is insecure
  • #9: we built another cluster. And another. And we kept having to install the same stuff, but with slightly different values Eventually one day, our devs came to us and asked why our dns wasn’t updating correctly. Turns out, someone had put the wrong configuration in the ingress controller
  • #10: We realized we had built snowflakes. There was no repeatability and worse, we had no configurability as we scaled out.
  • #11: We needed to install these Kubernetes components in a repeatable way we went back to what we knew, puppet Used the puppet helm module to install charts Puppet gave us configurability with hiera
  • #12: Puppet isn’t cluster aware at all It ran on the master nodes, all 3 of them We regularly ran into race conditions where puppet would do strange things It’s just not designed for this higher level abstraction
  • #13: These are familiar problems But we couldn’t understand how nobody else was having this problem Is everyone happy with running snowflakes? Does everyone have one cluster? I did what anyone would do - twitter thread - jk - I wrote a blogpost
  • #14: We tried a few different things Ksonnet - we liked this but it was complicated, and seemed focused towards app deployment We then decided to try templating values.yaml and realized we were just insane Kapitan - more yaml templating, but this ninja2 Ansible - say no more
  • #15: Notice the trend here. Why as an industry have we made it acceptable to use templating languages for configuration? When did this happen? Who’s responsible? Kubernetes is quite happy to accept JSON and computers are good at generating it
  • #16: After some frustration, one of my smarter colleagues decided he was going to write something
  • #17: He named it kr8 It was initially a set of bash scripts We rewrote it in Go a while ago, but some of the bash scripts still remain
  • #18: Can take helm charts, pure jsonnet, yaml or json and manipulate it Creates deployable manifests for each cluster, which you can read and understand and debug Deplorable with kubectl!
  • #19: A component is something you want on some or all clusters They contain a parameters definition, and a taskfile (go-task) and some jsonnet That jsonnet depends on your component source (helm - patches)
  • #20: Clusters is a hierarchical directory Named clusters contain a cluster.jsonnet You can also have a params.jsonnet which is inherited for clusters below it So if you have multiple clusters in the hierarchy, it’s easy to supply values for clusters globally
  • #21: So let’s see this in action
  • #22: Our industry is changing Kubernetes and cloud providers are here Terraform, pulumi are tools in this space There might be a better way of doing this This might be the best way, but maybe not? The people in this room have solved this problem for multiple abstraction layers That abstraction layer has changed. We don’t just need to configure operating systems anymore, we need to use the concepts we’ve learned and push them into the new layers Developers don’t get it, I’ve seen this in the wild
  • #23: There might be a better way of doing this This might be the best way, but maybe not? If someone wants to solve this problem for us, please do If you can write decent Go, we would love some PRs