GitOps
Sources: Defining GitOps - GitHub
Definition
Section titled “Definition”Technology pattern
The desired state of a GitOps managed system must be:
Declarative
Section titled “Declarative”A system managed by GitOps must have its desired state expressed* declaratively.
Versioned and Immutable
Section titled “Versioned and Immutable”- Desired state is stored in a way that enforces immutability, versioning and retains a complete version history.
- Can be audited
- Any version control system can be used, git, Kubernetes are not requirements.
Pulled Automatically
Section titled “Pulled Automatically”Software agents automatically pull the desired state declarations from the source.
Continuously Reconciled
Section titled “Continuously Reconciled”Software agents continuously *observe actual system state and try to apply through reconciliation the desired state.
Technology Examples
Section titled “Technology Examples”- Kubernetes
- Flux
- ArgoCD
- Jenkins
- GitHub actions
- Terraform, Nomad
- Open Container Initiative