Skip to content
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

[RFE] Provide procedure for hot-fixing an operator #1774

Closed
cdjohnson opened this issue Sep 21, 2020 · 7 comments
Closed

[RFE] Provide procedure for hot-fixing an operator #1774

cdjohnson opened this issue Sep 21, 2020 · 7 comments
Labels
lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale.
Milestone

Comments

@cdjohnson
Copy link

Feature Request

Give support a way to patch an operator for individual customers without requiring a new version of the operator.

Is your feature request related to a problem? Please describe.
Many times, customers will run into a problem with the operator or operand and support must enable diagnostic patches, or provide replacement images or pod specifications. There is no clear path to support this today other than to publish a new Catalog Index Image with a new Bundle version, which is very expensive and time consuming to deploy. It is also visible to all customers.

Describe the solution you'd like
A simple approach is to allow the customer to patch a deployed CSV file.

This means that OLM needs to know that it can't reconcile the CSV.

To patch:

  1. Modify the subscription to Manual install mode.
  2. Modify the CSV (pod spec, related images, etc) per the support team's instructions
  3. Add metadata to the CSV such that the customer remembers that the CSV has been patched.

To move to the official fix:

  1. Approve a new install plan, which rebuilds the CSV from the Catalog, overlaying the changes.

Out of scope:

  1. Provide a generalized template option to continually patch/merge changes into the CSV during upgrades.
@ecordell
Copy link
Member

Have you run into issues modifying a CSV directly? Any changes made there should be synced to the deployment correctly. I believe the workflow you're looking for is already supported, but I'd like to hear if there's something you've tried that didn't work.

@cdjohnson
Copy link
Author

We think that this works today. We just want "official" support for this. The concern is that we're using an undocumented side effect of OLM's lack of a reconciler.

@awgreene awgreene added this to the Backlog milestone Oct 1, 2020
@kevinrizza kevinrizza modified the milestones: Backlog, 0.17.0 Oct 15, 2020
@kevinrizza
Copy link
Member

Result of this issue being resolved is documentation and a test describing current behavior. For the future, we should create a new issue (as an RFE) that removes this as the default behavior.

jeyaramashok added a commit to jeyaramashok/operator-lifecycle-manager that referenced this issue Oct 17, 2020
This is a test for the hotfix scenario, where an existing CSV is patched directly to
update the deployment spec.

Ref: operator-framework#1774
@jeyaramashok
Copy link
Contributor

I have created a PR #1817 to add an e2e test case , which covers the hotfix scenario described in this issue

@cdjohnson
Copy link
Author

@jeyaramashok Can we also update the OLM Documentation?

For example: Add a new topic after this one:

https://olm.operatorframework.io/docs/tasks/install-operator-with-olm/

Called: Patching an Operator

@stale
Copy link

stale bot commented Mar 2, 2021

This issue has been automatically marked as stale because it has not had any recent activity. It will be closed in 7 days if no further activity occurs. Thank you for your contribution.
For more help on your issue, check out the olm-dev channel on the kubernetes slack [1] and the OLM Dev Working Group [2] [1] https://kubernetes.slack.com/archives/C0181L6JYQ2 [2] https://github.com/operator-framework/community#operator-lifecycle-manager-wg

@stale stale bot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Mar 2, 2021
@stale
Copy link

stale bot commented Mar 9, 2021

This issue has been automatically closed because it has not had any recent activity. Thank you for your contribution.

@stale stale bot closed this as completed Mar 9, 2021
jeyaramashok added a commit to jeyaramashok/operator-lifecycle-manager that referenced this issue Mar 23, 2021
This is a test for the hotfix scenario, where an existing CSV is patched directly to
update the deployment spec.

Ref: operator-framework#1774
jeyaramashok added a commit to jeyaramashok/operator-lifecycle-manager that referenced this issue Mar 23, 2021
This is a test for the hotfix scenario, where an existing CSV is patched directly to
update the deployment spec.

Ref: operator-framework#1774
benluddy pushed a commit to benluddy/operator-framework-olm that referenced this issue Apr 1, 2021
This is a test for the hotfix scenario, where an existing CSV is patched directly to
update the deployment spec.

Ref: operator-framework/operator-lifecycle-manager#1774
openshift-merge-robot pushed a commit to openshift/operator-framework-olm that referenced this issue Apr 7, 2021
This is a test for the hotfix scenario, where an existing CSV is patched directly to
update the deployment spec.

Ref: operator-framework/operator-lifecycle-manager#1774
(upstream operator-lifecycle-manager commit: 286a63cdd405dfb5129d936cd689fabe135875c2)
benluddy pushed a commit to benluddy/operator-framework-olm that referenced this issue Jul 1, 2021
This is a test for the hotfix scenario, where an existing CSV is patched directly to
update the deployment spec.

Ref: operator-framework/operator-lifecycle-manager#1774

Upstream-repository: operator-lifecycle-manager
Upstream-commit: 286a63cdd405dfb5129d936cd689fabe135875c2
openshift-merge-robot pushed a commit to openshift/operator-framework-olm that referenced this issue Jul 14, 2021
This is a test for the hotfix scenario, where an existing CSV is patched directly to
update the deployment spec.

Ref: operator-framework/operator-lifecycle-manager#1774

Upstream-repository: operator-lifecycle-manager
Upstream-commit: 286a63cdd405dfb5129d936cd689fabe135875c2
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale.
Projects
None yet
Development

No branches or pull requests

5 participants