From af283d9b83471085de1354f30c1455228ca651e8 Mon Sep 17 00:00:00 2001 From: Dan Garfield Date: Thu, 7 Oct 2021 11:44:22 -0600 Subject: [PATCH 1/9] Add control-loop principle for consideration. Signed-off-by: Dan Garfield --- GLOSSARY.md | 5 +++++ PRINCIPLES.md | 4 ++++ 2 files changed, 9 insertions(+) diff --git a/GLOSSARY.md b/GLOSSARY.md index 82369f1..0ef37ea 100644 --- a/GLOSSARY.md +++ b/GLOSSARY.md @@ -38,3 +38,8 @@ This glossary accompanies the [GitOps Principles](./PRINCIPLES.md), and other su This state store should provide access control and auditing on the changes to the Desired State. Git, from which GitOps derives its name, is the canonical example used as this state store but any other system that meets these criteria may be used. In all cases, these state stores must be properly configured and precautions must be taken to comply with requirements set out in the GitOps Principles. + +- ## Feedback + + Open GitOps follows [control-theory](https://en.wikipedia.org/wiki/Control_theory) and operates in a closed-loop. In control theory, feedback represents how attempts to apply a desired state have affected the actual state. For example if the desired state requires more nodes than exist in a system, the software agent may make attempts to add nodes, or to send alerts to human operators. + diff --git a/PRINCIPLES.md b/PRINCIPLES.md index f597ad7..ef31b69 100644 --- a/PRINCIPLES.md +++ b/PRINCIPLES.md @@ -20,3 +20,7 @@ The [desired state](./GLOSSARY.md#desired-state) of a GitOps managed system must 4. **Continuously Reconciled** Software agents [continuously](./GLOSSARY.md#continuous) observe actual system state and [attempt to apply](./GLOSSARY.md#reconciliation) the desired state. + +5. **Applied in a Closed Loop** + + Software agents follow control-theory and depend on feedback about the actual state and the attempts at reconcilliation in order to reduce deviation over time. \ No newline at end of file From 494a5a988d1b280da707faee54deebb863e91116 Mon Sep 17 00:00:00 2001 From: Dan Garfield Date: Thu, 7 Oct 2021 11:47:34 -0600 Subject: [PATCH 2/9] Add link Signed-off-by: Dan Garfield --- PRINCIPLES.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PRINCIPLES.md b/PRINCIPLES.md index ef31b69..efc02b6 100644 --- a/PRINCIPLES.md +++ b/PRINCIPLES.md @@ -23,4 +23,4 @@ The [desired state](./GLOSSARY.md#desired-state) of a GitOps managed system must 5. **Applied in a Closed Loop** - Software agents follow control-theory and depend on feedback about the actual state and the attempts at reconcilliation in order to reduce deviation over time. \ No newline at end of file + Software agents follow control-theory and depend on [feedback](./GLOSSARY.md#feedback) about the actual state and the attempts at reconcilliation in order to reduce deviation over time. \ No newline at end of file From f3dea2cd734174ddcb5d867a463109d684ea9126 Mon Sep 17 00:00:00 2001 From: Dan Garfield Date: Thu, 7 Oct 2021 11:48:46 -0600 Subject: [PATCH 3/9] Remove extra dash Signed-off-by: Dan Garfield --- PRINCIPLES.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PRINCIPLES.md b/PRINCIPLES.md index efc02b6..5aebfd0 100644 --- a/PRINCIPLES.md +++ b/PRINCIPLES.md @@ -23,4 +23,4 @@ The [desired state](./GLOSSARY.md#desired-state) of a GitOps managed system must 5. **Applied in a Closed Loop** - Software agents follow control-theory and depend on [feedback](./GLOSSARY.md#feedback) about the actual state and the attempts at reconcilliation in order to reduce deviation over time. \ No newline at end of file + Software agents follow control theory and depend on [feedback](./GLOSSARY.md#feedback) about the actual state and the attempts at reconcilliation in order to reduce deviation over time. \ No newline at end of file From 394df2202e664dde306e13b83b034d3c89cd2188 Mon Sep 17 00:00:00 2001 From: Dan Garfield Date: Thu, 7 Oct 2021 17:02:30 -0600 Subject: [PATCH 4/9] Improve inclusivity of language Co-authored-by: Scott Rigby Signed-off-by: Dan Garfield --- GLOSSARY.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/GLOSSARY.md b/GLOSSARY.md index 0ef37ea..6f4f1ba 100644 --- a/GLOSSARY.md +++ b/GLOSSARY.md @@ -41,5 +41,5 @@ This glossary accompanies the [GitOps Principles](./PRINCIPLES.md), and other su - ## Feedback - Open GitOps follows [control-theory](https://en.wikipedia.org/wiki/Control_theory) and operates in a closed-loop. In control theory, feedback represents how attempts to apply a desired state have affected the actual state. For example if the desired state requires more nodes than exist in a system, the software agent may make attempts to add nodes, or to send alerts to human operators. + Open GitOps follows [control-theory](https://en.wikipedia.org/wiki/Control_theory) and operates in a closed-loop. In control theory, feedback represents how previous attempts to apply a desired state have affected the actual state. For example if the desired state requires more resources than exist in a system, the software agent may make attempts to add resources, to automatically rollback to a previous version, or to send alerts to human operators. From 99ff0d3ac50ba17eaef772feece20948b62f842d Mon Sep 17 00:00:00 2001 From: Dan Garfield Date: Fri, 8 Oct 2021 11:03:41 -0600 Subject: [PATCH 5/9] Add feedback reference to reconcilliation Signed-off-by: Dan Garfield --- GLOSSARY.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/GLOSSARY.md b/GLOSSARY.md index 6f4f1ba..58a2d41 100644 --- a/GLOSSARY.md +++ b/GLOSSARY.md @@ -22,7 +22,7 @@ This glossary accompanies the [GitOps Principles](./PRINCIPLES.md), and other su - ## Reconciliation The process of ensuring the actual state of a system matches its [desired state](#desired-state). - Contrary to traditional CI/CD where automation is generally driven by pre-set triggers, in GitOps reconciliation is triggered whenever there is a divergence. Divergence could be due to the actual state unintentionally [drifting](#drift) from the desired state declarations, or a new desired state declaration version having been changed intentionally. + Contrary to traditional CI/CD where automation is generally driven by pre-set triggers, in GitOps reconciliation is triggered whenever there is a divergence with [feedback](#feedback) from previous attempts. Divergence could be due to the actual state unintentionally [drifting](#drift) from the desired state declarations, or a new desired state declaration version having been changed intentionally. - ## Software System From 46991685aa4ea96bc19a6cdf3c68e324293caec1 Mon Sep 17 00:00:00 2001 From: Dan Garfield Date: Fri, 8 Oct 2021 11:17:12 -0600 Subject: [PATCH 6/9] Move closed-loop to glossary to avoid confusion in the principles. Signed-off-by: Dan Garfield Co-authored-by: Scott Rigby --- GLOSSARY.md | 1 + 1 file changed, 1 insertion(+) diff --git a/GLOSSARY.md b/GLOSSARY.md index 58a2d41..d01e09c 100644 --- a/GLOSSARY.md +++ b/GLOSSARY.md @@ -23,6 +23,7 @@ This glossary accompanies the [GitOps Principles](./PRINCIPLES.md), and other su The process of ensuring the actual state of a system matches its [desired state](#desired-state). Contrary to traditional CI/CD where automation is generally driven by pre-set triggers, in GitOps reconciliation is triggered whenever there is a divergence with [feedback](#feedback) from previous attempts. Divergence could be due to the actual state unintentionally [drifting](#drift) from the desired state declarations, or a new desired state declaration version having been changed intentionally. + Actions are taken based on policies around [feedback](./GLOSSARY.md#feedback) from the system and previous reconciliation attempts, in order to reduce deviation over time. - ## Software System From c4b29b06c950292af4fe53f6c3f27af4e01dc68a Mon Sep 17 00:00:00 2001 From: Dan Garfield Date: Fri, 8 Oct 2021 11:18:25 -0600 Subject: [PATCH 7/9] Remove closed loop from the principles and focus in the glossary Signed-off-by: Dan Garfield --- PRINCIPLES.md | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/PRINCIPLES.md b/PRINCIPLES.md index 5aebfd0..b96f0e8 100644 --- a/PRINCIPLES.md +++ b/PRINCIPLES.md @@ -19,8 +19,4 @@ The [desired state](./GLOSSARY.md#desired-state) of a GitOps managed system must 4. **Continuously Reconciled** - Software agents [continuously](./GLOSSARY.md#continuous) observe actual system state and [attempt to apply](./GLOSSARY.md#reconciliation) the desired state. - -5. **Applied in a Closed Loop** - - Software agents follow control theory and depend on [feedback](./GLOSSARY.md#feedback) about the actual state and the attempts at reconcilliation in order to reduce deviation over time. \ No newline at end of file + Software agents [continuously](./GLOSSARY.md#continuous) observe actual system state and [attempt to apply](./GLOSSARY.md#reconciliation) the desired state. \ No newline at end of file From eddb05e27ac6ae8fdeff96d9f89f857f69261315 Mon Sep 17 00:00:00 2001 From: Dan Garfield Date: Fri, 8 Oct 2021 11:19:04 -0600 Subject: [PATCH 8/9] Update GLOSSARY.md Signed-off-by: Dan Garfield Co-authored-by: Scott Rigby --- GLOSSARY.md | 1 + 1 file changed, 1 insertion(+) diff --git a/GLOSSARY.md b/GLOSSARY.md index d01e09c..944245f 100644 --- a/GLOSSARY.md +++ b/GLOSSARY.md @@ -24,6 +24,7 @@ This glossary accompanies the [GitOps Principles](./PRINCIPLES.md), and other su The process of ensuring the actual state of a system matches its [desired state](#desired-state). Contrary to traditional CI/CD where automation is generally driven by pre-set triggers, in GitOps reconciliation is triggered whenever there is a divergence with [feedback](#feedback) from previous attempts. Divergence could be due to the actual state unintentionally [drifting](#drift) from the desired state declarations, or a new desired state declaration version having been changed intentionally. Actions are taken based on policies around [feedback](./GLOSSARY.md#feedback) from the system and previous reconciliation attempts, in order to reduce deviation over time. + Actions are taken based on policies around [feedback](./GLOSSARY.md#feedback) from the system and previous reconciliation attempts, in order to reduce deviation over time. - ## Software System From 9f6042c6e0e180bd57fb29769c8284237982ce07 Mon Sep 17 00:00:00 2001 From: Dan Garfield Date: Fri, 8 Oct 2021 11:20:53 -0600 Subject: [PATCH 9/9] Update GLOSSARY.md Signed-off-by: Dan Garfield --- GLOSSARY.md | 1 - 1 file changed, 1 deletion(-) diff --git a/GLOSSARY.md b/GLOSSARY.md index 944245f..d01e09c 100644 --- a/GLOSSARY.md +++ b/GLOSSARY.md @@ -24,7 +24,6 @@ This glossary accompanies the [GitOps Principles](./PRINCIPLES.md), and other su The process of ensuring the actual state of a system matches its [desired state](#desired-state). Contrary to traditional CI/CD where automation is generally driven by pre-set triggers, in GitOps reconciliation is triggered whenever there is a divergence with [feedback](#feedback) from previous attempts. Divergence could be due to the actual state unintentionally [drifting](#drift) from the desired state declarations, or a new desired state declaration version having been changed intentionally. Actions are taken based on policies around [feedback](./GLOSSARY.md#feedback) from the system and previous reconciliation attempts, in order to reduce deviation over time. - Actions are taken based on policies around [feedback](./GLOSSARY.md#feedback) from the system and previous reconciliation attempts, in order to reduce deviation over time. - ## Software System