-
Notifications
You must be signed in to change notification settings - Fork 51
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
RC 1 draft #21
RC 1 draft #21
Conversation
The objective of this change is to propose a release candidate draft reconciling and incorporating the varying views of all GitOps Working Group community participants. Co-authored-by: Dan Garfield <[email protected]> Co-authored-by: Leonardo Murillo <[email protected]> Signed-off-by: Scott Rigby <[email protected]>
Co-authored-by: Dan Garfield <[email protected]> Co-authored-by: Leonardo Murillo <[email protected]> Signed-off-by: Scott Rigby <[email protected]>
…rinciples are shorter and summmarize themselves Signed-off-by: Scott Rigby <[email protected]>
Signed-off-by: Scott Rigby <[email protected]>
Signed-off-by: Scott Rigby <[email protected]>
Signed-off-by: Scott Rigby <[email protected]>
Co-authored-by: Nicholas Thomson <[email protected]> Signed-off-by: Scott Rigby <[email protected]>
6703050
to
c5fb6f4
Compare
Signed-off-by: Scott Rigby <[email protected]> Co-authored-by: Nicholas Thomson <[email protected]>
Co-authored-by: Nicholas Thomson <[email protected]> Signed-off-by: Scott Rigby <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good to me, now!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
comments inline
The rest looks good to me
This state store should provide access control and auditing on the changes to the Desired State. | ||
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. | ||
In all cases these must be properly configured, and special precautions must be taken to comply with requirements set out in the GitOps Principles. | ||
Software agents [continuously](./GLOSSARY.md#continuous) observe actual system state and [attempt to apply](./GLOSSARY.md#reconciliation) the desired state. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'd like to hear what you think about this section of the PR description above: "items left out of this PR" > "existing principal 5" > "5. Operated in a closed loop"? This is the principle that addresses a feedback loop based on configurations in the desired state and the output of attempts to apply to the actual state.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
After thinking about it I think I'm more in favor of attempt to apply
which can mean a lot. We could potentially add more to the glossary.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sounds like this is not a blocker for RC 1. @williamcaban let's continue to discuss this during the process when we send out RC 1 for feedback for folks. Most likely that will be in the form of a GitHub Discussion ❤️
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
My concern with attempt to apply
is that it could open the interpretation that a series of remediations were attempted (lets say remediation A & B) and even if not successful it can attempt
additional ones (eg. remediations C & D) which might lead to a situation of unrecoverable drift state (which brings us back to the snowflakes configurations results and desired state vs running state open to divergence)
How can we phrase it in a way that an attempt
is not enough, but that it must continue trying remediate?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
WRT leaving principle 5, agree as it might be covered by principle 3. At least I have not found any extremely compelling example not covers by the other principles. The more concise the better.
LGTM |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Removing "Break Glass" can wait until the RC feedback stage if you're more comfortable. I made some small grammar fixes and added hyperlinks for terms in the gloassary. I think we're good to move forward.
This state store should provide access control and auditing on the changes to the Desired State. | ||
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. | ||
In all cases these must be properly configured, and special precautions must be taken to comply with requirements set out in the GitOps Principles. | ||
Software agents [continuously](./GLOSSARY.md#continuous) observe actual system state and [attempt to apply](./GLOSSARY.md#reconciliation) the desired state. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
After thinking about it I think I'm more in favor of attempt to apply
which can mean a lot. We could potentially add more to the glossary.
GLOSSARY.md
Outdated
- ## Break Glass | ||
|
||
The temporary suspension of GitOps principles, often accomplished by pausing automated _Reconciliation_. | ||
While these principles apply to typical operations, it may at times be necessary to temporarily pause reconciliation, for example during incident management activities. | ||
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. | ||
Pragmatic exceptions to these guiding principles are expected from time to time during the journey toward a system being fully managed by GitOps. | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- ## Break Glass | |
The temporary suspension of GitOps principles, often accomplished by pausing automated _Reconciliation_. | |
While these principles apply to typical operations, it may at times be necessary to temporarily pause reconciliation, for example during incident management activities. | |
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. | |
Pragmatic exceptions to these guiding principles are expected from time to time during the journey toward a system being fully managed by GitOps. |
I would remove this because it is not the language used in the principles. The glossary should only include terms in the principles and not act as a place for exploring other ideas like when GitOps should and shouldn't apply.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Agree with what you said here #21 (review):
Removing "Break Glass" can wait until the RC feedback stage if you're more comfortable... I think we're good to move forward.
Making minor grammar, formatting and link fixes is ok even after others have reviewed this PR, but I am more comfortable leaving this as-is for now and discussing your point as part of the feedback for RC 1, given that the goal of that is to get wider feedback through an RC/feedback process from the group (including us) and wider community. Otherwise I think we'd need to wait for re-review by everyone on this PR. Instead let's meet the milestone to release RC 1 today.
Signed-off-by: Scott Rigby <[email protected]> Co-authored-by: Dan Garfield <[email protected]>
Signed-off-by: Scott Rigby <[email protected]> Co-authored-by: Dan Garfield <[email protected]>
Signed-off-by: Scott Rigby <[email protected]> Co-authored-by: Dan Garfield <[email protected]>
Signed-off-by: Scott Rigby <[email protected]> Co-authored-by: Dan Garfield <[email protected]>
Signed-off-by: Scott Rigby <[email protected]> Co-authored-by: Dan Garfield <[email protected]>
…m, and fix formatting Signed-off-by: Scott Rigby <[email protected]> Co-authored-by: Dan Garfield <[email protected]>
Signed-off-by: Scott Rigby <[email protected]> Co-authored-by: Dan Garfield <[email protected]>
Signed-off-by: Scott Rigby <[email protected]> Co-authored-by: Dan Garfield <[email protected]>
Signed-off-by: Scott Rigby <[email protected]> Co-authored-by: Dan Garfield <[email protected]>
Signed-off-by: Scott Rigby <[email protected]> Co-authored-by: Dan Garfield <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Approve RC1
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM! 🎉🎉🎉
Signed-off-by: Scott Rigby <[email protected]>
LGTM |
RC 1 PR drafted by: Co-authored-by: Scott Rigby <[email protected]> Co-authored-by: Dan Garfield <[email protected]> Co-authored-by: Leonardo Murillo <[email protected]> RC 1 PR reviewed by: Co-authored-by: Nicholas Thomson <[email protected]> Co-authored-by: William Caban <[email protected]> Co-authored-by: Dan Garfield <[email protected]> Co-authored-by: Moshe Immerman <[email protected]> Co-authored-by: Chris Sanders <[email protected]> Co-authored-by: Leonardo Murillo <[email protected]> Co-authored-by: Carlos Santana <[email protected]> This draft was also based on work by the GitOps WG over the past 6 months. Specifically #14, which was closed in favor of this RC 1 draft. Contributors to that PR were: Co-authored-by: Jesse Butler <[email protected]> Co-authored-by: William Caban <[email protected]> Co-authored-by: Dan Garfield <[email protected]> Co-authored-by: Moshe Immerman <[email protected]> Co-authored-by: Christian Hernandez <[email protected]> Co-authored-by: Leonardo Murillo <[email protected]> Co-authored-by: Scott Rigby <[email protected]> Co-authored-by: Chris Sanders <[email protected]> Co-authored-by: Roberth Strand <[email protected]> Co-authored-by: Daniel Warner <[email protected]> Co-authored-by: Florian Heubeck <[email protected]> Co-authored-by: Lloyd Chang <[email protected]> Signed-off-by: Scott Rigby <[email protected]>
Thanks everyone! Please see the squashed commit message for detailed attribution: 11b362b RC 1 tag forthcoming |
Tag created! 🎉 https://github.com/open-gitops/documents/releases/tag/v1.0.0-rc.1 Please broadcast widely for feedback from the wider GitOps community 📣 🦄 ✨ |
First release candidate drafted by GWG/OGO chairs, incorporating all discussion and feedback thus far. The objective was to propose a release candidate draft reconciling and incorporating the varying views of all GitOps Working Group community participants. This draft has now been reviewed by GitHub WG maintainers. It was also reviewed by GitOps Working Group members, including members of the principles committee. After merge, we will create a release branch and tag the release. The goal is to publish RC 1 widely, to request async feedback from the WG principles committee, the wider WG, people listed in the interested-parties document: https://github.com/gitops-working-group/gitops-working-group/blob/main/interested-parties.md and the wider GitOps community. This draft addresses previously planned milestones (now closed): - Simplify principles titles - Clarify language to emphasize main point of each principle - Incorporate all community feedback with broad consensus - Resolve notes and glossary items - Ensure consistency of language - Ensure accessibility of all language RC 1 PR drafted by: Co-authored-by: Scott Rigby <[email protected]> Co-authored-by: Dan Garfield <[email protected]> Co-authored-by: Leonardo Murillo <[email protected]> RC 1 PR reviewed by: Co-authored-by: Nicholas Thomson <[email protected]> Co-authored-by: William Caban <[email protected]> Co-authored-by: Dan Garfield <[email protected]> Co-authored-by: Moshe Immerman <[email protected]> Co-authored-by: Chris Sanders <[email protected]> Co-authored-by: Leonardo Murillo <[email protected]> Co-authored-by: Carlos Santana <[email protected]> This draft was also based on work by the GitOps WG over the past 6 months. Specifically #14, which was closed in favor of this RC 1 draft. Contributors to that PR were: Co-authored-by: Jesse Butler <[email protected]> Co-authored-by: William Caban <[email protected]> Co-authored-by: Dan Garfield <[email protected]> Co-authored-by: Moshe Immerman <[email protected]> Co-authored-by: Christian Hernandez <[email protected]> Co-authored-by: Leonardo Murillo <[email protected]> Co-authored-by: Scott Rigby <[email protected]> Co-authored-by: Chris Sanders <[email protected]> Co-authored-by: Roberth Strand <[email protected]> Co-authored-by: Daniel Warner <[email protected]> Co-authored-by: Florian Heubeck <[email protected]> Co-authored-by: Lloyd Chang <[email protected]> Signed-off-by: Scott Rigby <[email protected]> Review changes after the initial draft were: * Moving glossary to separate file, and adding hyperlinks from principles to glossary items * Added context sentence for the principle headers grammar * Removed incomplete summary from introduction. Unecessary now because principles are shorter and summmarize themselves * Moved glossary to a standalone file * Linked terms in principles to now linkable glossary items * Address markdown version / git revision mismatch. Fixes #20 * Typo fixes Co-authored-by: Nicholas Thomson <[email protected]> * Added note about configuration data excluding other external data Co-authored-by: Nicholas Thomson <[email protected]> * Fixed formatting of software system glossary item. Clarified one list item Co-authored-by: Nicholas Thomson <[email protected]> * Added links within glossary items Co-authored-by: Dan Garfield <[email protected]> * Broadened user data example to just database contents. Fix formatting Co-authored-by: Dan Garfield <[email protected]> * Remove 'versioned' from reconciliation glossary item. Co-authored-by: Dan Garfield <[email protected]> * Fixed grammar, capitalization, and other formatting Co-authored-by: Dan Garfield <[email protected]> Signed-off-by: Scott Rigby <[email protected]> Signed-off-by: Dan Garfield <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
• reintroduce Break Glass from RC1 at open-gitops#21 • prepend with · · · — — — · · · 🆘 which: 1. make this idiom/analogy more accessible for a global audience 2. alphabetize to the bottom of glossary Signed-off-by: lloydchang <[email protected]>
Call to action
Please give your feedback here. Note we agreed to move to an RC process in order to make more rapid incremental progress toward a full release, while allowing for group feedback between RC releases.
Milestone dates reminder: tag RC 1 by this Friday, full 1.0.0 release before KubeCon.
Does not yet claim to fix this issue, but please keep this in mind during review. Accessibility is an ongoing process:
Context
Why? Over the past 6 months of meetings, we started by merging several of the initial principles. This was in part my doing, but it was an understandable direction at the time. As we began to update them from there with more precise wording as a group, the first few went smoothly. However, because each principle builds upon the previous ones, as we got closer to the end it became increasingly complex to figure out which pieces of which ideas should be in each, not quite being able to get all the way through them due to detailed debates each week. Important points were made by all.
However the diminishing returns in later meetings is what prompted the decision to accelerate revising the principles through a RC/feedback process, where each RC attempts to integrate the very valuable points that were made by the group over the past months in a coherent way.
In retrospect, a hypothesis is that merging several of the initial principles early on exacerbated the increasing complexity in bringing precise and consistent language to the later steps. This RC 1 draft attempts to solve that by rolling back to the initial version, and trying to make the fewest changes necessary to reconcile points and feedback from the principles committee that seem to have stood the test of time. So while this draft is very similar to the initial principles, there are some important changes that try to reconcile them with the points we made as a group. I hope you can see this in the draft by comparing the two (have a look at the initial commit for an easily viewable comparison of only those changes: f15f4ee).
Items left out of this PR
Existing principle 5
We're not including this in the draft as of now because it's not clear how to explain it's necessity for GitOps. Why exactly was this principle here initially? Control theory language is valuable, but is it necessary here?
Software agents observe desired state and meta-state to take actions based on policy when the desired state cannot be reached. This may include things like notifications, rollbacks, etc.
Potential new principle 6
We had discussed splitting this note from principle 4 into its own principle, to emphasize this as a critical point for GitOps. We are unclear whether we feel as a group this is already clear from the current wording of principle 4, or is this needs an additional explicit kick.
Declared desired state will always take precedence over any other source of configuration.
To-do