- GitOps Working Group
- OpenGitOps Project
- Git Repositories Structures
- GitOps Tools
- GitOps Frameworks
- Kubernetes Platforms and GitOps
- gitops.tech 🌟
- 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
- weave.works: What Is GitOps?
- atlassian.com: Is GitOps the next big thing in DevOps?
- cloudbees.com: What is GitOps?
- dzone: 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 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
- opensource.substack.com: 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 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
- itnext.io: Principles, Patterns, and Practices for Effective Infrastructure as Code Deliver Infrastructure and Software running on it Rapidly and Reliably at Scale.
- medium: GitOps: Build infrastructure resilient applications 🌟
- itnext.io: Continuous GitOps, the way to do DevOps in Kubernetes 🌟 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 🌟
- sufle.io: Adopting GitOps for Enhanced Operations
- medium: GitOps : The Next Big Thing for DevOps and Automation! 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
- samiyaakhtar.medium.com: GitOps Observability — Visualizing the journey of a container
- clickittech.com: What is GitOps? 🌟
- blog.container-solutions.com: 11 Reasons for Adopting GitOps
opensource.com: GitOps vs. DevOps: What’s the difference? 🌟 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
- thenewstack.io: GitOps Use Cases You May Not Have Considered
- kumomind.medium.com: Should I consider the GitOps methodology?
- dzone: 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
- blog.container-solutions.com: GitOps: The Bad and the Ugly
- cloudogu.com: GitOps in Software Development 🌟
- gitops.tech: What is GitOps? 🌟
- dzone: 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 🌟
- thenewstack.io: Misconfiguration Worries Grow
- codefresh.io: The pains of 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
- viewnext.com: ¿Qué es GitOps?
- thenewstack.io: Have Containers Will Travel: Why GitOps Is Essential for Multicloud 🌟
- weave.works: Put Your Security Worries to Rest with GitOps Operational Control 🌟 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?
- about.gitlab.com: 3 Ways to approach GitOps 🌟
- developers.redhat.com: Why should developers care about GitOps?
- openshift.com: Our Favorite Things from GitOps Con at KubeCon EU 🌟
- devsecops.co.in: GitOps Guide – What, Why and How? 🌟
- en.sokube.ch: GitOps and the Millefeuille dilemma 🌟
- octopus.com: How to structure your Git repository for DevOps automation
- testingclouds.wordpress.com: GitOps Demystified
- weave.works: Ops Automation - GitOps in the Modern Enterprise
- openshift.com: What is 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
- weave.works: There’s More to GitOps Than Meets the Eye
- solo.io: GlooOps: Progressive delivery, the GitOps way
- go.weave.works: The GitOps Maturity Model - 4 evolutionary steps to continuous delivery (pdf)
- thenewstack.io: A Look at GitOps for the Modern Enterprise 🌟
- shipa.io: GitOps in the enterprise 🌟
- itnext.io: GitOps with Kubernetes 🌟
- shipa.io: GitOps meets AppOps
- weave.works: Automating Kubernetes with GitOps (whitepaper) 🌟
- devopslearners.com: What is GitOps? A small explanation for GitOps
- go.weave.works: The Practical Guide to GitOps (eBook)
- enterprisersproject.com: How to explain GitOps in 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 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? 🌟
- jimangel.io: Self-Updating GitOps Self-hosted, Self-healing, Self-updating, Self-patching Kubernetes madness
- stevesmith.tech: GitOps is a placebo
- weave.works: The History of GitOps 🌟
- opensource.com: How to get the most out of GitOps right now 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 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)
- magalix.com: GitOps 101: What’s It All About?
- containerjournal.com: The 4 Levels of GitOps Maturity
- 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 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 Cloud-native development comes with its own set of security risks. Know how to tackle them
- blogs.sap.com: Decentralized GitOps over multiple environments
- thenewstack.io: Application Deployment Is Faster with GitOps
- As an ops engineer not too familiar with Git, you just need to know 6 commands - 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?
- redhat.com: How to use GitOps in your enterprise architecture strategy 🌟 Understanding the four guiding principles is like runway lighting for implementing GitOps in your enterprise.
- codefresh.io: The pains of 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’ GitOps must meet these four requirements:
- 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.
- 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.
- Pulled Automatically: Software agents automatically pull the desired state declarations from the source. Agents within the system pull the desired state from the repository.
- 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
- redhat.com: Comparing GitOps implementation patterns: Pros and cons 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
- chrisshort.net: GitOps: An implementation of DevOps (abstracts)
- 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
- thenewstack.io: Getting Started with GitOps
- medium: Stop Using Branches for Deploying to Different GitOps Environments | ostis Kapelonis
- codefresh.io: Stop Using Branches for Deploying to Different 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
- thenewstack.io: Can You GitOps Your APIs?
- weave.works: GitOps takes DevOps teams to higher levels of maturity
- linkedin.com pulse: WTH is GitOps? | Pavan Belagatti
- medium.com/@buraktahtacioglu: GitOps Fundamentals — CNCF Roadmap 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? 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 GitOps and 5G - a deep dive into Deutsche Telekom’s experience
- thenewstack.io: Kubernetes at Scale without GitOps Is a Bad Idea
- harness.io: GitOps: The New Kid On The 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 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
- containerjournal.com: GitOps Workflows and Principles for Kubernetes
- harness.io: 6 Actionable GitOps Best Practices To Help You Get Started
- codefresh.io: 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 🌟
harness.io: Managing the ‘Git’ in ‘GitOps’: 4 Ways to Structure Code in Your GitOps Repos 🌟 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/jumia-tech: Immutable Infrastructure & GitOps 🌟
- firstname.lastname@example.org: GitOps with Kubernetes
- thenewstack.io: KubeCon: 14,000 More Engineers Have Their GitOps Basics Down As GitOps grows in its ability to leverage DevOps practices via Infrastructure as Code, thousands get up to speed with GitOps Fundamentals.
- containerjournal.com: GitOps Workflows Expanding Beyond Kubernetes Clusters GitOps is an opinionated instance of a DevOps workflow that unifies both software deployment and the provisioning of infrastructure using code to create reusable templates.
- developers.redhat.com: GitOps Cookbook: Kubernetes automation in practice
- containerjournal.com: Best of 2022: GitOps: The Missing Link for CI/CD for Kubernetes
- devops.com: Declarative Compliance With Policy-as-Code and GitOps 🌟 Declarative Compliance provides several benefits:
- Increased efficiency
- Better managed compliance
- Minimized risk of human errors
- Enhanced security
- Faster deployment
- Better collaboration
- dzone: The Essentials of GitOps 🌟
GitOps Working Group
- GitOps Working Group 🌟
- The Five GitOps Principles (as defined by the GitOps Working Group) to the lifecycle of an infrastructure resource, like a virtual machine or load balancer:
- Declarative Configuration (define the resource as code)
- Version controlled (use source control to manage the resource definition)
- Automated delivery (provision and manage the resource from the definition using automation)
- Software Agents (implement automated configuration management for the resource)
- Closed loop (build the delivery pipeline for integration testing for resource changes)
- github.com/open-gitops/project 🌟 OpenGitOps is a CNCF Sandbox project to define a vendor-neutral, principle-led meaning of GitOps. This will establish a foundation for interoperability between tools, conformance, and certification through lasting programs, documents, and code.
Git Repositories Structures
- dzone: 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.
- codefresh.io: Stop Using Branches for Deploying to Different GitOps Environments How do I promote a release to the next environment? You should NOT use Git branches for modeling different environments. If the Git repository holding your configuration (manifests/templates in the case of Kubernetes) has branches named “staging”, “QA”, “Production” and so on, then you have fallen into a trap. Using branches for different environments should only be applied to legacy applications.
- developers.redhat.com: Git best practices: Workflows for GitOps deployments | Christian Hernandez 🌟
- Separate your repositories
- Separate development in directories, not branches
- Trunk-based development
- Pay attention to policies and security
- developers.redhat.com: How to set up your GitOps directory structure | Christian Hernandez 🌟
- FluxCD, ArgoCD or Jenkins X: Which Is the Right GitOps Tool for You?
- slideshare: GitOps, Jenkins X & Future of CI/CD
- kubesandclouds.com: Werf: Fully customizable GitOps
- searchitoperations.techtarget.com: GitOps pros grapple with Kubernetes configuration management. GitOps users seek ideal Kubernetes config tool 🌟 Configuration management challenges GitOps early adopters, especially at large enterprises with millions of lines of Kubernetes YAML to manage. Ultimately, the industry hasn’t found an ideal approach to Kubernetes configuration management, especially for GitOps.
- Tanka a utility that blends Helm charts with Jsonnet, which combines the deployment speed and ubiquity of Helm charts with the more granular customizability supported by Jsonnet.
- openshift.com: Announcing OpenShift GitOps
- ibm.com: Enable GitOps GitOps focuses on the Ops side of DevOps and shows how operations configurations, infrastructures, and actions are like software. Everything is code and code is managed with Git.
- openshift.com: OpenShift Pipelines and OpenShift GitOps are now Generally Available 🌟
- weave.works: Weave Kubernetes Platform (WKP) Unlocks Cross Team Collaboration with Workspaces
- blog.container-solutions.com: FluxCD, ArgoCD or Jenkins X: Which Is the Right GitOps Tool for You? 🌟
- cloudogu.com: Automation Assistants: GitOps tools in comparison 🌟
- shipa.io: From Terraform to GitOps to Pulumi 🌟
- vimeo.com: Weaveworks - Hybrid and Multi-Cloud Strategies for Kubernetes with GitOps One of the biggest advantages Kubernetes has to offer is that it is agnostic to infrastructure and capable of managing diverse workloads running on different compute resources. This allows organizations to manage multiple developer platforms, who can operate across many environments such as on premise, hybrid and multiple clouds.
- Streamlined processes and automation is pivotal for operations when managing clusters at scale and maintaining security and policy checks. Paul Curtis, Principal Solutions Architect will demonstrate GitOps and Weave Kubernetes Platform in a hybrid and multi-cloud setup.
- Learn how to:
- Use model-driven automation to increases reliability and stability across environments
- Simplify multi-cluster management with GitOps
- Enable developers to push code to production daily (self-service)
- Improve utilization and capacity management through Kubernetes platforms on cloud and on-premise infrastructure
Flux. The GitOps Operator for Kubernetes
Kustomize. Kubernetes native configuration management
- kustomize.io 🌟
- Kustomize introduces a template-free way to customize application configuration that simplifies the use of off-the-shelf applications. Now, built into kubectl as apply -k.
- Kustomize traverses a Kubernetes manifest to add, remove or update configuration options without forking.
- It is available both as a standalone binary and as a native feature of kubectl.
- nakamasato.medium.com: Comparison between Helm and Kustomize for Kubernetes yaml management
- pauldally.medium.com: Kustomize Best Practices (Part 1) Kubectl includes a very useful command called kustomize that allows a template-free way to customize Kubernetes application configuration.
- notmattlucas.com: Kubernetes Configuration with Kustomize
- medium.com/@nanditasahu031: How to Start with Kustomize — it’s Features
- harness.io: Comparing Helm vs Kustomize
- nicolasbarlatier.hashnode.dev: Introduction Kubernetes and Kustomize: How to easily customize any resource configuration with Kustomize? In this tutorial, you will learn how to use Kustomize to template the number of replicas in a workload based on the environment (e.g. 1 pod in dev, 10 pods in prod)
- Flagger Progressive Delivery Operator for Kubernetes. Release new versions of your application/services to Kubernetes like a pro with Weaveworks’s Flagger.
- partlycloudy.blog: Release to Kubernetes like a Pro with Flagger
WKSctl. Weave Kubernetes System Control
- Weave Kubernetes System Control - wksctl Open Source Weaveworks Kubernetes System
- WKSctl - A New OSS Kubernetes Manager using GitOps
- WKSctl: a Tool for Kubernetes Cluster Management Using GitOps
- There are many tools in the market that have been technically built for GitOps, like ArgoCD, Flux, and Jenkins X. All these tools have in-built proficiency to implement GitOps process for you. But we are going to use our old beloved Jenkins.
- GitOps for Kubernetes with Jenkins
- github.com/stakater/Xposer (with fabric8 java client library for kubernetes)
- GitOps with Jenkins and Kubernetes
Config Sync and Anthos Config Management
- Config Sync
- Anthos Config Management
- Google built a tool called Config Sync which acts as the bridge between an external source code repository and the Kubernetes API server. Anthos Config Management is based on Config Sync to extend it to multicluster scenarios.
- dzone: GitOps With OpenShift Applier 🌟 GitOps in short is a set of practices to use Git pull requests to manage infrastructure and application configurations.
- waypointproject.io Waypoint provides a modern workflow to build, deploy, and release across platforms. Waypoint uses a single configuration file and common workflow to manage and observe deployments across platforms such as Kubernetes, Nomad, EC2, Google Cloud Run, and more.
- hashicorp.com: Using Waypoint Runners To Enable GitOps Workflows Waypoint runners perform builds, deployments, poll for Git repository changes, and allow deployments for any platform.
- Weave GitOps Enterprise
- Weave GitOps Enterprise is a continuous operations product that makes it easy to deploy and manage Kubernetes clusters and applications in any environment. With a single management console that lets you operate clusters running anywhere, in the public cloud, on the edge or in any hybrid scenario. Strong multi-tenancy can accelerate app delivery by providing developers with self-serve isolated workload namespaces across environments.
- With Weave GitOps Enterprise, every change is recorded in Git – whether it’s a change to application code or platform config and whoever was responsible. So you have a self-generating audit trail available at all times, and far fewer…
- thenewstack.io: Weave GitOps Core Integrates Git with Kubernetes
- thenewstack.io: Weave GitOps Trusted Delivery: A Road to Kubernetes Sanity?
- dailymotion-oss.github.io/octopilot: Octopilot Automate your Gitops workflow, by automatically creating/merging GitHub PRs.
- dzone: Why Now Is the Time for the Spring Boot of Infrastructure Automation 🌟 Application teams move fast using frameworks built to boost developer productivity. Learn how a productivity framework can help your DevOps initiative succeed.
- Kubestack 🌟: Doc: Kubestack is an open-source GitOps framework for infrastructure automation built on Terraform and Kustomize. It’s designed for teams that want to automate Kubernetes based infrastructure and not reinvent automation. Think of it this way, Kubestack is to Terraform and infrastructure automation, what Spring Boot is to Java and cloud native applications. The framework supports all three major cloud providers and has been used as the foundation for a number of real world customer projects as part of my colleagues’ and my consulting work. It is fully documented, has a step-by-step tutorial to help users get started and even includes a local GitOps development lab. So you can test-drive Kubestack and learn more about GitOps for infrastructure automation in the comfort of your own localhost.
Kubernetes Platforms and GitOps
- medium.com/bumble-tech: GitOps for multi-cluster K8s environments 🌟 A single repository approach for scalability and transparency
- blog.openshift.com: Introduction to GitOps with OpenShift
- learn.openshift.com: GitOps introduction
- blog.openshift.com: is it too late to integrate GitOps?
- blog.openshift.com: OpenShift Authentication Integration with ArgoCD
- openshift.com: From Code to Production with GitOps, Tekton and ArgoCD
- medium: GitOps with Istio, Tekton and Argo CD — on OpenShift 4
- thenewstack.io: Red Hat Delivers Full GitOps CI/CD Built on Tekton and Argo
- redhat.com: Red Hat Makes DevOps a Reality with OpenShift GitOps and OpenShift Pipelines 🌟 New Red Hat OpenShift features provide fully-integrated CI/CD pipeline for organizations to deliver applications more consistently and with greater predictability across the open hybrid cloud.
- piotrminkowski.com: GitOps with Advanced Cluster Management for Kubernetes 🌟 In this article, you will learn how to manage multiple clusters with Argo CD and Advanced Cluster Management for Kubernetes. Advanced Cluster Management (ACM) for Kubernetes is a tool provided by Red Hat based on a community-driven project Open Cluster Management. I’ll show you how to use it with OpenShift to implement gitops approach for running apps across multiple clusters. However, you can as well deploy a community-driven version on Kubernetes.
Weave Kubernetes Platform
- weave.works: Weave Kubernetes Platform Automate Enterprise Kubernetes the GitOps way
- github: Weave Net - Weaving Containers into Applications
Ubuntu Charmed Kubernetes
- betterprogramming.pub: Applying DevOps to API Development for APIOps DevOps + GitOps = APIOps
Click to expand!
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?
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?