The document provides an introduction to GitOps and Flux. It discusses what GitOps is, how it utilizes version control as a single source of truth for continuous delivery. It then summarizes what Flux is and its key components like the source, kustomize, helm and notification controllers. The document highlights benefits of Flux like reducing developer burden and being extensible. It also briefly mentions new Flux features like OCI support and related tools like the terraform controller, flamingo and Weave GitOps.
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Intro to GitOps & Flux.pdf
1. 1
October 12, 2022
Intro to GitOps & Flux
Priyanka Ravi
Developer Experience Engineer, Weaveworks
Vanessa Abankwah
Community Manager, Weaveworks
2. 2
Weaveworks is founded on open source
● Flux & Flagger (CNCF): GitOps and Progressive Delivery for k8s
● Cortex (CNCF): Distributed, Long-term-storage TSDB compatible with
Prometheus
● Weave Ignite: VMs with container UX & built-in GitOps management
● EKSctl: Create an Amazon EKS cluster with one command
● (and many many more projects!)
And now … Weave GitOps!
weave.works
3. 3
Speakers Help/Support
Priyanka “Pinky” Ravi
DX Engineer
Vanessa Abankwah
Community Manager,
Weaveworks
Duration
30-60 Minutes
Browser
Safari copy/paste
shortcuts may not work
Using Zoom
Questions?
• Use chat (button: top
left corner of screen)
• Escape to exit full
screen
• “To Everyone” or “To
all panelists and
attendees”
Support:
https://support.zoom.us/hc/
en-us/articles/206175806-T
op-Questions
Troubleshooting
Use chat
If the issue is not easily resolved,
we ask that you follow along as
we demo the sample app.
Intro to GitOps & Flux
4. 4
👋 Get Connected 💬 🤝
● Fluxcd.io - ⭐ Star us on GitHub ⭐
● Check out the Flux docs at: fluxcd.io/docs/get-started/
● GitHub Discussions Q&A:
https://github.com/fluxcd/flux2/discussions/categories/q-a
● CNCF Slack #Flux channel (or get a slack invite)
5. 5
Visit us at KubeCon NA Detroit:
● Flux Project Meeting (Mon Oct 24)
● GitOpsCon (Tue Oct 25)
● Flux Booth (W-F)
● Flux Talks @ KubeCon (W-F) - mini site
ATO 2022 Get Started with Kubernetes & GitOps Workshop (Nov 1)
HashiCorp User Group Luxembourg (virtual) (Nov 30)
Upcoming Events
6. 6
6
● Operating model for cloud native applications such as Kubernetes
● Utilizes a version controlled system (Commonly Git) as the “single
source of truth”
● Enables continuous delivery through automated deployment,
monitoring, and management by a version controlled system
● Managing your infrastructure and applications declaratively
What is GitOps
8. 8
8
Individuals, teams, and organizations who implement GitOps experience
many benefits, including:
● Stronger Security Guarantees
● Increased Developer & Operational Productivity
● Enhanced Developer Experience
● Improved Stability
● Higher Reliability
● Consistency and Standardization
Why GitOps
9. 9
9
● A git centric package manager for your applications
● A set of continuous and progressive delivery solutions for Kubernetes
What is Flux
fluxcd.io
10. 10
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
11. 11
11
● Reduces developer burden
● Extensible
● Comes with out of the box support for Kustomize and Helm
● Designed For Kubernetes
Benefits of Flux
fluxcd.io
13. 13
What Flux’s Controllers do
Source Controller
- Fetch resources and store as
artifacts
Kustomize Controller
- Apply manifests, Run
manifest generation using
kustomize
Helm Controller
- Deployment of Helm Charts
Notification Controller
- Notification Dispatch
Image Reflector Controller
- Reflects Image metadata for
Automation Controller
Image Automation Controller
- Updates YAML when new
container images are
available
fluxcd.io
14. 14
14
Flux Added OCI Support!
OCI + Flux == GitOps
● Git is still the source of truth
● Before:
○ Git => Flux
● After:
○ Git => OCI registry => Flux
15. 15
15
Security & Scalability
● Pulling an OCI image is much less resource-intensive compared
to a full or shallow Git clone
● High available registries are available everywhere
● Flux leverages Kubernetes workload identity and IAM when
pulling OCI artifacts from managed registries
○ => No more key management
○ => No more SSH keys to generate
○ => No more proprietary API usage for token generation
○ => same mechanism that’s used for pulling container images
● Image verification with cosign
16. 16
16
Flamingo - Flux Subsystem for Argo
● Flamingo’s container
image can be used as a
drop-in replacement for
the equivalent ArgoCD
version to visualize, and
manage Flux workloads,
alongside ArgoCD
● Flamingo on GitHub:
https://github.com/flux-
subsystem-argo/flamin
go
17. 17
17
● A Flux controller that can manage Terraform resources
● Terraform resources that can be managed are not limited to
Kubernetes resources
● Weave GitOps Terraform Controller on GitHub:
https://github.com/weaveworks/tf-controller
● Weave GitOps Terraform Controller Docs:
https://weaveworks.github.io/tf-controller/
● Weave GitOps Terraform Controller Use Cases:
https://weaveworks.github.io/tf-controller/use_cases/
Terraform Controller
18. 18
18
● Full GitOps Automation
● GitOps for Existing Terraform resources
● GitOps model for plan and manually apply Terraform
● Drift Detection of Terraform resources
● Can be used as a glue for Terraform resources and Kubernetes
workloads
Benefits of the Terraform Controller
19. 19
19
● Manual/Auto Approvals
● Drift Detection
● Accepts a list of ConfigMaps /
Secrets as variables
● Statefile is stored in a secret by
default (Backend can be set)
● Health Checks
Features of the Terraform Controller
● Destroy resources on deletion
● Write outputs to a secret
● Concurrency
● Customizable runner pod
● Use OCI Artifact as Source
● Force unlock Terraform state
● TFC/TFE integration
20. 20
20
GitOps Tools for Flux Visual Studio Code Extension
● An extension to enhance the developer experience
● An intuitive way to manage, troubleshoot and operate your
Kubernetes environment following the GitOps operating model
● Accelerate your development lifecycle and simplify your continuous
delivery pipelines
● GitOps Tools Visual Studio Code on GitHub:
https://github.com/weaveworks/vscode-gitops-tools
● GitOps Tools for Flux in Visual Studio Marketplace:
https://marketplace.visualstudio.com/items?itemName=Weavework
s.vscode-gitops-tools
21. 21
21
Weave GitOps
● Adds a web UI that surfaces key information to help application
operators easily discover and resolve issues
● An intuitive interface that provides a guided experience to build
understanding and simplify getting started for new users; they can
easily discover the relationship between Flux objects and navigate to
deeper levels of information as required
● GitOps Tools Visual Studio Code on GitHub:
https://github.com/weaveworks/weave-gitops
● Weave GitOps Documentation:
https://docs.gitops.weave.works/docs/intro/
23. 23
● Join us on Flux discussions if you have more questions:
https://github.com/fluxcd/flux2/discussions
● Flux Community: https://fluxcd.io/community/
● Join the GitOps Community Group:
https://www.meetup.com/GitOps-Community/
● More info on GitOps? Visit www.gitops.community/
● Join the GitOps Community LinkedIn Group:
https://www.linkedin.com/groups/13914610/
Next Steps