GitOps is a set of principles for operating and managing software systems. These principles are derived from modern software operations, but are also rooted in pre-existing and widely adopted best practices.
The desired state of a GitOps managed system must be:
-
Declarative
A system managed by GitOps must have its desired state expressed declaratively.
-
Versioned and Immutable
Desired state is stored in a way that enforces immutability, versioning and retains a complete version history.
-
Pulled Automatically
Software agents automatically pull the desired state declarations from the source.
-
Continuously Reconciled
Software agents continuously observe actual system state and attempt to apply the desired state.