© 2018 Cloud Native Computing Foundation
1
GitOps for
Helm Users!
Scott Rigby, DX Engineer @ Weaveworks
© 2018 Cloud Native Computing Foundation
2
Who I am
Scott is a Brooklyn based interdisciplinary artist and Developer
Experience Engineer at Weaveworks. He co-founded the
Basekamp art and research group in 1998 and the massively
collaborative Plausible Artworlds international network. In
technology he enjoys helping develop open source software that
anyone can use, most recently projects in the cloud native
landscape including co-maintaining Helm and Flux. In daily
decisions, large or small, he tries to help make the world a better
place for everyone.
Scott Rigby
Maintainer
👋
Scott
DX Engineer @r6by
Co-chair
© 2018 Cloud Native Computing Foundation
3
Agenda
● Who this talk is for
● Brief context for new users
● Benefits of flux for helm users
● Moving from helm CLI to helm controller
● Demo
© 2018 Cloud Native Computing Foundation
4
Who this talk is for
● Existing Helm Users!
○ Many of you are using helm in your CI automation
○ Many of you are additionally using imperative helm CLI
commands
○ Some of you may only be using helm CLI commands
● New to Helm? No worries!
○ I’ll also give a short intro to helm so brand new users can
benefit too
Brief Context for New Users
© 2018 Cloud Native Computing Foundation
6
Intro to Helm
Helm.sh | Docs: https://helm.sh/docs/
© 2018 Cloud Native Computing Foundation
7
Helm Scope
• CRD upgrades
• Manage or structure multiple
environments. You must use other
tools for this (e.g., Helmfile,
bash/Makefile)
• Control loop, or retry logic
• Automated responses (beyond
rollback)
• Automated drift detection
(imperatively this can be done with
helm diff plugin)
✅ In Scope 🚫 Out of Scope
• Supports CLI and SDK (which Flux
uses)
• Packaging
• Configuration
• Imperative app delivery
• Versioning and rollbacks
• etc…
© 2018 Cloud Native Computing Foundation
8
Source: opengitops.dev
© 2018 Cloud Native Computing Foundation
9
Intro to Flux Family
fluxcd.io flagger.app
© 2018 Cloud Native Computing Foundation
10
🤝 Flux provides GitOps for both apps and infrastructure
🤖 Just push to Git and Flux does the rest
🔩 Flux works with your existing tools
☸ Flux works with any Kubernetes and all common Kubernetes
tooling
🤹 Flux does Multi-Tenancy (and “Multi-everything”)
📞 Flux alerts and notifies
👍 Users trust Flux
💖 Flux has a lovely community that is very easy to work with!
Flux in Short
fluxcd.io
© 2018 Cloud Native Computing Foundation
11
Overview of Flux
Source
controller
Kustomize
controller
Helm Controller Notification
Controller
Image Reflector &
Automation
Controller
Flux
Flux is a set of
Kubernetes Controllers
fluxcd.io
© 2018 Cloud Native Computing Foundation
12
How Flux Source & Helm Controllers Work
fluxcd.io
Show me the…benefits!
🔒 🦮 🏎 🚀 📈
© 2018 Cloud Native Computing Foundation
14
Moving from Helm CLI to Helm Controller
● It all starts with using Helm declaratively
● For helm CI automation users, this is the process of decoupling your CI/CD
● For all helm users, when using flux, helm releases are properly separated into
continuous delivery (CD)
● Change can be 👻 scary 😱, but you're here because you know it's
necessary. Some things that might help:
○ tips to convince whoever you need to
○ companies big and small, old and new are adopting GitOps
○ point to success stories from others (quotes, talks)
○ Taking ownership is easier when you can share risk
○ Defer to experts to help make your case
© 2018 Cloud Native Computing Foundation
15
Common Use Cases
You can install Flux and helm-controller on an existing cluster with
running helm releases, or use new Helm Release configurations to
move to new infrastructure.
● In-place lift-and-shift / pivot-to-GitOps
● Migrate on fresh infra
You can also mix and match:
● Custom Helm charts
● Shared internal or community Helm charts
© 2018 Cloud Native Computing Foundation
16
Configuring Flux to Own Existing Releases
1. Refer to any Helm values files already checked into Git
○ Whether applied with some scripting per environment
(`ENV-values.yaml`)
○ That may be declared in a Helmfile
2. Inspect the state of the cluster
○ This is important if you have people modifying helm releases
imperatively
○ `helm get values my-release`
3. Then configure the Flux HelmRelease with your Helm values
○ Using HelmRelease Values
○ or ConfigMaps/Secrets referenced by HelmRelease `ValuesFrom`
© 2018 Cloud Native Computing Foundation
17
Common Pitfalls
● If you have custom logic, such as health checks when mixing CI and CD together, you'll
need to determine how to port that logic to a Flux-compatible solution
○ If this proves challenging, it can be a sign that your CI and CD are overly coupled,
which could cause other issues with your release process
○ To solve: More cleanly separate your CI and CD. You may also want to consider
more resilient tools to accomplish the same goals – e.g., use Flagger for traffic
directing based on health checks and other conditions (opens up a path to
blue/green, canary, etc)
● It's possible to accidentally structure your source repos in ways that make it difficult for
people access the things they need
○ Ensure folks can update their HelmReleases during incident response – whether
access in the repo, or giving in-cluster access to temporarily suspend Flux
reconciliation per Helm release and perform imperative fixes
○ To solve: Can split into multiple repos according to user access rights
○ Solutions vary by git provider: GitHub CODEOWNERS, GitLab has per-directory ACLs
DEMO TIME!

