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 Stateexpressed declaratively as data in a format writable and readable by both humans and machines. -
Immutably: Declarations are stored as immutable versions
Desired Stateis 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 Stateto 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.