Based on CNCF Open GitOps principles as per active discussion in CNCF GitOps Principles Working Group
-
Declaratively: A system's desired state is declarative
A system managed by GitOps must have its
Desired State
expressed declaratively as data in a format writable and readable by both humans and machines. -
Immutably: Declarations are stored as immutable versions
Desired State
is stored in a way that supports versioning, immutability of versions, and retains a complete version history. -
Continuous Reconciliation: State reconciliation is continuous
Software agents continuously, and automatically, compare a system's
Actual State
to itsDesired State
. If the actual and desired states differ for any reason, automated actions to reconcile them are initiated. -
Declarative Operations: Operations is through versioned mutation of the declaration
The only mechanism through which the system is intentionally operated on is through these principles.