A way to do cluster management and application delivery automatically with no operations input without losing control gateways, such as signoff processes.
Key benefits of GitOps
Increased Productivity
Speeds up Mean Time to Deployment as no one has to log in to do an application deployment
Enhanced Developer Experience
Push code and not containers.
Improved Stability
Since the git repository is the source of truth for the system, at any time we can see the intended state of the system by scanning the git repository
Higher Reliability
Because your entire system is described in Git you have
– capability to revert/rollback and fork, you have stable and reproducible rollbacks
– a single source of truth from which to recover after a meltdown, reducing your mean time to recovery (MTTR).
Consistency and Standardisation
One model for making infrastructure, apps and Kubernetes add-on changes
Stronger Security Guarantees
Strong correctness and security guarantees, backed by the strong cryptography used to track and manage changes is key to a secure definition of the desired state of the cluster.
Pull Model
Since our system is declared as code and maintained in Git, the consequent
principle to follow is that all changes that need to be made, are be done so
through a pull request which implies workflow
Decoupled
Pull model decouples from delivery pipelines and has the benefit of an inherited security
GitOps Tools
Flux

Polls Git for changes.
Polls Docker repository for newly deployed container images
When it detects a change in the desired state it instructs the cluster to match the desired state.
References
https://www.weave.works/technologies/gitops/
https://www.weave.works/oss/flux/
https://www.weave.works/docs/tutorials/core/interactive/part-2-deploy-continuous-delivery/
Reloader
Polls Git for changes.
Polls Docker repository for newly deployed container images
When it detects a change in the desired state it instructs the cluster to match the desired state.
Reloader is a Kubernetes Controller built to watch for changes in ConfigMap and Secrets and then updates Deployment, StatefulSet and DaemonSet, so that the new changes are loaded
Detects a changed in the desired state for configuration and secrets
When it detects a change in the desired state it instructs the cluster to match the desired state.
References
hhttps://github.com/stakater/reloadert

