Skip to content

Latest commit

 

History

History
26 lines (14 loc) · 1.31 KB

PRINCIPLES.md

File metadata and controls

26 lines (14 loc) · 1.31 KB

GitOps Principles {{version}}

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:

  1. Declarative

    A system managed by GitOps must have its desired state expressed declaratively.

  2. Versioned and Immutable

    Desired state is stored in a way that enforces immutability, versioning and retains a complete version history.

  3. Pulled Automatically

    Software agents automatically pull the desired state declarations from the source.

  4. Continuously Reconciled

    Software agents continuously observe actual system state and attempt to apply the desired state.

  5. Actual System State is Manageable "always"

    System state manageability must meet users' SLA expectations to make changes to it. If the desired state store's availability is less that that SLA expectation, it should be possible to "break the glass" to update the system state directly and reconcile system state to desire state.