# GitOps - [Introduction](#introduction) - [GitOps Working Group](#gitops-working-group) - [Git Repositories Structures](#git-repositories-structures) - [GitOps Tools](#gitops-tools) - [Flux. The GitOps Operator for Kubernetes](#flux-the-gitops-operator-for-kubernetes) - [Kustomize. Kubernetes native configuration management](#kustomize-kubernetes-native-configuration-management) - [Flagger](#flagger) - [WKSctl. Weave Kubernetes System Control](#wksctl-weave-kubernetes-system-control) - [Helm](#helm) - [Jenkins](#jenkins) - [Terraform](#terraform) - [Config Sync and Anthos Config Management](#config-sync-and-anthos-config-management) - [Portworx AutoPilot](#portworx-autopilot) - [OpenShift Applier](#openshift-applier) - [HashiCorp Waypoint](#hashicorp-waypoint) - [Weave GitOps](#weave-gitops) - [GitOps Frameworks](#gitops-frameworks) - [Kubernetes Platforms and GitOps](#kubernetes-platforms-and-gitops) - [OpenShift GitOps](#openshift-gitops) - [AWS Kubernetes](#aws-kubernetes) - [Weave Kubernetes Platform](#weave-kubernetes-platform) - [Ubuntu Charmed Kubernetes](#ubuntu-charmed-kubernetes) - [APIOps](#apiops) - [Images](#images) - [Tweets](#tweets) - [Videos](#videos) ## Introduction - [gitops.tech ๐](https://www.gitops.tech/) - [OpenGitOps ๐](https://opengitops.dev) OpenGitOps is a set of open-source standards, best practices, and community-focused education to help organizations adopt a structured, standardized approach to implementing GitOps. - [weave.works: Guide to GitOps](https://www.weave.works/technologies/gitops/) - [weave.works: What Is GitOps?](https://www.weave.works/blog/what-is-gitops-really) - [atlassian.com: Is GitOps the next big thing in DevOps?](https://www.atlassian.com/git/tutorials/gitops) - [cloudbees.com: What is GitOps?](https://www.cloudbees.com/gitops/what-is-gitops) - [dzone: What Is GitOps, Really?](https://dzone.com/articles/what-is-gitops-really) This article will help you understand what GitOps really is as a strategy for development, and its benefits over other CI/CD approaches - [Continuous GitOps, the way to do DevOps in Kubernetes](https://medium.com/@imarunrk/continuous-gitops-the-way-to-do-devops-in-kubernetes-896b0ea1d0fb) Continuous GitOps, the new age DevOps practice to increase the delivery velocity by achieving an end to end โGit source of truthโ with Zero manual changes into the Kubernetes cluster. - [thenewstack.io: What Is GitOps and Why It Might Be The Next Big Thing for DevOps](https://thenewstack.io/what-is-gitops-and-why-it-might-be-the-next-big-thing-for-devops/) - [opensource.substack.com: All You Need To Know About GitOps](https://opensource.substack.com/p/all-you-need-to-know-about-gitops) A complete guide about GitOps, what why and how - [itnext.io: Continuous GitOps, the way to do DevOps in Kubernetes](https://itnext.io/continuous-gitops-the-way-to-do-devops-in-kubernetes-896b0ea1d0fb) Continuous GitOps, the new age DevOps practice to increase the delivery velocity by achieving an end to end โGit source of truthโ with Zero manual changes into the Kubernetes cluster - [container-solutions.com: GitOps: The Bad and the Ugly](https://blog.container-solutions.com/gitops-the-bad-and-the-ugly) - [itnext.io: Principles, Patterns, and Practices for Effective Infrastructure as Code](https://itnext.io/principles-patterns-and-practices-for-effective-infrastructure-as-code-e5f7bbe13df1) Deliver Infrastructure and Software running on it Rapidly and Reliably at Scale. - [medium: GitOps: Build infrastructure resilient applications ๐](https://medium.com/@franoisdagostini/gitops-build-infrastructure-resilient-applications-95bbc939046d) - [itnext.io: Continuous GitOps, the way to do DevOps in Kubernetes ๐](https://itnext.io/continuous-gitops-the-way-to-do-devops-in-kubernetes-896b0ea1d0fb) Continuous GitOps, the new age DevOps practice to increase the delivery velocity by achieving an end to end โGit source of truthโ with Zero manual changes into the Kubernetes cluster. - [itnext.io: Managing Kubernetes Secrets Securely with GitOps ๐](https://itnext.io/managing-kubernetes-secrets-securely-with-gitops-b8174b4f4d30) - [sufle.io: Adopting GitOps for Enhanced Operations](https://www.sufle.io/blog/adopting-gitops-for-enhanced-operations) - [medium: GitOps : The Next Big Thing for DevOps and Automation!](https://medium.com/searce/gitops-the-next-big-thing-for-devops-and-automation-2a9597e51559) If you have similar questions like: โWhatโs GitOps?โ, โWhy we are moving towards this?โ, โHow and when one can implement this strategy in now running environment?โ, โWhat are the tools it included?โ then you have landed on the right page. - [thenewstack.io: Understanding GitOps: The Latest Tools and Philosophies](https://thenewstack.io/understanding-gitops-the-latest-tools-and-philosophies/) - [samiyaakhtar.medium.com: GitOps Observability โ Visualizing the journey of a container](https://samiyaakhtar.medium.com/gitops-observability-visualizing-the-journey-of-a-container-5f6ef1f3c9d2) - [==clickittech.com: What is GitOps?== ๐](https://www.clickittech.com/devops/what-is-gitops) - [blog.container-solutions.com: 11 Reasons for Adopting GitOps](https://blog.container-solutions.com/why-adopt-gitops) - [==opensource.com: GitOps vs. DevOps: What's the difference?== ๐](https://opensource.com/article/21/3/gitops) Get to know GitOps, an evolved form of DevOps. | __Principle__ | __Focus__ | __Main Tool__ | __Other Tools__ | __Flexibility__ | __Correctness__ | | :---: | :---: | :---: | :---: | :---: | :---: | | __DevOps__ | Automation and frequent deployments | CI/CD pipeline | Supply chain management, Cloud Configuration as Code, etc. | Less strict and more open | Less focus on correctness | | __GitOps__ | Correctness; doing DevOps correctly | Git | Kubernetes, Controller (e.g., Operator), separate CI/CD pipelines, Infrastructure as a Code, etc. | Stricter and less open | Designed with correctness | - [geekflare.com: An Introduction to GitOps](https://geekflare.com/gitops-introduction/) - [thenewstack.io: GitOps Use Cases You May Not Have Considered](https://thenewstack.io/gitops-use-cases-you-may-not-have-considered/) - [kumomind.medium.com: Should I consider the GitOps methodology?](https://kumomind.medium.com/should-i-consider-the-gitops-methodology-f49e042b8c22) - [==dzone: GitOps: How to Ops Your Git the Right Way== ๐](https://dzone.com/articles/gitops-how-to-ops-your-git-the-right-way) In this article weโll look into the specifics of creating Git repositories structures โโ โthe very core of the GitOps approach. - [braindose.blog: 4 Key Characteristics for a Successful GitOps Implementation](https://braindose.blog/2020/03/18/4-key-characteristics-of-gitops/) - [blog.container-solutions.com: GitOps: The Bad and the Ugly](https://blog.container-solutions.com/gitops-limitations) - [cloudogu.com: GitOps in Software Development ๐](https://cloudogu.com/en/glossary/gitops/) - [gitops.tech: What is GitOps? ๐](https://www.gitops.tech/#tools) - [dzone: GitOps โ DevOps for Infrastructure Automation ๐](https://dzone.com/articles/gitops-devops-for-infrastructure-automation) GitOps offers a way to automate and manage infrastructure by using proven DevOps best practices such as version control, code review, and CI/CD pipelines. - [unifiedguru.com: GitOps and the Cloud Operating Model โ VMware Cloud Community ๐](https://www.unifiedguru.com/gitops-and-the-cloud-operating-model-vmware-cloud-community/) - [thenewstack.io: Misconfiguration Worries Grow](https://thenewstack.io/misconfiguration-worries-grow/) - [codefresh.io: The pains of GitOps 1.0 ๐](https://codefresh.io/devops/pains-gitops-1-0/) GitOps as a practice for releasing software has several advantages, but like all other solutions before it, has also several shortcomings. - [weave.works: Managing Kubernetes with GitOps in a multi-cluster, multi-cloud world](https://www.weave.works/blog/managing-kubernetes-with-gitops-in-a-multi-cluster-multi-cloud-world) - [viewnext.com: ยฟQuรฉ es GitOps?](https://www.viewnext.com/que-es-gitops/) - [thenewstack.io: Have Containers Will Travel: Why GitOps Is Essential for Multicloud ๐](https://thenewstack.io/have-containers-will-travel-why-gitops-is-essential-for-multicloud/) - [weave.works: Put Your Security Worries to Rest with GitOps Operational Control ๐](https://www.weave.works/use-cases/security-with-gitops/) GitOps workflows in the Weave Kubernetes Platform give teams a head start since they rely on Gitโs strong correctness and security. Every pull request has a built-in and fully auditable trail. Many companies need to look beyond just compliance and seek a full GRC solution thatโs integral to their workflows. - [thenewstack.io: Push vs. Pull in GitOps: Is There Really a Difference?](https://thenewstack.io/push-vs-pull-in-gitops-is-there-really-a-difference/) - [about.gitlab.com: 3 Ways to approach GitOps ๐](https://about.gitlab.com/blog/2021/04/27/gitops-done-3-ways/) - [developers.redhat.com: Why should developers care about GitOps?](https://developers.redhat.com/blog/2021/05/13/why-should-developers-care-about-gitops) - [openshift.com: Our Favorite Things from GitOps Con at KubeCon EU ๐](https://www.openshift.com/blog/our-favorite-things-from-gitops-con-at-kubecon-eu) - [devsecops.co.in: GitOps Guide โ What, Why and How? ๐](https://devsecops.co.in/2021/05/13/gitops-guide-what-why-and-how/) - [en.sokube.ch: GitOps and the Millefeuille dilemma ๐](https://en.sokube.ch/post/gitops-and-the-millefeuille-dilemma-1) - [octopus.com: How to structure your Git repository for DevOps automation](https://octopus.com/blog/devops-automation-repo-design) - [testingclouds.wordpress.com: GitOps Demystified](https://testingclouds.wordpress.com/2021/06/02/gitops-demystified/) - [weave.works: Ops Automation - GitOps in the Modern Enterprise](https://www.weave.works/blog/gitops-in-the-modern-enterprise) - [openshift.com: What is GitOps? ๐](https://www.openshift.com/learn/topics/gitops/) While DevOps provides an agile team structure, GitOps is a framework to start executing on the vision. - [thenewstack.io: Security Will Be Instrumental for the Success of GitOps](https://thenewstack.io/security-will-be-instrumental-for-the-success-of-gitops/) - [weave.works: Thereโs More to GitOps Than Meets the Eye](https://www.weave.works/blog/theres-more-to-gitops-than-meets-the-eye) - [solo.io: GlooOps: Progressive delivery, the GitOps way](https://www.solo.io/blog/glooops-progressive-delivery-the-gitops-way) - [go.weave.works: The GitOps Maturity Model - 4 evolutionary steps to continuous delivery (pdf)](https://go.weave.works/2021_GitOps_Maturity_Model.html) - [thenewstack.io: A Look at GitOps for the Modern Enterprise ๐](https://thenewstack.io/a-look-at-gitops-for-the-modern-enterprise/) - [shipa.io: GitOps in the enterprise ๐](https://www.shipa.io/innovation/gitops-in-the-enterprise/) - [itnext.io: GitOps with Kubernetes ๐](https://itnext.io/gitops-with-kubernetes-740f37ea015b) - [shipa.io: GitOps meets AppOps](https://www.shipa.io/innovation/gitops-meets-appops/) - [weave.works: Automating Kubernetes with GitOps (whitepaper) ๐](https://go.weave.works/automating-kubernetes-with-gitops-wp.html) - [devopslearners.com: What is GitOps?](https://devopslearners.com/what-is-gitops-168aac9a2ee) A small explanation for GitOps - [go.weave.works: The Practical Guide to GitOps (eBook)](https://go.weave.works/gitops-ebook.html) - [enterprisersproject.com: How to explain GitOps in plain English](https://enterprisersproject.com/article/2021/6/gitops-explained-plain-english) What is GitOps and why is it important? How can IT leaders explain GitOps to others, especially if they donโt speak DevOps or cloud-native? Experts break it down - [redhat.com: An illustrated guide to GitOps](https://www.redhat.com/architect/illustrated-guide-gitops) Understanding the basic principles driving GitOps offers Enterprise Architects a new way of working in the modern enterprise. - [bunnyshell.com: GitOps vs. DevOps: Whatโs the Difference? ๐](https://www.bunnyshell.com/blog/gitops-vs-devops) - [jimangel.io: Self-Updating GitOps](https://jimangel.io/post/auto-gitops-isitstillrunning.com/) Self-hosted, Self-healing, Self-updating, Self-patching Kubernetes madness - [stevesmith.tech: GitOps is a placebo](https://www.stevesmith.tech/blog/gitops-is-a-placebo/) - [weave.works: The History of GitOps ๐](https://www.weave.works/blog/the-history-of-gitops) - [opensource.com: How to get the most out of GitOps right now](https://opensource.com/article/21/8/gitops) GitOps is a great starting point to understand what is running in production, but it may need a little more augmentation to get it working just right for your engineering team. - [redhat.com: 3 rules for applying principles of GitOps to enterprise architecture](https://www.redhat.com/architect/3-gitops-rules-architecture) Check out these three rules for using GitOps to get your enterprise architecture up and running effectively. - [weave.works: Hardening Git for GitOps (white paper)](https://go.weave.works/hardening-git-for-gitops.html) - [magalix.com: GitOps 101: Whatโs It All About?](https://www.magalix.com/blog/what-is-gitops) - [containerjournal.com: The 4 Levels of GitOps Maturity](https://containerjournal.com/features/the-4-levels-of-gitops-maturity/) - [thenewstack.io: How to Get the Most out of GitOps](https://thenewstack.io/how-to-get-the-most-out-of-gitops) **Just as Kubernetes was accepted as the best way to do cloud native applications, GitOps is gaining recognition as the best way to do Kubernetes.** - [weave.works: Case Study: National Australia Bank Decreases Operational Overhead with GitOps](https://www.weave.works/blog/case-study-national-australia-bank-decreases-operational-overhead-with-gitops) New case study on how GitOps helped NAB, Australia's largest business bank decrease operational overhead for their move to EKS: "We turned to Weaveworks because of their extensive EKS and Kubernetes experience, including their close partnership with AWS". - [betterprogramming.pub: How GitOps Can Help Prevent Security Misconfigurations](https://betterprogramming.pub/how-gitops-can-help-prevent-security-misconfigurations-8b506dcd89e1) Cloud-native development comes with its own set of security risks. Know how to tackle them - [blogs.sap.com: Decentralized GitOps over multiple environments](https://blogs.sap.com/2021/05/06/decentralized-gitops-over-environments/) - [thenewstack.io: Application Deployment Is Faster with GitOps](https://thenewstack.io/application-deployment-is-faster-with-gitops/) - [As an ops engineer not too familiar with Git, you just need to know 6 commands](https://twitter.com/janakiramm) - git init, git add, git commit, git status, git log, git revert - to harness the power of GitOps. - [thenewstack.io: Wait, Do We Need to Hold Up on GitOps?](https://thenewstack.io/wait-do-we-need-to-hold-up-on-gitops/) - [redhat.com: How to use GitOps in your enterprise architecture strategy ๐](https://www.redhat.com/architect/understanding-gitops) Understanding the four guiding principles is like runway lighting for implementing GitOps in your enterprise. - [codefresh.io: The pains of GitOps 1.0](https://codefresh.io/about-gitops/pains-gitops-1-0/) GitOps as a practice for releasing software has several advantages, but like all other solutions before it, has also several shortcomings. It seems that the honeymoon period is now over, and we can finally talk about the issues of GitOps (and the current generation of GitOps tools) - [==thenewstack.io: CNCF Working Group Sets Some Standards for โGitOpsโ==](https://thenewstack.io/cncf-working-group-sets-some-standards-for-gitops/) GitOps must meet these four requirements: 1. **Declarative:** A system managed by GitOps must have its desired state expressed declaratively. โYouโre no longer giving instructions, youโre describing state,โ Murillo described. 2. **Versioned and Immutable:** Desired state is stored in a way that enforces immutability, versioning and retains a complete version history. โThe only way for you to introduce change in your system is by creating a new version of your desired state,โ Murillo added. 3. **Pulled Automatically:** Software agents automatically pull the desired state declarations from the source. Agents within the system pull the desired state from the repository. 4. **Continuously Reconciled:** Software agents continuously observe the actual system state and attempt to apply the desired state. โThe desired state [of the system or software] is continually reconciled, Murillo said. - [thenewstack.io: GitOps and the Cheap Cloud Myth](https://thenewstack.io/repatriation-or-cloud-what-we-need-is-control/) - [==redhat.com: Comparing GitOps implementation patterns: Pros and cons==](https://www.redhat.com/architect/gitops-implementation-patterns) The CI/CD Controller pattern and the SCM Controller pattern take different approaches to automating application deployment from source code management. - [==developer.ibm.com: GitOps: Best practices for the real world==](https://developer.ibm.com/blogs/gitops-best-practices-for-the-real-world) - [chrisshort.net: GitOps: An implementation of DevOps (abstracts)](https://chrisshort.net/abstracts/gitops-implementation-devops/) - [==chrisshort.net: GitOps: An implementation of DevOps==](https://chrisshort.net/gitops-an-implementation-of-devops/) GitOps is a prescriptive way of implementing DevOps. You will not succeed in using GitOps if you haven't embraced some DevOps philosophies along the way. - [thenewstack.io: Trusted Delivery: Policy-Based Compliance the GitOps Way](https://thenewstack.io/trusted-delivery-policy-based-compliance-the-gitops-way/) - [thenewstack.io: Getting Started with GitOps ](https://thenewstack.io/getting-started-with-gitops/) - [==medium: Stop Using Branches for Deploying to Different GitOps Environments | ostis Kapelonis==](https://medium.com/containers-101/stop-using-branches-for-deploying-to-different-gitops-environments-7111d0632402) - [codefresh.io: Stop Using Branches for Deploying to Different GitOps Environments](https://codefresh.io/about-gitops/branches-gitops-environments) - **The question of "How do I promote a release to the next environment?" is becoming increasingly popular among organizations that want to adopt GitOps. You should NOT use Git branches for modelling different environments.** - [codefresh.io: The pains of GitOps 1.0](https://codefresh.io/about-gitops/pains-gitops-1-0/) - [==thenewstack.io: Can You GitOps Your APIs?==](https://thenewstack.io/can-you-gitops-your-apis/) - [weave.works: GitOps takes DevOps teams to higher levels of maturity](https://www.weave.works/blog/gitops-takes-devops-teams-to-higher-levels-of-maturity) - [==linkedin.com pulse: WTH is GitOps? | Pavan Belagatti==](https://www.linkedin.com/pulse/wth-gitops-pavan-belagatti/) - [medium.com/@buraktahtacioglu: GitOps Fundamentals โ CNCF Roadmap](https://medium.com/@buraktahtacioglu/gitops-fundamentals-cncf-roadmap-fa686dbced9d) GitOps deployments: - A GitOps agent is deployed on the cluster. - The GitOps agent is monitoring one or more Git repositories that define applications and contain Kubernetes manifests (or Helm charts or Kustomize files). - [toolbox.com: Why Are Organizations Adopting GitOps for Continuous Deployment in 2022?](https://www.toolbox.com/tech/devops/articles/more-organizations-adopting-gitops) GitOps extracts best practices of DevOps and utilizes software development methods like version control, code review, and CI/CD pipelines. But is it a sustainable approach? Hereโs a look at its pros and cons. - [weave.works: The worldโs largest telcos are now embracing GitOps. Deutsche Telekom explains why](https://www.weave.works/blog/deutsche-telekom-explain-why-they-chose-gitops-for-5g) GitOps and 5G - a deep dive into Deutsche Telekomโs experience - [==thenewstack.io: Kubernetes at Scale without GitOps Is a Bad Idea==](https://thenewstack.io/kubernetes-at-scale-without-gitops-is-a-bad-idea/) - [harness.io: GitOps: The New Kid On The DevOps Block!](https://harness.io/blog/devops/gitops-new-kid-devops-block) GitOps: the single source of truth, the evangelizer of as-code, and the bringer of CI/CD automation. Get an intro view into GitOps here! - [==Dzone: 3 Steps to Developing a Successful GitOps Model==](https://dzone.com/articles/3-steps-to-developing-a-successful-gitops-model) **In this post, explore how GitOps best serves organizations that develop cloud-native solutions based on containerization and microservices.** - [linkedin pulse: GitOps vs. DevOps! | Pavan Belagatti](https://www.linkedin.com/pulse/gitops-vs-devops-pavan-belagatti/) - [==containerjournal.com: GitOps Workflows and Principles for Kubernetes==](https://containerjournal.com/features/gitops-workflows-and-principles-for-kubernetes/) - [harness.io: 6 Actionable GitOps Best Practices To Help You Get Started](https://harness.io/blog/devops/6-gitops-best-practices/) - [==codefresh.io: How to Model Your Gitops Environments and Promote Releases between Them== ๐](https://codefresh.io/blog/how-to-model-your-gitops-environments-and-promote-releases-between-them/) In this article, you'll learn how to use different folders on the same Git branch. Two questions after adopting GitOps are: - How should I represent different environments on Git? - How should I handle promoting releases between them? - [==piotrminkowski.com: Continuous Development on Kubernetes with GitOps Approach== ๐](https://piotrminkowski.com/2022/06/06/continuous-development-on-kubernetes-with-gitops-approach/) - [==harness.io: Managing the 'Git' in 'GitOps': 4 Ways to Structure Code in Your GitOps Repos== ๐](https://harness.io/blog/gitops-repo-structure) Declarative, immutable, and continuously reconciled infrastructure brings many benefits when managed through GitOps best practices. Here are four approaches to managing code used in those pipelines. - Application and Infrastructure Code in One Repository - Separate Infrastructure Repository, Multiple Branches - Separate Infrastructure Repository, Directory-Based - Multiple Infrastructure Repositories, One per Environment - [medium.com/codex: Points to Consider for Structuring Infrastructure as Code Repositories](https://medium.com/codex/points-to-consider-for-structuring-infrastructure-as-code-repositories-886ff58404b8)
THREAD: What is GitOps?
— Daniele Polencic (@danielepolencic) July 29, 2020
Is this something that you should learn?
Let's dive into it. pic.twitter.com/hsMUesvP23
If you do a canary release on #Kubernetes with #Istio use Flagger (https://t.co/4s6NFwvaXz). It allows e.g.:
— Piotr Miลkowski (@piotr_minkowski) September 17, 2021
๐น run acceptance and load tests
๐น do an automatic rollback
๐น make a progressive traffic shifting
If it takes me 5 minutes to rename a method and 1 hour to get a review and PR approval, that means wait to processing time ratio is 60/5=12, and flow efficiency is only 7.7%.
— Dragan Stepanoviฤ (@d_stepanovic) December 24, 2021
Do you really think that a system this inefficient is incentivizing refactoring and small steps?
1/4
Unpopular opinion: GitOps should use Control Loops, not outdated CI/CD pipelines.
— Ivan Velichko (@iximiuz) February 2, 2022
Control Loops is a much more powerful pattern than CI/CD.
CI/CD is just a way to push a change forward. But what about a feedback loop? Who restores the drifted prod state back to the desired one?
Hybrid and Multi-Cloud Strategies for Kubernetes with GitOps from Weaveworks on Vimeo.