More Related Content

PDF
Security: The Value of SBOMs
PDF
Intro to Kubernetes & GitOps Workshop
PPTX
[Konveyor] address technical risks when implementing workload modernization u...
PPTX
Kubernetes: Increasing velocity without sacrificing quality
PPTX
[Konveyor] migrate and modernize your application portfolio to kubernetes wit...
PPTX
[Konveyor] roles & processes that make application modernization projects...
PDF
Free GitOps Workshop + Intro to Kubernetes & GitOps
PDF
ITLC Ha Noi : Openstack From Atlanta to Ha Noi - Networking
Security: The Value of SBOMs
Intro to Kubernetes & GitOps Workshop
[Konveyor] address technical risks when implementing workload modernization u...
Kubernetes: Increasing velocity without sacrificing quality
[Konveyor] migrate and modernize your application portfolio to kubernetes wit...
[Konveyor] roles & processes that make application modernization projects...
Free GitOps Workshop + Intro to Kubernetes & GitOps
ITLC Ha Noi : Openstack From Atlanta to Ha Noi - Networking

What's hot (20)

PDF
WTF is GitOps and Why You Should Care?
PDF
rOCCI – Providing Interoperability through OCCI 1.1 Support for OpenNebula
PDF
Continuous Security for GitOps
PDF
RootStack - Devfactory
PDF
OpenStack Journey in Tieto Elastic Cloud
PDF
Packagez et déployez vos applications avec Docker - Montréal CloudFoundry Mee...
PDF
E bpf and profilers
PDF
Hybrid and Multi-Cloud Strategies for Kubernetes with GitOps
PDF
Cloud native with kubernetes
PDF
Persistent Storage with Kubernetes in Production
PDF
Overview and Opentracing in theory by Gianluca Arbezzano
PDF
Cncf storage-final-filip
PDF
[WSO2Con EU 2018] Deploying Applications in K8S and Docker
PDF
Jenkins X Lessons Learned as OSS Contributor
PDF
Modern Monitoring - SysAdminDay 2017
PDF
Three Ways InfluxDB Enables You to Use Time Series Data Across Your Entire En...
PDF
Kubernetes 1.12 Update and Container Security with Liz Rice
PDF
InfluxCloudi craft container orchestrator
PDF
Monitoring Pull vs Push, InfluxDB and Prometheus
PDF
Secure GitOps pipelines for Kubernetes with Snyk & Weaveworks
WTF is GitOps and Why You Should Care?
rOCCI – Providing Interoperability through OCCI 1.1 Support for OpenNebula
Continuous Security for GitOps
RootStack - Devfactory
OpenStack Journey in Tieto Elastic Cloud
Packagez et déployez vos applications avec Docker - Montréal CloudFoundry Mee...
E bpf and profilers
Hybrid and Multi-Cloud Strategies for Kubernetes with GitOps
Cloud native with kubernetes
Persistent Storage with Kubernetes in Production
Overview and Opentracing in theory by Gianluca Arbezzano
Cncf storage-final-filip
[WSO2Con EU 2018] Deploying Applications in K8S and Docker
Jenkins X Lessons Learned as OSS Contributor
Modern Monitoring - SysAdminDay 2017
Three Ways InfluxDB Enables You to Use Time Series Data Across Your Entire En...
Kubernetes 1.12 Update and Container Security with Liz Rice
InfluxCloudi craft container orchestrator
Monitoring Pull vs Push, InfluxDB and Prometheus
Secure GitOps pipelines for Kubernetes with Snyk & Weaveworks
Ad

Similar to GitOps (& Flux) for Helm Users with Scott Rigby (20)

PDF
GitOps for Helm Users by Scott Rigby
PDF
Get started with gitops and flux
PDF
Hands-on GitOps Patterns for Helm Users
PDF
Flux is incubating + the road ahead
PDF
WTF is GitOps & Why Should You Care?
PDF
How to manage Kubernetes at scale with just git
PDF
Reconcile Terraform Resources the GitOps Way with Priyanka Ravi
PDF
GitOps & Flux - A Refresher with Priyanka Ravi
PDF
GitOps with Flux - IPC Munich 2022
PDF
Implementing Flux for Scale with Soft Multi-tenancy
PDF
Get Started with Flux
PDF
Intro to GitOps & Flux.pdf
PDF
Flux Security & Scalability using VS Code GitOps Extension
PDF
Config management for_kubernetes: GitOps + Helm (CfgMgmtCamp 2020)
PDF
The journey to GitOps
PDF
The Story of Flux Reaching Graduation in the CNCF
PDF
20221130 - Luxembourg HUG Meetup
PDF
Config management for kubernetes: GitOps + Helm
PDF
Setting up Notifications, Alerts & Webhooks with Flux v2 by Alison Dowdney
PDF
Webinar: Capabilities, Confidence and Community – What Flux GA Means for You
GitOps for Helm Users by Scott Rigby
Get started with gitops and flux
Hands-on GitOps Patterns for Helm Users
Flux is incubating + the road ahead
WTF is GitOps & Why Should You Care?
How to manage Kubernetes at scale with just git
Reconcile Terraform Resources the GitOps Way with Priyanka Ravi
GitOps & Flux - A Refresher with Priyanka Ravi
GitOps with Flux - IPC Munich 2022
Implementing Flux for Scale with Soft Multi-tenancy
Get Started with Flux
Intro to GitOps & Flux.pdf
Flux Security & Scalability using VS Code GitOps Extension
Config management for_kubernetes: GitOps + Helm (CfgMgmtCamp 2020)
The journey to GitOps
The Story of Flux Reaching Graduation in the CNCF
20221130 - Luxembourg HUG Meetup
Config management for kubernetes: GitOps + Helm
Setting up Notifications, Alerts & Webhooks with Flux v2 by Alison Dowdney
Webinar: Capabilities, Confidence and Community – What Flux GA Means for You
Ad

More from Weaveworks (20)

PDF
Weave AI Controllers (Weave GitOps Office Hours)
PDF
Flamingo: Expand ArgoCD with Flux (Office Hours)
PDF
Six Signs You Need Platform Engineering
PDF
SRE and GitOps for Building Robust Kubernetes Platforms.pdf
PDF
Webinar: End to End Security & Operations with Chainguard and Weave GitOps
PDF
Flux Beyond Git Harnessing the Power of OCI
PDF
Automated Provisioning, Management & Cost Control for Kubernetes Clusters
PDF
How to Avoid Kubernetes Multi-tenancy Catastrophes
PDF
Building internal developer platform with EKS and GitOps
PDF
GitOps Testing in Kubernetes with Flux and Testkube.pdf
PDF
Intro to GitOps with Weave GitOps, Flagger and Linkerd
PDF
Accelerating Hybrid Multistage Delivery with Weave GitOps on EKS
PDF
Shift Deployment Security Left with Weave GitOps & Upbound’s Universal Crossp...
PDF
Securing Your App Deployments with Tunnels, OIDC, RBAC, and Progressive Deliv...
PDF
Flux’s Security & Scalability with OCI & Helm Slides.pdf
PDF
Deploying Stateful Applications Securely & Confidently with Ondat & Weave GitOps
PDF
Robust Network Security and Observability with GitOps and Cilium
PDF
Simplifying Hybrid Kubernetes with Weaveworks and EKS.pdf
PDF
Weave GitOps 2022.09 Release: A Fast & Reliable Path to Production with Progr...
PDF
Building a Security First Approach Across Hybrid Cloud with GitOps and Policy...
Weave AI Controllers (Weave GitOps Office Hours)
Flamingo: Expand ArgoCD with Flux (Office Hours)
Six Signs You Need Platform Engineering
SRE and GitOps for Building Robust Kubernetes Platforms.pdf
Webinar: End to End Security & Operations with Chainguard and Weave GitOps
Flux Beyond Git Harnessing the Power of OCI
Automated Provisioning, Management & Cost Control for Kubernetes Clusters
How to Avoid Kubernetes Multi-tenancy Catastrophes
Building internal developer platform with EKS and GitOps
GitOps Testing in Kubernetes with Flux and Testkube.pdf
Intro to GitOps with Weave GitOps, Flagger and Linkerd
Accelerating Hybrid Multistage Delivery with Weave GitOps on EKS
Shift Deployment Security Left with Weave GitOps & Upbound’s Universal Crossp...
Securing Your App Deployments with Tunnels, OIDC, RBAC, and Progressive Deliv...
Flux’s Security & Scalability with OCI & Helm Slides.pdf
Deploying Stateful Applications Securely & Confidently with Ondat & Weave GitOps
Robust Network Security and Observability with GitOps and Cilium
Simplifying Hybrid Kubernetes with Weaveworks and EKS.pdf
Weave GitOps 2022.09 Release: A Fast & Reliable Path to Production with Progr...
Building a Security First Approach Across Hybrid Cloud with GitOps and Policy...

Recently uploaded (20)

PPTX
Final SEM Unit 1 for mit wpu at pune .pptx
PDF
Developing a website for English-speaking practice to English as a foreign la...
PDF
Comparative analysis of machine learning models for fake news detection in so...
PDF
CloudStack 4.21: First Look Webinar slides
PPTX
The various Industrial Revolutions .pptx
PDF
A review of recent deep learning applications in wood surface defect identifi...
PPTX
TEXTILE technology diploma scope and career opportunities
PPTX
Module 1 Introduction to Web Programming .pptx
PPTX
Microsoft Excel 365/2024 Beginner's training
PDF
Enhancing plagiarism detection using data pre-processing and machine learning...
PDF
How IoT Sensor Integration in 2025 is Transforming Industries Worldwide
PDF
Accessing-Finance-in-Jordan-MENA 2024 2025.pdf
PDF
UiPath Agentic Automation session 1: RPA to Agents
PPT
Galois Field Theory of Risk: A Perspective, Protocol, and Mathematical Backgr...
PPTX
Custom Battery Pack Design Considerations for Performance and Safety
PPT
Module 1.ppt Iot fundamentals and Architecture
PDF
Five Habits of High-Impact Board Members
PDF
Architecture types and enterprise applications.pdf
PDF
“A New Era of 3D Sensing: Transforming Industries and Creating Opportunities,...
PPTX
Modernising the Digital Integration Hub
Final SEM Unit 1 for mit wpu at pune .pptx
Developing a website for English-speaking practice to English as a foreign la...
Comparative analysis of machine learning models for fake news detection in so...
CloudStack 4.21: First Look Webinar slides
The various Industrial Revolutions .pptx
A review of recent deep learning applications in wood surface defect identifi...
TEXTILE technology diploma scope and career opportunities
Module 1 Introduction to Web Programming .pptx
Microsoft Excel 365/2024 Beginner's training
Enhancing plagiarism detection using data pre-processing and machine learning...
How IoT Sensor Integration in 2025 is Transforming Industries Worldwide
Accessing-Finance-in-Jordan-MENA 2024 2025.pdf
UiPath Agentic Automation session 1: RPA to Agents
Galois Field Theory of Risk: A Perspective, Protocol, and Mathematical Backgr...
Custom Battery Pack Design Considerations for Performance and Safety
Module 1.ppt Iot fundamentals and Architecture
Five Habits of High-Impact Board Members
Architecture types and enterprise applications.pdf
“A New Era of 3D Sensing: Transforming Industries and Creating Opportunities,...
Modernising the Digital Integration Hub

GitOps (& Flux) for Helm Users with Scott Rigby

  • 1. © 2018 Cloud Native Computing Foundation 1 GitOps for Helm Users! Scott Rigby, DX Engineer @ Weaveworks
  • 2. © 2018 Cloud Native Computing Foundation 2 Who I am Scott is a Brooklyn based interdisciplinary artist and Developer Experience Engineer at Weaveworks. He co-founded the Basekamp art and research group in 1998 and the massively collaborative Plausible Artworlds international network. In technology he enjoys helping develop open source software that anyone can use, most recently projects in the cloud native landscape including co-maintaining Helm and Flux. In daily decisions, large or small, he tries to help make the world a better place for everyone. Scott Rigby Maintainer 👋 Scott DX Engineer @r6by Co-chair
  • 3. © 2018 Cloud Native Computing Foundation 3 Agenda ● Who this talk is for ● Brief context for new users ● Benefits of flux for helm users ● Moving from helm CLI to helm controller ● Demo
  • 4. © 2018 Cloud Native Computing Foundation 4 Who this talk is for ● Existing Helm Users! ○ Many of you are using helm in your CI automation ○ Many of you are additionally using imperative helm CLI commands ○ Some of you may only be using helm CLI commands ● New to Helm? No worries! ○ I’ll also give a short intro to helm so brand new users can benefit too
  • 5. Brief Context for New Users
  • 6. © 2018 Cloud Native Computing Foundation 6 Intro to Helm Helm.sh | Docs: https://helm.sh/docs/
  • 7. © 2018 Cloud Native Computing Foundation 7 Helm Scope • CRD upgrades • Manage or structure multiple environments. You must use other tools for this (e.g., Helmfile, bash/Makefile) • Control loop, or retry logic • Automated responses (beyond rollback) • Automated drift detection (imperatively this can be done with helm diff plugin) ✅ In Scope 🚫 Out of Scope • Supports CLI and SDK (which Flux uses) • Packaging • Configuration • Imperative app delivery • Versioning and rollbacks • etc…
  • 8. © 2018 Cloud Native Computing Foundation 8 Source: opengitops.dev
  • 9. © 2018 Cloud Native Computing Foundation 9 Intro to Flux Family fluxcd.io flagger.app
  • 10. © 2018 Cloud Native Computing Foundation 10 🤝 Flux provides GitOps for both apps and infrastructure 🤖 Just push to Git and Flux does the rest 🔩 Flux works with your existing tools ☸ Flux works with any Kubernetes and all common Kubernetes tooling 🤹 Flux does Multi-Tenancy (and “Multi-everything”) 📞 Flux alerts and notifies 👍 Users trust Flux 💖 Flux has a lovely community that is very easy to work with! Flux in Short fluxcd.io
  • 11. © 2018 Cloud Native Computing Foundation 11 Overview of Flux Source controller Kustomize controller Helm Controller Notification Controller Image Reflector & Automation Controller Flux Flux is a set of Kubernetes Controllers fluxcd.io
  • 12. © 2018 Cloud Native Computing Foundation 12 How Flux Source & Helm Controllers Work fluxcd.io
  • 13. Show me the…benefits! 🔒 🦮 🏎 🚀 📈
  • 14. © 2018 Cloud Native Computing Foundation 14 Moving from Helm CLI to Helm Controller ● It all starts with using Helm declaratively ● For helm CI automation users, this is the process of decoupling your CI/CD ● For all helm users, when using flux, helm releases are properly separated into continuous delivery (CD) ● Change can be 👻 scary 😱, but you're here because you know it's necessary. Some things that might help: ○ tips to convince whoever you need to ○ companies big and small, old and new are adopting GitOps ○ point to success stories from others (quotes, talks) ○ Taking ownership is easier when you can share risk ○ Defer to experts to help make your case
  • 15. © 2018 Cloud Native Computing Foundation 15 Common Use Cases You can install Flux and helm-controller on an existing cluster with running helm releases, or use new Helm Release configurations to move to new infrastructure. ● In-place lift-and-shift / pivot-to-GitOps ● Migrate on fresh infra You can also mix and match: ● Custom Helm charts ● Shared internal or community Helm charts
  • 16. © 2018 Cloud Native Computing Foundation 16 Configuring Flux to Own Existing Releases 1. Refer to any Helm values files already checked into Git ○ Whether applied with some scripting per environment (`ENV-values.yaml`) ○ That may be declared in a Helmfile 2. Inspect the state of the cluster ○ This is important if you have people modifying helm releases imperatively ○ `helm get values my-release` 3. Then configure the Flux HelmRelease with your Helm values ○ Using HelmRelease Values ○ or ConfigMaps/Secrets referenced by HelmRelease `ValuesFrom`
  • 17. © 2018 Cloud Native Computing Foundation 17 Common Pitfalls ● If you have custom logic, such as health checks when mixing CI and CD together, you'll need to determine how to port that logic to a Flux-compatible solution ○ If this proves challenging, it can be a sign that your CI and CD are overly coupled, which could cause other issues with your release process ○ To solve: More cleanly separate your CI and CD. You may also want to consider more resilient tools to accomplish the same goals – e.g., use Flagger for traffic directing based on health checks and other conditions (opens up a path to blue/green, canary, etc) ● It's possible to accidentally structure your source repos in ways that make it difficult for people access the things they need ○ Ensure folks can update their HelmReleases during incident response – whether access in the repo, or giving in-cluster access to temporarily suspend Flux reconciliation per Helm release and perform imperative fixes ○ To solve: Can split into multiple repos according to user access rights ○ Solutions vary by git provider: GitHub CODEOWNERS, GitLab has per-directory ACLs