Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
SlideShare a Scribd company logo
© 2018 Cloud Native Computing Foundation
1
Getting Started with
GitOps & Flux
Priyanka Ravi, DX Engineer @ Weaveworks
© 2018 Cloud Native Computing Foundation
2
Introduction
Priyanka is a Developer Experience Engineer at Weaveworks.
She has worked on a multitude of topics including front end
development, UI automation for testing and API development.
Previously she was a software developer at State Farm where she was
on the delivery engineering team working on GitOps enablement.
She has been working on GitOps and was instrumental in the
multi-tenancy migration to utilize flux for an internal Kubernetes offering.
As a prior intern herself, she is passionate about working on campus
recruiting and mentoring interns. Outside of work, Priyanka enjoys
hanging out with her husband and two rescue dogs as well as traveling
around the globe.
Priyanka Ravi
�� ��
“Pinky” DX Engineer Dog Mom @PinkyyRavi
© 2018 Cloud Native Computing Foundation
3
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
© 2018 Cloud Native Computing Foundation
4
● Reduces developer burden
● Extensible
● Comes with out of the box support for Kustomize and Helm
● Designed For Kubernetes
Benefits of Flux
fluxcd.io
© 2018 Cloud Native Computing Foundation
5
🤝 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
© 2018 Cloud Native Computing Foundation
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
© 2018 Cloud Native Computing Foundation
7
Source: opengitops.dev
© 2018 Cloud Native Computing Foundation
8
● A git centric package manager for your applications
● A set of continuous and progressive delivery solutions for
Kubernetes
What is Flux
fluxcd.io
© 2018 Cloud Native Computing Foundation
9
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
10
🤝
Flux provides GitOps for both apps and infrastructure
● Flux and Flagger deploy apps with canaries, feature flags, and
A/B rollouts.
● Flux can also manage any Kubernetes resource.
● Infrastructure and workload dependency management is built in.
Flux Highlights
fluxcd.io
© 2018 Cloud Native Computing Foundation
11
🤖
Just push to Git and Flux does the rest
● Flux enables application deployment (CD) and (with the help of
Flagger) progressive delivery (PD) through automatic
reconciliation.
● Flux can even push back to Git for you with automated container
image updates to Git (image scanning and patching).
Flux Highlights
fluxcd.io
© 2018 Cloud Native Computing Foundation
12
🔩
Flux works with your existing tools
● Flux works with your Git providers (GitHub, GitLab, Bitbucket, can
even use s3-compatible buckets as a source), all major container
registries, and all CI workflow providers.
Flux Highlights
fluxcd.io
© 2018 Cloud Native Computing Foundation
13
☸
Flux works with any Kubernetes and all common Kubernetes tooling
● Kustomize, Helm, RBAC, and policy-driven validation
(OPA, Kyverno, admission controllers) so it simply falls into place.
Flux Highlights
fluxcd.io
© 2018 Cloud Native Computing Foundation
14
🤹
Flux does Multi-Tenancy (and “Multi-everything”)
● Flux uses true Kubernetes RBAC via impersonation and supports
multiple Git repositories.
● Multi-cluster infrastructure and apps work out of the box with Cluster
API
○ Flux can use one Kubernetes cluster to manage apps in either the
same or other clusters, spin up additional clusters themselves, and
manage clusters including lifecycle and fleets.
Flux Highlights
fluxcd.io
© 2018 Cloud Native Computing Foundation
15
📞
Flux alerts and notifies
● Flux provides health assessments, alerting to external systems, and
external events handling.
● Just “git push”, and get notified on Slack and other chat systems.
Flux Highlights
fluxcd.io
© 2018 Cloud Native Computing Foundation
16
👍
Users trust Flux
● Flux is a CNCF Incubating project and was one of only two
projects (alongside Helm) categorized as "Adopt" on the CNCF
CI/CD Tech Radar.
Flux Highlights
fluxcd.io
© 2018 Cloud Native Computing Foundation
17
💖
Flux has a lovely community that is very easy to work with!
● We welcome contributors of any kind.
● The components of Flux are on Kubernetes core
controller-runtime, so anyone can contribute and its functionality
can be extended very easily.
● Get started contributing to Flux
Flux Highlights
fluxcd.io
© 2018 Cloud Native Computing Foundation
18
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
© 2018 Cloud Native Computing Foundation
19
Controllers work together to produce an
outcome
�
© 2018 Cloud Native Computing Foundation
20
● Helm
● Kustomize
● Prometheus
● Grafana
● Jenkins
● EKS
● AKS
● GCP
Flux Works with Other Tools
● Traefik
● Falco
● GitHub, GitLab, Bitbucket,
s3-compatible buckets
● Terraform
● …and more!!!
fluxcd.io
© 2018 Cloud Native Computing Foundation
21
● Makes life easier
● Multi-tenancy
● DependsOn
● Helm integration
● Notifications and Alerts
● Bootstrap
● Flux CLI
Reasons I and Others Love Flux
fluxcd.io
© 2018 Cloud Native Computing Foundation
22
● Try Flux! Follow our Getting Started guide
● Browse the docs at fluxcd.io/docs/
● Join #flux on the CNCF Slack
● Sign up for the Flux Mailing list for monthly updates,
announcements, etc. (https://lists.cncf.io/g/cncf-flux-dev)
● Flux on GitHub: https://github.com/fluxcd/flux2
● Join the conversation in GitHub Discussions
Get Started with GitOps
fluxcd.io
Demo Time

More Related Content

Get started with gitops and flux

  • 1. © 2018 Cloud Native Computing Foundation 1 Getting Started with GitOps & Flux Priyanka Ravi, DX Engineer @ Weaveworks
  • 2. © 2018 Cloud Native Computing Foundation 2 Introduction Priyanka is a Developer Experience Engineer at Weaveworks. She has worked on a multitude of topics including front end development, UI automation for testing and API development. Previously she was a software developer at State Farm where she was on the delivery engineering team working on GitOps enablement. She has been working on GitOps and was instrumental in the multi-tenancy migration to utilize flux for an internal Kubernetes offering. As a prior intern herself, she is passionate about working on campus recruiting and mentoring interns. Outside of work, Priyanka enjoys hanging out with her husband and two rescue dogs as well as traveling around the globe. Priyanka Ravi �� �� “Pinky” DX Engineer Dog Mom @PinkyyRavi
  • 3. © 2018 Cloud Native Computing Foundation 3 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
  • 4. © 2018 Cloud Native Computing Foundation 4 ● Reduces developer burden ● Extensible ● Comes with out of the box support for Kustomize and Helm ● Designed For Kubernetes Benefits of Flux fluxcd.io
  • 5. © 2018 Cloud Native Computing Foundation 5 🤝 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
  • 6. © 2018 Cloud Native Computing Foundation 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
  • 7. © 2018 Cloud Native Computing Foundation 7 Source: opengitops.dev
  • 8. © 2018 Cloud Native Computing Foundation 8 ● A git centric package manager for your applications ● A set of continuous and progressive delivery solutions for Kubernetes What is Flux fluxcd.io
  • 9. © 2018 Cloud Native Computing Foundation 9 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
  • 10. © 2018 Cloud Native Computing Foundation 10 🤝 Flux provides GitOps for both apps and infrastructure ● Flux and Flagger deploy apps with canaries, feature flags, and A/B rollouts. ● Flux can also manage any Kubernetes resource. ● Infrastructure and workload dependency management is built in. Flux Highlights fluxcd.io
  • 11. © 2018 Cloud Native Computing Foundation 11 🤖 Just push to Git and Flux does the rest ● Flux enables application deployment (CD) and (with the help of Flagger) progressive delivery (PD) through automatic reconciliation. ● Flux can even push back to Git for you with automated container image updates to Git (image scanning and patching). Flux Highlights fluxcd.io
  • 12. © 2018 Cloud Native Computing Foundation 12 🔩 Flux works with your existing tools ● Flux works with your Git providers (GitHub, GitLab, Bitbucket, can even use s3-compatible buckets as a source), all major container registries, and all CI workflow providers. Flux Highlights fluxcd.io
  • 13. © 2018 Cloud Native Computing Foundation 13 ☸ Flux works with any Kubernetes and all common Kubernetes tooling ● Kustomize, Helm, RBAC, and policy-driven validation (OPA, Kyverno, admission controllers) so it simply falls into place. Flux Highlights fluxcd.io
  • 14. © 2018 Cloud Native Computing Foundation 14 🤹 Flux does Multi-Tenancy (and “Multi-everything”) ● Flux uses true Kubernetes RBAC via impersonation and supports multiple Git repositories. ● Multi-cluster infrastructure and apps work out of the box with Cluster API ○ Flux can use one Kubernetes cluster to manage apps in either the same or other clusters, spin up additional clusters themselves, and manage clusters including lifecycle and fleets. Flux Highlights fluxcd.io
  • 15. © 2018 Cloud Native Computing Foundation 15 📞 Flux alerts and notifies ● Flux provides health assessments, alerting to external systems, and external events handling. ● Just “git push”, and get notified on Slack and other chat systems. Flux Highlights fluxcd.io
  • 16. © 2018 Cloud Native Computing Foundation 16 👍 Users trust Flux ● Flux is a CNCF Incubating project and was one of only two projects (alongside Helm) categorized as "Adopt" on the CNCF CI/CD Tech Radar. Flux Highlights fluxcd.io
  • 17. © 2018 Cloud Native Computing Foundation 17 💖 Flux has a lovely community that is very easy to work with! ● We welcome contributors of any kind. ● The components of Flux are on Kubernetes core controller-runtime, so anyone can contribute and its functionality can be extended very easily. ● Get started contributing to Flux Flux Highlights fluxcd.io
  • 18. © 2018 Cloud Native Computing Foundation 18 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
  • 19. © 2018 Cloud Native Computing Foundation 19 Controllers work together to produce an outcome �
  • 20. © 2018 Cloud Native Computing Foundation 20 ● Helm ● Kustomize ● Prometheus ● Grafana ● Jenkins ● EKS ● AKS ● GCP Flux Works with Other Tools ● Traefik ● Falco ● GitHub, GitLab, Bitbucket, s3-compatible buckets ● Terraform ● …and more!!! fluxcd.io
  • 21. © 2018 Cloud Native Computing Foundation 21 ● Makes life easier ● Multi-tenancy ● DependsOn ● Helm integration ● Notifications and Alerts ● Bootstrap ● Flux CLI Reasons I and Others Love Flux fluxcd.io
  • 22. © 2018 Cloud Native Computing Foundation 22 ● Try Flux! Follow our Getting Started guide ● Browse the docs at fluxcd.io/docs/ ● Join #flux on the CNCF Slack ● Sign up for the Flux Mailing list for monthly updates, announcements, etc. (https://lists.cncf.io/g/cncf-flux-dev) ● Flux on GitHub: https://github.com/fluxcd/flux2 ● Join the conversation in GitHub Discussions Get Started with GitOps fluxcd.io