Disable the autogenerated 'default' mt broker#2946
Disable the autogenerated 'default' mt broker#2946knative-prow-robot merged 2 commits intoknative:masterfrom
Conversation
…regular 'default' broker Signed-off-by: Matthias Wessendorf <mwessend@redhat.com>
|
I think another reason for initially disabling this, is that this new feature is handy, but not fully battle tested ? |
| # to "false". To opt namespaces out of Broker injection, label | ||
| # to "true". To opt namespaces out of Broker injection, label | ||
| # them with: | ||
| # knative-eventing-injection: disabled |
There was a problem hiding this comment.
Why not always creating a broker (channel or mt, doesn't matter) when and only when that label is present?
There was a problem hiding this comment.
no change on the label - that just generally prevents that namespace to have an injected broker
|
This now also works with:
Now we have MT brokers and one CH-broker, see: |
|
Seems sensible. Thanks Mat! I'm really not a fan of this auto-injection feature based on Also I've seen a lot of people (ab)using But that's a different discussion. /lgtm |
|
@antoineco some context / background: knative/docs#2325 (comment) |
|
/hold |
|
I agree with @antoineco and @matzew about default broker injection - knative/docs#2325 (comment) And it is easy to enable default in next release but harder to disable it (avoiding surprising changes). /lgtm |
|
I'm not going to "fight the current" here this close to a release, but I want to talk principles because it feels like the MT Broker DevX is suffering because folks want it to co-exist with the ST Broker, which has "licked" the proverbial "cookie". On the use of Namespace reconcilers... Namespace reconcilers (in my experience) exist to pre-provision things that optimize the developer experience. K8s default ServiceAccounts's are a great example of something that they could force folks to create manually. In Serving we have an optional namespace controller to pre-provision wildcard certificates per namespace to optimize the expenditure of Let's Encrypt quota and eliminate TLS provisioning time. My belief was that this feature in Eventing aspired to be a convenience that pre-created Brokers so that folks could create Triggers on it without another thought. This comment from @grantr echos that:
Honestly, because of the need to opt-in per occurrence, the use of: kubectl label namespace default knative-eventing-injection=enabled... vs. simply On the path forward... Like I said, I'm not going to "fight the current" this close to a release, but I'd at least like to understand the path forward in 0.15. If we can agree that this is a desirable DevX, then it sounds like it has to be opt-in, but I think that mechanism for opting-in should be like I'm uncomfortable with the current impasse where ST Broker has "licked the cookie" on the namespace DevX, can't actually support the goal state in its current form, and where I haven't seen a tenable plan to make that happen. |
|
Honestly, if creating a broker becomes: I think it'd be an improvement over explicitly labeling the namespace. I have to look up the label every. damn. time. 🤷♂️ |
|
@matzew shut up and take my money. I think that's great, but somewhat orthogonal to this. If we want ST Broker to remain viable even as an alternative, then I think the issues you raise are important, which is why I wanted to level set on our goals with namespace-based Brokers. |
I think at least for a little bit ? I'd be also fine in marking it as deprecated in 0.15, and kill it with fire for 0.16 ? So, perhaps? |
|
@mattmoor does that sound like a reasonable agenda ? ^ |
|
Thanks everyone for your thoughts on this PR! Seems like the question of whether we want to opt in or opt out is orthogonal. I'm all for continuing the discussion in #2937, but this issue is more specific: we have two things that are fighting over the default cookie and that leads to an unintended confusing user experience. We can decide which thing gets the cookie separately, but for 0.14 @matzew's proposed approach seems like a good stopgap. |
grantr
left a comment
There was a problem hiding this comment.
/lgtm
(Leaving the hold to give everyone a chance to weigh in)
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: grantr, matzew The full list of commands accepted by this bot can be found here. The pull request process is described here DetailsNeeds approval from an approver in each of these files:
Approvers can indicate their approval by writing |
This SGTM. I think there are also options that unblock the semantics we want without forcing ST Broker into early retirement. Happy to help game those out. |
|
ok, mind to “unhold” this PR ?
On Thu 9. Apr 2020 at 19:18, Matt Moore ***@***.***> wrote:
0.14 lands MT broker (disabled)
0.15 enables it (as default). Says deprecated to ST broker
0.16 ST says adios
This SGTM. I think there are also options that unblock the semantics we
want without forcing ST Broker into early retirement. Happy to help game
those out.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#2946 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AABGPTR72HMLSXTNTBA7EWLRLX7OFANCNFSM4MERY7PQ>
.
--
Sent from Gmail Mobile
|
|
/unhold |
Let's please DISABLE the "auto MT broker injection" for the 0.14 release.
Potential issues
both (channel and mt) "default brokers" are called
default:I understand the name should have no impact. That's good, but let's than not auto generate all MT brokers, if we are NOT explicitly enable it. See 2)
Currently the "channel broker" is default, however, regardless the MT-broker still generates a lot of brokers (for all namespaces), with the name
default. This prevents thekubectl label namespace default knative-eventing-injection=enabledto create a "channel broker" for my namespace. because the MT broker was already there 😞Because it still generates all these brokers, but they are not functioning, see:
And, like stated in 2. I can NOT generate a "non mt" broker, with the normal "injection" knative-eventing-injection=enabled, because the MT broker did already create one instance of itself for me, in all my namespaces.
** With this PR **
MT broker is "completely disabled", but can be deployed to knative. Has no undesired sideeffect.
Turning it on, is like:
config-br-defaultsConfigMap and set the value of thebrokerClasstoMTChannelBasedBrokermt-broker-controllerDeployment, and set theBROKER_INJECTION_DEFAULTvalue totrue.Now, all "default" MT brokers are good:
When both brokers are deployed, with the following config:
channelBasedconfigured defaultmt-channel-brokeris NOT the default, but hasBROKER_INJECTION_DEFAULTset totrueThere are a couple of issues:
default.I get that we want that, but this kinda really prevents, that the mt-broker should
due to conflicts with regular 'default' broker
Signed-off-by: Matthias Wessendorf mwessend@redhat.com