-
Notifications
You must be signed in to change notification settings - Fork 350
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
[regression] 1.3.2 regresses on "SinkBinding on KSVC results into ping-pong between operators #1936" #2184
Comments
@maschmid would that be possible for you to test if the issue is present in I'm asking, because #2042 is required to fix other issues, but it's been a tactical fix specifically for 1.3.x, and another solution is currently present in Also, we need to make sure this is covered by the e2e tests. |
Do we have a CI image of the operator I can use, or do I have to build it locally myself first? |
@astefanutti I still see the same issue with docker.io/maschmid/camel-k:1.4.0-SNAPSHOT , which I built from current master
|
@maschmid sorry for the delayed answer, as I was AFK. Thanks a lot for the testing! I've tried to test it on my setup (Camel K In the meantime, could you please share the content of the KnativeService and the Deployment resources? That may help me understanding what are the conflicting changes the Camel K operator and the Knative controller / webhook contend for. In master branch we moved to using server-side apply (#2039), to try to cope with the issue. I assumed the problem is for environment variables set on the KnativeService, and that Knative also uses server-side apply. In the 1.3.x branch, #2042 is a fixed on top of #1937, that was too aggressive and prevented some required updates to the resources metadata. Still, the fact I cannot reproduce on my setup puzzles me, and I'd like to have the bottom line of all this. |
With OpenShift Serverless 1.13 (knative serving/eventing 0.19) splitter ksvc: https://gist.github.com/maschmid/bcc929c842ca5c93ac650ff8f1ae3007 |
all the deployments (there are lots of splitter deployments, as each revision has a new one...) https://gist.github.com/maschmid/ae0da49fa58283e2317043679e15f316 |
Thanks. I'm interested by the managed fields, that show all the controllers cooperating on the resource. In my tests, I only have the |
One theory I have is this could be caused by a different sinkbinding configuration in Serverless... It uses SINK_BINDING_SELECTION_MODE=inclusion , which requires resources bound by SinkBinding to have without the label, the eventing webhook will not modify the ksvc during creation, but it will try to replace it at runtime... I suppose this could be causing the issue. |
exclusion is default in upstream, OpenShift Serverless defaults to inclusion, because exclusion causes potentially any Deployment on the cluster to go via eventing webhook, which could cause instability (when a SinkBinding binding to Deployment exists, even system Deployments would go through eventing webhook) |
I've been able to reproduce by editing the eventing webhook and setting I can now analyse the issue and research what's the best strategy. |
I'm realizing that adding the The source objects are owned by Camel K, and we always want the eventing webhook to select them, irrespective of the Knative sink binding configuration ( I've tried that approach and it seems to be working well. |
Works for me, and the fix looks good to me, too. I agree the "bindings.knative.dev/include=true" should be safe to add with either setting. |
I am facing the same issue. it there a workaround for it for now? |
@weimeilin79 If you install via an Operator (Serverless operator or Knative Operator), a possible workaround could be to switch KnativeEventing sinkBindingSelectionMode to exclusion
|
Thanks @maschmid :) it works like a charm!! |
In case changing the Serverless / Knative configuration is not an option, another work-around is to add the label manually, e.g.:
|
1.3.x backport PR: #2191. |
When deploying the splitter integration in the example/knative dir with latest Knative (verified on Serverless 1.13 and 1.14) and camel-k operator 1.3.2, splitter ksvc is repeatedly reconciled between two operators.
The same scenario works fine with camel-k operator 1.3.1, so it seems to be a regression in camel-k 1.3.2 vs 1.3.1.
See also #1936
possibly introduced by https://github.com/apache/camel-k/pull/2042/files ? (not verified)
The text was updated successfully, but these errors were encountered: