YouTube Recording of this talk is here: https://youtu.be/YG8jMFrYQvM
Helm has many benefits, including team velocity, decreased downtime, and reliability.
Bringing GitOps approaches to Helm enhances those existing benefits with reconciliation, improved reliability, observability, and auditability. (That's a lot of "ability"s!)
In this session, Scott goes through the business value as well as the technical value for users + demo these benefits especially if you use Helm 3 with Flux 2.
Note to our Flux community that Flux v2 is in development and Flux v1 is in maintenance mode. These talks and upcoming guides will give you the most up-to-date info and steps to migrate once we reach feature parity and start the migration process. We are dedicated to the smoothest experience possible for our Flux community, so please join us if you'd like early access and to give us feedback for the migration process.
We are really excited by the improvements and want to take this opportunity to show you what Flux 2 is all about, walk you through the guides and get your feedback!
Here's our latest blog post on Flux v2 and GitOps Toolkit updates: https://fluxcd.io/blog/2020/12/december-update/
Speaker: Scott Rigby, Developer Experience Engineer, Weaveworks
Bio: Scott is a Brooklyn based interdisciplinary artist and Developer Advocate 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.
Handwritten Text Recognition for manuscripts and early printed texts
Helm + GitOps = ⚡️⚡️⚡️
1. Helm + GitOps =
⚡⚡⚡
Scott Rigby, Developer Experience @Weaveworks
Weave Online User Group – Jan 11, 2021
1
2. ● High-level Value
○ Benefits of Helm In General
○ Benefits of Helm in GitOps
● Flux 2 Awesomeness For Helm Users
● When to Migrate
● Demo: Helm Operator -> Controller Migration
● Q&A
2
Overview
9. ● GitOps is an app dev and operations methodology
● GitOps is a paradigm, not a specific tool or technology.
● GitOps applies to everything
and brings business value.
What is GitOps? … and why do I want it?
9
10. GitOps leverages:
● an entire system that is described declaratively
● code that is version controlled and
● software agents that reconcile and ensure correctness
(along with alerts, etc).
4 Principles of GitOps
10
11. Reconciliation
11
● All CI/CD systems experience points of error
○ DNS issues
○ Service API issues
○ Calling the Helm client for various reasons
● GitOps to the rescue
○ Flux uses Kubernetes for reconciliation
○ While scripted commands must be analyzed and rerun on failure, GitOps
assumes inevitable points of failure, so continues to ensure your Helm Release
● Your engineers still have control even with automation
○ Automatic reconciliation can sound scary, but you still have control
○ Can pause reconciliation at any time per Helm Release
🔁
12. Reliability and Consistency
12
● Desired state is declared in git
○ If your cluster has a problem, no need to manually identify the missing pieces or
manually manage a fix. Let kubernetes do it for you
● Retries
○ Flux adds retries functionality to Helm’s existing automatic rollback functionality
● Enhanced Debugging
○ Flux adds an option to keep last failed release for debugging
○ Useful for non-production environments
🧱
13. Observability
13
● All in One Place
○ Flux colocates logging and errors with your resources in kubernetes
○ More accessible by multiple team members all in one place
○ Easily integrates with existing telemetry export tools like Prometheus, which is
supported by default
🕵♀
14. Auditability
14
● Clear Audit Trail
○ Everything is controlled through git pull requests
○ Git history provides a sequence of transactions. This also allows you to recover
state from any snapshot
○ Notification controller integrates with Slack alerts and other team
communication tools
⛓
15. Flux GitOps introduces an additional layer of reliability, consistency, observability, and
auditability to the benefits of using Helm in any other way.
Better Together
15
17. Pause/Resume Reconciliation per Release
17
Flux 1 required pausing the Entire
Operator
Flux 2 allows pausing per Helm
Release
18. Helm Controller Depends On feature
18
More memory efficient than a large umbrella chart
Example: ingress controller and cert-manager installed
before applications that rely on those
19. SemVer Ranges for Charts
19
Flux 2 supports semver ranges from Helm
repositories
Examples: >=4.0.0 or <5.0.0
For details, compare the Helm Controller docs
with the Helm Operator docs
20. Install Charts from Storage
Bucket Source
20
S3, google storage, Azure blob storage, KFC
etc
21. Add a Helm Repo Without Restarting
21
Flux 1 Helm Operator required restarting
whenever a new Helm repo was added
No longer in Flux 2 Helm Controller! We
now use references
Greater isolation once again
22. Helm Repo Reference Reusability
22
Define a Helm repo once, use everywhere
Now Helm Releases can reference a Repo
by name
23. Optional Credentials Per git or Helm Repo
23
Greater flexibility, more
composability
If you have multiple sources locked
down in different ways, it’s no longer
a problem
Allows you to enforce principle of
least privilege more easily
24. Out of Cluster Helm Releases
24
Have an out of cluster experience
Flux can also sync Cluster API manifests,
allowing you to spin up multiple clusters
from a single management cluster
32. Flux 1 or 2?
32
New users should prob go straight to Flux 2
Existing users can migrate to Flux 2 now (there is an
upgrade path, which we'll demo)
Image automation is available as a prerelease. If you require
this feature, please give it a go in non-production and let us
know how it goes! Hang tight with Flux 1 in production for
the moment. See docs for current status
Complex charts may raise use cases we haven't yet tested
for in Flux 2. Please test these in non-production and help
us by posting any issues. Thanks! 🌈 🦄 🙌