-
Notifications
You must be signed in to change notification settings - Fork 562
docs: add design docs for including additional objects in bundles #1564
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
docs: add design docs for including additional objects in bundles #1564
Conversation
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.
These are great notes!
In addition to this, for design proposals we want some more concrete implementation details like:
- How will the new resources be stored in a bundle
- How will they be unpacked and applied to the cluster
- How do we handle incompatibilities; e.g. old version of OLM doesn't know how to apply the new resources, what happens? (think index backport safety)
There are several older examples in the design-proposals directory that may help.
fe8d9bb
to
64d4b17
Compare
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.
Great work @exdx! Left a few open questions / brainstorming comments.
64d4b17
to
6225650
Compare
As this is doc-only we should be OK to merge without CI pending approval. |
362f1dc
to
8f796c0
Compare
/approve |
No limitations are placed on the contents of a `PriorityClass` manifest at this time when installing on-cluster, but that may change as OLM develops | ||
an advanced strategy to ensure installed objects do not compromise the cluster. | ||
|
||
However, the following is a suggested guideline to follow when including `PriorityClass` objects in a bundle. |
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.
So here's an edge case that I think we should cover:
- I install an operator with a
globalDefault=true
PDB - An update is pushed that changes the name of the PDB
- Boom?
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.
If I understand this correctly, I think we should be ok in this case - per If you delete a PriorityClass, existing Pods that use the name of the deleted PriorityClass remain unchanged, but you cannot create more Pods that use the name of the deleted PriorityClass.
so the rename would't affect existing pods.
If the operator continues to use the name of the old PDB in their code then that's an issue, but on their end
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.
If the PDB is renamed in an update, the existing PDB sticks around until the CSV is deleted, which only happens once the new CSV is ready. I think we still would have a problem since there would be a time where you have two PDBs with the global field set true concurrently.
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.
Yes, this is an edge-case that could get us during upgrades of operators with PDBs. I think as we think through the usecases we add e2e tests that can verify OLM behavior in this scenario.
8f796c0
to
0e0d139
Compare
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: exdx, kevinrizza The full list of commands accepted by this bot can be found here. The pull request process is described here
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
/lgtm |
manually merging as this is doc-only. |
Description of the change:
Docs for including new objects in the bundle.
Docs were written in a generic way to target both upstream and downstream OpenShift audiences. The underlying assumption is that we will allow users to include these objects in the bundle with no limitations on the actual content of these objects.
Motivation for the change:
Reviewer Checklist
/docs