-
Notifications
You must be signed in to change notification settings - Fork 1.2k
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
Consider allowing serving controllers to be run for a single namespace #2107
Comments
Definitely some benefits to this, but from the FaaS developer's perspective, we shift the cost of running the controller onto the user, i.e. he has to deploy the thing that runs his functions before he can run them. Also need to figure out whether that user is expected to install his own istio and knative eventing. |
Chatted with @mattmoor about this and he mentioned another closely related use-case, which is allowing all knative controllers to run in a single (arbitrary namespace). That goal likely has a heavy overlap with running controllers in an arbitrary namespace, scoped to work on only that namespace. I originally thought I had made a good choice about opening this issue in serving, but after some thought it seems like the best place to do some initial exploration is in build, since it is a relatively simple, self-contained piece, so I will open an issue there for notes about that exploration. |
cc |
hi everyone (@pmorie , @jcrossley3 , @mattmoor, @lichuqiang , and so on ... ) , do we have any process on this topic. i encounter the case that is a k8s (child) on k8s (parent) arch, and this leads to each k8s cluster (child) is in a stand alone namespace of k8s (parent) and there is a easy way do impl this through the k8s deployment NAMESPACE env injection as my previous issues mention Decoupling serving namespace instead of fixed knative-serving
|
I think this is a use case we need to support and is a great idea. A few questions:
|
vote for this point too ~ |
@jcrossley3 and I wrote down some of the initial entanglements we encountered when doing discovery for this concern on build: |
It sounded like to me like that may be a use-case in the long-term. We at Red Hat are more interested at this point in time in the use-case of the controllers scoped to a single namespace. IMO, this is probably a good tactical goal to work towards that is more actionable than controllers managing a set of namespaces. The goal of allowing the controllers to run scoped to a single namespace will provide a lot of discovery for touchpoints with areas like installation, dev experience, RBAC, testing, etc, that will be plenty to think about without the additional complication of supporting the 'set of namespaces' use-case. I suspect that the 'set of namespaces' use-case will have some gaps that need to be closed around RBAC which may require changes in kubernetes. For example, if a controller determines the namespaces to act on via label selection, how do we ensure that such a controller operates with a dynamically determined least-privilege? It is possible for a single identity to have RoleBindings in multiple namespaces, but each must be explicitly configured with a distinct RoleBinding afaik. In the set-of-namespaces use-case, in order to avoid granting the controller a cluster-level permission on the resources it needs to work with, it would be best to be able to use a selector type mechanism to grant permission on namespaces as well. cc @jcrossley3 |
I would like to add my use cases to this feature request for posterity, originally in #4959.
A similar issue for enabling this in istio is here: istio/istio#11977 Thanks. |
Issues go stale after 90 days of inactivity. Send feedback to Knative Productivity Slack channel or file an issue in knative/test-infra. /lifecycle stale |
Stale issues rot after 30 days of inactivity. Send feedback to Knative Productivity Slack channel or file an issue in knative/test-infra. /lifecycle rotten |
/lifecycle rotten I think that we are pretty close here. Most Knative components can now run in arbitrary namespaces because of the We also should have a way to tell the injected informers to scope themselves to a single namespace, so I think the main thing we are missing now is a flag to plumb that through and testing to tell us what else we are really missing? Are there folks still interested in pursuing this? cc @pmorie |
Rotten issues close after 30 days of inactivity. Send feedback to Knative Productivity Slack channel or file an issue in knative/test-infra. /close |
@knative-housekeeping-robot: Closing this issue. In response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. |
We should consider allowing the knative serving controllers to run constrained to a single namespace.
Potential benefits of doing this:
Expected Behavior
Actual Behavior
I'm leaving an area off because I don't know that we have an area this fits nicely into.
The text was updated successfully, but these errors were encountered: