You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: PRINCIPLES.md
+23-14Lines changed: 23 additions & 14 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -27,31 +27,37 @@ These principles were derived from modern software operations but are rooted in
27
27
28
28
The only mechanism through which the system is intentionally operated on is through these principles.
29
29
30
-
## Notes
31
-
32
-
### Principle 3 Notes
33
-
34
-
- These differences could be due to the actual state drifting from the desired state, or the desired state changing intentionally.
35
-
- The source of drift doesn't matter. Contrary to CIops, _any_ drift will trigger a reconciliation
36
-
37
-
### Principle 4 Notes
30
+
## Glossary
38
31
39
-
-We talk here about "regular operations." In an emergency, other modes of operations, e.g. manual intervention, should be considered - followed by a reconciliation of the "tainted" system with the declared state. → resolve the conflict between "GitOps principle" and "I need to deal with problems that GitOps doesn't cover"
32
+
-### Break Glass
40
33
41
-
## Glossary
34
+
The temporary suspension of GitOps principles, often accomplished by pausing automated _Reconciliation_.
35
+
While these principles apply to typical operations, it may at times be necessary to temporarily pause reconciliation, for example during incident management activities.
36
+
In these cases, other modes of operations should be considered (e.g. manual intervention), followed by any necessary updates to the desired state declarations, and finally resuming reconciliation of the system with the updated declarations.
37
+
Pragmatic exceptions to these guiding principles are expected from time to time during the journey toward a system being fully managed by GitOps.
42
38
43
39
-### Continuous
44
40
45
-
By "continuous" we adopt the industry standard term to mean reconciliation continues to happen, not that it must be instantaneous.
41
+
By "continuous" we adopt the industry standard to mean that _Reconciliation_ continues to happen, not that it must be instantaneous.
46
42
47
43
-### Declarative Description
48
44
49
-
Describing the desired state or behavior of a system without specifying how that state will be achieved, thereby separating between configuration - the desired state - and implementation - the commands, API calls, scripts ... that actually achieve the desired state described in the declarative description.
45
+
Describing the desired state or behavior of a system without specifying how that state will be achieved, thereby separating configuration (the desired state) from the implementation (commands, API calls, scripts etc.) that actually achieves the desired state described in the declarative description.
50
46
51
47
-### Desired State
52
48
53
49
The aggregate of all configuration data for a system form its _Desired State_ which is defined as data sufficient to recreate the system so that instances of the system are behaviourally indistinguishable.
54
50
51
+
-### Drift
52
+
53
+
When a system's _Actual State_ changes for any reason other than its versioned _Desired State_ declarations having changed, we say that the system has drifted from its _Desired State_.
54
+
55
+
-### Reconciliation
56
+
57
+
The process of ensuring that the _Actual State_ of a sytem matches its versioned _Desired State_ declarations.
58
+
Contrary to CIops, any divergence between the two will trigger reconciliation, regardless of where changes occured.
59
+
Divergence could be due to the actual state unintentionally _Drifting_ from the desired state declarations, or a new desired state declaration version having been changed intentionally.
60
+
55
61
-### Software System
56
62
57
63
One or more Runtime environments consisting of resources under management.
@@ -60,6 +66,9 @@ These principles were derived from modern software operations but are rooted in
60
66
One or more Administrators who are responsible for operating the runtime environments ie. installing, starting, stopping and updating software, code, configuration, etc.
61
67
A set of policies controlling access and management of repositories, deployments, runtimes.
62
68
63
-
-####State Store
69
+
-### State Store
64
70
65
-
A system for storing versioned, immutable Desired States that provides access control and auditing on the changes to the Desired State. Git may be configured as a State Store, but [special precautions must be taken](recipes/SETTING_UP_GIT.md).
71
+
A system for storing immutable versions of _Desired State_ declarations.
72
+
This state store should provide access control and auditing on the changes to the Desired State.
73
+
Git is the canonical example used as this State Store, and where GitOps derived its name, but but any other system that meets this criteria may be used.
74
+
In all cases these must be properly configured, and special precautions must be taken to comply with requirements set out in the GitOps Principles.
0 commit comments