-
Notifications
You must be signed in to change notification settings - Fork 544
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
CSV required CRDs are resolved from an unpredictable catalog #1076
Comments
Thanks for the bug report @kaczyns. The first thing we are doing is prioritizing dependencies in the same catalog as the initial operator. There's a PR implementing this that will merge soon ( #1080 ) which should fix the specific problem you are facing. The next thing will be to define a deterministic order. We'll have a proposal up for review soon to describe how this will work. Currently I'm thinking we will assign a priority to each catalog source, and then prefer (in order) catalogs in your current namespace, and then (in order) catalogs that are available to you globally. The reason you're hitting this issue in okd is because we are publishing two operators, in two global catalogs, that both provide the same APIs. Our vision for how dependencies would be used did not originally account for this (i.e. we would only publish one owner in the global catalogs we ship), and we are now revisiting those opinions and hope to have solutions out soon. |
@ecordell Thanks for responding to this so quickly - we look forward to trying it out when it's available. |
Bug Report
What did you do?
We are trying to define dependencies that our operator has on other operators, by using the
required:
stanza in the CSV. I have an operator with a CSV that contains:Using the Openshift console I create a subscription to this operator, in the
openshift-operators
namespace, at the cluster scope. OLM resolves the required CRDs and I am left with the following subscriptions, fromoc get subscriptions --namespace=openshift-operators
:I delete everything and do it again. This time I get:
What did you expect to see?
I expected the subscriptions to be the same the second time (pulled from the same catalog and channel).
What did you see instead? Under which circumstances?
I see that the first time, the appsody operator was pulled from the community-operators catalog, beta channel (which happens to be version 0.1.0). The second time, from certified-operators, beta channel (version 0.2.0). For KnativeServing, the first time pulled from the Serverless Operator, example-manifests catalog (private catalog), release-0.3.0 channel. The second time, from the Knative Serving Operator, community-operators catalog, alpha channel.
Environment
Possible Solution
Not sure....
Additional context
We're just hoping to determine that the order is predictable, and what that order is. For example, do certain catalogs (maybe certified-operators) take precedence over others? Or, are the catalogs processed in some order (alphanumeric)?
I had a private catalog defined for this test that contained duplicates of some of these operators, in the same channel, in hopes that it would take precedence, but that was not the case. I can re-produce without this private catalog if necessary.
The text was updated successfully, but these errors were encountered: