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
MAISTRA-2051: Use shared Kubernetes client in galley #241
Conversation
This moves galley to the shared Kubernetes client, which will let it use xns-informers for multi-namespace support like everything else.
@@ -1,4 +1,5 @@ | |||
// Copyright Istio Authors | |||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nit: accidental linebreak
k := mock.NewKube() | ||
wcrd := mockCrdWatch(k.APIExtClientSet) | ||
// This test doesn't seem to work well with the new fake client. | ||
// Needs to be looked into. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could it be because we didn't yet replace kubeclient.Ext() with an xns-informer fake client?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Don't think that's necessary actually. The normal fake should work here. There's something else going wrong, but I don't think it's critical to fix right now. We can come back to it.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
approving to unblock, we can fix the failing test later. let's just note it in the doc
* Revert "MAISTRA-2051: Use shared Kubernetes client in galley (#241)" This reverts commit 0b1567a. * MAISTRA-2051: Use MultiNamespaceInformer in galley This is a rework of the previous change that used the central Kubernetes client in Galley. The watchers in Galley manage stopping and starting individual informers, which doesn't work well with the factory returning cached informers. This creates multi-namespace informers individually instead of using the central factory. It's also a much smaller change overall and doesn't affect the tests. * MAISTRA-2051: Add GetMemberRoll method to Kubernetes client * MAISTRA-2051: Integrate MemberRoll with Galley This configures the mulit-namespace aware infomers in Galley to respond to changes in the set of namespaces via the MemberRoll. This includes parts of the following: - 4b70b8d MAISTRA-1895 Add option to enable/disable CRD scan - 6e8019e MAISTRA-1968 allow analyzer to work with multi list watcher
MAISTRA-2051: Add xns-informer for Kubernetes types (maistra#223) * vendor: Add github.com/maistra/xns-informer * Update mirrored licenses to fix gen-check * MAISTRA-2051: Add xns-informer for Kubernetes types This integrates the xns-informer library for multi-namespace support, but only for core Kubernetes types. The informers are hard-coded to watch all namespaces here. The integration with MemberRoll will come in a follow-up. MAISTRA-2051 Add xns-informer for Istio types (maistra#221) MAISTRA-2051: Add MemberRollController (maistra#227) * MAISTRA-2051: Add MemberRollController Includes the following: * 75742b0 - Add Makefile for Maistra client generation This adds a Makefile with tasks for generating the Maistra specific clients. It is adapted from the one in the Istio client-go repository. * 5f8562c - Add MemberRollController Squashed commit, consisting of: * MAISTRA-417: Add MemberRollController * MAISTRA-450: Switch across to ConfiguredMembers and check existing config for changes * MAISTRA-1005 Do not expect namespaces to have a stable ordering The clients have also been regenerated. * 1b7a89d - Add missing licenses * fe2f8cd - Fix Copyright holder * 06ea2db - MAISTRA-1666: Add `go mod vendor` as part of `make gen` This is to make sure all PR's will have an updated vendor directory. The `gencheck` prow job will ensure that. * MAISTRA-2051: Update MemberRollController for xns-informers * MAISTRA-2051: Add AddMemberRoll to kube client * MAISTRA-2051: Configure MemberRoll controller in istiod MAISTRA-2051: Add xns-informer for Service APIs (maistra#229) * MAISTRA-2051: Update xns-informers * MAISTRA-2051: Add xns-informer for Service APIs MAISTRA-2051: Use shared Kubernetes client in galley (maistra#241) This moves galley to the shared Kubernetes client, which will let it use xns-informers for multi-namespace support like everything else. MAISTRA-2051: Update xns-informers to latest (maistra#252) * MAISTRA-2051: Reset Kubernetes client to release-1.8 state * MAISTRA-2051: Use xns-informers in Kubernetes client * MAISTRA-2051: Un-skip tests with xns-informers issues These tests were skipped because of issues with xns-informers, which have now been solved. They should no longer be skipped. * MAISTRA-2051: Update xns-informers to latest * MAISTRA-2051: Skip problematic integration test: TestDashboard MAISTRA-2051: Use MultiNamespaceInformer in galley (maistra#254) * Revert "MAISTRA-2051: Use shared Kubernetes client in galley (maistra#241)" This reverts commit 0b1567a. * MAISTRA-2051: Use MultiNamespaceInformer in galley This is a rework of the previous change that used the central Kubernetes client in Galley. The watchers in Galley manage stopping and starting individual informers, which doesn't work well with the factory returning cached informers. This creates multi-namespace informers individually instead of using the central factory. It's also a much smaller change overall and doesn't affect the tests. * MAISTRA-2051: Add GetMemberRoll method to Kubernetes client * MAISTRA-2051: Integrate MemberRoll with Galley This configures the mulit-namespace aware infomers in Galley to respond to changes in the set of namespaces via the MemberRoll. This includes parts of the following: - 4b70b8d MAISTRA-1895 Add option to enable/disable CRD scan - 6e8019e MAISTRA-1968 allow analyzer to work with multi list watcher MAISTRA-1724: Don't watch namespaces if MemberRoll is used (maistra#257) Rewrite of the following for Maistra 2.1 / Istio 1.8 rebase: a161a53 - MAISTRA-1724 Don't watch namespaces if MRC is used (maistra#161) MAISTRA-1755: invoke UpdateNamespaces() as part of MemberRollController.Register() Cherry-pick of f0eed15 for Maistra 2.1 / Istio 1.8 rebase. MAISTRA-1724: Better hanlde deletion in NamespaceController MAISTRA-2153: Disable namespace informer if MemberRoll is used (maistra#283) This causes istiod to skip creating the namespace informer in the Kubernetes service registry controller if a MemberRoll is specified, because Maistra cannot read namespace objects. This will affect the behavior of multi-network deployments that do not use mesh networks for configuration, i.e. a namespace cannot be labeled with a default network now. MAISTRA-2197: Push first update when cache is warm (maistra#294) Change SMMR Controller behavior to only send the first update to listeners when it has a list of members ready. In other words, when cache is synced. Before this, the first update was sent with only one hardcoded member: The control plane namespace. Now it is sent with the full list of SMMR members. While on that, switch to our own log scope, to facilitate debugging. Manual cherry pick of maistra#291 MAISTRA-2233: Start xns-informers with empty namespace set (maistra#303) The multi-namespace informers created by xns-informers default to watching all namespaces to match upstream behaviour. This causes permissions issues in Maistra because they will do this until the first update from the MemberRoll controller sets the correct set of namespaces on each informer. We should instead explicitly configure them with an empty set of namespaces at startup. MAISTRA-2234: Seed MemberRoll listeners with system namespace (maistra#302) The MemberRoll controller was changed in MAISTRA-2197 to not send the initial update with just the system namespace to all listeners. This can be a problem when the user hasn't created an SMMR resource yet, because any listeners registered before the caches sync may never get an update informing them to watch the system namespace. This attempts to work around the issue by having all listeners individually wait on the caches to sync, then seed just the system namespace if no SMMR resource is found. MAISTRA-2271: Update xns-informers to fix delete events issue (maistra#315) This updates xns-informers to include a fix for sending delete events for all objects when a namespace is no longer watched. See: maistra/xns-informer#12
MAISTRA-2051: Add xns-informer for Kubernetes types (#223) * vendor: Add github.com/maistra/xns-informer * Update mirrored licenses to fix gen-check * MAISTRA-2051: Add xns-informer for Kubernetes types This integrates the xns-informer library for multi-namespace support, but only for core Kubernetes types. The informers are hard-coded to watch all namespaces here. The integration with MemberRoll will come in a follow-up. MAISTRA-2051 Add xns-informer for Istio types (#221) MAISTRA-2051: Add MemberRollController (#227) * MAISTRA-2051: Add MemberRollController Includes the following: * 75742b0 - Add Makefile for Maistra client generation This adds a Makefile with tasks for generating the Maistra specific clients. It is adapted from the one in the Istio client-go repository. * 5f8562c - Add MemberRollController Squashed commit, consisting of: * MAISTRA-417: Add MemberRollController * MAISTRA-450: Switch across to ConfiguredMembers and check existing config for changes * MAISTRA-1005 Do not expect namespaces to have a stable ordering The clients have also been regenerated. * 1b7a89d - Add missing licenses * fe2f8cd - Fix Copyright holder * 06ea2db - MAISTRA-1666: Add `go mod vendor` as part of `make gen` This is to make sure all PR's will have an updated vendor directory. The `gencheck` prow job will ensure that. * MAISTRA-2051: Update MemberRollController for xns-informers * MAISTRA-2051: Add AddMemberRoll to kube client * MAISTRA-2051: Configure MemberRoll controller in istiod MAISTRA-2051: Add xns-informer for Service APIs (#229) * MAISTRA-2051: Update xns-informers * MAISTRA-2051: Add xns-informer for Service APIs MAISTRA-2051: Use shared Kubernetes client in galley (#241) This moves galley to the shared Kubernetes client, which will let it use xns-informers for multi-namespace support like everything else. MAISTRA-2051: Update xns-informers to latest (#252) * MAISTRA-2051: Reset Kubernetes client to release-1.8 state * MAISTRA-2051: Use xns-informers in Kubernetes client * MAISTRA-2051: Un-skip tests with xns-informers issues These tests were skipped because of issues with xns-informers, which have now been solved. They should no longer be skipped. * MAISTRA-2051: Update xns-informers to latest * MAISTRA-2051: Skip problematic integration test: TestDashboard MAISTRA-2051: Use MultiNamespaceInformer in galley (#254) * Revert "MAISTRA-2051: Use shared Kubernetes client in galley (#241)" This reverts commit 0b1567a. * MAISTRA-2051: Use MultiNamespaceInformer in galley This is a rework of the previous change that used the central Kubernetes client in Galley. The watchers in Galley manage stopping and starting individual informers, which doesn't work well with the factory returning cached informers. This creates multi-namespace informers individually instead of using the central factory. It's also a much smaller change overall and doesn't affect the tests. * MAISTRA-2051: Add GetMemberRoll method to Kubernetes client * MAISTRA-2051: Integrate MemberRoll with Galley This configures the mulit-namespace aware infomers in Galley to respond to changes in the set of namespaces via the MemberRoll. This includes parts of the following: - 4b70b8d MAISTRA-1895 Add option to enable/disable CRD scan - 6e8019e MAISTRA-1968 allow analyzer to work with multi list watcher MAISTRA-1724: Don't watch namespaces if MemberRoll is used (#257) Rewrite of the following for Maistra 2.1 / Istio 1.8 rebase: a161a53 - MAISTRA-1724 Don't watch namespaces if MRC is used (#161) MAISTRA-1755: invoke UpdateNamespaces() as part of MemberRollController.Register() Cherry-pick of f0eed15 for Maistra 2.1 / Istio 1.8 rebase. MAISTRA-1724: Better hanlde deletion in NamespaceController MAISTRA-2153: Disable namespace informer if MemberRoll is used (#283) This causes istiod to skip creating the namespace informer in the Kubernetes service registry controller if a MemberRoll is specified, because Maistra cannot read namespace objects. This will affect the behavior of multi-network deployments that do not use mesh networks for configuration, i.e. a namespace cannot be labeled with a default network now. MAISTRA-2197: Push first update when cache is warm (#294) Change SMMR Controller behavior to only send the first update to listeners when it has a list of members ready. In other words, when cache is synced. Before this, the first update was sent with only one hardcoded member: The control plane namespace. Now it is sent with the full list of SMMR members. While on that, switch to our own log scope, to facilitate debugging. Manual cherry pick of #291 MAISTRA-2233: Start xns-informers with empty namespace set (#303) The multi-namespace informers created by xns-informers default to watching all namespaces to match upstream behaviour. This causes permissions issues in Maistra because they will do this until the first update from the MemberRoll controller sets the correct set of namespaces on each informer. We should instead explicitly configure them with an empty set of namespaces at startup. MAISTRA-2234: Seed MemberRoll listeners with system namespace (#302) The MemberRoll controller was changed in MAISTRA-2197 to not send the initial update with just the system namespace to all listeners. This can be a problem when the user hasn't created an SMMR resource yet, because any listeners registered before the caches sync may never get an update informing them to watch the system namespace. This attempts to work around the issue by having all listeners individually wait on the caches to sync, then seed just the system namespace if no SMMR resource is found. MAISTRA-2271: Update xns-informers to fix delete events issue (#315) This updates xns-informers to include a fix for sending delete events for all objects when a namespace is no longer watched. See: maistra/xns-informer#12
MAISTRA-2051: Add xns-informer for Kubernetes types (maistra#223) * vendor: Add github.com/maistra/xns-informer * Update mirrored licenses to fix gen-check * MAISTRA-2051: Add xns-informer for Kubernetes types This integrates the xns-informer library for multi-namespace support, but only for core Kubernetes types. The informers are hard-coded to watch all namespaces here. The integration with MemberRoll will come in a follow-up. MAISTRA-2051 Add xns-informer for Istio types (maistra#221) MAISTRA-2051: Add MemberRollController (maistra#227) * MAISTRA-2051: Add MemberRollController Includes the following: * 75742b0 - Add Makefile for Maistra client generation This adds a Makefile with tasks for generating the Maistra specific clients. It is adapted from the one in the Istio client-go repository. * 5f8562c - Add MemberRollController Squashed commit, consisting of: * MAISTRA-417: Add MemberRollController * MAISTRA-450: Switch across to ConfiguredMembers and check existing config for changes * MAISTRA-1005 Do not expect namespaces to have a stable ordering The clients have also been regenerated. * 1b7a89d - Add missing licenses * fe2f8cd - Fix Copyright holder * 06ea2db - MAISTRA-1666: Add `go mod vendor` as part of `make gen` This is to make sure all PR's will have an updated vendor directory. The `gencheck` prow job will ensure that. * MAISTRA-2051: Update MemberRollController for xns-informers * MAISTRA-2051: Add AddMemberRoll to kube client * MAISTRA-2051: Configure MemberRoll controller in istiod MAISTRA-2051: Add xns-informer for Service APIs (maistra#229) * MAISTRA-2051: Update xns-informers * MAISTRA-2051: Add xns-informer for Service APIs MAISTRA-2051: Use shared Kubernetes client in galley (maistra#241) This moves galley to the shared Kubernetes client, which will let it use xns-informers for multi-namespace support like everything else. MAISTRA-2051: Update xns-informers to latest (maistra#252) * MAISTRA-2051: Reset Kubernetes client to release-1.8 state * MAISTRA-2051: Use xns-informers in Kubernetes client * MAISTRA-2051: Un-skip tests with xns-informers issues These tests were skipped because of issues with xns-informers, which have now been solved. They should no longer be skipped. * MAISTRA-2051: Update xns-informers to latest * MAISTRA-2051: Skip problematic integration test: TestDashboard MAISTRA-2051: Use MultiNamespaceInformer in galley (maistra#254) * Revert "MAISTRA-2051: Use shared Kubernetes client in galley (maistra#241)" This reverts commit 0b1567a. * MAISTRA-2051: Use MultiNamespaceInformer in galley This is a rework of the previous change that used the central Kubernetes client in Galley. The watchers in Galley manage stopping and starting individual informers, which doesn't work well with the factory returning cached informers. This creates multi-namespace informers individually instead of using the central factory. It's also a much smaller change overall and doesn't affect the tests. * MAISTRA-2051: Add GetMemberRoll method to Kubernetes client * MAISTRA-2051: Integrate MemberRoll with Galley This configures the mulit-namespace aware infomers in Galley to respond to changes in the set of namespaces via the MemberRoll. This includes parts of the following: - 4b70b8d MAISTRA-1895 Add option to enable/disable CRD scan - 6e8019e MAISTRA-1968 allow analyzer to work with multi list watcher MAISTRA-1724: Don't watch namespaces if MemberRoll is used (maistra#257) Rewrite of the following for Maistra 2.1 / Istio 1.8 rebase: a161a53 - MAISTRA-1724 Don't watch namespaces if MRC is used (maistra#161) MAISTRA-1755: invoke UpdateNamespaces() as part of MemberRollController.Register() Cherry-pick of f0eed15 for Maistra 2.1 / Istio 1.8 rebase. MAISTRA-1724: Better hanlde deletion in NamespaceController MAISTRA-2153: Disable namespace informer if MemberRoll is used (maistra#283) This causes istiod to skip creating the namespace informer in the Kubernetes service registry controller if a MemberRoll is specified, because Maistra cannot read namespace objects. This will affect the behavior of multi-network deployments that do not use mesh networks for configuration, i.e. a namespace cannot be labeled with a default network now. MAISTRA-2197: Push first update when cache is warm (maistra#294) Change SMMR Controller behavior to only send the first update to listeners when it has a list of members ready. In other words, when cache is synced. Before this, the first update was sent with only one hardcoded member: The control plane namespace. Now it is sent with the full list of SMMR members. While on that, switch to our own log scope, to facilitate debugging. Manual cherry pick of maistra#291 MAISTRA-2233: Start xns-informers with empty namespace set (maistra#303) The multi-namespace informers created by xns-informers default to watching all namespaces to match upstream behaviour. This causes permissions issues in Maistra because they will do this until the first update from the MemberRoll controller sets the correct set of namespaces on each informer. We should instead explicitly configure them with an empty set of namespaces at startup. MAISTRA-2234: Seed MemberRoll listeners with system namespace (maistra#302) The MemberRoll controller was changed in MAISTRA-2197 to not send the initial update with just the system namespace to all listeners. This can be a problem when the user hasn't created an SMMR resource yet, because any listeners registered before the caches sync may never get an update informing them to watch the system namespace. This attempts to work around the issue by having all listeners individually wait on the caches to sync, then seed just the system namespace if no SMMR resource is found. MAISTRA-2271: Update xns-informers to fix delete events issue (maistra#315) This updates xns-informers to include a fix for sending delete events for all objects when a namespace is no longer watched. See: maistra/xns-informer#12
MAISTRA-2051: Add xns-informer for Kubernetes types (maistra#223) * vendor: Add github.com/maistra/xns-informer * Update mirrored licenses to fix gen-check * MAISTRA-2051: Add xns-informer for Kubernetes types This integrates the xns-informer library for multi-namespace support, but only for core Kubernetes types. The informers are hard-coded to watch all namespaces here. The integration with MemberRoll will come in a follow-up. MAISTRA-2051 Add xns-informer for Istio types (maistra#221) MAISTRA-2051: Add MemberRollController (maistra#227) * MAISTRA-2051: Add MemberRollController Includes the following: * 75742b0 - Add Makefile for Maistra client generation This adds a Makefile with tasks for generating the Maistra specific clients. It is adapted from the one in the Istio client-go repository. * 5f8562c - Add MemberRollController Squashed commit, consisting of: * MAISTRA-417: Add MemberRollController * MAISTRA-450: Switch across to ConfiguredMembers and check existing config for changes * MAISTRA-1005 Do not expect namespaces to have a stable ordering The clients have also been regenerated. * 1b7a89d - Add missing licenses * fe2f8cd - Fix Copyright holder * 06ea2db - MAISTRA-1666: Add `go mod vendor` as part of `make gen` This is to make sure all PR's will have an updated vendor directory. The `gencheck` prow job will ensure that. * MAISTRA-2051: Update MemberRollController for xns-informers * MAISTRA-2051: Add AddMemberRoll to kube client * MAISTRA-2051: Configure MemberRoll controller in istiod MAISTRA-2051: Add xns-informer for Service APIs (maistra#229) * MAISTRA-2051: Update xns-informers * MAISTRA-2051: Add xns-informer for Service APIs MAISTRA-2051: Use shared Kubernetes client in galley (maistra#241) This moves galley to the shared Kubernetes client, which will let it use xns-informers for multi-namespace support like everything else. MAISTRA-2051: Update xns-informers to latest (maistra#252) * MAISTRA-2051: Reset Kubernetes client to release-1.8 state * MAISTRA-2051: Use xns-informers in Kubernetes client * MAISTRA-2051: Un-skip tests with xns-informers issues These tests were skipped because of issues with xns-informers, which have now been solved. They should no longer be skipped. * MAISTRA-2051: Update xns-informers to latest * MAISTRA-2051: Skip problematic integration test: TestDashboard MAISTRA-2051: Use MultiNamespaceInformer in galley (maistra#254) * Revert "MAISTRA-2051: Use shared Kubernetes client in galley (maistra#241)" This reverts commit 0b1567a. * MAISTRA-2051: Use MultiNamespaceInformer in galley This is a rework of the previous change that used the central Kubernetes client in Galley. The watchers in Galley manage stopping and starting individual informers, which doesn't work well with the factory returning cached informers. This creates multi-namespace informers individually instead of using the central factory. It's also a much smaller change overall and doesn't affect the tests. * MAISTRA-2051: Add GetMemberRoll method to Kubernetes client * MAISTRA-2051: Integrate MemberRoll with Galley This configures the mulit-namespace aware infomers in Galley to respond to changes in the set of namespaces via the MemberRoll. This includes parts of the following: - 4b70b8d MAISTRA-1895 Add option to enable/disable CRD scan - 6e8019e MAISTRA-1968 allow analyzer to work with multi list watcher MAISTRA-1724: Don't watch namespaces if MemberRoll is used (maistra#257) Rewrite of the following for Maistra 2.1 / Istio 1.8 rebase: a161a53 - MAISTRA-1724 Don't watch namespaces if MRC is used (maistra#161) MAISTRA-1755: invoke UpdateNamespaces() as part of MemberRollController.Register() Cherry-pick of f0eed15 for Maistra 2.1 / Istio 1.8 rebase. MAISTRA-1724: Better hanlde deletion in NamespaceController MAISTRA-2153: Disable namespace informer if MemberRoll is used (maistra#283) This causes istiod to skip creating the namespace informer in the Kubernetes service registry controller if a MemberRoll is specified, because Maistra cannot read namespace objects. This will affect the behavior of multi-network deployments that do not use mesh networks for configuration, i.e. a namespace cannot be labeled with a default network now. MAISTRA-2197: Push first update when cache is warm (maistra#294) Change SMMR Controller behavior to only send the first update to listeners when it has a list of members ready. In other words, when cache is synced. Before this, the first update was sent with only one hardcoded member: The control plane namespace. Now it is sent with the full list of SMMR members. While on that, switch to our own log scope, to facilitate debugging. Manual cherry pick of maistra#291 MAISTRA-2233: Start xns-informers with empty namespace set (maistra#303) The multi-namespace informers created by xns-informers default to watching all namespaces to match upstream behaviour. This causes permissions issues in Maistra because they will do this until the first update from the MemberRoll controller sets the correct set of namespaces on each informer. We should instead explicitly configure them with an empty set of namespaces at startup. MAISTRA-2234: Seed MemberRoll listeners with system namespace (maistra#302) The MemberRoll controller was changed in MAISTRA-2197 to not send the initial update with just the system namespace to all listeners. This can be a problem when the user hasn't created an SMMR resource yet, because any listeners registered before the caches sync may never get an update informing them to watch the system namespace. This attempts to work around the issue by having all listeners individually wait on the caches to sync, then seed just the system namespace if no SMMR resource is found. MAISTRA-2271: Update xns-informers to fix delete events issue (maistra#315) This updates xns-informers to include a fix for sending delete events for all objects when a namespace is no longer watched. See: maistra/xns-informer#12
MAISTRA-2051: Add xns-informer for Kubernetes types (maistra#223) * vendor: Add github.com/maistra/xns-informer * Update mirrored licenses to fix gen-check * MAISTRA-2051: Add xns-informer for Kubernetes types This integrates the xns-informer library for multi-namespace support, but only for core Kubernetes types. The informers are hard-coded to watch all namespaces here. The integration with MemberRoll will come in a follow-up. MAISTRA-2051 Add xns-informer for Istio types (maistra#221) MAISTRA-2051: Add MemberRollController (maistra#227) * MAISTRA-2051: Add MemberRollController Includes the following: * 75742b0 - Add Makefile for Maistra client generation This adds a Makefile with tasks for generating the Maistra specific clients. It is adapted from the one in the Istio client-go repository. * 5f8562c - Add MemberRollController Squashed commit, consisting of: * MAISTRA-417: Add MemberRollController * MAISTRA-450: Switch across to ConfiguredMembers and check existing config for changes * MAISTRA-1005 Do not expect namespaces to have a stable ordering The clients have also been regenerated. * 1b7a89d - Add missing licenses * fe2f8cd - Fix Copyright holder * 06ea2db - MAISTRA-1666: Add `go mod vendor` as part of `make gen` This is to make sure all PR's will have an updated vendor directory. The `gencheck` prow job will ensure that. * MAISTRA-2051: Update MemberRollController for xns-informers * MAISTRA-2051: Add AddMemberRoll to kube client * MAISTRA-2051: Configure MemberRoll controller in istiod MAISTRA-2051: Add xns-informer for Service APIs (maistra#229) * MAISTRA-2051: Update xns-informers * MAISTRA-2051: Add xns-informer for Service APIs MAISTRA-2051: Use shared Kubernetes client in galley (maistra#241) This moves galley to the shared Kubernetes client, which will let it use xns-informers for multi-namespace support like everything else. MAISTRA-2051: Update xns-informers to latest (maistra#252) * MAISTRA-2051: Reset Kubernetes client to release-1.8 state * MAISTRA-2051: Use xns-informers in Kubernetes client * MAISTRA-2051: Un-skip tests with xns-informers issues These tests were skipped because of issues with xns-informers, which have now been solved. They should no longer be skipped. * MAISTRA-2051: Update xns-informers to latest * MAISTRA-2051: Skip problematic integration test: TestDashboard MAISTRA-2051: Use MultiNamespaceInformer in galley (maistra#254) * Revert "MAISTRA-2051: Use shared Kubernetes client in galley (maistra#241)" This reverts commit 0b1567a. * MAISTRA-2051: Use MultiNamespaceInformer in galley This is a rework of the previous change that used the central Kubernetes client in Galley. The watchers in Galley manage stopping and starting individual informers, which doesn't work well with the factory returning cached informers. This creates multi-namespace informers individually instead of using the central factory. It's also a much smaller change overall and doesn't affect the tests. * MAISTRA-2051: Add GetMemberRoll method to Kubernetes client * MAISTRA-2051: Integrate MemberRoll with Galley This configures the mulit-namespace aware infomers in Galley to respond to changes in the set of namespaces via the MemberRoll. This includes parts of the following: - 4b70b8d MAISTRA-1895 Add option to enable/disable CRD scan - 6e8019e MAISTRA-1968 allow analyzer to work with multi list watcher MAISTRA-1724: Don't watch namespaces if MemberRoll is used (maistra#257) Rewrite of the following for Maistra 2.1 / Istio 1.8 rebase: a161a53 - MAISTRA-1724 Don't watch namespaces if MRC is used (maistra#161) MAISTRA-1755: invoke UpdateNamespaces() as part of MemberRollController.Register() Cherry-pick of f0eed15 for Maistra 2.1 / Istio 1.8 rebase. MAISTRA-1724: Better hanlde deletion in NamespaceController MAISTRA-2153: Disable namespace informer if MemberRoll is used (maistra#283) This causes istiod to skip creating the namespace informer in the Kubernetes service registry controller if a MemberRoll is specified, because Maistra cannot read namespace objects. This will affect the behavior of multi-network deployments that do not use mesh networks for configuration, i.e. a namespace cannot be labeled with a default network now. MAISTRA-2197: Push first update when cache is warm (maistra#294) Change SMMR Controller behavior to only send the first update to listeners when it has a list of members ready. In other words, when cache is synced. Before this, the first update was sent with only one hardcoded member: The control plane namespace. Now it is sent with the full list of SMMR members. While on that, switch to our own log scope, to facilitate debugging. Manual cherry pick of maistra#291 MAISTRA-2233: Start xns-informers with empty namespace set (maistra#303) The multi-namespace informers created by xns-informers default to watching all namespaces to match upstream behaviour. This causes permissions issues in Maistra because they will do this until the first update from the MemberRoll controller sets the correct set of namespaces on each informer. We should instead explicitly configure them with an empty set of namespaces at startup. MAISTRA-2234: Seed MemberRoll listeners with system namespace (maistra#302) The MemberRoll controller was changed in MAISTRA-2197 to not send the initial update with just the system namespace to all listeners. This can be a problem when the user hasn't created an SMMR resource yet, because any listeners registered before the caches sync may never get an update informing them to watch the system namespace. This attempts to work around the issue by having all listeners individually wait on the caches to sync, then seed just the system namespace if no SMMR resource is found. MAISTRA-2271: Update xns-informers to fix delete events issue (maistra#315) This updates xns-informers to include a fix for sending delete events for all objects when a namespace is no longer watched. See: maistra/xns-informer#12
MAISTRA-2051: Add xns-informer for Kubernetes types (maistra#223) * vendor: Add github.com/maistra/xns-informer * Update mirrored licenses to fix gen-check * MAISTRA-2051: Add xns-informer for Kubernetes types This integrates the xns-informer library for multi-namespace support, but only for core Kubernetes types. The informers are hard-coded to watch all namespaces here. The integration with MemberRoll will come in a follow-up. MAISTRA-2051 Add xns-informer for Istio types (maistra#221) MAISTRA-2051: Add MemberRollController (maistra#227) * MAISTRA-2051: Add MemberRollController Includes the following: * 75742b0 - Add Makefile for Maistra client generation This adds a Makefile with tasks for generating the Maistra specific clients. It is adapted from the one in the Istio client-go repository. * 5f8562c - Add MemberRollController Squashed commit, consisting of: * MAISTRA-417: Add MemberRollController * MAISTRA-450: Switch across to ConfiguredMembers and check existing config for changes * MAISTRA-1005 Do not expect namespaces to have a stable ordering The clients have also been regenerated. * 1b7a89d - Add missing licenses * fe2f8cd - Fix Copyright holder * 06ea2db - MAISTRA-1666: Add `go mod vendor` as part of `make gen` This is to make sure all PR's will have an updated vendor directory. The `gencheck` prow job will ensure that. * MAISTRA-2051: Update MemberRollController for xns-informers * MAISTRA-2051: Add AddMemberRoll to kube client * MAISTRA-2051: Configure MemberRoll controller in istiod MAISTRA-2051: Add xns-informer for Service APIs (maistra#229) * MAISTRA-2051: Update xns-informers * MAISTRA-2051: Add xns-informer for Service APIs MAISTRA-2051: Use shared Kubernetes client in galley (maistra#241) This moves galley to the shared Kubernetes client, which will let it use xns-informers for multi-namespace support like everything else. MAISTRA-2051: Update xns-informers to latest (maistra#252) * MAISTRA-2051: Reset Kubernetes client to release-1.8 state * MAISTRA-2051: Use xns-informers in Kubernetes client * MAISTRA-2051: Un-skip tests with xns-informers issues These tests were skipped because of issues with xns-informers, which have now been solved. They should no longer be skipped. * MAISTRA-2051: Update xns-informers to latest * MAISTRA-2051: Skip problematic integration test: TestDashboard MAISTRA-2051: Use MultiNamespaceInformer in galley (maistra#254) * Revert "MAISTRA-2051: Use shared Kubernetes client in galley (maistra#241)" This reverts commit 0b1567a. * MAISTRA-2051: Use MultiNamespaceInformer in galley This is a rework of the previous change that used the central Kubernetes client in Galley. The watchers in Galley manage stopping and starting individual informers, which doesn't work well with the factory returning cached informers. This creates multi-namespace informers individually instead of using the central factory. It's also a much smaller change overall and doesn't affect the tests. * MAISTRA-2051: Add GetMemberRoll method to Kubernetes client * MAISTRA-2051: Integrate MemberRoll with Galley This configures the mulit-namespace aware infomers in Galley to respond to changes in the set of namespaces via the MemberRoll. This includes parts of the following: - 4b70b8d MAISTRA-1895 Add option to enable/disable CRD scan - 6e8019e MAISTRA-1968 allow analyzer to work with multi list watcher MAISTRA-1724: Don't watch namespaces if MemberRoll is used (maistra#257) Rewrite of the following for Maistra 2.1 / Istio 1.8 rebase: a161a53 - MAISTRA-1724 Don't watch namespaces if MRC is used (maistra#161) MAISTRA-1755: invoke UpdateNamespaces() as part of MemberRollController.Register() Cherry-pick of f0eed15 for Maistra 2.1 / Istio 1.8 rebase. MAISTRA-1724: Better hanlde deletion in NamespaceController MAISTRA-2153: Disable namespace informer if MemberRoll is used (maistra#283) This causes istiod to skip creating the namespace informer in the Kubernetes service registry controller if a MemberRoll is specified, because Maistra cannot read namespace objects. This will affect the behavior of multi-network deployments that do not use mesh networks for configuration, i.e. a namespace cannot be labeled with a default network now. MAISTRA-2197: Push first update when cache is warm (maistra#294) Change SMMR Controller behavior to only send the first update to listeners when it has a list of members ready. In other words, when cache is synced. Before this, the first update was sent with only one hardcoded member: The control plane namespace. Now it is sent with the full list of SMMR members. While on that, switch to our own log scope, to facilitate debugging. Manual cherry pick of maistra#291 MAISTRA-2233: Start xns-informers with empty namespace set (maistra#303) The multi-namespace informers created by xns-informers default to watching all namespaces to match upstream behaviour. This causes permissions issues in Maistra because they will do this until the first update from the MemberRoll controller sets the correct set of namespaces on each informer. We should instead explicitly configure them with an empty set of namespaces at startup. MAISTRA-2234: Seed MemberRoll listeners with system namespace (maistra#302) The MemberRoll controller was changed in MAISTRA-2197 to not send the initial update with just the system namespace to all listeners. This can be a problem when the user hasn't created an SMMR resource yet, because any listeners registered before the caches sync may never get an update informing them to watch the system namespace. This attempts to work around the issue by having all listeners individually wait on the caches to sync, then seed just the system namespace if no SMMR resource is found. MAISTRA-2271: Update xns-informers to fix delete events issue (maistra#315) This updates xns-informers to include a fix for sending delete events for all objects when a namespace is no longer watched. See: maistra/xns-informer#12
MAISTRA-2051: Add xns-informer for Kubernetes types (maistra#223) * vendor: Add github.com/maistra/xns-informer * Update mirrored licenses to fix gen-check * MAISTRA-2051: Add xns-informer for Kubernetes types This integrates the xns-informer library for multi-namespace support, but only for core Kubernetes types. The informers are hard-coded to watch all namespaces here. The integration with MemberRoll will come in a follow-up. MAISTRA-2051 Add xns-informer for Istio types (maistra#221) MAISTRA-2051: Add MemberRollController (maistra#227) * MAISTRA-2051: Add MemberRollController Includes the following: * 75742b0 - Add Makefile for Maistra client generation This adds a Makefile with tasks for generating the Maistra specific clients. It is adapted from the one in the Istio client-go repository. * 5f8562c - Add MemberRollController Squashed commit, consisting of: * MAISTRA-417: Add MemberRollController * MAISTRA-450: Switch across to ConfiguredMembers and check existing config for changes * MAISTRA-1005 Do not expect namespaces to have a stable ordering The clients have also been regenerated. * 1b7a89d - Add missing licenses * fe2f8cd - Fix Copyright holder * 06ea2db - MAISTRA-1666: Add `go mod vendor` as part of `make gen` This is to make sure all PR's will have an updated vendor directory. The `gencheck` prow job will ensure that. * MAISTRA-2051: Update MemberRollController for xns-informers * MAISTRA-2051: Add AddMemberRoll to kube client * MAISTRA-2051: Configure MemberRoll controller in istiod MAISTRA-2051: Add xns-informer for Service APIs (maistra#229) * MAISTRA-2051: Update xns-informers * MAISTRA-2051: Add xns-informer for Service APIs MAISTRA-2051: Use shared Kubernetes client in galley (maistra#241) This moves galley to the shared Kubernetes client, which will let it use xns-informers for multi-namespace support like everything else. MAISTRA-2051: Update xns-informers to latest (maistra#252) * MAISTRA-2051: Reset Kubernetes client to release-1.8 state * MAISTRA-2051: Use xns-informers in Kubernetes client * MAISTRA-2051: Un-skip tests with xns-informers issues These tests were skipped because of issues with xns-informers, which have now been solved. They should no longer be skipped. * MAISTRA-2051: Update xns-informers to latest * MAISTRA-2051: Skip problematic integration test: TestDashboard MAISTRA-2051: Use MultiNamespaceInformer in galley (maistra#254) * Revert "MAISTRA-2051: Use shared Kubernetes client in galley (maistra#241)" This reverts commit 0b1567a. * MAISTRA-2051: Use MultiNamespaceInformer in galley This is a rework of the previous change that used the central Kubernetes client in Galley. The watchers in Galley manage stopping and starting individual informers, which doesn't work well with the factory returning cached informers. This creates multi-namespace informers individually instead of using the central factory. It's also a much smaller change overall and doesn't affect the tests. * MAISTRA-2051: Add GetMemberRoll method to Kubernetes client * MAISTRA-2051: Integrate MemberRoll with Galley This configures the mulit-namespace aware infomers in Galley to respond to changes in the set of namespaces via the MemberRoll. This includes parts of the following: - 4b70b8d MAISTRA-1895 Add option to enable/disable CRD scan - 6e8019e MAISTRA-1968 allow analyzer to work with multi list watcher MAISTRA-1724: Don't watch namespaces if MemberRoll is used (maistra#257) Rewrite of the following for Maistra 2.1 / Istio 1.8 rebase: a161a53 - MAISTRA-1724 Don't watch namespaces if MRC is used (maistra#161) MAISTRA-1755: invoke UpdateNamespaces() as part of MemberRollController.Register() Cherry-pick of f0eed15 for Maistra 2.1 / Istio 1.8 rebase. MAISTRA-1724: Better hanlde deletion in NamespaceController MAISTRA-2153: Disable namespace informer if MemberRoll is used (maistra#283) This causes istiod to skip creating the namespace informer in the Kubernetes service registry controller if a MemberRoll is specified, because Maistra cannot read namespace objects. This will affect the behavior of multi-network deployments that do not use mesh networks for configuration, i.e. a namespace cannot be labeled with a default network now. MAISTRA-2197: Push first update when cache is warm (maistra#294) Change SMMR Controller behavior to only send the first update to listeners when it has a list of members ready. In other words, when cache is synced. Before this, the first update was sent with only one hardcoded member: The control plane namespace. Now it is sent with the full list of SMMR members. While on that, switch to our own log scope, to facilitate debugging. Manual cherry pick of maistra#291 MAISTRA-2233: Start xns-informers with empty namespace set (maistra#303) The multi-namespace informers created by xns-informers default to watching all namespaces to match upstream behaviour. This causes permissions issues in Maistra because they will do this until the first update from the MemberRoll controller sets the correct set of namespaces on each informer. We should instead explicitly configure them with an empty set of namespaces at startup. MAISTRA-2234: Seed MemberRoll listeners with system namespace (maistra#302) The MemberRoll controller was changed in MAISTRA-2197 to not send the initial update with just the system namespace to all listeners. This can be a problem when the user hasn't created an SMMR resource yet, because any listeners registered before the caches sync may never get an update informing them to watch the system namespace. This attempts to work around the issue by having all listeners individually wait on the caches to sync, then seed just the system namespace if no SMMR resource is found. MAISTRA-2271: Update xns-informers to fix delete events issue (maistra#315) This updates xns-informers to include a fix for sending delete events for all objects when a namespace is no longer watched. See: maistra/xns-informer#12
MAISTRA-2051: Add xns-informer for Kubernetes types (maistra#223) * vendor: Add github.com/maistra/xns-informer * Update mirrored licenses to fix gen-check * MAISTRA-2051: Add xns-informer for Kubernetes types This integrates the xns-informer library for multi-namespace support, but only for core Kubernetes types. The informers are hard-coded to watch all namespaces here. The integration with MemberRoll will come in a follow-up. MAISTRA-2051 Add xns-informer for Istio types (maistra#221) MAISTRA-2051: Add MemberRollController (maistra#227) * MAISTRA-2051: Add MemberRollController Includes the following: * 75742b0 - Add Makefile for Maistra client generation This adds a Makefile with tasks for generating the Maistra specific clients. It is adapted from the one in the Istio client-go repository. * 5f8562c - Add MemberRollController Squashed commit, consisting of: * MAISTRA-417: Add MemberRollController * MAISTRA-450: Switch across to ConfiguredMembers and check existing config for changes * MAISTRA-1005 Do not expect namespaces to have a stable ordering The clients have also been regenerated. * 1b7a89d - Add missing licenses * fe2f8cd - Fix Copyright holder * 06ea2db - MAISTRA-1666: Add `go mod vendor` as part of `make gen` This is to make sure all PR's will have an updated vendor directory. The `gencheck` prow job will ensure that. * MAISTRA-2051: Update MemberRollController for xns-informers * MAISTRA-2051: Add AddMemberRoll to kube client * MAISTRA-2051: Configure MemberRoll controller in istiod MAISTRA-2051: Add xns-informer for Service APIs (maistra#229) * MAISTRA-2051: Update xns-informers * MAISTRA-2051: Add xns-informer for Service APIs MAISTRA-2051: Use shared Kubernetes client in galley (maistra#241) This moves galley to the shared Kubernetes client, which will let it use xns-informers for multi-namespace support like everything else. MAISTRA-2051: Update xns-informers to latest (maistra#252) * MAISTRA-2051: Reset Kubernetes client to release-1.8 state * MAISTRA-2051: Use xns-informers in Kubernetes client * MAISTRA-2051: Un-skip tests with xns-informers issues These tests were skipped because of issues with xns-informers, which have now been solved. They should no longer be skipped. * MAISTRA-2051: Update xns-informers to latest * MAISTRA-2051: Skip problematic integration test: TestDashboard MAISTRA-2051: Use MultiNamespaceInformer in galley (maistra#254) * Revert "MAISTRA-2051: Use shared Kubernetes client in galley (maistra#241)" This reverts commit 0b1567a. * MAISTRA-2051: Use MultiNamespaceInformer in galley This is a rework of the previous change that used the central Kubernetes client in Galley. The watchers in Galley manage stopping and starting individual informers, which doesn't work well with the factory returning cached informers. This creates multi-namespace informers individually instead of using the central factory. It's also a much smaller change overall and doesn't affect the tests. * MAISTRA-2051: Add GetMemberRoll method to Kubernetes client * MAISTRA-2051: Integrate MemberRoll with Galley This configures the mulit-namespace aware infomers in Galley to respond to changes in the set of namespaces via the MemberRoll. This includes parts of the following: - 4b70b8d MAISTRA-1895 Add option to enable/disable CRD scan - 6e8019e MAISTRA-1968 allow analyzer to work with multi list watcher MAISTRA-1724: Don't watch namespaces if MemberRoll is used (maistra#257) Rewrite of the following for Maistra 2.1 / Istio 1.8 rebase: a161a53 - MAISTRA-1724 Don't watch namespaces if MRC is used (maistra#161) MAISTRA-1755: invoke UpdateNamespaces() as part of MemberRollController.Register() Cherry-pick of f0eed15 for Maistra 2.1 / Istio 1.8 rebase. MAISTRA-1724: Better hanlde deletion in NamespaceController MAISTRA-2153: Disable namespace informer if MemberRoll is used (maistra#283) This causes istiod to skip creating the namespace informer in the Kubernetes service registry controller if a MemberRoll is specified, because Maistra cannot read namespace objects. This will affect the behavior of multi-network deployments that do not use mesh networks for configuration, i.e. a namespace cannot be labeled with a default network now. MAISTRA-2197: Push first update when cache is warm (maistra#294) Change SMMR Controller behavior to only send the first update to listeners when it has a list of members ready. In other words, when cache is synced. Before this, the first update was sent with only one hardcoded member: The control plane namespace. Now it is sent with the full list of SMMR members. While on that, switch to our own log scope, to facilitate debugging. Manual cherry pick of maistra#291 MAISTRA-2233: Start xns-informers with empty namespace set (maistra#303) The multi-namespace informers created by xns-informers default to watching all namespaces to match upstream behaviour. This causes permissions issues in Maistra because they will do this until the first update from the MemberRoll controller sets the correct set of namespaces on each informer. We should instead explicitly configure them with an empty set of namespaces at startup. MAISTRA-2234: Seed MemberRoll listeners with system namespace (maistra#302) The MemberRoll controller was changed in MAISTRA-2197 to not send the initial update with just the system namespace to all listeners. This can be a problem when the user hasn't created an SMMR resource yet, because any listeners registered before the caches sync may never get an update informing them to watch the system namespace. This attempts to work around the issue by having all listeners individually wait on the caches to sync, then seed just the system namespace if no SMMR resource is found. MAISTRA-2271: Update xns-informers to fix delete events issue (maistra#315) This updates xns-informers to include a fix for sending delete events for all objects when a namespace is no longer watched. See: maistra/xns-informer#12
MAISTRA-2051: Add xns-informer for Kubernetes types (maistra#223) * vendor: Add github.com/maistra/xns-informer * Update mirrored licenses to fix gen-check * MAISTRA-2051: Add xns-informer for Kubernetes types This integrates the xns-informer library for multi-namespace support, but only for core Kubernetes types. The informers are hard-coded to watch all namespaces here. The integration with MemberRoll will come in a follow-up. MAISTRA-2051 Add xns-informer for Istio types (maistra#221) MAISTRA-2051: Add MemberRollController (maistra#227) * MAISTRA-2051: Add MemberRollController Includes the following: * 75742b0 - Add Makefile for Maistra client generation This adds a Makefile with tasks for generating the Maistra specific clients. It is adapted from the one in the Istio client-go repository. * 5f8562c - Add MemberRollController Squashed commit, consisting of: * MAISTRA-417: Add MemberRollController * MAISTRA-450: Switch across to ConfiguredMembers and check existing config for changes * MAISTRA-1005 Do not expect namespaces to have a stable ordering The clients have also been regenerated. * 1b7a89d - Add missing licenses * fe2f8cd - Fix Copyright holder * 06ea2db - MAISTRA-1666: Add `go mod vendor` as part of `make gen` This is to make sure all PR's will have an updated vendor directory. The `gencheck` prow job will ensure that. * MAISTRA-2051: Update MemberRollController for xns-informers * MAISTRA-2051: Add AddMemberRoll to kube client * MAISTRA-2051: Configure MemberRoll controller in istiod MAISTRA-2051: Add xns-informer for Service APIs (maistra#229) * MAISTRA-2051: Update xns-informers * MAISTRA-2051: Add xns-informer for Service APIs MAISTRA-2051: Use shared Kubernetes client in galley (maistra#241) This moves galley to the shared Kubernetes client, which will let it use xns-informers for multi-namespace support like everything else. MAISTRA-2051: Update xns-informers to latest (maistra#252) * MAISTRA-2051: Reset Kubernetes client to release-1.8 state * MAISTRA-2051: Use xns-informers in Kubernetes client * MAISTRA-2051: Un-skip tests with xns-informers issues These tests were skipped because of issues with xns-informers, which have now been solved. They should no longer be skipped. * MAISTRA-2051: Update xns-informers to latest * MAISTRA-2051: Skip problematic integration test: TestDashboard MAISTRA-2051: Use MultiNamespaceInformer in galley (maistra#254) * Revert "MAISTRA-2051: Use shared Kubernetes client in galley (maistra#241)" This reverts commit 0b1567a. * MAISTRA-2051: Use MultiNamespaceInformer in galley This is a rework of the previous change that used the central Kubernetes client in Galley. The watchers in Galley manage stopping and starting individual informers, which doesn't work well with the factory returning cached informers. This creates multi-namespace informers individually instead of using the central factory. It's also a much smaller change overall and doesn't affect the tests. * MAISTRA-2051: Add GetMemberRoll method to Kubernetes client * MAISTRA-2051: Integrate MemberRoll with Galley This configures the mulit-namespace aware infomers in Galley to respond to changes in the set of namespaces via the MemberRoll. This includes parts of the following: - 4b70b8d MAISTRA-1895 Add option to enable/disable CRD scan - 6e8019e MAISTRA-1968 allow analyzer to work with multi list watcher MAISTRA-1724: Don't watch namespaces if MemberRoll is used (maistra#257) Rewrite of the following for Maistra 2.1 / Istio 1.8 rebase: a161a53 - MAISTRA-1724 Don't watch namespaces if MRC is used (maistra#161) MAISTRA-1755: invoke UpdateNamespaces() as part of MemberRollController.Register() Cherry-pick of f0eed15 for Maistra 2.1 / Istio 1.8 rebase. MAISTRA-1724: Better hanlde deletion in NamespaceController MAISTRA-2153: Disable namespace informer if MemberRoll is used (maistra#283) This causes istiod to skip creating the namespace informer in the Kubernetes service registry controller if a MemberRoll is specified, because Maistra cannot read namespace objects. This will affect the behavior of multi-network deployments that do not use mesh networks for configuration, i.e. a namespace cannot be labeled with a default network now. MAISTRA-2197: Push first update when cache is warm (maistra#294) Change SMMR Controller behavior to only send the first update to listeners when it has a list of members ready. In other words, when cache is synced. Before this, the first update was sent with only one hardcoded member: The control plane namespace. Now it is sent with the full list of SMMR members. While on that, switch to our own log scope, to facilitate debugging. Manual cherry pick of maistra#291 MAISTRA-2233: Start xns-informers with empty namespace set (maistra#303) The multi-namespace informers created by xns-informers default to watching all namespaces to match upstream behaviour. This causes permissions issues in Maistra because they will do this until the first update from the MemberRoll controller sets the correct set of namespaces on each informer. We should instead explicitly configure them with an empty set of namespaces at startup. MAISTRA-2234: Seed MemberRoll listeners with system namespace (maistra#302) The MemberRoll controller was changed in MAISTRA-2197 to not send the initial update with just the system namespace to all listeners. This can be a problem when the user hasn't created an SMMR resource yet, because any listeners registered before the caches sync may never get an update informing them to watch the system namespace. This attempts to work around the issue by having all listeners individually wait on the caches to sync, then seed just the system namespace if no SMMR resource is found. MAISTRA-2271: Update xns-informers to fix delete events issue (maistra#315) This updates xns-informers to include a fix for sending delete events for all objects when a namespace is no longer watched. See: maistra/xns-informer#12
MAISTRA-2051: Add xns-informer for Kubernetes types (maistra#223) * vendor: Add github.com/maistra/xns-informer * Update mirrored licenses to fix gen-check * MAISTRA-2051: Add xns-informer for Kubernetes types This integrates the xns-informer library for multi-namespace support, but only for core Kubernetes types. The informers are hard-coded to watch all namespaces here. The integration with MemberRoll will come in a follow-up. MAISTRA-2051 Add xns-informer for Istio types (maistra#221) MAISTRA-2051: Add MemberRollController (maistra#227) * MAISTRA-2051: Add MemberRollController Includes the following: * 75742b0 - Add Makefile for Maistra client generation This adds a Makefile with tasks for generating the Maistra specific clients. It is adapted from the one in the Istio client-go repository. * 5f8562c - Add MemberRollController Squashed commit, consisting of: * MAISTRA-417: Add MemberRollController * MAISTRA-450: Switch across to ConfiguredMembers and check existing config for changes * MAISTRA-1005 Do not expect namespaces to have a stable ordering The clients have also been regenerated. * 1b7a89d - Add missing licenses * fe2f8cd - Fix Copyright holder * 06ea2db - MAISTRA-1666: Add `go mod vendor` as part of `make gen` This is to make sure all PR's will have an updated vendor directory. The `gencheck` prow job will ensure that. * MAISTRA-2051: Update MemberRollController for xns-informers * MAISTRA-2051: Add AddMemberRoll to kube client * MAISTRA-2051: Configure MemberRoll controller in istiod MAISTRA-2051: Add xns-informer for Service APIs (maistra#229) * MAISTRA-2051: Update xns-informers * MAISTRA-2051: Add xns-informer for Service APIs MAISTRA-2051: Use shared Kubernetes client in galley (maistra#241) This moves galley to the shared Kubernetes client, which will let it use xns-informers for multi-namespace support like everything else. MAISTRA-2051: Update xns-informers to latest (maistra#252) * MAISTRA-2051: Reset Kubernetes client to release-1.8 state * MAISTRA-2051: Use xns-informers in Kubernetes client * MAISTRA-2051: Un-skip tests with xns-informers issues These tests were skipped because of issues with xns-informers, which have now been solved. They should no longer be skipped. * MAISTRA-2051: Update xns-informers to latest * MAISTRA-2051: Skip problematic integration test: TestDashboard MAISTRA-2051: Use MultiNamespaceInformer in galley (maistra#254) * Revert "MAISTRA-2051: Use shared Kubernetes client in galley (maistra#241)" This reverts commit 0b1567a. * MAISTRA-2051: Use MultiNamespaceInformer in galley This is a rework of the previous change that used the central Kubernetes client in Galley. The watchers in Galley manage stopping and starting individual informers, which doesn't work well with the factory returning cached informers. This creates multi-namespace informers individually instead of using the central factory. It's also a much smaller change overall and doesn't affect the tests. * MAISTRA-2051: Add GetMemberRoll method to Kubernetes client * MAISTRA-2051: Integrate MemberRoll with Galley This configures the mulit-namespace aware infomers in Galley to respond to changes in the set of namespaces via the MemberRoll. This includes parts of the following: - 4b70b8d MAISTRA-1895 Add option to enable/disable CRD scan - 6e8019e MAISTRA-1968 allow analyzer to work with multi list watcher MAISTRA-1724: Don't watch namespaces if MemberRoll is used (maistra#257) Rewrite of the following for Maistra 2.1 / Istio 1.8 rebase: a161a53 - MAISTRA-1724 Don't watch namespaces if MRC is used (maistra#161) MAISTRA-1755: invoke UpdateNamespaces() as part of MemberRollController.Register() Cherry-pick of f0eed15 for Maistra 2.1 / Istio 1.8 rebase. MAISTRA-1724: Better hanlde deletion in NamespaceController MAISTRA-2153: Disable namespace informer if MemberRoll is used (maistra#283) This causes istiod to skip creating the namespace informer in the Kubernetes service registry controller if a MemberRoll is specified, because Maistra cannot read namespace objects. This will affect the behavior of multi-network deployments that do not use mesh networks for configuration, i.e. a namespace cannot be labeled with a default network now. MAISTRA-2197: Push first update when cache is warm (maistra#294) Change SMMR Controller behavior to only send the first update to listeners when it has a list of members ready. In other words, when cache is synced. Before this, the first update was sent with only one hardcoded member: The control plane namespace. Now it is sent with the full list of SMMR members. While on that, switch to our own log scope, to facilitate debugging. Manual cherry pick of maistra#291 MAISTRA-2233: Start xns-informers with empty namespace set (maistra#303) The multi-namespace informers created by xns-informers default to watching all namespaces to match upstream behaviour. This causes permissions issues in Maistra because they will do this until the first update from the MemberRoll controller sets the correct set of namespaces on each informer. We should instead explicitly configure them with an empty set of namespaces at startup. MAISTRA-2234: Seed MemberRoll listeners with system namespace (maistra#302) The MemberRoll controller was changed in MAISTRA-2197 to not send the initial update with just the system namespace to all listeners. This can be a problem when the user hasn't created an SMMR resource yet, because any listeners registered before the caches sync may never get an update informing them to watch the system namespace. This attempts to work around the issue by having all listeners individually wait on the caches to sync, then seed just the system namespace if no SMMR resource is found. MAISTRA-2271: Update xns-informers to fix delete events issue (maistra#315) This updates xns-informers to include a fix for sending delete events for all objects when a namespace is no longer watched. See: maistra/xns-informer#12
MAISTRA-2051: Add xns-informer for Kubernetes types (maistra#223) * vendor: Add github.com/maistra/xns-informer * Update mirrored licenses to fix gen-check * MAISTRA-2051: Add xns-informer for Kubernetes types This integrates the xns-informer library for multi-namespace support, but only for core Kubernetes types. The informers are hard-coded to watch all namespaces here. The integration with MemberRoll will come in a follow-up. MAISTRA-2051 Add xns-informer for Istio types (maistra#221) MAISTRA-2051: Add MemberRollController (maistra#227) * MAISTRA-2051: Add MemberRollController Includes the following: * 75742b0 - Add Makefile for Maistra client generation This adds a Makefile with tasks for generating the Maistra specific clients. It is adapted from the one in the Istio client-go repository. * 5f8562c - Add MemberRollController Squashed commit, consisting of: * MAISTRA-417: Add MemberRollController * MAISTRA-450: Switch across to ConfiguredMembers and check existing config for changes * MAISTRA-1005 Do not expect namespaces to have a stable ordering The clients have also been regenerated. * 1b7a89d - Add missing licenses * fe2f8cd - Fix Copyright holder * 06ea2db - MAISTRA-1666: Add `go mod vendor` as part of `make gen` This is to make sure all PR's will have an updated vendor directory. The `gencheck` prow job will ensure that. * MAISTRA-2051: Update MemberRollController for xns-informers * MAISTRA-2051: Add AddMemberRoll to kube client * MAISTRA-2051: Configure MemberRoll controller in istiod MAISTRA-2051: Add xns-informer for Service APIs (maistra#229) * MAISTRA-2051: Update xns-informers * MAISTRA-2051: Add xns-informer for Service APIs MAISTRA-2051: Use shared Kubernetes client in galley (maistra#241) This moves galley to the shared Kubernetes client, which will let it use xns-informers for multi-namespace support like everything else. MAISTRA-2051: Update xns-informers to latest (maistra#252) * MAISTRA-2051: Reset Kubernetes client to release-1.8 state * MAISTRA-2051: Use xns-informers in Kubernetes client * MAISTRA-2051: Un-skip tests with xns-informers issues These tests were skipped because of issues with xns-informers, which have now been solved. They should no longer be skipped. * MAISTRA-2051: Update xns-informers to latest * MAISTRA-2051: Skip problematic integration test: TestDashboard MAISTRA-2051: Use MultiNamespaceInformer in galley (maistra#254) * Revert "MAISTRA-2051: Use shared Kubernetes client in galley (maistra#241)" This reverts commit 0b1567a. * MAISTRA-2051: Use MultiNamespaceInformer in galley This is a rework of the previous change that used the central Kubernetes client in Galley. The watchers in Galley manage stopping and starting individual informers, which doesn't work well with the factory returning cached informers. This creates multi-namespace informers individually instead of using the central factory. It's also a much smaller change overall and doesn't affect the tests. * MAISTRA-2051: Add GetMemberRoll method to Kubernetes client * MAISTRA-2051: Integrate MemberRoll with Galley This configures the mulit-namespace aware infomers in Galley to respond to changes in the set of namespaces via the MemberRoll. This includes parts of the following: - 4b70b8d MAISTRA-1895 Add option to enable/disable CRD scan - 6e8019e MAISTRA-1968 allow analyzer to work with multi list watcher MAISTRA-1724: Don't watch namespaces if MemberRoll is used (maistra#257) Rewrite of the following for Maistra 2.1 / Istio 1.8 rebase: a161a53 - MAISTRA-1724 Don't watch namespaces if MRC is used (maistra#161) MAISTRA-1755: invoke UpdateNamespaces() as part of MemberRollController.Register() Cherry-pick of f0eed15 for Maistra 2.1 / Istio 1.8 rebase. MAISTRA-1724: Better hanlde deletion in NamespaceController MAISTRA-2153: Disable namespace informer if MemberRoll is used (maistra#283) This causes istiod to skip creating the namespace informer in the Kubernetes service registry controller if a MemberRoll is specified, because Maistra cannot read namespace objects. This will affect the behavior of multi-network deployments that do not use mesh networks for configuration, i.e. a namespace cannot be labeled with a default network now. MAISTRA-2197: Push first update when cache is warm (maistra#294) Change SMMR Controller behavior to only send the first update to listeners when it has a list of members ready. In other words, when cache is synced. Before this, the first update was sent with only one hardcoded member: The control plane namespace. Now it is sent with the full list of SMMR members. While on that, switch to our own log scope, to facilitate debugging. Manual cherry pick of maistra#291 MAISTRA-2233: Start xns-informers with empty namespace set (maistra#303) The multi-namespace informers created by xns-informers default to watching all namespaces to match upstream behaviour. This causes permissions issues in Maistra because they will do this until the first update from the MemberRoll controller sets the correct set of namespaces on each informer. We should instead explicitly configure them with an empty set of namespaces at startup. MAISTRA-2234: Seed MemberRoll listeners with system namespace (maistra#302) The MemberRoll controller was changed in MAISTRA-2197 to not send the initial update with just the system namespace to all listeners. This can be a problem when the user hasn't created an SMMR resource yet, because any listeners registered before the caches sync may never get an update informing them to watch the system namespace. This attempts to work around the issue by having all listeners individually wait on the caches to sync, then seed just the system namespace if no SMMR resource is found. MAISTRA-2271: Update xns-informers to fix delete events issue (maistra#315) This updates xns-informers to include a fix for sending delete events for all objects when a namespace is no longer watched. See: maistra/xns-informer#12
MAISTRA-2051: Add xns-informer for Kubernetes types (#223) * vendor: Add github.com/maistra/xns-informer * Update mirrored licenses to fix gen-check * MAISTRA-2051: Add xns-informer for Kubernetes types This integrates the xns-informer library for multi-namespace support, but only for core Kubernetes types. The informers are hard-coded to watch all namespaces here. The integration with MemberRoll will come in a follow-up. MAISTRA-2051 Add xns-informer for Istio types (#221) MAISTRA-2051: Add MemberRollController (#227) * MAISTRA-2051: Add MemberRollController Includes the following: * 75742b0 - Add Makefile for Maistra client generation This adds a Makefile with tasks for generating the Maistra specific clients. It is adapted from the one in the Istio client-go repository. * 5f8562c - Add MemberRollController Squashed commit, consisting of: * MAISTRA-417: Add MemberRollController * MAISTRA-450: Switch across to ConfiguredMembers and check existing config for changes * MAISTRA-1005 Do not expect namespaces to have a stable ordering The clients have also been regenerated. * 1b7a89d - Add missing licenses * fe2f8cd - Fix Copyright holder * 06ea2db - MAISTRA-1666: Add `go mod vendor` as part of `make gen` This is to make sure all PR's will have an updated vendor directory. The `gencheck` prow job will ensure that. * MAISTRA-2051: Update MemberRollController for xns-informers * MAISTRA-2051: Add AddMemberRoll to kube client * MAISTRA-2051: Configure MemberRoll controller in istiod MAISTRA-2051: Add xns-informer for Service APIs (#229) * MAISTRA-2051: Update xns-informers * MAISTRA-2051: Add xns-informer for Service APIs MAISTRA-2051: Use shared Kubernetes client in galley (#241) This moves galley to the shared Kubernetes client, which will let it use xns-informers for multi-namespace support like everything else. MAISTRA-2051: Update xns-informers to latest (#252) * MAISTRA-2051: Reset Kubernetes client to release-1.8 state * MAISTRA-2051: Use xns-informers in Kubernetes client * MAISTRA-2051: Un-skip tests with xns-informers issues These tests were skipped because of issues with xns-informers, which have now been solved. They should no longer be skipped. * MAISTRA-2051: Update xns-informers to latest * MAISTRA-2051: Skip problematic integration test: TestDashboard MAISTRA-2051: Use MultiNamespaceInformer in galley (#254) * Revert "MAISTRA-2051: Use shared Kubernetes client in galley (#241)" This reverts commit 0b1567a. * MAISTRA-2051: Use MultiNamespaceInformer in galley This is a rework of the previous change that used the central Kubernetes client in Galley. The watchers in Galley manage stopping and starting individual informers, which doesn't work well with the factory returning cached informers. This creates multi-namespace informers individually instead of using the central factory. It's also a much smaller change overall and doesn't affect the tests. * MAISTRA-2051: Add GetMemberRoll method to Kubernetes client * MAISTRA-2051: Integrate MemberRoll with Galley This configures the mulit-namespace aware infomers in Galley to respond to changes in the set of namespaces via the MemberRoll. This includes parts of the following: - 4b70b8d MAISTRA-1895 Add option to enable/disable CRD scan - 6e8019e MAISTRA-1968 allow analyzer to work with multi list watcher MAISTRA-1724: Don't watch namespaces if MemberRoll is used (#257) Rewrite of the following for Maistra 2.1 / Istio 1.8 rebase: a161a53 - MAISTRA-1724 Don't watch namespaces if MRC is used (#161) MAISTRA-1755: invoke UpdateNamespaces() as part of MemberRollController.Register() Cherry-pick of f0eed15 for Maistra 2.1 / Istio 1.8 rebase. MAISTRA-1724: Better hanlde deletion in NamespaceController MAISTRA-2153: Disable namespace informer if MemberRoll is used (#283) This causes istiod to skip creating the namespace informer in the Kubernetes service registry controller if a MemberRoll is specified, because Maistra cannot read namespace objects. This will affect the behavior of multi-network deployments that do not use mesh networks for configuration, i.e. a namespace cannot be labeled with a default network now. MAISTRA-2197: Push first update when cache is warm (#294) Change SMMR Controller behavior to only send the first update to listeners when it has a list of members ready. In other words, when cache is synced. Before this, the first update was sent with only one hardcoded member: The control plane namespace. Now it is sent with the full list of SMMR members. While on that, switch to our own log scope, to facilitate debugging. Manual cherry pick of #291 MAISTRA-2233: Start xns-informers with empty namespace set (#303) The multi-namespace informers created by xns-informers default to watching all namespaces to match upstream behaviour. This causes permissions issues in Maistra because they will do this until the first update from the MemberRoll controller sets the correct set of namespaces on each informer. We should instead explicitly configure them with an empty set of namespaces at startup. MAISTRA-2234: Seed MemberRoll listeners with system namespace (#302) The MemberRoll controller was changed in MAISTRA-2197 to not send the initial update with just the system namespace to all listeners. This can be a problem when the user hasn't created an SMMR resource yet, because any listeners registered before the caches sync may never get an update informing them to watch the system namespace. This attempts to work around the issue by having all listeners individually wait on the caches to sync, then seed just the system namespace if no SMMR resource is found. MAISTRA-2271: Update xns-informers to fix delete events issue (#315) This updates xns-informers to include a fix for sending delete events for all objects when a namespace is no longer watched. See: maistra/xns-informer#12
MAISTRA-2051: Add xns-informer for Kubernetes types (maistra#223) * vendor: Add github.com/maistra/xns-informer * Update mirrored licenses to fix gen-check * MAISTRA-2051: Add xns-informer for Kubernetes types This integrates the xns-informer library for multi-namespace support, but only for core Kubernetes types. The informers are hard-coded to watch all namespaces here. The integration with MemberRoll will come in a follow-up. MAISTRA-2051 Add xns-informer for Istio types (maistra#221) MAISTRA-2051: Add MemberRollController (maistra#227) * MAISTRA-2051: Add MemberRollController Includes the following: * 75742b0 - Add Makefile for Maistra client generation This adds a Makefile with tasks for generating the Maistra specific clients. It is adapted from the one in the Istio client-go repository. * 5f8562c - Add MemberRollController Squashed commit, consisting of: * MAISTRA-417: Add MemberRollController * MAISTRA-450: Switch across to ConfiguredMembers and check existing config for changes * MAISTRA-1005 Do not expect namespaces to have a stable ordering The clients have also been regenerated. * 1b7a89d - Add missing licenses * fe2f8cd - Fix Copyright holder * 06ea2db - MAISTRA-1666: Add `go mod vendor` as part of `make gen` This is to make sure all PR's will have an updated vendor directory. The `gencheck` prow job will ensure that. * MAISTRA-2051: Update MemberRollController for xns-informers * MAISTRA-2051: Add AddMemberRoll to kube client * MAISTRA-2051: Configure MemberRoll controller in istiod MAISTRA-2051: Add xns-informer for Service APIs (maistra#229) * MAISTRA-2051: Update xns-informers * MAISTRA-2051: Add xns-informer for Service APIs MAISTRA-2051: Use shared Kubernetes client in galley (maistra#241) This moves galley to the shared Kubernetes client, which will let it use xns-informers for multi-namespace support like everything else. MAISTRA-2051: Update xns-informers to latest (maistra#252) * MAISTRA-2051: Reset Kubernetes client to release-1.8 state * MAISTRA-2051: Use xns-informers in Kubernetes client * MAISTRA-2051: Un-skip tests with xns-informers issues These tests were skipped because of issues with xns-informers, which have now been solved. They should no longer be skipped. * MAISTRA-2051: Update xns-informers to latest * MAISTRA-2051: Skip problematic integration test: TestDashboard MAISTRA-2051: Use MultiNamespaceInformer in galley (maistra#254) * Revert "MAISTRA-2051: Use shared Kubernetes client in galley (maistra#241)" This reverts commit 0b1567a. * MAISTRA-2051: Use MultiNamespaceInformer in galley This is a rework of the previous change that used the central Kubernetes client in Galley. The watchers in Galley manage stopping and starting individual informers, which doesn't work well with the factory returning cached informers. This creates multi-namespace informers individually instead of using the central factory. It's also a much smaller change overall and doesn't affect the tests. * MAISTRA-2051: Add GetMemberRoll method to Kubernetes client * MAISTRA-2051: Integrate MemberRoll with Galley This configures the mulit-namespace aware infomers in Galley to respond to changes in the set of namespaces via the MemberRoll. This includes parts of the following: - 4b70b8d MAISTRA-1895 Add option to enable/disable CRD scan - 6e8019e MAISTRA-1968 allow analyzer to work with multi list watcher MAISTRA-1724: Don't watch namespaces if MemberRoll is used (maistra#257) Rewrite of the following for Maistra 2.1 / Istio 1.8 rebase: a161a53 - MAISTRA-1724 Don't watch namespaces if MRC is used (maistra#161) MAISTRA-1755: invoke UpdateNamespaces() as part of MemberRollController.Register() Cherry-pick of f0eed15 for Maistra 2.1 / Istio 1.8 rebase. MAISTRA-1724: Better hanlde deletion in NamespaceController MAISTRA-2153: Disable namespace informer if MemberRoll is used (maistra#283) This causes istiod to skip creating the namespace informer in the Kubernetes service registry controller if a MemberRoll is specified, because Maistra cannot read namespace objects. This will affect the behavior of multi-network deployments that do not use mesh networks for configuration, i.e. a namespace cannot be labeled with a default network now. MAISTRA-2197: Push first update when cache is warm (maistra#294) Change SMMR Controller behavior to only send the first update to listeners when it has a list of members ready. In other words, when cache is synced. Before this, the first update was sent with only one hardcoded member: The control plane namespace. Now it is sent with the full list of SMMR members. While on that, switch to our own log scope, to facilitate debugging. Manual cherry pick of maistra#291 MAISTRA-2233: Start xns-informers with empty namespace set (maistra#303) The multi-namespace informers created by xns-informers default to watching all namespaces to match upstream behaviour. This causes permissions issues in Maistra because they will do this until the first update from the MemberRoll controller sets the correct set of namespaces on each informer. We should instead explicitly configure them with an empty set of namespaces at startup. MAISTRA-2234: Seed MemberRoll listeners with system namespace (maistra#302) The MemberRoll controller was changed in MAISTRA-2197 to not send the initial update with just the system namespace to all listeners. This can be a problem when the user hasn't created an SMMR resource yet, because any listeners registered before the caches sync may never get an update informing them to watch the system namespace. This attempts to work around the issue by having all listeners individually wait on the caches to sync, then seed just the system namespace if no SMMR resource is found. MAISTRA-2271: Update xns-informers to fix delete events issue (maistra#315) This updates xns-informers to include a fix for sending delete events for all objects when a namespace is no longer watched. See: maistra/xns-informer#12
MAISTRA-2051: Add xns-informer for Kubernetes types (maistra#223) * vendor: Add github.com/maistra/xns-informer * Update mirrored licenses to fix gen-check * MAISTRA-2051: Add xns-informer for Kubernetes types This integrates the xns-informer library for multi-namespace support, but only for core Kubernetes types. The informers are hard-coded to watch all namespaces here. The integration with MemberRoll will come in a follow-up. MAISTRA-2051 Add xns-informer for Istio types (maistra#221) MAISTRA-2051: Add MemberRollController (maistra#227) * MAISTRA-2051: Add MemberRollController Includes the following: * 75742b0 - Add Makefile for Maistra client generation This adds a Makefile with tasks for generating the Maistra specific clients. It is adapted from the one in the Istio client-go repository. * 5f8562c - Add MemberRollController Squashed commit, consisting of: * MAISTRA-417: Add MemberRollController * MAISTRA-450: Switch across to ConfiguredMembers and check existing config for changes * MAISTRA-1005 Do not expect namespaces to have a stable ordering The clients have also been regenerated. * 1b7a89d - Add missing licenses * fe2f8cd - Fix Copyright holder * 06ea2db - MAISTRA-1666: Add `go mod vendor` as part of `make gen` This is to make sure all PR's will have an updated vendor directory. The `gencheck` prow job will ensure that. * MAISTRA-2051: Update MemberRollController for xns-informers * MAISTRA-2051: Add AddMemberRoll to kube client * MAISTRA-2051: Configure MemberRoll controller in istiod MAISTRA-2051: Add xns-informer for Service APIs (maistra#229) * MAISTRA-2051: Update xns-informers * MAISTRA-2051: Add xns-informer for Service APIs MAISTRA-2051: Use shared Kubernetes client in galley (maistra#241) This moves galley to the shared Kubernetes client, which will let it use xns-informers for multi-namespace support like everything else. MAISTRA-2051: Update xns-informers to latest (maistra#252) * MAISTRA-2051: Reset Kubernetes client to release-1.8 state * MAISTRA-2051: Use xns-informers in Kubernetes client * MAISTRA-2051: Un-skip tests with xns-informers issues These tests were skipped because of issues with xns-informers, which have now been solved. They should no longer be skipped. * MAISTRA-2051: Update xns-informers to latest * MAISTRA-2051: Skip problematic integration test: TestDashboard MAISTRA-2051: Use MultiNamespaceInformer in galley (maistra#254) * Revert "MAISTRA-2051: Use shared Kubernetes client in galley (maistra#241)" This reverts commit 0b1567a. * MAISTRA-2051: Use MultiNamespaceInformer in galley This is a rework of the previous change that used the central Kubernetes client in Galley. The watchers in Galley manage stopping and starting individual informers, which doesn't work well with the factory returning cached informers. This creates multi-namespace informers individually instead of using the central factory. It's also a much smaller change overall and doesn't affect the tests. * MAISTRA-2051: Add GetMemberRoll method to Kubernetes client * MAISTRA-2051: Integrate MemberRoll with Galley This configures the mulit-namespace aware infomers in Galley to respond to changes in the set of namespaces via the MemberRoll. This includes parts of the following: - 4b70b8d MAISTRA-1895 Add option to enable/disable CRD scan - 6e8019e MAISTRA-1968 allow analyzer to work with multi list watcher MAISTRA-1724: Don't watch namespaces if MemberRoll is used (maistra#257) Rewrite of the following for Maistra 2.1 / Istio 1.8 rebase: a161a53 - MAISTRA-1724 Don't watch namespaces if MRC is used (maistra#161) MAISTRA-1755: invoke UpdateNamespaces() as part of MemberRollController.Register() Cherry-pick of f0eed15 for Maistra 2.1 / Istio 1.8 rebase. MAISTRA-1724: Better hanlde deletion in NamespaceController MAISTRA-2153: Disable namespace informer if MemberRoll is used (maistra#283) This causes istiod to skip creating the namespace informer in the Kubernetes service registry controller if a MemberRoll is specified, because Maistra cannot read namespace objects. This will affect the behavior of multi-network deployments that do not use mesh networks for configuration, i.e. a namespace cannot be labeled with a default network now. MAISTRA-2197: Push first update when cache is warm (maistra#294) Change SMMR Controller behavior to only send the first update to listeners when it has a list of members ready. In other words, when cache is synced. Before this, the first update was sent with only one hardcoded member: The control plane namespace. Now it is sent with the full list of SMMR members. While on that, switch to our own log scope, to facilitate debugging. Manual cherry pick of maistra#291 MAISTRA-2233: Start xns-informers with empty namespace set (maistra#303) The multi-namespace informers created by xns-informers default to watching all namespaces to match upstream behaviour. This causes permissions issues in Maistra because they will do this until the first update from the MemberRoll controller sets the correct set of namespaces on each informer. We should instead explicitly configure them with an empty set of namespaces at startup. MAISTRA-2234: Seed MemberRoll listeners with system namespace (maistra#302) The MemberRoll controller was changed in MAISTRA-2197 to not send the initial update with just the system namespace to all listeners. This can be a problem when the user hasn't created an SMMR resource yet, because any listeners registered before the caches sync may never get an update informing them to watch the system namespace. This attempts to work around the issue by having all listeners individually wait on the caches to sync, then seed just the system namespace if no SMMR resource is found. MAISTRA-2271: Update xns-informers to fix delete events issue (maistra#315) This updates xns-informers to include a fix for sending delete events for all objects when a namespace is no longer watched. See: maistra/xns-informer#12
MAISTRA-2051: Add xns-informer for Kubernetes types (maistra#223) * vendor: Add github.com/maistra/xns-informer * Update mirrored licenses to fix gen-check * MAISTRA-2051: Add xns-informer for Kubernetes types This integrates the xns-informer library for multi-namespace support, but only for core Kubernetes types. The informers are hard-coded to watch all namespaces here. The integration with MemberRoll will come in a follow-up. MAISTRA-2051 Add xns-informer for Istio types (maistra#221) MAISTRA-2051: Add MemberRollController (maistra#227) * MAISTRA-2051: Add MemberRollController Includes the following: * 75742b0 - Add Makefile for Maistra client generation This adds a Makefile with tasks for generating the Maistra specific clients. It is adapted from the one in the Istio client-go repository. * 5f8562c - Add MemberRollController Squashed commit, consisting of: * MAISTRA-417: Add MemberRollController * MAISTRA-450: Switch across to ConfiguredMembers and check existing config for changes * MAISTRA-1005 Do not expect namespaces to have a stable ordering The clients have also been regenerated. * 1b7a89d - Add missing licenses * fe2f8cd - Fix Copyright holder * 06ea2db - MAISTRA-1666: Add `go mod vendor` as part of `make gen` This is to make sure all PR's will have an updated vendor directory. The `gencheck` prow job will ensure that. * MAISTRA-2051: Update MemberRollController for xns-informers * MAISTRA-2051: Add AddMemberRoll to kube client * MAISTRA-2051: Configure MemberRoll controller in istiod MAISTRA-2051: Add xns-informer for Service APIs (maistra#229) * MAISTRA-2051: Update xns-informers * MAISTRA-2051: Add xns-informer for Service APIs MAISTRA-2051: Use shared Kubernetes client in galley (maistra#241) This moves galley to the shared Kubernetes client, which will let it use xns-informers for multi-namespace support like everything else. MAISTRA-2051: Update xns-informers to latest (maistra#252) * MAISTRA-2051: Reset Kubernetes client to release-1.8 state * MAISTRA-2051: Use xns-informers in Kubernetes client * MAISTRA-2051: Un-skip tests with xns-informers issues These tests were skipped because of issues with xns-informers, which have now been solved. They should no longer be skipped. * MAISTRA-2051: Update xns-informers to latest * MAISTRA-2051: Skip problematic integration test: TestDashboard MAISTRA-2051: Use MultiNamespaceInformer in galley (maistra#254) * Revert "MAISTRA-2051: Use shared Kubernetes client in galley (maistra#241)" This reverts commit 0b1567a. * MAISTRA-2051: Use MultiNamespaceInformer in galley This is a rework of the previous change that used the central Kubernetes client in Galley. The watchers in Galley manage stopping and starting individual informers, which doesn't work well with the factory returning cached informers. This creates multi-namespace informers individually instead of using the central factory. It's also a much smaller change overall and doesn't affect the tests. * MAISTRA-2051: Add GetMemberRoll method to Kubernetes client * MAISTRA-2051: Integrate MemberRoll with Galley This configures the mulit-namespace aware infomers in Galley to respond to changes in the set of namespaces via the MemberRoll. This includes parts of the following: - 4b70b8d MAISTRA-1895 Add option to enable/disable CRD scan - 6e8019e MAISTRA-1968 allow analyzer to work with multi list watcher MAISTRA-1724: Don't watch namespaces if MemberRoll is used (maistra#257) Rewrite of the following for Maistra 2.1 / Istio 1.8 rebase: a161a53 - MAISTRA-1724 Don't watch namespaces if MRC is used (maistra#161) MAISTRA-1755: invoke UpdateNamespaces() as part of MemberRollController.Register() Cherry-pick of f0eed15 for Maistra 2.1 / Istio 1.8 rebase. MAISTRA-1724: Better hanlde deletion in NamespaceController MAISTRA-2153: Disable namespace informer if MemberRoll is used (maistra#283) This causes istiod to skip creating the namespace informer in the Kubernetes service registry controller if a MemberRoll is specified, because Maistra cannot read namespace objects. This will affect the behavior of multi-network deployments that do not use mesh networks for configuration, i.e. a namespace cannot be labeled with a default network now. MAISTRA-2197: Push first update when cache is warm (maistra#294) Change SMMR Controller behavior to only send the first update to listeners when it has a list of members ready. In other words, when cache is synced. Before this, the first update was sent with only one hardcoded member: The control plane namespace. Now it is sent with the full list of SMMR members. While on that, switch to our own log scope, to facilitate debugging. Manual cherry pick of maistra#291 MAISTRA-2233: Start xns-informers with empty namespace set (maistra#303) The multi-namespace informers created by xns-informers default to watching all namespaces to match upstream behaviour. This causes permissions issues in Maistra because they will do this until the first update from the MemberRoll controller sets the correct set of namespaces on each informer. We should instead explicitly configure them with an empty set of namespaces at startup. MAISTRA-2234: Seed MemberRoll listeners with system namespace (maistra#302) The MemberRoll controller was changed in MAISTRA-2197 to not send the initial update with just the system namespace to all listeners. This can be a problem when the user hasn't created an SMMR resource yet, because any listeners registered before the caches sync may never get an update informing them to watch the system namespace. This attempts to work around the issue by having all listeners individually wait on the caches to sync, then seed just the system namespace if no SMMR resource is found. MAISTRA-2271: Update xns-informers to fix delete events issue (maistra#315) This updates xns-informers to include a fix for sending delete events for all objects when a namespace is no longer watched. See: maistra/xns-informer#12
MAISTRA-2051: Add xns-informer for Kubernetes types (maistra#223) * vendor: Add github.com/maistra/xns-informer * Update mirrored licenses to fix gen-check * MAISTRA-2051: Add xns-informer for Kubernetes types This integrates the xns-informer library for multi-namespace support, but only for core Kubernetes types. The informers are hard-coded to watch all namespaces here. The integration with MemberRoll will come in a follow-up. MAISTRA-2051 Add xns-informer for Istio types (maistra#221) MAISTRA-2051: Add MemberRollController (maistra#227) * MAISTRA-2051: Add MemberRollController Includes the following: * 75742b0 - Add Makefile for Maistra client generation This adds a Makefile with tasks for generating the Maistra specific clients. It is adapted from the one in the Istio client-go repository. * 5f8562c - Add MemberRollController Squashed commit, consisting of: * MAISTRA-417: Add MemberRollController * MAISTRA-450: Switch across to ConfiguredMembers and check existing config for changes * MAISTRA-1005 Do not expect namespaces to have a stable ordering The clients have also been regenerated. * 1b7a89d - Add missing licenses * fe2f8cd - Fix Copyright holder * 06ea2db - MAISTRA-1666: Add `go mod vendor` as part of `make gen` This is to make sure all PR's will have an updated vendor directory. The `gencheck` prow job will ensure that. * MAISTRA-2051: Update MemberRollController for xns-informers * MAISTRA-2051: Add AddMemberRoll to kube client * MAISTRA-2051: Configure MemberRoll controller in istiod MAISTRA-2051: Add xns-informer for Service APIs (maistra#229) * MAISTRA-2051: Update xns-informers * MAISTRA-2051: Add xns-informer for Service APIs MAISTRA-2051: Use shared Kubernetes client in galley (maistra#241) This moves galley to the shared Kubernetes client, which will let it use xns-informers for multi-namespace support like everything else. MAISTRA-2051: Update xns-informers to latest (maistra#252) * MAISTRA-2051: Reset Kubernetes client to release-1.8 state * MAISTRA-2051: Use xns-informers in Kubernetes client * MAISTRA-2051: Un-skip tests with xns-informers issues These tests were skipped because of issues with xns-informers, which have now been solved. They should no longer be skipped. * MAISTRA-2051: Update xns-informers to latest * MAISTRA-2051: Skip problematic integration test: TestDashboard MAISTRA-2051: Use MultiNamespaceInformer in galley (maistra#254) * Revert "MAISTRA-2051: Use shared Kubernetes client in galley (maistra#241)" This reverts commit 0b1567a. * MAISTRA-2051: Use MultiNamespaceInformer in galley This is a rework of the previous change that used the central Kubernetes client in Galley. The watchers in Galley manage stopping and starting individual informers, which doesn't work well with the factory returning cached informers. This creates multi-namespace informers individually instead of using the central factory. It's also a much smaller change overall and doesn't affect the tests. * MAISTRA-2051: Add GetMemberRoll method to Kubernetes client * MAISTRA-2051: Integrate MemberRoll with Galley This configures the mulit-namespace aware infomers in Galley to respond to changes in the set of namespaces via the MemberRoll. This includes parts of the following: - 4b70b8d MAISTRA-1895 Add option to enable/disable CRD scan - 6e8019e MAISTRA-1968 allow analyzer to work with multi list watcher MAISTRA-1724: Don't watch namespaces if MemberRoll is used (maistra#257) Rewrite of the following for Maistra 2.1 / Istio 1.8 rebase: a161a53 - MAISTRA-1724 Don't watch namespaces if MRC is used (maistra#161) MAISTRA-1755: invoke UpdateNamespaces() as part of MemberRollController.Register() Cherry-pick of f0eed15 for Maistra 2.1 / Istio 1.8 rebase. MAISTRA-1724: Better hanlde deletion in NamespaceController MAISTRA-2153: Disable namespace informer if MemberRoll is used (maistra#283) This causes istiod to skip creating the namespace informer in the Kubernetes service registry controller if a MemberRoll is specified, because Maistra cannot read namespace objects. This will affect the behavior of multi-network deployments that do not use mesh networks for configuration, i.e. a namespace cannot be labeled with a default network now. MAISTRA-2197: Push first update when cache is warm (maistra#294) Change SMMR Controller behavior to only send the first update to listeners when it has a list of members ready. In other words, when cache is synced. Before this, the first update was sent with only one hardcoded member: The control plane namespace. Now it is sent with the full list of SMMR members. While on that, switch to our own log scope, to facilitate debugging. Manual cherry pick of maistra#291 MAISTRA-2233: Start xns-informers with empty namespace set (maistra#303) The multi-namespace informers created by xns-informers default to watching all namespaces to match upstream behaviour. This causes permissions issues in Maistra because they will do this until the first update from the MemberRoll controller sets the correct set of namespaces on each informer. We should instead explicitly configure them with an empty set of namespaces at startup. MAISTRA-2234: Seed MemberRoll listeners with system namespace (maistra#302) The MemberRoll controller was changed in MAISTRA-2197 to not send the initial update with just the system namespace to all listeners. This can be a problem when the user hasn't created an SMMR resource yet, because any listeners registered before the caches sync may never get an update informing them to watch the system namespace. This attempts to work around the issue by having all listeners individually wait on the caches to sync, then seed just the system namespace if no SMMR resource is found. MAISTRA-2271: Update xns-informers to fix delete events issue (maistra#315) This updates xns-informers to include a fix for sending delete events for all objects when a namespace is no longer watched. See: maistra/xns-informer#12
MAISTRA-2051: Add xns-informer for Kubernetes types (#223) * vendor: Add github.com/maistra/xns-informer * Update mirrored licenses to fix gen-check * MAISTRA-2051: Add xns-informer for Kubernetes types This integrates the xns-informer library for multi-namespace support, but only for core Kubernetes types. The informers are hard-coded to watch all namespaces here. The integration with MemberRoll will come in a follow-up. MAISTRA-2051 Add xns-informer for Istio types (#221) MAISTRA-2051: Add MemberRollController (#227) * MAISTRA-2051: Add MemberRollController Includes the following: * 75742b0 - Add Makefile for Maistra client generation This adds a Makefile with tasks for generating the Maistra specific clients. It is adapted from the one in the Istio client-go repository. * 5f8562c - Add MemberRollController Squashed commit, consisting of: * MAISTRA-417: Add MemberRollController * MAISTRA-450: Switch across to ConfiguredMembers and check existing config for changes * MAISTRA-1005 Do not expect namespaces to have a stable ordering The clients have also been regenerated. * 1b7a89d - Add missing licenses * fe2f8cd - Fix Copyright holder * 06ea2db - MAISTRA-1666: Add `go mod vendor` as part of `make gen` This is to make sure all PR's will have an updated vendor directory. The `gencheck` prow job will ensure that. * MAISTRA-2051: Update MemberRollController for xns-informers * MAISTRA-2051: Add AddMemberRoll to kube client * MAISTRA-2051: Configure MemberRoll controller in istiod MAISTRA-2051: Add xns-informer for Service APIs (#229) * MAISTRA-2051: Update xns-informers * MAISTRA-2051: Add xns-informer for Service APIs MAISTRA-2051: Use shared Kubernetes client in galley (#241) This moves galley to the shared Kubernetes client, which will let it use xns-informers for multi-namespace support like everything else. MAISTRA-2051: Update xns-informers to latest (#252) * MAISTRA-2051: Reset Kubernetes client to release-1.8 state * MAISTRA-2051: Use xns-informers in Kubernetes client * MAISTRA-2051: Un-skip tests with xns-informers issues These tests were skipped because of issues with xns-informers, which have now been solved. They should no longer be skipped. * MAISTRA-2051: Update xns-informers to latest * MAISTRA-2051: Skip problematic integration test: TestDashboard MAISTRA-2051: Use MultiNamespaceInformer in galley (#254) * Revert "MAISTRA-2051: Use shared Kubernetes client in galley (#241)" This reverts commit 0b1567a. * MAISTRA-2051: Use MultiNamespaceInformer in galley This is a rework of the previous change that used the central Kubernetes client in Galley. The watchers in Galley manage stopping and starting individual informers, which doesn't work well with the factory returning cached informers. This creates multi-namespace informers individually instead of using the central factory. It's also a much smaller change overall and doesn't affect the tests. * MAISTRA-2051: Add GetMemberRoll method to Kubernetes client * MAISTRA-2051: Integrate MemberRoll with Galley This configures the mulit-namespace aware infomers in Galley to respond to changes in the set of namespaces via the MemberRoll. This includes parts of the following: - 4b70b8d MAISTRA-1895 Add option to enable/disable CRD scan - 6e8019e MAISTRA-1968 allow analyzer to work with multi list watcher MAISTRA-1724: Don't watch namespaces if MemberRoll is used (#257) Rewrite of the following for Maistra 2.1 / Istio 1.8 rebase: a161a53 - MAISTRA-1724 Don't watch namespaces if MRC is used (#161) MAISTRA-1755: invoke UpdateNamespaces() as part of MemberRollController.Register() Cherry-pick of f0eed15 for Maistra 2.1 / Istio 1.8 rebase. MAISTRA-1724: Better hanlde deletion in NamespaceController MAISTRA-2153: Disable namespace informer if MemberRoll is used (#283) This causes istiod to skip creating the namespace informer in the Kubernetes service registry controller if a MemberRoll is specified, because Maistra cannot read namespace objects. This will affect the behavior of multi-network deployments that do not use mesh networks for configuration, i.e. a namespace cannot be labeled with a default network now. MAISTRA-2197: Push first update when cache is warm (#294) Change SMMR Controller behavior to only send the first update to listeners when it has a list of members ready. In other words, when cache is synced. Before this, the first update was sent with only one hardcoded member: The control plane namespace. Now it is sent with the full list of SMMR members. While on that, switch to our own log scope, to facilitate debugging. Manual cherry pick of #291 MAISTRA-2233: Start xns-informers with empty namespace set (#303) The multi-namespace informers created by xns-informers default to watching all namespaces to match upstream behaviour. This causes permissions issues in Maistra because they will do this until the first update from the MemberRoll controller sets the correct set of namespaces on each informer. We should instead explicitly configure them with an empty set of namespaces at startup. MAISTRA-2234: Seed MemberRoll listeners with system namespace (#302) The MemberRoll controller was changed in MAISTRA-2197 to not send the initial update with just the system namespace to all listeners. This can be a problem when the user hasn't created an SMMR resource yet, because any listeners registered before the caches sync may never get an update informing them to watch the system namespace. This attempts to work around the issue by having all listeners individually wait on the caches to sync, then seed just the system namespace if no SMMR resource is found. MAISTRA-2271: Update xns-informers to fix delete events issue (#315) This updates xns-informers to include a fix for sending delete events for all objects when a namespace is no longer watched. See: maistra/xns-informer#12
MAISTRA-2051: Add xns-informer for Kubernetes types (maistra#223) * vendor: Add github.com/maistra/xns-informer * Update mirrored licenses to fix gen-check * MAISTRA-2051: Add xns-informer for Kubernetes types This integrates the xns-informer library for multi-namespace support, but only for core Kubernetes types. The informers are hard-coded to watch all namespaces here. The integration with MemberRoll will come in a follow-up. MAISTRA-2051 Add xns-informer for Istio types (maistra#221) MAISTRA-2051: Add MemberRollController (maistra#227) * MAISTRA-2051: Add MemberRollController Includes the following: * 75742b0 - Add Makefile for Maistra client generation This adds a Makefile with tasks for generating the Maistra specific clients. It is adapted from the one in the Istio client-go repository. * 5f8562c - Add MemberRollController Squashed commit, consisting of: * MAISTRA-417: Add MemberRollController * MAISTRA-450: Switch across to ConfiguredMembers and check existing config for changes * MAISTRA-1005 Do not expect namespaces to have a stable ordering The clients have also been regenerated. * 1b7a89d - Add missing licenses * fe2f8cd - Fix Copyright holder * 06ea2db - MAISTRA-1666: Add `go mod vendor` as part of `make gen` This is to make sure all PR's will have an updated vendor directory. The `gencheck` prow job will ensure that. * MAISTRA-2051: Update MemberRollController for xns-informers * MAISTRA-2051: Add AddMemberRoll to kube client * MAISTRA-2051: Configure MemberRoll controller in istiod MAISTRA-2051: Add xns-informer for Service APIs (maistra#229) * MAISTRA-2051: Update xns-informers * MAISTRA-2051: Add xns-informer for Service APIs MAISTRA-2051: Use shared Kubernetes client in galley (maistra#241) This moves galley to the shared Kubernetes client, which will let it use xns-informers for multi-namespace support like everything else. MAISTRA-2051: Update xns-informers to latest (maistra#252) * MAISTRA-2051: Reset Kubernetes client to release-1.8 state * MAISTRA-2051: Use xns-informers in Kubernetes client * MAISTRA-2051: Un-skip tests with xns-informers issues These tests were skipped because of issues with xns-informers, which have now been solved. They should no longer be skipped. * MAISTRA-2051: Update xns-informers to latest * MAISTRA-2051: Skip problematic integration test: TestDashboard MAISTRA-2051: Use MultiNamespaceInformer in galley (maistra#254) * Revert "MAISTRA-2051: Use shared Kubernetes client in galley (maistra#241)" This reverts commit 0b1567a. * MAISTRA-2051: Use MultiNamespaceInformer in galley This is a rework of the previous change that used the central Kubernetes client in Galley. The watchers in Galley manage stopping and starting individual informers, which doesn't work well with the factory returning cached informers. This creates multi-namespace informers individually instead of using the central factory. It's also a much smaller change overall and doesn't affect the tests. * MAISTRA-2051: Add GetMemberRoll method to Kubernetes client * MAISTRA-2051: Integrate MemberRoll with Galley This configures the mulit-namespace aware infomers in Galley to respond to changes in the set of namespaces via the MemberRoll. This includes parts of the following: - 4b70b8d MAISTRA-1895 Add option to enable/disable CRD scan - 6e8019e MAISTRA-1968 allow analyzer to work with multi list watcher MAISTRA-1724: Don't watch namespaces if MemberRoll is used (maistra#257) Rewrite of the following for Maistra 2.1 / Istio 1.8 rebase: a161a53 - MAISTRA-1724 Don't watch namespaces if MRC is used (maistra#161) MAISTRA-1755: invoke UpdateNamespaces() as part of MemberRollController.Register() Cherry-pick of f0eed15 for Maistra 2.1 / Istio 1.8 rebase. MAISTRA-1724: Better hanlde deletion in NamespaceController MAISTRA-2153: Disable namespace informer if MemberRoll is used (maistra#283) This causes istiod to skip creating the namespace informer in the Kubernetes service registry controller if a MemberRoll is specified, because Maistra cannot read namespace objects. This will affect the behavior of multi-network deployments that do not use mesh networks for configuration, i.e. a namespace cannot be labeled with a default network now. MAISTRA-2197: Push first update when cache is warm (maistra#294) Change SMMR Controller behavior to only send the first update to listeners when it has a list of members ready. In other words, when cache is synced. Before this, the first update was sent with only one hardcoded member: The control plane namespace. Now it is sent with the full list of SMMR members. While on that, switch to our own log scope, to facilitate debugging. Manual cherry pick of maistra#291 MAISTRA-2233: Start xns-informers with empty namespace set (maistra#303) The multi-namespace informers created by xns-informers default to watching all namespaces to match upstream behaviour. This causes permissions issues in Maistra because they will do this until the first update from the MemberRoll controller sets the correct set of namespaces on each informer. We should instead explicitly configure them with an empty set of namespaces at startup. MAISTRA-2234: Seed MemberRoll listeners with system namespace (maistra#302) The MemberRoll controller was changed in MAISTRA-2197 to not send the initial update with just the system namespace to all listeners. This can be a problem when the user hasn't created an SMMR resource yet, because any listeners registered before the caches sync may never get an update informing them to watch the system namespace. This attempts to work around the issue by having all listeners individually wait on the caches to sync, then seed just the system namespace if no SMMR resource is found. MAISTRA-2271: Update xns-informers to fix delete events issue (maistra#315) This updates xns-informers to include a fix for sending delete events for all objects when a namespace is no longer watched. See: maistra/xns-informer#12 Co-authored-by: Brad Ison <brad.ison@redhat.com>
MAISTRA-2051: Add xns-informer for Kubernetes types (maistra#223) * vendor: Add github.com/maistra/xns-informer * Update mirrored licenses to fix gen-check * MAISTRA-2051: Add xns-informer for Kubernetes types This integrates the xns-informer library for multi-namespace support, but only for core Kubernetes types. The informers are hard-coded to watch all namespaces here. The integration with MemberRoll will come in a follow-up. MAISTRA-2051 Add xns-informer for Istio types (maistra#221) MAISTRA-2051: Add MemberRollController (maistra#227) * MAISTRA-2051: Add MemberRollController Includes the following: * 75742b0 - Add Makefile for Maistra client generation This adds a Makefile with tasks for generating the Maistra specific clients. It is adapted from the one in the Istio client-go repository. * 5f8562c - Add MemberRollController Squashed commit, consisting of: * MAISTRA-417: Add MemberRollController * MAISTRA-450: Switch across to ConfiguredMembers and check existing config for changes * MAISTRA-1005 Do not expect namespaces to have a stable ordering The clients have also been regenerated. * 1b7a89d - Add missing licenses * fe2f8cd - Fix Copyright holder * 06ea2db - MAISTRA-1666: Add `go mod vendor` as part of `make gen` This is to make sure all PR's will have an updated vendor directory. The `gencheck` prow job will ensure that. * MAISTRA-2051: Update MemberRollController for xns-informers * MAISTRA-2051: Add AddMemberRoll to kube client * MAISTRA-2051: Configure MemberRoll controller in istiod MAISTRA-2051: Add xns-informer for Service APIs (maistra#229) * MAISTRA-2051: Update xns-informers * MAISTRA-2051: Add xns-informer for Service APIs MAISTRA-2051: Use shared Kubernetes client in galley (maistra#241) This moves galley to the shared Kubernetes client, which will let it use xns-informers for multi-namespace support like everything else. MAISTRA-2051: Update xns-informers to latest (maistra#252) * MAISTRA-2051: Reset Kubernetes client to release-1.8 state * MAISTRA-2051: Use xns-informers in Kubernetes client * MAISTRA-2051: Un-skip tests with xns-informers issues These tests were skipped because of issues with xns-informers, which have now been solved. They should no longer be skipped. * MAISTRA-2051: Update xns-informers to latest * MAISTRA-2051: Skip problematic integration test: TestDashboard MAISTRA-2051: Use MultiNamespaceInformer in galley (maistra#254) * Revert "MAISTRA-2051: Use shared Kubernetes client in galley (maistra#241)" This reverts commit 0b1567a. * MAISTRA-2051: Use MultiNamespaceInformer in galley This is a rework of the previous change that used the central Kubernetes client in Galley. The watchers in Galley manage stopping and starting individual informers, which doesn't work well with the factory returning cached informers. This creates multi-namespace informers individually instead of using the central factory. It's also a much smaller change overall and doesn't affect the tests. * MAISTRA-2051: Add GetMemberRoll method to Kubernetes client * MAISTRA-2051: Integrate MemberRoll with Galley This configures the mulit-namespace aware infomers in Galley to respond to changes in the set of namespaces via the MemberRoll. This includes parts of the following: - 4b70b8d MAISTRA-1895 Add option to enable/disable CRD scan - 6e8019e MAISTRA-1968 allow analyzer to work with multi list watcher MAISTRA-1724: Don't watch namespaces if MemberRoll is used (maistra#257) Rewrite of the following for Maistra 2.1 / Istio 1.8 rebase: a161a53 - MAISTRA-1724 Don't watch namespaces if MRC is used (maistra#161) MAISTRA-1755: invoke UpdateNamespaces() as part of MemberRollController.Register() Cherry-pick of f0eed15 for Maistra 2.1 / Istio 1.8 rebase. MAISTRA-1724: Better hanlde deletion in NamespaceController MAISTRA-2153: Disable namespace informer if MemberRoll is used (maistra#283) This causes istiod to skip creating the namespace informer in the Kubernetes service registry controller if a MemberRoll is specified, because Maistra cannot read namespace objects. This will affect the behavior of multi-network deployments that do not use mesh networks for configuration, i.e. a namespace cannot be labeled with a default network now. MAISTRA-2197: Push first update when cache is warm (maistra#294) Change SMMR Controller behavior to only send the first update to listeners when it has a list of members ready. In other words, when cache is synced. Before this, the first update was sent with only one hardcoded member: The control plane namespace. Now it is sent with the full list of SMMR members. While on that, switch to our own log scope, to facilitate debugging. Manual cherry pick of maistra#291 MAISTRA-2233: Start xns-informers with empty namespace set (maistra#303) The multi-namespace informers created by xns-informers default to watching all namespaces to match upstream behaviour. This causes permissions issues in Maistra because they will do this until the first update from the MemberRoll controller sets the correct set of namespaces on each informer. We should instead explicitly configure them with an empty set of namespaces at startup. MAISTRA-2234: Seed MemberRoll listeners with system namespace (maistra#302) The MemberRoll controller was changed in MAISTRA-2197 to not send the initial update with just the system namespace to all listeners. This can be a problem when the user hasn't created an SMMR resource yet, because any listeners registered before the caches sync may never get an update informing them to watch the system namespace. This attempts to work around the issue by having all listeners individually wait on the caches to sync, then seed just the system namespace if no SMMR resource is found. MAISTRA-2271: Update xns-informers to fix delete events issue (maistra#315) This updates xns-informers to include a fix for sending delete events for all objects when a namespace is no longer watched. See: maistra/xns-informer#12 Co-authored-by: Brad Ison <brad.ison@redhat.com>
MAISTRA-2051: Add xns-informer for Kubernetes types (maistra#223) * vendor: Add github.com/maistra/xns-informer * Update mirrored licenses to fix gen-check * MAISTRA-2051: Add xns-informer for Kubernetes types This integrates the xns-informer library for multi-namespace support, but only for core Kubernetes types. The informers are hard-coded to watch all namespaces here. The integration with MemberRoll will come in a follow-up. MAISTRA-2051 Add xns-informer for Istio types (maistra#221) MAISTRA-2051: Add MemberRollController (maistra#227) * MAISTRA-2051: Add MemberRollController Includes the following: * 75742b0 - Add Makefile for Maistra client generation This adds a Makefile with tasks for generating the Maistra specific clients. It is adapted from the one in the Istio client-go repository. * 5f8562c - Add MemberRollController Squashed commit, consisting of: * MAISTRA-417: Add MemberRollController * MAISTRA-450: Switch across to ConfiguredMembers and check existing config for changes * MAISTRA-1005 Do not expect namespaces to have a stable ordering The clients have also been regenerated. * 1b7a89d - Add missing licenses * fe2f8cd - Fix Copyright holder * 06ea2db - MAISTRA-1666: Add `go mod vendor` as part of `make gen` This is to make sure all PR's will have an updated vendor directory. The `gencheck` prow job will ensure that. * MAISTRA-2051: Update MemberRollController for xns-informers * MAISTRA-2051: Add AddMemberRoll to kube client * MAISTRA-2051: Configure MemberRoll controller in istiod MAISTRA-2051: Add xns-informer for Service APIs (maistra#229) * MAISTRA-2051: Update xns-informers * MAISTRA-2051: Add xns-informer for Service APIs MAISTRA-2051: Use shared Kubernetes client in galley (maistra#241) This moves galley to the shared Kubernetes client, which will let it use xns-informers for multi-namespace support like everything else. MAISTRA-2051: Update xns-informers to latest (maistra#252) * MAISTRA-2051: Reset Kubernetes client to release-1.8 state * MAISTRA-2051: Use xns-informers in Kubernetes client * MAISTRA-2051: Un-skip tests with xns-informers issues These tests were skipped because of issues with xns-informers, which have now been solved. They should no longer be skipped. * MAISTRA-2051: Update xns-informers to latest * MAISTRA-2051: Skip problematic integration test: TestDashboard MAISTRA-2051: Use MultiNamespaceInformer in galley (maistra#254) * Revert "MAISTRA-2051: Use shared Kubernetes client in galley (maistra#241)" This reverts commit 0b1567a. * MAISTRA-2051: Use MultiNamespaceInformer in galley This is a rework of the previous change that used the central Kubernetes client in Galley. The watchers in Galley manage stopping and starting individual informers, which doesn't work well with the factory returning cached informers. This creates multi-namespace informers individually instead of using the central factory. It's also a much smaller change overall and doesn't affect the tests. * MAISTRA-2051: Add GetMemberRoll method to Kubernetes client * MAISTRA-2051: Integrate MemberRoll with Galley This configures the mulit-namespace aware infomers in Galley to respond to changes in the set of namespaces via the MemberRoll. This includes parts of the following: - 4b70b8d MAISTRA-1895 Add option to enable/disable CRD scan - 6e8019e MAISTRA-1968 allow analyzer to work with multi list watcher MAISTRA-1724: Don't watch namespaces if MemberRoll is used (maistra#257) Rewrite of the following for Maistra 2.1 / Istio 1.8 rebase: a161a53 - MAISTRA-1724 Don't watch namespaces if MRC is used (maistra#161) MAISTRA-1755: invoke UpdateNamespaces() as part of MemberRollController.Register() Cherry-pick of f0eed15 for Maistra 2.1 / Istio 1.8 rebase. MAISTRA-1724: Better hanlde deletion in NamespaceController MAISTRA-2153: Disable namespace informer if MemberRoll is used (maistra#283) This causes istiod to skip creating the namespace informer in the Kubernetes service registry controller if a MemberRoll is specified, because Maistra cannot read namespace objects. This will affect the behavior of multi-network deployments that do not use mesh networks for configuration, i.e. a namespace cannot be labeled with a default network now. MAISTRA-2197: Push first update when cache is warm (maistra#294) Change SMMR Controller behavior to only send the first update to listeners when it has a list of members ready. In other words, when cache is synced. Before this, the first update was sent with only one hardcoded member: The control plane namespace. Now it is sent with the full list of SMMR members. While on that, switch to our own log scope, to facilitate debugging. Manual cherry pick of maistra#291 MAISTRA-2233: Start xns-informers with empty namespace set (maistra#303) The multi-namespace informers created by xns-informers default to watching all namespaces to match upstream behaviour. This causes permissions issues in Maistra because they will do this until the first update from the MemberRoll controller sets the correct set of namespaces on each informer. We should instead explicitly configure them with an empty set of namespaces at startup. MAISTRA-2234: Seed MemberRoll listeners with system namespace (maistra#302) The MemberRoll controller was changed in MAISTRA-2197 to not send the initial update with just the system namespace to all listeners. This can be a problem when the user hasn't created an SMMR resource yet, because any listeners registered before the caches sync may never get an update informing them to watch the system namespace. This attempts to work around the issue by having all listeners individually wait on the caches to sync, then seed just the system namespace if no SMMR resource is found. MAISTRA-2271: Update xns-informers to fix delete events issue (maistra#315) This updates xns-informers to include a fix for sending delete events for all objects when a namespace is no longer watched. See: maistra/xns-informer#12 Co-authored-by: Brad Ison <brad.ison@redhat.com>
MAISTRA-2051: Add xns-informer for Kubernetes types (maistra#223) * vendor: Add github.com/maistra/xns-informer * Update mirrored licenses to fix gen-check * MAISTRA-2051: Add xns-informer for Kubernetes types This integrates the xns-informer library for multi-namespace support, but only for core Kubernetes types. The informers are hard-coded to watch all namespaces here. The integration with MemberRoll will come in a follow-up. MAISTRA-2051 Add xns-informer for Istio types (maistra#221) MAISTRA-2051: Add MemberRollController (maistra#227) * MAISTRA-2051: Add MemberRollController Includes the following: * 75742b0 - Add Makefile for Maistra client generation This adds a Makefile with tasks for generating the Maistra specific clients. It is adapted from the one in the Istio client-go repository. * 5f8562c - Add MemberRollController Squashed commit, consisting of: * MAISTRA-417: Add MemberRollController * MAISTRA-450: Switch across to ConfiguredMembers and check existing config for changes * MAISTRA-1005 Do not expect namespaces to have a stable ordering The clients have also been regenerated. * 1b7a89d - Add missing licenses * fe2f8cd - Fix Copyright holder * 06ea2db - MAISTRA-1666: Add `go mod vendor` as part of `make gen` This is to make sure all PR's will have an updated vendor directory. The `gencheck` prow job will ensure that. * MAISTRA-2051: Update MemberRollController for xns-informers * MAISTRA-2051: Add AddMemberRoll to kube client * MAISTRA-2051: Configure MemberRoll controller in istiod MAISTRA-2051: Add xns-informer for Service APIs (maistra#229) * MAISTRA-2051: Update xns-informers * MAISTRA-2051: Add xns-informer for Service APIs MAISTRA-2051: Use shared Kubernetes client in galley (maistra#241) This moves galley to the shared Kubernetes client, which will let it use xns-informers for multi-namespace support like everything else. MAISTRA-2051: Update xns-informers to latest (maistra#252) * MAISTRA-2051: Reset Kubernetes client to release-1.8 state * MAISTRA-2051: Use xns-informers in Kubernetes client * MAISTRA-2051: Un-skip tests with xns-informers issues These tests were skipped because of issues with xns-informers, which have now been solved. They should no longer be skipped. * MAISTRA-2051: Update xns-informers to latest * MAISTRA-2051: Skip problematic integration test: TestDashboard MAISTRA-2051: Use MultiNamespaceInformer in galley (maistra#254) * Revert "MAISTRA-2051: Use shared Kubernetes client in galley (maistra#241)" This reverts commit 0b1567a. * MAISTRA-2051: Use MultiNamespaceInformer in galley This is a rework of the previous change that used the central Kubernetes client in Galley. The watchers in Galley manage stopping and starting individual informers, which doesn't work well with the factory returning cached informers. This creates multi-namespace informers individually instead of using the central factory. It's also a much smaller change overall and doesn't affect the tests. * MAISTRA-2051: Add GetMemberRoll method to Kubernetes client * MAISTRA-2051: Integrate MemberRoll with Galley This configures the mulit-namespace aware infomers in Galley to respond to changes in the set of namespaces via the MemberRoll. This includes parts of the following: - 4b70b8d MAISTRA-1895 Add option to enable/disable CRD scan - 6e8019e MAISTRA-1968 allow analyzer to work with multi list watcher MAISTRA-1724: Don't watch namespaces if MemberRoll is used (maistra#257) Rewrite of the following for Maistra 2.1 / Istio 1.8 rebase: a161a53 - MAISTRA-1724 Don't watch namespaces if MRC is used (maistra#161) MAISTRA-1755: invoke UpdateNamespaces() as part of MemberRollController.Register() Cherry-pick of f0eed15 for Maistra 2.1 / Istio 1.8 rebase. MAISTRA-1724: Better hanlde deletion in NamespaceController MAISTRA-2153: Disable namespace informer if MemberRoll is used (maistra#283) This causes istiod to skip creating the namespace informer in the Kubernetes service registry controller if a MemberRoll is specified, because Maistra cannot read namespace objects. This will affect the behavior of multi-network deployments that do not use mesh networks for configuration, i.e. a namespace cannot be labeled with a default network now. MAISTRA-2197: Push first update when cache is warm (maistra#294) Change SMMR Controller behavior to only send the first update to listeners when it has a list of members ready. In other words, when cache is synced. Before this, the first update was sent with only one hardcoded member: The control plane namespace. Now it is sent with the full list of SMMR members. While on that, switch to our own log scope, to facilitate debugging. Manual cherry pick of maistra#291 MAISTRA-2233: Start xns-informers with empty namespace set (maistra#303) The multi-namespace informers created by xns-informers default to watching all namespaces to match upstream behaviour. This causes permissions issues in Maistra because they will do this until the first update from the MemberRoll controller sets the correct set of namespaces on each informer. We should instead explicitly configure them with an empty set of namespaces at startup. MAISTRA-2234: Seed MemberRoll listeners with system namespace (maistra#302) The MemberRoll controller was changed in MAISTRA-2197 to not send the initial update with just the system namespace to all listeners. This can be a problem when the user hasn't created an SMMR resource yet, because any listeners registered before the caches sync may never get an update informing them to watch the system namespace. This attempts to work around the issue by having all listeners individually wait on the caches to sync, then seed just the system namespace if no SMMR resource is found. MAISTRA-2271: Update xns-informers to fix delete events issue (maistra#315) This updates xns-informers to include a fix for sending delete events for all objects when a namespace is no longer watched. See: maistra/xns-informer#12 Co-authored-by: Brad Ison <brad.ison@redhat.com>
MAISTRA-2051: Add xns-informer for Kubernetes types (maistra#223) * vendor: Add github.com/maistra/xns-informer * Update mirrored licenses to fix gen-check * MAISTRA-2051: Add xns-informer for Kubernetes types This integrates the xns-informer library for multi-namespace support, but only for core Kubernetes types. The informers are hard-coded to watch all namespaces here. The integration with MemberRoll will come in a follow-up. MAISTRA-2051 Add xns-informer for Istio types (maistra#221) MAISTRA-2051: Add MemberRollController (maistra#227) * MAISTRA-2051: Add MemberRollController Includes the following: * 75742b0 - Add Makefile for Maistra client generation This adds a Makefile with tasks for generating the Maistra specific clients. It is adapted from the one in the Istio client-go repository. * 5f8562c - Add MemberRollController Squashed commit, consisting of: * MAISTRA-417: Add MemberRollController * MAISTRA-450: Switch across to ConfiguredMembers and check existing config for changes * MAISTRA-1005 Do not expect namespaces to have a stable ordering The clients have also been regenerated. * 1b7a89d - Add missing licenses * fe2f8cd - Fix Copyright holder * 06ea2db - MAISTRA-1666: Add `go mod vendor` as part of `make gen` This is to make sure all PR's will have an updated vendor directory. The `gencheck` prow job will ensure that. * MAISTRA-2051: Update MemberRollController for xns-informers * MAISTRA-2051: Add AddMemberRoll to kube client * MAISTRA-2051: Configure MemberRoll controller in istiod MAISTRA-2051: Add xns-informer for Service APIs (maistra#229) * MAISTRA-2051: Update xns-informers * MAISTRA-2051: Add xns-informer for Service APIs MAISTRA-2051: Use shared Kubernetes client in galley (maistra#241) This moves galley to the shared Kubernetes client, which will let it use xns-informers for multi-namespace support like everything else. MAISTRA-2051: Update xns-informers to latest (maistra#252) * MAISTRA-2051: Reset Kubernetes client to release-1.8 state * MAISTRA-2051: Use xns-informers in Kubernetes client * MAISTRA-2051: Un-skip tests with xns-informers issues These tests were skipped because of issues with xns-informers, which have now been solved. They should no longer be skipped. * MAISTRA-2051: Update xns-informers to latest * MAISTRA-2051: Skip problematic integration test: TestDashboard MAISTRA-2051: Use MultiNamespaceInformer in galley (maistra#254) * Revert "MAISTRA-2051: Use shared Kubernetes client in galley (maistra#241)" This reverts commit 0b1567a. * MAISTRA-2051: Use MultiNamespaceInformer in galley This is a rework of the previous change that used the central Kubernetes client in Galley. The watchers in Galley manage stopping and starting individual informers, which doesn't work well with the factory returning cached informers. This creates multi-namespace informers individually instead of using the central factory. It's also a much smaller change overall and doesn't affect the tests. * MAISTRA-2051: Add GetMemberRoll method to Kubernetes client * MAISTRA-2051: Integrate MemberRoll with Galley This configures the mulit-namespace aware infomers in Galley to respond to changes in the set of namespaces via the MemberRoll. This includes parts of the following: - 4b70b8d MAISTRA-1895 Add option to enable/disable CRD scan - 6e8019e MAISTRA-1968 allow analyzer to work with multi list watcher MAISTRA-1724: Don't watch namespaces if MemberRoll is used (maistra#257) Rewrite of the following for Maistra 2.1 / Istio 1.8 rebase: a161a53 - MAISTRA-1724 Don't watch namespaces if MRC is used (maistra#161) MAISTRA-1755: invoke UpdateNamespaces() as part of MemberRollController.Register() Cherry-pick of f0eed15 for Maistra 2.1 / Istio 1.8 rebase. MAISTRA-1724: Better hanlde deletion in NamespaceController MAISTRA-2153: Disable namespace informer if MemberRoll is used (maistra#283) This causes istiod to skip creating the namespace informer in the Kubernetes service registry controller if a MemberRoll is specified, because Maistra cannot read namespace objects. This will affect the behavior of multi-network deployments that do not use mesh networks for configuration, i.e. a namespace cannot be labeled with a default network now. MAISTRA-2197: Push first update when cache is warm (maistra#294) Change SMMR Controller behavior to only send the first update to listeners when it has a list of members ready. In other words, when cache is synced. Before this, the first update was sent with only one hardcoded member: The control plane namespace. Now it is sent with the full list of SMMR members. While on that, switch to our own log scope, to facilitate debugging. Manual cherry pick of maistra#291 MAISTRA-2233: Start xns-informers with empty namespace set (maistra#303) The multi-namespace informers created by xns-informers default to watching all namespaces to match upstream behaviour. This causes permissions issues in Maistra because they will do this until the first update from the MemberRoll controller sets the correct set of namespaces on each informer. We should instead explicitly configure them with an empty set of namespaces at startup. MAISTRA-2234: Seed MemberRoll listeners with system namespace (maistra#302) The MemberRoll controller was changed in MAISTRA-2197 to not send the initial update with just the system namespace to all listeners. This can be a problem when the user hasn't created an SMMR resource yet, because any listeners registered before the caches sync may never get an update informing them to watch the system namespace. This attempts to work around the issue by having all listeners individually wait on the caches to sync, then seed just the system namespace if no SMMR resource is found. MAISTRA-2271: Update xns-informers to fix delete events issue (maistra#315) This updates xns-informers to include a fix for sending delete events for all objects when a namespace is no longer watched. See: maistra/xns-informer#12 Co-authored-by: Brad Ison <brad.ison@redhat.com>
MAISTRA-2051: Add xns-informer for Kubernetes types (maistra#223) * vendor: Add github.com/maistra/xns-informer * Update mirrored licenses to fix gen-check * MAISTRA-2051: Add xns-informer for Kubernetes types This integrates the xns-informer library for multi-namespace support, but only for core Kubernetes types. The informers are hard-coded to watch all namespaces here. The integration with MemberRoll will come in a follow-up. MAISTRA-2051 Add xns-informer for Istio types (maistra#221) MAISTRA-2051: Add MemberRollController (maistra#227) * MAISTRA-2051: Add MemberRollController Includes the following: * 75742b0 - Add Makefile for Maistra client generation This adds a Makefile with tasks for generating the Maistra specific clients. It is adapted from the one in the Istio client-go repository. * 5f8562c - Add MemberRollController Squashed commit, consisting of: * MAISTRA-417: Add MemberRollController * MAISTRA-450: Switch across to ConfiguredMembers and check existing config for changes * MAISTRA-1005 Do not expect namespaces to have a stable ordering The clients have also been regenerated. * 1b7a89d - Add missing licenses * fe2f8cd - Fix Copyright holder * 06ea2db - MAISTRA-1666: Add `go mod vendor` as part of `make gen` This is to make sure all PR's will have an updated vendor directory. The `gencheck` prow job will ensure that. * MAISTRA-2051: Update MemberRollController for xns-informers * MAISTRA-2051: Add AddMemberRoll to kube client * MAISTRA-2051: Configure MemberRoll controller in istiod MAISTRA-2051: Add xns-informer for Service APIs (maistra#229) * MAISTRA-2051: Update xns-informers * MAISTRA-2051: Add xns-informer for Service APIs MAISTRA-2051: Use shared Kubernetes client in galley (maistra#241) This moves galley to the shared Kubernetes client, which will let it use xns-informers for multi-namespace support like everything else. MAISTRA-2051: Update xns-informers to latest (maistra#252) * MAISTRA-2051: Reset Kubernetes client to release-1.8 state * MAISTRA-2051: Use xns-informers in Kubernetes client * MAISTRA-2051: Un-skip tests with xns-informers issues These tests were skipped because of issues with xns-informers, which have now been solved. They should no longer be skipped. * MAISTRA-2051: Update xns-informers to latest * MAISTRA-2051: Skip problematic integration test: TestDashboard MAISTRA-2051: Use MultiNamespaceInformer in galley (maistra#254) * Revert "MAISTRA-2051: Use shared Kubernetes client in galley (maistra#241)" This reverts commit 0b1567a. * MAISTRA-2051: Use MultiNamespaceInformer in galley This is a rework of the previous change that used the central Kubernetes client in Galley. The watchers in Galley manage stopping and starting individual informers, which doesn't work well with the factory returning cached informers. This creates multi-namespace informers individually instead of using the central factory. It's also a much smaller change overall and doesn't affect the tests. * MAISTRA-2051: Add GetMemberRoll method to Kubernetes client * MAISTRA-2051: Integrate MemberRoll with Galley This configures the mulit-namespace aware infomers in Galley to respond to changes in the set of namespaces via the MemberRoll. This includes parts of the following: - 4b70b8d MAISTRA-1895 Add option to enable/disable CRD scan - 6e8019e MAISTRA-1968 allow analyzer to work with multi list watcher MAISTRA-1724: Don't watch namespaces if MemberRoll is used (maistra#257) Rewrite of the following for Maistra 2.1 / Istio 1.8 rebase: a161a53 - MAISTRA-1724 Don't watch namespaces if MRC is used (maistra#161) MAISTRA-1755: invoke UpdateNamespaces() as part of MemberRollController.Register() Cherry-pick of f0eed15 for Maistra 2.1 / Istio 1.8 rebase. MAISTRA-1724: Better hanlde deletion in NamespaceController MAISTRA-2153: Disable namespace informer if MemberRoll is used (maistra#283) This causes istiod to skip creating the namespace informer in the Kubernetes service registry controller if a MemberRoll is specified, because Maistra cannot read namespace objects. This will affect the behavior of multi-network deployments that do not use mesh networks for configuration, i.e. a namespace cannot be labeled with a default network now. MAISTRA-2197: Push first update when cache is warm (maistra#294) Change SMMR Controller behavior to only send the first update to listeners when it has a list of members ready. In other words, when cache is synced. Before this, the first update was sent with only one hardcoded member: The control plane namespace. Now it is sent with the full list of SMMR members. While on that, switch to our own log scope, to facilitate debugging. Manual cherry pick of maistra#291 MAISTRA-2233: Start xns-informers with empty namespace set (maistra#303) The multi-namespace informers created by xns-informers default to watching all namespaces to match upstream behaviour. This causes permissions issues in Maistra because they will do this until the first update from the MemberRoll controller sets the correct set of namespaces on each informer. We should instead explicitly configure them with an empty set of namespaces at startup. MAISTRA-2234: Seed MemberRoll listeners with system namespace (maistra#302) The MemberRoll controller was changed in MAISTRA-2197 to not send the initial update with just the system namespace to all listeners. This can be a problem when the user hasn't created an SMMR resource yet, because any listeners registered before the caches sync may never get an update informing them to watch the system namespace. This attempts to work around the issue by having all listeners individually wait on the caches to sync, then seed just the system namespace if no SMMR resource is found. MAISTRA-2271: Update xns-informers to fix delete events issue (maistra#315) This updates xns-informers to include a fix for sending delete events for all objects when a namespace is no longer watched. See: maistra/xns-informer#12 Co-authored-by: Brad Ison <brad.ison@redhat.com>
MAISTRA-2051: Add xns-informer for Kubernetes types (#223) * vendor: Add github.com/maistra/xns-informer * Update mirrored licenses to fix gen-check * MAISTRA-2051: Add xns-informer for Kubernetes types This integrates the xns-informer library for multi-namespace support, but only for core Kubernetes types. The informers are hard-coded to watch all namespaces here. The integration with MemberRoll will come in a follow-up. MAISTRA-2051 Add xns-informer for Istio types (#221) MAISTRA-2051: Add MemberRollController (#227) * MAISTRA-2051: Add MemberRollController Includes the following: * 75742b0 - Add Makefile for Maistra client generation This adds a Makefile with tasks for generating the Maistra specific clients. It is adapted from the one in the Istio client-go repository. * 5f8562c - Add MemberRollController Squashed commit, consisting of: * MAISTRA-417: Add MemberRollController * MAISTRA-450: Switch across to ConfiguredMembers and check existing config for changes * MAISTRA-1005 Do not expect namespaces to have a stable ordering The clients have also been regenerated. * 1b7a89d - Add missing licenses * fe2f8cd - Fix Copyright holder * 06ea2db - MAISTRA-1666: Add `go mod vendor` as part of `make gen` This is to make sure all PR's will have an updated vendor directory. The `gencheck` prow job will ensure that. * MAISTRA-2051: Update MemberRollController for xns-informers * MAISTRA-2051: Add AddMemberRoll to kube client * MAISTRA-2051: Configure MemberRoll controller in istiod MAISTRA-2051: Add xns-informer for Service APIs (#229) * MAISTRA-2051: Update xns-informers * MAISTRA-2051: Add xns-informer for Service APIs MAISTRA-2051: Use shared Kubernetes client in galley (#241) This moves galley to the shared Kubernetes client, which will let it use xns-informers for multi-namespace support like everything else. MAISTRA-2051: Update xns-informers to latest (#252) * MAISTRA-2051: Reset Kubernetes client to release-1.8 state * MAISTRA-2051: Use xns-informers in Kubernetes client * MAISTRA-2051: Un-skip tests with xns-informers issues These tests were skipped because of issues with xns-informers, which have now been solved. They should no longer be skipped. * MAISTRA-2051: Update xns-informers to latest * MAISTRA-2051: Skip problematic integration test: TestDashboard MAISTRA-2051: Use MultiNamespaceInformer in galley (#254) * Revert "MAISTRA-2051: Use shared Kubernetes client in galley (#241)" This reverts commit 0b1567a. * MAISTRA-2051: Use MultiNamespaceInformer in galley This is a rework of the previous change that used the central Kubernetes client in Galley. The watchers in Galley manage stopping and starting individual informers, which doesn't work well with the factory returning cached informers. This creates multi-namespace informers individually instead of using the central factory. It's also a much smaller change overall and doesn't affect the tests. * MAISTRA-2051: Add GetMemberRoll method to Kubernetes client * MAISTRA-2051: Integrate MemberRoll with Galley This configures the mulit-namespace aware infomers in Galley to respond to changes in the set of namespaces via the MemberRoll. This includes parts of the following: - 4b70b8d MAISTRA-1895 Add option to enable/disable CRD scan - 6e8019e MAISTRA-1968 allow analyzer to work with multi list watcher MAISTRA-1724: Don't watch namespaces if MemberRoll is used (#257) Rewrite of the following for Maistra 2.1 / Istio 1.8 rebase: a161a53 - MAISTRA-1724 Don't watch namespaces if MRC is used (#161) MAISTRA-1755: invoke UpdateNamespaces() as part of MemberRollController.Register() Cherry-pick of f0eed15 for Maistra 2.1 / Istio 1.8 rebase. MAISTRA-1724: Better hanlde deletion in NamespaceController MAISTRA-2153: Disable namespace informer if MemberRoll is used (#283) This causes istiod to skip creating the namespace informer in the Kubernetes service registry controller if a MemberRoll is specified, because Maistra cannot read namespace objects. This will affect the behavior of multi-network deployments that do not use mesh networks for configuration, i.e. a namespace cannot be labeled with a default network now. MAISTRA-2197: Push first update when cache is warm (#294) Change SMMR Controller behavior to only send the first update to listeners when it has a list of members ready. In other words, when cache is synced. Before this, the first update was sent with only one hardcoded member: The control plane namespace. Now it is sent with the full list of SMMR members. While on that, switch to our own log scope, to facilitate debugging. Manual cherry pick of #291 MAISTRA-2233: Start xns-informers with empty namespace set (#303) The multi-namespace informers created by xns-informers default to watching all namespaces to match upstream behaviour. This causes permissions issues in Maistra because they will do this until the first update from the MemberRoll controller sets the correct set of namespaces on each informer. We should instead explicitly configure them with an empty set of namespaces at startup. MAISTRA-2234: Seed MemberRoll listeners with system namespace (#302) The MemberRoll controller was changed in MAISTRA-2197 to not send the initial update with just the system namespace to all listeners. This can be a problem when the user hasn't created an SMMR resource yet, because any listeners registered before the caches sync may never get an update informing them to watch the system namespace. This attempts to work around the issue by having all listeners individually wait on the caches to sync, then seed just the system namespace if no SMMR resource is found. MAISTRA-2271: Update xns-informers to fix delete events issue (#315) This updates xns-informers to include a fix for sending delete events for all objects when a namespace is no longer watched. See: maistra/xns-informer#12 Co-authored-by: Brad Ison <brad.ison@redhat.com>
MAISTRA-2051: Add xns-informer for Kubernetes types (maistra#223) * Update mirrored licenses to fix gen-check * MAISTRA-2051: Add xns-informer for Kubernetes types This integrates the xns-informer library for multi-namespace support, but only for core Kubernetes types. The informers are hard-coded to watch all namespaces here. The integration with MemberRoll will come in a follow-up. MAISTRA-2051 Add xns-informer for Istio types (maistra#221) MAISTRA-2051: Add MemberRollController (maistra#227) * MAISTRA-2051: Add MemberRollController Includes the following: * 75742b0 - Add Makefile for Maistra client generation This adds a Makefile with tasks for generating the Maistra specific clients. It is adapted from the one in the Istio client-go repository. * 5f8562c - Add MemberRollController Squashed commit, consisting of: * MAISTRA-417: Add MemberRollController * MAISTRA-450: Switch across to ConfiguredMembers and check existing config for changes * MAISTRA-1005 Do not expect namespaces to have a stable ordering The clients have also been regenerated. * 1b7a89d - Add missing licenses * fe2f8cd - Fix Copyright holder This is to make sure all PR's will have an updated vendor directory. The `gencheck` prow job will ensure that. * MAISTRA-2051: Update MemberRollController for xns-informers * MAISTRA-2051: Add AddMemberRoll to kube client * MAISTRA-2051: Configure MemberRoll controller in istiod MAISTRA-2051: Add xns-informer for Service APIs (maistra#229) * MAISTRA-2051: Update xns-informers * MAISTRA-2051: Add xns-informer for Service APIs MAISTRA-2051: Use shared Kubernetes client in galley (maistra#241) This moves galley to the shared Kubernetes client, which will let it use xns-informers for multi-namespace support like everything else. MAISTRA-2051: Update xns-informers to latest (maistra#252) * MAISTRA-2051: Reset Kubernetes client to release-1.8 state * MAISTRA-2051: Use xns-informers in Kubernetes client * MAISTRA-2051: Un-skip tests with xns-informers issues These tests were skipped because of issues with xns-informers, which have now been solved. They should no longer be skipped. * MAISTRA-2051: Update xns-informers to latest * MAISTRA-2051: Skip problematic integration test: TestDashboard MAISTRA-2051: Use MultiNamespaceInformer in galley (maistra#254) * Revert "MAISTRA-2051: Use shared Kubernetes client in galley (maistra#241)" This reverts commit 0b1567a. * MAISTRA-2051: Use MultiNamespaceInformer in galley This is a rework of the previous change that used the central Kubernetes client in Galley. The watchers in Galley manage stopping and starting individual informers, which doesn't work well with the factory returning cached informers. This creates multi-namespace informers individually instead of using the central factory. It's also a much smaller change overall and doesn't affect the tests. * MAISTRA-2051: Add GetMemberRoll method to Kubernetes client * MAISTRA-2051: Integrate MemberRoll with Galley This configures the mulit-namespace aware infomers in Galley to respond to changes in the set of namespaces via the MemberRoll. This includes parts of the following: - 4b70b8d MAISTRA-1895 Add option to enable/disable CRD scan - 6e8019e MAISTRA-1968 allow analyzer to work with multi list watcher MAISTRA-1724: Don't watch namespaces if MemberRoll is used (maistra#257) Rewrite of the following for Maistra 2.1 / Istio 1.8 rebase: a161a53 - MAISTRA-1724 Don't watch namespaces if MRC is used (maistra#161) MAISTRA-1755: invoke UpdateNamespaces() as part of MemberRollController.Register() Cherry-pick of f0eed15 for Maistra 2.1 / Istio 1.8 rebase. MAISTRA-1724: Better hanlde deletion in NamespaceController MAISTRA-2153: Disable namespace informer if MemberRoll is used (maistra#283) This causes istiod to skip creating the namespace informer in the Kubernetes service registry controller if a MemberRoll is specified, because Maistra cannot read namespace objects. This will affect the behavior of multi-network deployments that do not use mesh networks for configuration, i.e. a namespace cannot be labeled with a default network now. MAISTRA-2197: Push first update when cache is warm (maistra#294) Change SMMR Controller behavior to only send the first update to listeners when it has a list of members ready. In other words, when cache is synced. Before this, the first update was sent with only one hardcoded member: The control plane namespace. Now it is sent with the full list of SMMR members. While on that, switch to our own log scope, to facilitate debugging. Manual cherry pick of maistra#291 MAISTRA-2233: Start xns-informers with empty namespace set (maistra#303) The multi-namespace informers created by xns-informers default to watching all namespaces to match upstream behaviour. This causes permissions issues in Maistra because they will do this until the first update from the MemberRoll controller sets the correct set of namespaces on each informer. We should instead explicitly configure them with an empty set of namespaces at startup. MAISTRA-2234: Seed MemberRoll listeners with system namespace (maistra#302) The MemberRoll controller was changed in MAISTRA-2197 to not send the initial update with just the system namespace to all listeners. This can be a problem when the user hasn't created an SMMR resource yet, because any listeners registered before the caches sync may never get an update informing them to watch the system namespace. This attempts to work around the issue by having all listeners individually wait on the caches to sync, then seed just the system namespace if no SMMR resource is found. MAISTRA-2271: Update xns-informers to fix delete events issue (maistra#315) This updates xns-informers to include a fix for sending delete events for all objects when a namespace is no longer watched. See: maistra/xns-informer#12 Co-authored-by: Brad Ison <brad.ison@redhat.com>
MAISTRA-2051: Add xns-informer for Kubernetes types (maistra#223) * Update mirrored licenses to fix gen-check * MAISTRA-2051: Add xns-informer for Kubernetes types This integrates the xns-informer library for multi-namespace support, but only for core Kubernetes types. The informers are hard-coded to watch all namespaces here. The integration with MemberRoll will come in a follow-up. MAISTRA-2051 Add xns-informer for Istio types (maistra#221) MAISTRA-2051: Add MemberRollController (maistra#227) * MAISTRA-2051: Add MemberRollController Includes the following: * 75742b0 - Add Makefile for Maistra client generation This adds a Makefile with tasks for generating the Maistra specific clients. It is adapted from the one in the Istio client-go repository. * 5f8562c - Add MemberRollController Squashed commit, consisting of: * MAISTRA-417: Add MemberRollController * MAISTRA-450: Switch across to ConfiguredMembers and check existing config for changes * MAISTRA-1005 Do not expect namespaces to have a stable ordering The clients have also been regenerated. * 1b7a89d - Add missing licenses * fe2f8cd - Fix Copyright holder This is to make sure all PR's will have an updated vendor directory. The `gencheck` prow job will ensure that. * MAISTRA-2051: Update MemberRollController for xns-informers * MAISTRA-2051: Add AddMemberRoll to kube client * MAISTRA-2051: Configure MemberRoll controller in istiod MAISTRA-2051: Add xns-informer for Service APIs (maistra#229) * MAISTRA-2051: Update xns-informers * MAISTRA-2051: Add xns-informer for Service APIs MAISTRA-2051: Use shared Kubernetes client in galley (maistra#241) This moves galley to the shared Kubernetes client, which will let it use xns-informers for multi-namespace support like everything else. MAISTRA-2051: Update xns-informers to latest (maistra#252) * MAISTRA-2051: Reset Kubernetes client to release-1.8 state * MAISTRA-2051: Use xns-informers in Kubernetes client * MAISTRA-2051: Un-skip tests with xns-informers issues These tests were skipped because of issues with xns-informers, which have now been solved. They should no longer be skipped. * MAISTRA-2051: Update xns-informers to latest * MAISTRA-2051: Skip problematic integration test: TestDashboard MAISTRA-2051: Use MultiNamespaceInformer in galley (maistra#254) * Revert "MAISTRA-2051: Use shared Kubernetes client in galley (maistra#241)" This reverts commit 0b1567a. * MAISTRA-2051: Use MultiNamespaceInformer in galley This is a rework of the previous change that used the central Kubernetes client in Galley. The watchers in Galley manage stopping and starting individual informers, which doesn't work well with the factory returning cached informers. This creates multi-namespace informers individually instead of using the central factory. It's also a much smaller change overall and doesn't affect the tests. * MAISTRA-2051: Add GetMemberRoll method to Kubernetes client * MAISTRA-2051: Integrate MemberRoll with Galley This configures the mulit-namespace aware infomers in Galley to respond to changes in the set of namespaces via the MemberRoll. This includes parts of the following: - 4b70b8d MAISTRA-1895 Add option to enable/disable CRD scan - 6e8019e MAISTRA-1968 allow analyzer to work with multi list watcher MAISTRA-1724: Don't watch namespaces if MemberRoll is used (maistra#257) Rewrite of the following for Maistra 2.1 / Istio 1.8 rebase: a161a53 - MAISTRA-1724 Don't watch namespaces if MRC is used (maistra#161) MAISTRA-1755: invoke UpdateNamespaces() as part of MemberRollController.Register() Cherry-pick of f0eed15 for Maistra 2.1 / Istio 1.8 rebase. MAISTRA-1724: Better hanlde deletion in NamespaceController MAISTRA-2153: Disable namespace informer if MemberRoll is used (maistra#283) This causes istiod to skip creating the namespace informer in the Kubernetes service registry controller if a MemberRoll is specified, because Maistra cannot read namespace objects. This will affect the behavior of multi-network deployments that do not use mesh networks for configuration, i.e. a namespace cannot be labeled with a default network now. MAISTRA-2197: Push first update when cache is warm (maistra#294) Change SMMR Controller behavior to only send the first update to listeners when it has a list of members ready. In other words, when cache is synced. Before this, the first update was sent with only one hardcoded member: The control plane namespace. Now it is sent with the full list of SMMR members. While on that, switch to our own log scope, to facilitate debugging. Manual cherry pick of maistra#291 MAISTRA-2233: Start xns-informers with empty namespace set (maistra#303) The multi-namespace informers created by xns-informers default to watching all namespaces to match upstream behaviour. This causes permissions issues in Maistra because they will do this until the first update from the MemberRoll controller sets the correct set of namespaces on each informer. We should instead explicitly configure them with an empty set of namespaces at startup. MAISTRA-2234: Seed MemberRoll listeners with system namespace (maistra#302) The MemberRoll controller was changed in MAISTRA-2197 to not send the initial update with just the system namespace to all listeners. This can be a problem when the user hasn't created an SMMR resource yet, because any listeners registered before the caches sync may never get an update informing them to watch the system namespace. This attempts to work around the issue by having all listeners individually wait on the caches to sync, then seed just the system namespace if no SMMR resource is found. MAISTRA-2271: Update xns-informers to fix delete events issue (maistra#315) This updates xns-informers to include a fix for sending delete events for all objects when a namespace is no longer watched. See: maistra/xns-informer#12 Co-authored-by: Brad Ison <brad.ison@redhat.com> OSSM-2006 Fix multiNamespaceInformer.HasSynced() fix(xns-informer): only sync nsInformer when not nil (maistra#684) Fix shutting down namespace controller Signed-off-by: Jacek Ewertowski <jewertow@redhat.com>
MAISTRA-2051: Add xns-informer for Kubernetes types (maistra#223) * Update mirrored licenses to fix gen-check * MAISTRA-2051: Add xns-informer for Kubernetes types This integrates the xns-informer library for multi-namespace support, but only for core Kubernetes types. The informers are hard-coded to watch all namespaces here. The integration with MemberRoll will come in a follow-up. MAISTRA-2051 Add xns-informer for Istio types (maistra#221) MAISTRA-2051: Add MemberRollController (maistra#227) * MAISTRA-2051: Add MemberRollController Includes the following: * 75742b0 - Add Makefile for Maistra client generation This adds a Makefile with tasks for generating the Maistra specific clients. It is adapted from the one in the Istio client-go repository. * 5f8562c - Add MemberRollController Squashed commit, consisting of: * MAISTRA-417: Add MemberRollController * MAISTRA-450: Switch across to ConfiguredMembers and check existing config for changes * MAISTRA-1005 Do not expect namespaces to have a stable ordering The clients have also been regenerated. * 1b7a89d - Add missing licenses * fe2f8cd - Fix Copyright holder This is to make sure all PR's will have an updated vendor directory. The `gencheck` prow job will ensure that. * MAISTRA-2051: Update MemberRollController for xns-informers * MAISTRA-2051: Add AddMemberRoll to kube client * MAISTRA-2051: Configure MemberRoll controller in istiod MAISTRA-2051: Add xns-informer for Service APIs (maistra#229) * MAISTRA-2051: Update xns-informers * MAISTRA-2051: Add xns-informer for Service APIs MAISTRA-2051: Use shared Kubernetes client in galley (maistra#241) This moves galley to the shared Kubernetes client, which will let it use xns-informers for multi-namespace support like everything else. MAISTRA-2051: Update xns-informers to latest (maistra#252) * MAISTRA-2051: Reset Kubernetes client to release-1.8 state * MAISTRA-2051: Use xns-informers in Kubernetes client * MAISTRA-2051: Un-skip tests with xns-informers issues These tests were skipped because of issues with xns-informers, which have now been solved. They should no longer be skipped. * MAISTRA-2051: Update xns-informers to latest * MAISTRA-2051: Skip problematic integration test: TestDashboard MAISTRA-2051: Use MultiNamespaceInformer in galley (maistra#254) * Revert "MAISTRA-2051: Use shared Kubernetes client in galley (maistra#241)" This reverts commit 0b1567a. * MAISTRA-2051: Use MultiNamespaceInformer in galley This is a rework of the previous change that used the central Kubernetes client in Galley. The watchers in Galley manage stopping and starting individual informers, which doesn't work well with the factory returning cached informers. This creates multi-namespace informers individually instead of using the central factory. It's also a much smaller change overall and doesn't affect the tests. * MAISTRA-2051: Add GetMemberRoll method to Kubernetes client * MAISTRA-2051: Integrate MemberRoll with Galley This configures the mulit-namespace aware infomers in Galley to respond to changes in the set of namespaces via the MemberRoll. This includes parts of the following: - 4b70b8d MAISTRA-1895 Add option to enable/disable CRD scan - 6e8019e MAISTRA-1968 allow analyzer to work with multi list watcher MAISTRA-1724: Don't watch namespaces if MemberRoll is used (maistra#257) Rewrite of the following for Maistra 2.1 / Istio 1.8 rebase: a161a53 - MAISTRA-1724 Don't watch namespaces if MRC is used (maistra#161) MAISTRA-1755: invoke UpdateNamespaces() as part of MemberRollController.Register() Cherry-pick of f0eed15 for Maistra 2.1 / Istio 1.8 rebase. MAISTRA-1724: Better hanlde deletion in NamespaceController MAISTRA-2153: Disable namespace informer if MemberRoll is used (maistra#283) This causes istiod to skip creating the namespace informer in the Kubernetes service registry controller if a MemberRoll is specified, because Maistra cannot read namespace objects. This will affect the behavior of multi-network deployments that do not use mesh networks for configuration, i.e. a namespace cannot be labeled with a default network now. MAISTRA-2197: Push first update when cache is warm (maistra#294) Change SMMR Controller behavior to only send the first update to listeners when it has a list of members ready. In other words, when cache is synced. Before this, the first update was sent with only one hardcoded member: The control plane namespace. Now it is sent with the full list of SMMR members. While on that, switch to our own log scope, to facilitate debugging. Manual cherry pick of maistra#291 MAISTRA-2233: Start xns-informers with empty namespace set (maistra#303) The multi-namespace informers created by xns-informers default to watching all namespaces to match upstream behaviour. This causes permissions issues in Maistra because they will do this until the first update from the MemberRoll controller sets the correct set of namespaces on each informer. We should instead explicitly configure them with an empty set of namespaces at startup. MAISTRA-2234: Seed MemberRoll listeners with system namespace (maistra#302) The MemberRoll controller was changed in MAISTRA-2197 to not send the initial update with just the system namespace to all listeners. This can be a problem when the user hasn't created an SMMR resource yet, because any listeners registered before the caches sync may never get an update informing them to watch the system namespace. This attempts to work around the issue by having all listeners individually wait on the caches to sync, then seed just the system namespace if no SMMR resource is found. MAISTRA-2271: Update xns-informers to fix delete events issue (maistra#315) This updates xns-informers to include a fix for sending delete events for all objects when a namespace is no longer watched. See: maistra/xns-informer#12 Co-authored-by: Brad Ison <brad.ison@redhat.com> OSSM-2006 Fix multiNamespaceInformer.HasSynced() fix(xns-informer): only sync nsInformer when not nil (maistra#684) Fix shutting down namespace controller Signed-off-by: Jacek Ewertowski <jewertow@redhat.com>
MAISTRA-2051: Add xns-informer for Kubernetes types (maistra#223) * Update mirrored licenses to fix gen-check * MAISTRA-2051: Add xns-informer for Kubernetes types This integrates the xns-informer library for multi-namespace support, but only for core Kubernetes types. The informers are hard-coded to watch all namespaces here. The integration with MemberRoll will come in a follow-up. MAISTRA-2051 Add xns-informer for Istio types (maistra#221) MAISTRA-2051: Add MemberRollController (maistra#227) * MAISTRA-2051: Add MemberRollController Includes the following: * 75742b0 - Add Makefile for Maistra client generation This adds a Makefile with tasks for generating the Maistra specific clients. It is adapted from the one in the Istio client-go repository. * 5f8562c - Add MemberRollController Squashed commit, consisting of: * MAISTRA-417: Add MemberRollController * MAISTRA-450: Switch across to ConfiguredMembers and check existing config for changes * MAISTRA-1005 Do not expect namespaces to have a stable ordering The clients have also been regenerated. * 1b7a89d - Add missing licenses * fe2f8cd - Fix Copyright holder This is to make sure all PR's will have an updated vendor directory. The `gencheck` prow job will ensure that. * MAISTRA-2051: Update MemberRollController for xns-informers * MAISTRA-2051: Add AddMemberRoll to kube client * MAISTRA-2051: Configure MemberRoll controller in istiod MAISTRA-2051: Add xns-informer for Service APIs (maistra#229) * MAISTRA-2051: Update xns-informers * MAISTRA-2051: Add xns-informer for Service APIs MAISTRA-2051: Use shared Kubernetes client in galley (maistra#241) This moves galley to the shared Kubernetes client, which will let it use xns-informers for multi-namespace support like everything else. MAISTRA-2051: Update xns-informers to latest (maistra#252) * MAISTRA-2051: Reset Kubernetes client to release-1.8 state * MAISTRA-2051: Use xns-informers in Kubernetes client * MAISTRA-2051: Un-skip tests with xns-informers issues These tests were skipped because of issues with xns-informers, which have now been solved. They should no longer be skipped. * MAISTRA-2051: Update xns-informers to latest * MAISTRA-2051: Skip problematic integration test: TestDashboard MAISTRA-2051: Use MultiNamespaceInformer in galley (maistra#254) * Revert "MAISTRA-2051: Use shared Kubernetes client in galley (maistra#241)" This reverts commit 0b1567a. * MAISTRA-2051: Use MultiNamespaceInformer in galley This is a rework of the previous change that used the central Kubernetes client in Galley. The watchers in Galley manage stopping and starting individual informers, which doesn't work well with the factory returning cached informers. This creates multi-namespace informers individually instead of using the central factory. It's also a much smaller change overall and doesn't affect the tests. * MAISTRA-2051: Add GetMemberRoll method to Kubernetes client * MAISTRA-2051: Integrate MemberRoll with Galley This configures the mulit-namespace aware infomers in Galley to respond to changes in the set of namespaces via the MemberRoll. This includes parts of the following: - 4b70b8d MAISTRA-1895 Add option to enable/disable CRD scan - 6e8019e MAISTRA-1968 allow analyzer to work with multi list watcher MAISTRA-1724: Don't watch namespaces if MemberRoll is used (maistra#257) Rewrite of the following for Maistra 2.1 / Istio 1.8 rebase: a161a53 - MAISTRA-1724 Don't watch namespaces if MRC is used (maistra#161) MAISTRA-1755: invoke UpdateNamespaces() as part of MemberRollController.Register() Cherry-pick of f0eed15 for Maistra 2.1 / Istio 1.8 rebase. MAISTRA-1724: Better hanlde deletion in NamespaceController MAISTRA-2153: Disable namespace informer if MemberRoll is used (maistra#283) This causes istiod to skip creating the namespace informer in the Kubernetes service registry controller if a MemberRoll is specified, because Maistra cannot read namespace objects. This will affect the behavior of multi-network deployments that do not use mesh networks for configuration, i.e. a namespace cannot be labeled with a default network now. MAISTRA-2197: Push first update when cache is warm (maistra#294) Change SMMR Controller behavior to only send the first update to listeners when it has a list of members ready. In other words, when cache is synced. Before this, the first update was sent with only one hardcoded member: The control plane namespace. Now it is sent with the full list of SMMR members. While on that, switch to our own log scope, to facilitate debugging. Manual cherry pick of maistra#291 MAISTRA-2233: Start xns-informers with empty namespace set (maistra#303) The multi-namespace informers created by xns-informers default to watching all namespaces to match upstream behaviour. This causes permissions issues in Maistra because they will do this until the first update from the MemberRoll controller sets the correct set of namespaces on each informer. We should instead explicitly configure them with an empty set of namespaces at startup. MAISTRA-2234: Seed MemberRoll listeners with system namespace (maistra#302) The MemberRoll controller was changed in MAISTRA-2197 to not send the initial update with just the system namespace to all listeners. This can be a problem when the user hasn't created an SMMR resource yet, because any listeners registered before the caches sync may never get an update informing them to watch the system namespace. This attempts to work around the issue by having all listeners individually wait on the caches to sync, then seed just the system namespace if no SMMR resource is found. MAISTRA-2271: Update xns-informers to fix delete events issue (maistra#315) This updates xns-informers to include a fix for sending delete events for all objects when a namespace is no longer watched. See: maistra/xns-informer#12 Co-authored-by: Brad Ison <brad.ison@redhat.com> OSSM-2006 Fix multiNamespaceInformer.HasSynced() fix(xns-informer): only sync nsInformer when not nil (maistra#684) Fix shutting down namespace controller Signed-off-by: Jacek Ewertowski <jewertow@redhat.com> OSSM-2233: uses maistra.io/api instead of copying Before we were generating and copying Maistra API types, now we use it as a dependency. Additionally following changes are introduced: - vendoring has been removed, as we now use embedded manifests from maistra/api in tests - cleans up Makefiles - removes unnecessary files (generated API) OSSM-2375 Log the list of member namespaces on every change (maistra#716) Co-authored-by: Marko Lukša <marko.luksa@gmail.com> OSSM-3703: Fix AUTO_RELOAD_PLUGIN_CERTS in multi-tenant mode (maistra#778) * OSSM-3703: Fix AUTO_RELOAD_PLUGIN_CERTS in multi-tenant mode Signed-off-by: Jacek Ewertowski <jewertow@redhat.com> * Revert unnecessary variable declaration Signed-off-by: Jacek Ewertowski <jewertow@redhat.com> --------- Signed-off-by: Jacek Ewertowski <jewertow@redhat.com>
MAISTRA-2051: Add xns-informer for Kubernetes types (maistra#223) * Update mirrored licenses to fix gen-check * MAISTRA-2051: Add xns-informer for Kubernetes types This integrates the xns-informer library for multi-namespace support, but only for core Kubernetes types. The informers are hard-coded to watch all namespaces here. The integration with MemberRoll will come in a follow-up. MAISTRA-2051 Add xns-informer for Istio types (maistra#221) MAISTRA-2051: Add MemberRollController (maistra#227) * MAISTRA-2051: Add MemberRollController Includes the following: * 75742b0 - Add Makefile for Maistra client generation This adds a Makefile with tasks for generating the Maistra specific clients. It is adapted from the one in the Istio client-go repository. * 5f8562c - Add MemberRollController Squashed commit, consisting of: * MAISTRA-417: Add MemberRollController * MAISTRA-450: Switch across to ConfiguredMembers and check existing config for changes * MAISTRA-1005 Do not expect namespaces to have a stable ordering The clients have also been regenerated. * 1b7a89d - Add missing licenses * fe2f8cd - Fix Copyright holder This is to make sure all PR's will have an updated vendor directory. The `gencheck` prow job will ensure that. * MAISTRA-2051: Update MemberRollController for xns-informers * MAISTRA-2051: Add AddMemberRoll to kube client * MAISTRA-2051: Configure MemberRoll controller in istiod MAISTRA-2051: Add xns-informer for Service APIs (maistra#229) * MAISTRA-2051: Update xns-informers * MAISTRA-2051: Add xns-informer for Service APIs MAISTRA-2051: Use shared Kubernetes client in galley (maistra#241) This moves galley to the shared Kubernetes client, which will let it use xns-informers for multi-namespace support like everything else. MAISTRA-2051: Update xns-informers to latest (maistra#252) * MAISTRA-2051: Reset Kubernetes client to release-1.8 state * MAISTRA-2051: Use xns-informers in Kubernetes client * MAISTRA-2051: Un-skip tests with xns-informers issues These tests were skipped because of issues with xns-informers, which have now been solved. They should no longer be skipped. * MAISTRA-2051: Update xns-informers to latest * MAISTRA-2051: Skip problematic integration test: TestDashboard MAISTRA-2051: Use MultiNamespaceInformer in galley (maistra#254) * Revert "MAISTRA-2051: Use shared Kubernetes client in galley (maistra#241)" This reverts commit 0b1567a. * MAISTRA-2051: Use MultiNamespaceInformer in galley This is a rework of the previous change that used the central Kubernetes client in Galley. The watchers in Galley manage stopping and starting individual informers, which doesn't work well with the factory returning cached informers. This creates multi-namespace informers individually instead of using the central factory. It's also a much smaller change overall and doesn't affect the tests. * MAISTRA-2051: Add GetMemberRoll method to Kubernetes client * MAISTRA-2051: Integrate MemberRoll with Galley This configures the mulit-namespace aware infomers in Galley to respond to changes in the set of namespaces via the MemberRoll. This includes parts of the following: - 4b70b8d MAISTRA-1895 Add option to enable/disable CRD scan - 6e8019e MAISTRA-1968 allow analyzer to work with multi list watcher MAISTRA-1724: Don't watch namespaces if MemberRoll is used (maistra#257) Rewrite of the following for Maistra 2.1 / Istio 1.8 rebase: a161a53 - MAISTRA-1724 Don't watch namespaces if MRC is used (maistra#161) MAISTRA-1755: invoke UpdateNamespaces() as part of MemberRollController.Register() Cherry-pick of f0eed15 for Maistra 2.1 / Istio 1.8 rebase. MAISTRA-1724: Better hanlde deletion in NamespaceController MAISTRA-2153: Disable namespace informer if MemberRoll is used (maistra#283) This causes istiod to skip creating the namespace informer in the Kubernetes service registry controller if a MemberRoll is specified, because Maistra cannot read namespace objects. This will affect the behavior of multi-network deployments that do not use mesh networks for configuration, i.e. a namespace cannot be labeled with a default network now. MAISTRA-2197: Push first update when cache is warm (maistra#294) Change SMMR Controller behavior to only send the first update to listeners when it has a list of members ready. In other words, when cache is synced. Before this, the first update was sent with only one hardcoded member: The control plane namespace. Now it is sent with the full list of SMMR members. While on that, switch to our own log scope, to facilitate debugging. Manual cherry pick of maistra#291 MAISTRA-2233: Start xns-informers with empty namespace set (maistra#303) The multi-namespace informers created by xns-informers default to watching all namespaces to match upstream behaviour. This causes permissions issues in Maistra because they will do this until the first update from the MemberRoll controller sets the correct set of namespaces on each informer. We should instead explicitly configure them with an empty set of namespaces at startup. MAISTRA-2234: Seed MemberRoll listeners with system namespace (maistra#302) The MemberRoll controller was changed in MAISTRA-2197 to not send the initial update with just the system namespace to all listeners. This can be a problem when the user hasn't created an SMMR resource yet, because any listeners registered before the caches sync may never get an update informing them to watch the system namespace. This attempts to work around the issue by having all listeners individually wait on the caches to sync, then seed just the system namespace if no SMMR resource is found. MAISTRA-2271: Update xns-informers to fix delete events issue (maistra#315) This updates xns-informers to include a fix for sending delete events for all objects when a namespace is no longer watched. See: maistra/xns-informer#12 Co-authored-by: Brad Ison <brad.ison@redhat.com> OSSM-2006 Fix multiNamespaceInformer.HasSynced() fix(xns-informer): only sync nsInformer when not nil (maistra#684) Fix shutting down namespace controller Signed-off-by: Jacek Ewertowski <jewertow@redhat.com> OSSM-2233: uses maistra.io/api instead of copying Before we were generating and copying Maistra API types, now we use it as a dependency. Additionally following changes are introduced: - vendoring has been removed, as we now use embedded manifests from maistra/api in tests - cleans up Makefiles - removes unnecessary files (generated API) OSSM-2375 Log the list of member namespaces on every change (maistra#716) Co-authored-by: Marko Lukša <marko.luksa@gmail.com> OSSM-3703: Fix AUTO_RELOAD_PLUGIN_CERTS in multi-tenant mode (maistra#778) * OSSM-3703: Fix AUTO_RELOAD_PLUGIN_CERTS in multi-tenant mode Signed-off-by: Jacek Ewertowski <jewertow@redhat.com> * Revert unnecessary variable declaration Signed-off-by: Jacek Ewertowski <jewertow@redhat.com> --------- Signed-off-by: Jacek Ewertowski <jewertow@redhat.com>
MAISTRA-2051: Add xns-informer for Kubernetes types (maistra#223) * Update mirrored licenses to fix gen-check * MAISTRA-2051: Add xns-informer for Kubernetes types This integrates the xns-informer library for multi-namespace support, but only for core Kubernetes types. The informers are hard-coded to watch all namespaces here. The integration with MemberRoll will come in a follow-up. MAISTRA-2051 Add xns-informer for Istio types (maistra#221) MAISTRA-2051: Add MemberRollController (maistra#227) * MAISTRA-2051: Add MemberRollController Includes the following: * 75742b0 - Add Makefile for Maistra client generation This adds a Makefile with tasks for generating the Maistra specific clients. It is adapted from the one in the Istio client-go repository. * 5f8562c - Add MemberRollController Squashed commit, consisting of: * MAISTRA-417: Add MemberRollController * MAISTRA-450: Switch across to ConfiguredMembers and check existing config for changes * MAISTRA-1005 Do not expect namespaces to have a stable ordering The clients have also been regenerated. * 1b7a89d - Add missing licenses * fe2f8cd - Fix Copyright holder This is to make sure all PR's will have an updated vendor directory. The `gencheck` prow job will ensure that. * MAISTRA-2051: Update MemberRollController for xns-informers * MAISTRA-2051: Add AddMemberRoll to kube client * MAISTRA-2051: Configure MemberRoll controller in istiod MAISTRA-2051: Add xns-informer for Service APIs (maistra#229) * MAISTRA-2051: Update xns-informers * MAISTRA-2051: Add xns-informer for Service APIs MAISTRA-2051: Use shared Kubernetes client in galley (maistra#241) This moves galley to the shared Kubernetes client, which will let it use xns-informers for multi-namespace support like everything else. MAISTRA-2051: Update xns-informers to latest (maistra#252) * MAISTRA-2051: Reset Kubernetes client to release-1.8 state * MAISTRA-2051: Use xns-informers in Kubernetes client * MAISTRA-2051: Un-skip tests with xns-informers issues These tests were skipped because of issues with xns-informers, which have now been solved. They should no longer be skipped. * MAISTRA-2051: Update xns-informers to latest * MAISTRA-2051: Skip problematic integration test: TestDashboard MAISTRA-2051: Use MultiNamespaceInformer in galley (maistra#254) * Revert "MAISTRA-2051: Use shared Kubernetes client in galley (maistra#241)" This reverts commit 0b1567a. * MAISTRA-2051: Use MultiNamespaceInformer in galley This is a rework of the previous change that used the central Kubernetes client in Galley. The watchers in Galley manage stopping and starting individual informers, which doesn't work well with the factory returning cached informers. This creates multi-namespace informers individually instead of using the central factory. It's also a much smaller change overall and doesn't affect the tests. * MAISTRA-2051: Add GetMemberRoll method to Kubernetes client * MAISTRA-2051: Integrate MemberRoll with Galley This configures the mulit-namespace aware infomers in Galley to respond to changes in the set of namespaces via the MemberRoll. This includes parts of the following: - 4b70b8d MAISTRA-1895 Add option to enable/disable CRD scan - 6e8019e MAISTRA-1968 allow analyzer to work with multi list watcher MAISTRA-1724: Don't watch namespaces if MemberRoll is used (maistra#257) Rewrite of the following for Maistra 2.1 / Istio 1.8 rebase: a161a53 - MAISTRA-1724 Don't watch namespaces if MRC is used (maistra#161) MAISTRA-1755: invoke UpdateNamespaces() as part of MemberRollController.Register() Cherry-pick of f0eed15 for Maistra 2.1 / Istio 1.8 rebase. MAISTRA-1724: Better hanlde deletion in NamespaceController MAISTRA-2153: Disable namespace informer if MemberRoll is used (maistra#283) This causes istiod to skip creating the namespace informer in the Kubernetes service registry controller if a MemberRoll is specified, because Maistra cannot read namespace objects. This will affect the behavior of multi-network deployments that do not use mesh networks for configuration, i.e. a namespace cannot be labeled with a default network now. MAISTRA-2197: Push first update when cache is warm (maistra#294) Change SMMR Controller behavior to only send the first update to listeners when it has a list of members ready. In other words, when cache is synced. Before this, the first update was sent with only one hardcoded member: The control plane namespace. Now it is sent with the full list of SMMR members. While on that, switch to our own log scope, to facilitate debugging. Manual cherry pick of maistra#291 MAISTRA-2233: Start xns-informers with empty namespace set (maistra#303) The multi-namespace informers created by xns-informers default to watching all namespaces to match upstream behaviour. This causes permissions issues in Maistra because they will do this until the first update from the MemberRoll controller sets the correct set of namespaces on each informer. We should instead explicitly configure them with an empty set of namespaces at startup. MAISTRA-2234: Seed MemberRoll listeners with system namespace (maistra#302) The MemberRoll controller was changed in MAISTRA-2197 to not send the initial update with just the system namespace to all listeners. This can be a problem when the user hasn't created an SMMR resource yet, because any listeners registered before the caches sync may never get an update informing them to watch the system namespace. This attempts to work around the issue by having all listeners individually wait on the caches to sync, then seed just the system namespace if no SMMR resource is found. MAISTRA-2271: Update xns-informers to fix delete events issue (maistra#315) This updates xns-informers to include a fix for sending delete events for all objects when a namespace is no longer watched. See: maistra/xns-informer#12 Co-authored-by: Brad Ison <brad.ison@redhat.com> OSSM-2006 Fix multiNamespaceInformer.HasSynced() fix(xns-informer): only sync nsInformer when not nil (maistra#684) Fix shutting down namespace controller Signed-off-by: Jacek Ewertowski <jewertow@redhat.com> OSSM-2233: uses maistra.io/api instead of copying Before we were generating and copying Maistra API types, now we use it as a dependency. Additionally following changes are introduced: - vendoring has been removed, as we now use embedded manifests from maistra/api in tests - cleans up Makefiles - removes unnecessary files (generated API) OSSM-2375 Log the list of member namespaces on every change (maistra#716) Co-authored-by: Marko Lukša <marko.luksa@gmail.com> OSSM-3703: Fix AUTO_RELOAD_PLUGIN_CERTS in multi-tenant mode (maistra#778) * OSSM-3703: Fix AUTO_RELOAD_PLUGIN_CERTS in multi-tenant mode Signed-off-by: Jacek Ewertowski <jewertow@redhat.com> * Revert unnecessary variable declaration Signed-off-by: Jacek Ewertowski <jewertow@redhat.com> --------- Signed-off-by: Jacek Ewertowski <jewertow@redhat.com>
MAISTRA-2051: Add xns-informer for Kubernetes types (maistra#223) * Update mirrored licenses to fix gen-check * MAISTRA-2051: Add xns-informer for Kubernetes types This integrates the xns-informer library for multi-namespace support, but only for core Kubernetes types. The informers are hard-coded to watch all namespaces here. The integration with MemberRoll will come in a follow-up. MAISTRA-2051 Add xns-informer for Istio types (maistra#221) MAISTRA-2051: Add MemberRollController (maistra#227) * MAISTRA-2051: Add MemberRollController Includes the following: * 75742b0 - Add Makefile for Maistra client generation This adds a Makefile with tasks for generating the Maistra specific clients. It is adapted from the one in the Istio client-go repository. * 5f8562c - Add MemberRollController Squashed commit, consisting of: * MAISTRA-417: Add MemberRollController * MAISTRA-450: Switch across to ConfiguredMembers and check existing config for changes * MAISTRA-1005 Do not expect namespaces to have a stable ordering The clients have also been regenerated. * 1b7a89d - Add missing licenses * fe2f8cd - Fix Copyright holder This is to make sure all PR's will have an updated vendor directory. The `gencheck` prow job will ensure that. * MAISTRA-2051: Update MemberRollController for xns-informers * MAISTRA-2051: Add AddMemberRoll to kube client * MAISTRA-2051: Configure MemberRoll controller in istiod MAISTRA-2051: Add xns-informer for Service APIs (maistra#229) * MAISTRA-2051: Update xns-informers * MAISTRA-2051: Add xns-informer for Service APIs MAISTRA-2051: Use shared Kubernetes client in galley (maistra#241) This moves galley to the shared Kubernetes client, which will let it use xns-informers for multi-namespace support like everything else. MAISTRA-2051: Update xns-informers to latest (maistra#252) * MAISTRA-2051: Reset Kubernetes client to release-1.8 state * MAISTRA-2051: Use xns-informers in Kubernetes client * MAISTRA-2051: Un-skip tests with xns-informers issues These tests were skipped because of issues with xns-informers, which have now been solved. They should no longer be skipped. * MAISTRA-2051: Update xns-informers to latest * MAISTRA-2051: Skip problematic integration test: TestDashboard MAISTRA-2051: Use MultiNamespaceInformer in galley (maistra#254) * Revert "MAISTRA-2051: Use shared Kubernetes client in galley (maistra#241)" This reverts commit 0b1567a. * MAISTRA-2051: Use MultiNamespaceInformer in galley This is a rework of the previous change that used the central Kubernetes client in Galley. The watchers in Galley manage stopping and starting individual informers, which doesn't work well with the factory returning cached informers. This creates multi-namespace informers individually instead of using the central factory. It's also a much smaller change overall and doesn't affect the tests. * MAISTRA-2051: Add GetMemberRoll method to Kubernetes client * MAISTRA-2051: Integrate MemberRoll with Galley This configures the mulit-namespace aware infomers in Galley to respond to changes in the set of namespaces via the MemberRoll. This includes parts of the following: - 4b70b8d MAISTRA-1895 Add option to enable/disable CRD scan - 6e8019e MAISTRA-1968 allow analyzer to work with multi list watcher MAISTRA-1724: Don't watch namespaces if MemberRoll is used (maistra#257) Rewrite of the following for Maistra 2.1 / Istio 1.8 rebase: a161a53 - MAISTRA-1724 Don't watch namespaces if MRC is used (maistra#161) MAISTRA-1755: invoke UpdateNamespaces() as part of MemberRollController.Register() Cherry-pick of f0eed15 for Maistra 2.1 / Istio 1.8 rebase. MAISTRA-1724: Better hanlde deletion in NamespaceController MAISTRA-2153: Disable namespace informer if MemberRoll is used (maistra#283) This causes istiod to skip creating the namespace informer in the Kubernetes service registry controller if a MemberRoll is specified, because Maistra cannot read namespace objects. This will affect the behavior of multi-network deployments that do not use mesh networks for configuration, i.e. a namespace cannot be labeled with a default network now. MAISTRA-2197: Push first update when cache is warm (maistra#294) Change SMMR Controller behavior to only send the first update to listeners when it has a list of members ready. In other words, when cache is synced. Before this, the first update was sent with only one hardcoded member: The control plane namespace. Now it is sent with the full list of SMMR members. While on that, switch to our own log scope, to facilitate debugging. Manual cherry pick of maistra#291 MAISTRA-2233: Start xns-informers with empty namespace set (maistra#303) The multi-namespace informers created by xns-informers default to watching all namespaces to match upstream behaviour. This causes permissions issues in Maistra because they will do this until the first update from the MemberRoll controller sets the correct set of namespaces on each informer. We should instead explicitly configure them with an empty set of namespaces at startup. MAISTRA-2234: Seed MemberRoll listeners with system namespace (maistra#302) The MemberRoll controller was changed in MAISTRA-2197 to not send the initial update with just the system namespace to all listeners. This can be a problem when the user hasn't created an SMMR resource yet, because any listeners registered before the caches sync may never get an update informing them to watch the system namespace. This attempts to work around the issue by having all listeners individually wait on the caches to sync, then seed just the system namespace if no SMMR resource is found. MAISTRA-2271: Update xns-informers to fix delete events issue (maistra#315) This updates xns-informers to include a fix for sending delete events for all objects when a namespace is no longer watched. See: maistra/xns-informer#12 Co-authored-by: Brad Ison <brad.ison@redhat.com> OSSM-2006 Fix multiNamespaceInformer.HasSynced() fix(xns-informer): only sync nsInformer when not nil (maistra#684) Fix shutting down namespace controller Signed-off-by: Jacek Ewertowski <jewertow@redhat.com> OSSM-2233: uses maistra.io/api instead of copying Before we were generating and copying Maistra API types, now we use it as a dependency. Additionally following changes are introduced: - vendoring has been removed, as we now use embedded manifests from maistra/api in tests - cleans up Makefiles - removes unnecessary files (generated API) OSSM-2375 Log the list of member namespaces on every change (maistra#716) Co-authored-by: Marko Lukša <marko.luksa@gmail.com> OSSM-3703: Fix AUTO_RELOAD_PLUGIN_CERTS in multi-tenant mode (maistra#778) * OSSM-3703: Fix AUTO_RELOAD_PLUGIN_CERTS in multi-tenant mode Signed-off-by: Jacek Ewertowski <jewertow@redhat.com> * Revert unnecessary variable declaration Signed-off-by: Jacek Ewertowski <jewertow@redhat.com> --------- Signed-off-by: Jacek Ewertowski <jewertow@redhat.com>
MAISTRA-2051: Add xns-informer for Kubernetes types (maistra#223) * Update mirrored licenses to fix gen-check * MAISTRA-2051: Add xns-informer for Kubernetes types This integrates the xns-informer library for multi-namespace support, but only for core Kubernetes types. The informers are hard-coded to watch all namespaces here. The integration with MemberRoll will come in a follow-up. MAISTRA-2051 Add xns-informer for Istio types (maistra#221) MAISTRA-2051: Add MemberRollController (maistra#227) * MAISTRA-2051: Add MemberRollController Includes the following: * 75742b0 - Add Makefile for Maistra client generation This adds a Makefile with tasks for generating the Maistra specific clients. It is adapted from the one in the Istio client-go repository. * 5f8562c - Add MemberRollController Squashed commit, consisting of: * MAISTRA-417: Add MemberRollController * MAISTRA-450: Switch across to ConfiguredMembers and check existing config for changes * MAISTRA-1005 Do not expect namespaces to have a stable ordering The clients have also been regenerated. * 1b7a89d - Add missing licenses * fe2f8cd - Fix Copyright holder This is to make sure all PR's will have an updated vendor directory. The `gencheck` prow job will ensure that. * MAISTRA-2051: Update MemberRollController for xns-informers * MAISTRA-2051: Add AddMemberRoll to kube client * MAISTRA-2051: Configure MemberRoll controller in istiod MAISTRA-2051: Add xns-informer for Service APIs (maistra#229) * MAISTRA-2051: Update xns-informers * MAISTRA-2051: Add xns-informer for Service APIs MAISTRA-2051: Use shared Kubernetes client in galley (maistra#241) This moves galley to the shared Kubernetes client, which will let it use xns-informers for multi-namespace support like everything else. MAISTRA-2051: Update xns-informers to latest (maistra#252) * MAISTRA-2051: Reset Kubernetes client to release-1.8 state * MAISTRA-2051: Use xns-informers in Kubernetes client * MAISTRA-2051: Un-skip tests with xns-informers issues These tests were skipped because of issues with xns-informers, which have now been solved. They should no longer be skipped. * MAISTRA-2051: Update xns-informers to latest * MAISTRA-2051: Skip problematic integration test: TestDashboard MAISTRA-2051: Use MultiNamespaceInformer in galley (maistra#254) * Revert "MAISTRA-2051: Use shared Kubernetes client in galley (maistra#241)" This reverts commit 0b1567a. * MAISTRA-2051: Use MultiNamespaceInformer in galley This is a rework of the previous change that used the central Kubernetes client in Galley. The watchers in Galley manage stopping and starting individual informers, which doesn't work well with the factory returning cached informers. This creates multi-namespace informers individually instead of using the central factory. It's also a much smaller change overall and doesn't affect the tests. * MAISTRA-2051: Add GetMemberRoll method to Kubernetes client * MAISTRA-2051: Integrate MemberRoll with Galley This configures the mulit-namespace aware infomers in Galley to respond to changes in the set of namespaces via the MemberRoll. This includes parts of the following: - 4b70b8d MAISTRA-1895 Add option to enable/disable CRD scan - 6e8019e MAISTRA-1968 allow analyzer to work with multi list watcher MAISTRA-1724: Don't watch namespaces if MemberRoll is used (maistra#257) Rewrite of the following for Maistra 2.1 / Istio 1.8 rebase: a161a53 - MAISTRA-1724 Don't watch namespaces if MRC is used (maistra#161) MAISTRA-1755: invoke UpdateNamespaces() as part of MemberRollController.Register() Cherry-pick of f0eed15 for Maistra 2.1 / Istio 1.8 rebase. MAISTRA-1724: Better hanlde deletion in NamespaceController MAISTRA-2153: Disable namespace informer if MemberRoll is used (maistra#283) This causes istiod to skip creating the namespace informer in the Kubernetes service registry controller if a MemberRoll is specified, because Maistra cannot read namespace objects. This will affect the behavior of multi-network deployments that do not use mesh networks for configuration, i.e. a namespace cannot be labeled with a default network now. MAISTRA-2197: Push first update when cache is warm (maistra#294) Change SMMR Controller behavior to only send the first update to listeners when it has a list of members ready. In other words, when cache is synced. Before this, the first update was sent with only one hardcoded member: The control plane namespace. Now it is sent with the full list of SMMR members. While on that, switch to our own log scope, to facilitate debugging. Manual cherry pick of maistra#291 MAISTRA-2233: Start xns-informers with empty namespace set (maistra#303) The multi-namespace informers created by xns-informers default to watching all namespaces to match upstream behaviour. This causes permissions issues in Maistra because they will do this until the first update from the MemberRoll controller sets the correct set of namespaces on each informer. We should instead explicitly configure them with an empty set of namespaces at startup. MAISTRA-2234: Seed MemberRoll listeners with system namespace (maistra#302) The MemberRoll controller was changed in MAISTRA-2197 to not send the initial update with just the system namespace to all listeners. This can be a problem when the user hasn't created an SMMR resource yet, because any listeners registered before the caches sync may never get an update informing them to watch the system namespace. This attempts to work around the issue by having all listeners individually wait on the caches to sync, then seed just the system namespace if no SMMR resource is found. MAISTRA-2271: Update xns-informers to fix delete events issue (maistra#315) This updates xns-informers to include a fix for sending delete events for all objects when a namespace is no longer watched. See: maistra/xns-informer#12 Co-authored-by: Brad Ison <brad.ison@redhat.com> OSSM-2006 Fix multiNamespaceInformer.HasSynced() fix(xns-informer): only sync nsInformer when not nil (maistra#684) Fix shutting down namespace controller Signed-off-by: Jacek Ewertowski <jewertow@redhat.com> OSSM-2233: uses maistra.io/api instead of copying Before we were generating and copying Maistra API types, now we use it as a dependency. Additionally following changes are introduced: - vendoring has been removed, as we now use embedded manifests from maistra/api in tests - cleans up Makefiles - removes unnecessary files (generated API) OSSM-2375 Log the list of member namespaces on every change (maistra#716) Co-authored-by: Marko Lukša <marko.luksa@gmail.com> OSSM-3703: Fix AUTO_RELOAD_PLUGIN_CERTS in multi-tenant mode (maistra#778) * OSSM-3703: Fix AUTO_RELOAD_PLUGIN_CERTS in multi-tenant mode Signed-off-by: Jacek Ewertowski <jewertow@redhat.com> * Revert unnecessary variable declaration Signed-off-by: Jacek Ewertowski <jewertow@redhat.com> --------- Signed-off-by: Jacek Ewertowski <jewertow@redhat.com>
MAISTRA-2051: Add xns-informer for Kubernetes types (maistra#223) * Update mirrored licenses to fix gen-check * MAISTRA-2051: Add xns-informer for Kubernetes types This integrates the xns-informer library for multi-namespace support, but only for core Kubernetes types. The informers are hard-coded to watch all namespaces here. The integration with MemberRoll will come in a follow-up. MAISTRA-2051 Add xns-informer for Istio types (maistra#221) MAISTRA-2051: Add MemberRollController (maistra#227) * MAISTRA-2051: Add MemberRollController Includes the following: * 75742b0 - Add Makefile for Maistra client generation This adds a Makefile with tasks for generating the Maistra specific clients. It is adapted from the one in the Istio client-go repository. * 5f8562c - Add MemberRollController Squashed commit, consisting of: * MAISTRA-417: Add MemberRollController * MAISTRA-450: Switch across to ConfiguredMembers and check existing config for changes * MAISTRA-1005 Do not expect namespaces to have a stable ordering The clients have also been regenerated. * 1b7a89d - Add missing licenses * fe2f8cd - Fix Copyright holder This is to make sure all PR's will have an updated vendor directory. The `gencheck` prow job will ensure that. * MAISTRA-2051: Update MemberRollController for xns-informers * MAISTRA-2051: Add AddMemberRoll to kube client * MAISTRA-2051: Configure MemberRoll controller in istiod MAISTRA-2051: Add xns-informer for Service APIs (maistra#229) * MAISTRA-2051: Update xns-informers * MAISTRA-2051: Add xns-informer for Service APIs MAISTRA-2051: Use shared Kubernetes client in galley (maistra#241) This moves galley to the shared Kubernetes client, which will let it use xns-informers for multi-namespace support like everything else. MAISTRA-2051: Update xns-informers to latest (maistra#252) * MAISTRA-2051: Reset Kubernetes client to release-1.8 state * MAISTRA-2051: Use xns-informers in Kubernetes client * MAISTRA-2051: Un-skip tests with xns-informers issues These tests were skipped because of issues with xns-informers, which have now been solved. They should no longer be skipped. * MAISTRA-2051: Update xns-informers to latest * MAISTRA-2051: Skip problematic integration test: TestDashboard MAISTRA-2051: Use MultiNamespaceInformer in galley (maistra#254) * Revert "MAISTRA-2051: Use shared Kubernetes client in galley (maistra#241)" This reverts commit 0b1567a. * MAISTRA-2051: Use MultiNamespaceInformer in galley This is a rework of the previous change that used the central Kubernetes client in Galley. The watchers in Galley manage stopping and starting individual informers, which doesn't work well with the factory returning cached informers. This creates multi-namespace informers individually instead of using the central factory. It's also a much smaller change overall and doesn't affect the tests. * MAISTRA-2051: Add GetMemberRoll method to Kubernetes client * MAISTRA-2051: Integrate MemberRoll with Galley This configures the mulit-namespace aware infomers in Galley to respond to changes in the set of namespaces via the MemberRoll. This includes parts of the following: - 4b70b8d MAISTRA-1895 Add option to enable/disable CRD scan - 6e8019e MAISTRA-1968 allow analyzer to work with multi list watcher MAISTRA-1724: Don't watch namespaces if MemberRoll is used (maistra#257) Rewrite of the following for Maistra 2.1 / Istio 1.8 rebase: a161a53 - MAISTRA-1724 Don't watch namespaces if MRC is used (maistra#161) MAISTRA-1755: invoke UpdateNamespaces() as part of MemberRollController.Register() Cherry-pick of f0eed15 for Maistra 2.1 / Istio 1.8 rebase. MAISTRA-1724: Better hanlde deletion in NamespaceController MAISTRA-2153: Disable namespace informer if MemberRoll is used (maistra#283) This causes istiod to skip creating the namespace informer in the Kubernetes service registry controller if a MemberRoll is specified, because Maistra cannot read namespace objects. This will affect the behavior of multi-network deployments that do not use mesh networks for configuration, i.e. a namespace cannot be labeled with a default network now. MAISTRA-2197: Push first update when cache is warm (maistra#294) Change SMMR Controller behavior to only send the first update to listeners when it has a list of members ready. In other words, when cache is synced. Before this, the first update was sent with only one hardcoded member: The control plane namespace. Now it is sent with the full list of SMMR members. While on that, switch to our own log scope, to facilitate debugging. Manual cherry pick of maistra#291 MAISTRA-2233: Start xns-informers with empty namespace set (maistra#303) The multi-namespace informers created by xns-informers default to watching all namespaces to match upstream behaviour. This causes permissions issues in Maistra because they will do this until the first update from the MemberRoll controller sets the correct set of namespaces on each informer. We should instead explicitly configure them with an empty set of namespaces at startup. MAISTRA-2234: Seed MemberRoll listeners with system namespace (maistra#302) The MemberRoll controller was changed in MAISTRA-2197 to not send the initial update with just the system namespace to all listeners. This can be a problem when the user hasn't created an SMMR resource yet, because any listeners registered before the caches sync may never get an update informing them to watch the system namespace. This attempts to work around the issue by having all listeners individually wait on the caches to sync, then seed just the system namespace if no SMMR resource is found. MAISTRA-2271: Update xns-informers to fix delete events issue (maistra#315) This updates xns-informers to include a fix for sending delete events for all objects when a namespace is no longer watched. See: maistra/xns-informer#12 Co-authored-by: Brad Ison <brad.ison@redhat.com> OSSM-2006 Fix multiNamespaceInformer.HasSynced() fix(xns-informer): only sync nsInformer when not nil (maistra#684) Fix shutting down namespace controller Signed-off-by: Jacek Ewertowski <jewertow@redhat.com> OSSM-2233: uses maistra.io/api instead of copying Before we were generating and copying Maistra API types, now we use it as a dependency. Additionally following changes are introduced: - vendoring has been removed, as we now use embedded manifests from maistra/api in tests - cleans up Makefiles - removes unnecessary files (generated API) OSSM-2375 Log the list of member namespaces on every change (maistra#716) Co-authored-by: Marko Lukša <marko.luksa@gmail.com> OSSM-3703: Fix AUTO_RELOAD_PLUGIN_CERTS in multi-tenant mode (maistra#778) * OSSM-3703: Fix AUTO_RELOAD_PLUGIN_CERTS in multi-tenant mode Signed-off-by: Jacek Ewertowski <jewertow@redhat.com> * Revert unnecessary variable declaration Signed-off-by: Jacek Ewertowski <jewertow@redhat.com> --------- Signed-off-by: Jacek Ewertowski <jewertow@redhat.com>
MAISTRA-2051: Add xns-informer for Kubernetes types (#223) * Update mirrored licenses to fix gen-check * MAISTRA-2051: Add xns-informer for Kubernetes types This integrates the xns-informer library for multi-namespace support, but only for core Kubernetes types. The informers are hard-coded to watch all namespaces here. The integration with MemberRoll will come in a follow-up. MAISTRA-2051 Add xns-informer for Istio types (#221) MAISTRA-2051: Add MemberRollController (#227) * MAISTRA-2051: Add MemberRollController Includes the following: * 75742b0 - Add Makefile for Maistra client generation This adds a Makefile with tasks for generating the Maistra specific clients. It is adapted from the one in the Istio client-go repository. * 5f8562c - Add MemberRollController Squashed commit, consisting of: * MAISTRA-417: Add MemberRollController * MAISTRA-450: Switch across to ConfiguredMembers and check existing config for changes * MAISTRA-1005 Do not expect namespaces to have a stable ordering The clients have also been regenerated. * 1b7a89d - Add missing licenses * fe2f8cd - Fix Copyright holder This is to make sure all PR's will have an updated vendor directory. The `gencheck` prow job will ensure that. * MAISTRA-2051: Update MemberRollController for xns-informers * MAISTRA-2051: Add AddMemberRoll to kube client * MAISTRA-2051: Configure MemberRoll controller in istiod MAISTRA-2051: Add xns-informer for Service APIs (#229) * MAISTRA-2051: Update xns-informers * MAISTRA-2051: Add xns-informer for Service APIs MAISTRA-2051: Use shared Kubernetes client in galley (#241) This moves galley to the shared Kubernetes client, which will let it use xns-informers for multi-namespace support like everything else. MAISTRA-2051: Update xns-informers to latest (#252) * MAISTRA-2051: Reset Kubernetes client to release-1.8 state * MAISTRA-2051: Use xns-informers in Kubernetes client * MAISTRA-2051: Un-skip tests with xns-informers issues These tests were skipped because of issues with xns-informers, which have now been solved. They should no longer be skipped. * MAISTRA-2051: Update xns-informers to latest * MAISTRA-2051: Skip problematic integration test: TestDashboard MAISTRA-2051: Use MultiNamespaceInformer in galley (#254) * Revert "MAISTRA-2051: Use shared Kubernetes client in galley (#241)" This reverts commit 0b1567a. * MAISTRA-2051: Use MultiNamespaceInformer in galley This is a rework of the previous change that used the central Kubernetes client in Galley. The watchers in Galley manage stopping and starting individual informers, which doesn't work well with the factory returning cached informers. This creates multi-namespace informers individually instead of using the central factory. It's also a much smaller change overall and doesn't affect the tests. * MAISTRA-2051: Add GetMemberRoll method to Kubernetes client * MAISTRA-2051: Integrate MemberRoll with Galley This configures the mulit-namespace aware infomers in Galley to respond to changes in the set of namespaces via the MemberRoll. This includes parts of the following: - 4b70b8d MAISTRA-1895 Add option to enable/disable CRD scan - 6e8019e MAISTRA-1968 allow analyzer to work with multi list watcher MAISTRA-1724: Don't watch namespaces if MemberRoll is used (#257) Rewrite of the following for Maistra 2.1 / Istio 1.8 rebase: a161a53 - MAISTRA-1724 Don't watch namespaces if MRC is used (#161) MAISTRA-1755: invoke UpdateNamespaces() as part of MemberRollController.Register() Cherry-pick of f0eed15 for Maistra 2.1 / Istio 1.8 rebase. MAISTRA-1724: Better hanlde deletion in NamespaceController MAISTRA-2153: Disable namespace informer if MemberRoll is used (#283) This causes istiod to skip creating the namespace informer in the Kubernetes service registry controller if a MemberRoll is specified, because Maistra cannot read namespace objects. This will affect the behavior of multi-network deployments that do not use mesh networks for configuration, i.e. a namespace cannot be labeled with a default network now. MAISTRA-2197: Push first update when cache is warm (#294) Change SMMR Controller behavior to only send the first update to listeners when it has a list of members ready. In other words, when cache is synced. Before this, the first update was sent with only one hardcoded member: The control plane namespace. Now it is sent with the full list of SMMR members. While on that, switch to our own log scope, to facilitate debugging. Manual cherry pick of #291 MAISTRA-2233: Start xns-informers with empty namespace set (#303) The multi-namespace informers created by xns-informers default to watching all namespaces to match upstream behaviour. This causes permissions issues in Maistra because they will do this until the first update from the MemberRoll controller sets the correct set of namespaces on each informer. We should instead explicitly configure them with an empty set of namespaces at startup. MAISTRA-2234: Seed MemberRoll listeners with system namespace (#302) The MemberRoll controller was changed in MAISTRA-2197 to not send the initial update with just the system namespace to all listeners. This can be a problem when the user hasn't created an SMMR resource yet, because any listeners registered before the caches sync may never get an update informing them to watch the system namespace. This attempts to work around the issue by having all listeners individually wait on the caches to sync, then seed just the system namespace if no SMMR resource is found. MAISTRA-2271: Update xns-informers to fix delete events issue (#315) This updates xns-informers to include a fix for sending delete events for all objects when a namespace is no longer watched. See: maistra/xns-informer#12 Co-authored-by: Brad Ison <brad.ison@redhat.com> OSSM-2006 Fix multiNamespaceInformer.HasSynced() fix(xns-informer): only sync nsInformer when not nil (#684) Fix shutting down namespace controller Signed-off-by: Jacek Ewertowski <jewertow@redhat.com> OSSM-2233: uses maistra.io/api instead of copying Before we were generating and copying Maistra API types, now we use it as a dependency. Additionally following changes are introduced: - vendoring has been removed, as we now use embedded manifests from maistra/api in tests - cleans up Makefiles - removes unnecessary files (generated API) OSSM-2375 Log the list of member namespaces on every change (#716) Co-authored-by: Marko Lukša <marko.luksa@gmail.com> OSSM-3703: Fix AUTO_RELOAD_PLUGIN_CERTS in multi-tenant mode (#778) * OSSM-3703: Fix AUTO_RELOAD_PLUGIN_CERTS in multi-tenant mode Signed-off-by: Jacek Ewertowski <jewertow@redhat.com> * Revert unnecessary variable declaration Signed-off-by: Jacek Ewertowski <jewertow@redhat.com> --------- Signed-off-by: Jacek Ewertowski <jewertow@redhat.com>
MAISTRA-2051: Add xns-informer for Kubernetes types (maistra#223) * Update mirrored licenses to fix gen-check * MAISTRA-2051: Add xns-informer for Kubernetes types This integrates the xns-informer library for multi-namespace support, but only for core Kubernetes types. The informers are hard-coded to watch all namespaces here. The integration with MemberRoll will come in a follow-up. MAISTRA-2051 Add xns-informer for Istio types (maistra#221) MAISTRA-2051: Add MemberRollController (maistra#227) * MAISTRA-2051: Add MemberRollController Includes the following: * 75742b0 - Add Makefile for Maistra client generation This adds a Makefile with tasks for generating the Maistra specific clients. It is adapted from the one in the Istio client-go repository. * 5f8562c - Add MemberRollController Squashed commit, consisting of: * MAISTRA-417: Add MemberRollController * MAISTRA-450: Switch across to ConfiguredMembers and check existing config for changes * MAISTRA-1005 Do not expect namespaces to have a stable ordering The clients have also been regenerated. * 1b7a89d - Add missing licenses * fe2f8cd - Fix Copyright holder This is to make sure all PR's will have an updated vendor directory. The `gencheck` prow job will ensure that. * MAISTRA-2051: Update MemberRollController for xns-informers * MAISTRA-2051: Add AddMemberRoll to kube client * MAISTRA-2051: Configure MemberRoll controller in istiod MAISTRA-2051: Add xns-informer for Service APIs (maistra#229) * MAISTRA-2051: Update xns-informers * MAISTRA-2051: Add xns-informer for Service APIs MAISTRA-2051: Use shared Kubernetes client in galley (maistra#241) This moves galley to the shared Kubernetes client, which will let it use xns-informers for multi-namespace support like everything else. MAISTRA-2051: Update xns-informers to latest (maistra#252) * MAISTRA-2051: Reset Kubernetes client to release-1.8 state * MAISTRA-2051: Use xns-informers in Kubernetes client * MAISTRA-2051: Un-skip tests with xns-informers issues These tests were skipped because of issues with xns-informers, which have now been solved. They should no longer be skipped. * MAISTRA-2051: Update xns-informers to latest * MAISTRA-2051: Skip problematic integration test: TestDashboard MAISTRA-2051: Use MultiNamespaceInformer in galley (maistra#254) * Revert "MAISTRA-2051: Use shared Kubernetes client in galley (maistra#241)" This reverts commit 0b1567a. * MAISTRA-2051: Use MultiNamespaceInformer in galley This is a rework of the previous change that used the central Kubernetes client in Galley. The watchers in Galley manage stopping and starting individual informers, which doesn't work well with the factory returning cached informers. This creates multi-namespace informers individually instead of using the central factory. It's also a much smaller change overall and doesn't affect the tests. * MAISTRA-2051: Add GetMemberRoll method to Kubernetes client * MAISTRA-2051: Integrate MemberRoll with Galley This configures the mulit-namespace aware infomers in Galley to respond to changes in the set of namespaces via the MemberRoll. This includes parts of the following: - 4b70b8d MAISTRA-1895 Add option to enable/disable CRD scan - 6e8019e MAISTRA-1968 allow analyzer to work with multi list watcher MAISTRA-1724: Don't watch namespaces if MemberRoll is used (maistra#257) Rewrite of the following for Maistra 2.1 / Istio 1.8 rebase: a161a53 - MAISTRA-1724 Don't watch namespaces if MRC is used (maistra#161) MAISTRA-1755: invoke UpdateNamespaces() as part of MemberRollController.Register() Cherry-pick of f0eed15 for Maistra 2.1 / Istio 1.8 rebase. MAISTRA-1724: Better hanlde deletion in NamespaceController MAISTRA-2153: Disable namespace informer if MemberRoll is used (maistra#283) This causes istiod to skip creating the namespace informer in the Kubernetes service registry controller if a MemberRoll is specified, because Maistra cannot read namespace objects. This will affect the behavior of multi-network deployments that do not use mesh networks for configuration, i.e. a namespace cannot be labeled with a default network now. MAISTRA-2197: Push first update when cache is warm (maistra#294) Change SMMR Controller behavior to only send the first update to listeners when it has a list of members ready. In other words, when cache is synced. Before this, the first update was sent with only one hardcoded member: The control plane namespace. Now it is sent with the full list of SMMR members. While on that, switch to our own log scope, to facilitate debugging. Manual cherry pick of maistra#291 MAISTRA-2233: Start xns-informers with empty namespace set (maistra#303) The multi-namespace informers created by xns-informers default to watching all namespaces to match upstream behaviour. This causes permissions issues in Maistra because they will do this until the first update from the MemberRoll controller sets the correct set of namespaces on each informer. We should instead explicitly configure them with an empty set of namespaces at startup. MAISTRA-2234: Seed MemberRoll listeners with system namespace (maistra#302) The MemberRoll controller was changed in MAISTRA-2197 to not send the initial update with just the system namespace to all listeners. This can be a problem when the user hasn't created an SMMR resource yet, because any listeners registered before the caches sync may never get an update informing them to watch the system namespace. This attempts to work around the issue by having all listeners individually wait on the caches to sync, then seed just the system namespace if no SMMR resource is found. MAISTRA-2271: Update xns-informers to fix delete events issue (maistra#315) This updates xns-informers to include a fix for sending delete events for all objects when a namespace is no longer watched. See: maistra/xns-informer#12 Co-authored-by: Brad Ison <brad.ison@redhat.com> OSSM-2006 Fix multiNamespaceInformer.HasSynced() fix(xns-informer): only sync nsInformer when not nil (maistra#684) Fix shutting down namespace controller Signed-off-by: Jacek Ewertowski <jewertow@redhat.com> OSSM-2233: uses maistra.io/api instead of copying Before we were generating and copying Maistra API types, now we use it as a dependency. Additionally following changes are introduced: - vendoring has been removed, as we now use embedded manifests from maistra/api in tests - cleans up Makefiles - removes unnecessary files (generated API) OSSM-2375 Log the list of member namespaces on every change (maistra#716) Co-authored-by: Marko Lukša <marko.luksa@gmail.com> OSSM-3703: Fix AUTO_RELOAD_PLUGIN_CERTS in multi-tenant mode (maistra#778) * OSSM-3703: Fix AUTO_RELOAD_PLUGIN_CERTS in multi-tenant mode Signed-off-by: Jacek Ewertowski <jewertow@redhat.com> * Revert unnecessary variable declaration Signed-off-by: Jacek Ewertowski <jewertow@redhat.com> --------- Signed-off-by: Jacek Ewertowski <jewertow@redhat.com> Signed-off-by: Yann Liu <yannliu@redhat.com>
MAISTRA-2051: Add xns-informer for Kubernetes types (maistra#223) * Update mirrored licenses to fix gen-check * MAISTRA-2051: Add xns-informer for Kubernetes types This integrates the xns-informer library for multi-namespace support, but only for core Kubernetes types. The informers are hard-coded to watch all namespaces here. The integration with MemberRoll will come in a follow-up. MAISTRA-2051 Add xns-informer for Istio types (maistra#221) MAISTRA-2051: Add MemberRollController (maistra#227) * MAISTRA-2051: Add MemberRollController Includes the following: * 75742b0 - Add Makefile for Maistra client generation This adds a Makefile with tasks for generating the Maistra specific clients. It is adapted from the one in the Istio client-go repository. * 5f8562c - Add MemberRollController Squashed commit, consisting of: * MAISTRA-417: Add MemberRollController * MAISTRA-450: Switch across to ConfiguredMembers and check existing config for changes * MAISTRA-1005 Do not expect namespaces to have a stable ordering The clients have also been regenerated. * 1b7a89d - Add missing licenses * fe2f8cd - Fix Copyright holder This is to make sure all PR's will have an updated vendor directory. The `gencheck` prow job will ensure that. * MAISTRA-2051: Update MemberRollController for xns-informers * MAISTRA-2051: Add AddMemberRoll to kube client * MAISTRA-2051: Configure MemberRoll controller in istiod MAISTRA-2051: Add xns-informer for Service APIs (maistra#229) * MAISTRA-2051: Update xns-informers * MAISTRA-2051: Add xns-informer for Service APIs MAISTRA-2051: Use shared Kubernetes client in galley (maistra#241) This moves galley to the shared Kubernetes client, which will let it use xns-informers for multi-namespace support like everything else. MAISTRA-2051: Update xns-informers to latest (maistra#252) * MAISTRA-2051: Reset Kubernetes client to release-1.8 state * MAISTRA-2051: Use xns-informers in Kubernetes client * MAISTRA-2051: Un-skip tests with xns-informers issues These tests were skipped because of issues with xns-informers, which have now been solved. They should no longer be skipped. * MAISTRA-2051: Update xns-informers to latest * MAISTRA-2051: Skip problematic integration test: TestDashboard MAISTRA-2051: Use MultiNamespaceInformer in galley (maistra#254) * Revert "MAISTRA-2051: Use shared Kubernetes client in galley (maistra#241)" This reverts commit 0b1567a. * MAISTRA-2051: Use MultiNamespaceInformer in galley This is a rework of the previous change that used the central Kubernetes client in Galley. The watchers in Galley manage stopping and starting individual informers, which doesn't work well with the factory returning cached informers. This creates multi-namespace informers individually instead of using the central factory. It's also a much smaller change overall and doesn't affect the tests. * MAISTRA-2051: Add GetMemberRoll method to Kubernetes client * MAISTRA-2051: Integrate MemberRoll with Galley This configures the mulit-namespace aware infomers in Galley to respond to changes in the set of namespaces via the MemberRoll. This includes parts of the following: - 4b70b8d MAISTRA-1895 Add option to enable/disable CRD scan - 6e8019e MAISTRA-1968 allow analyzer to work with multi list watcher MAISTRA-1724: Don't watch namespaces if MemberRoll is used (maistra#257) Rewrite of the following for Maistra 2.1 / Istio 1.8 rebase: a161a53 - MAISTRA-1724 Don't watch namespaces if MRC is used (maistra#161) MAISTRA-1755: invoke UpdateNamespaces() as part of MemberRollController.Register() Cherry-pick of f0eed15 for Maistra 2.1 / Istio 1.8 rebase. MAISTRA-1724: Better hanlde deletion in NamespaceController MAISTRA-2153: Disable namespace informer if MemberRoll is used (maistra#283) This causes istiod to skip creating the namespace informer in the Kubernetes service registry controller if a MemberRoll is specified, because Maistra cannot read namespace objects. This will affect the behavior of multi-network deployments that do not use mesh networks for configuration, i.e. a namespace cannot be labeled with a default network now. MAISTRA-2197: Push first update when cache is warm (maistra#294) Change SMMR Controller behavior to only send the first update to listeners when it has a list of members ready. In other words, when cache is synced. Before this, the first update was sent with only one hardcoded member: The control plane namespace. Now it is sent with the full list of SMMR members. While on that, switch to our own log scope, to facilitate debugging. Manual cherry pick of maistra#291 MAISTRA-2233: Start xns-informers with empty namespace set (maistra#303) The multi-namespace informers created by xns-informers default to watching all namespaces to match upstream behaviour. This causes permissions issues in Maistra because they will do this until the first update from the MemberRoll controller sets the correct set of namespaces on each informer. We should instead explicitly configure them with an empty set of namespaces at startup. MAISTRA-2234: Seed MemberRoll listeners with system namespace (maistra#302) The MemberRoll controller was changed in MAISTRA-2197 to not send the initial update with just the system namespace to all listeners. This can be a problem when the user hasn't created an SMMR resource yet, because any listeners registered before the caches sync may never get an update informing them to watch the system namespace. This attempts to work around the issue by having all listeners individually wait on the caches to sync, then seed just the system namespace if no SMMR resource is found. MAISTRA-2271: Update xns-informers to fix delete events issue (maistra#315) This updates xns-informers to include a fix for sending delete events for all objects when a namespace is no longer watched. See: maistra/xns-informer#12 Co-authored-by: Brad Ison <brad.ison@redhat.com> OSSM-2006 Fix multiNamespaceInformer.HasSynced() fix(xns-informer): only sync nsInformer when not nil (maistra#684) Fix shutting down namespace controller Signed-off-by: Jacek Ewertowski <jewertow@redhat.com> OSSM-2233: uses maistra.io/api instead of copying Before we were generating and copying Maistra API types, now we use it as a dependency. Additionally following changes are introduced: - vendoring has been removed, as we now use embedded manifests from maistra/api in tests - cleans up Makefiles - removes unnecessary files (generated API) OSSM-2375 Log the list of member namespaces on every change (maistra#716) Co-authored-by: Marko Lukša <marko.luksa@gmail.com> OSSM-3703: Fix AUTO_RELOAD_PLUGIN_CERTS in multi-tenant mode (maistra#778) * OSSM-3703: Fix AUTO_RELOAD_PLUGIN_CERTS in multi-tenant mode Signed-off-by: Jacek Ewertowski <jewertow@redhat.com> * Revert unnecessary variable declaration Signed-off-by: Jacek Ewertowski <jewertow@redhat.com> --------- Signed-off-by: Jacek Ewertowski <jewertow@redhat.com> Signed-off-by: Yann Liu <yannliu@redhat.com>
MAISTRA-2051: Add xns-informer for Kubernetes types (maistra#223) * Update mirrored licenses to fix gen-check * MAISTRA-2051: Add xns-informer for Kubernetes types This integrates the xns-informer library for multi-namespace support, but only for core Kubernetes types. The informers are hard-coded to watch all namespaces here. The integration with MemberRoll will come in a follow-up. MAISTRA-2051 Add xns-informer for Istio types (maistra#221) MAISTRA-2051: Add MemberRollController (maistra#227) * MAISTRA-2051: Add MemberRollController Includes the following: * 75742b0 - Add Makefile for Maistra client generation This adds a Makefile with tasks for generating the Maistra specific clients. It is adapted from the one in the Istio client-go repository. * 5f8562c - Add MemberRollController Squashed commit, consisting of: * MAISTRA-417: Add MemberRollController * MAISTRA-450: Switch across to ConfiguredMembers and check existing config for changes * MAISTRA-1005 Do not expect namespaces to have a stable ordering The clients have also been regenerated. * 1b7a89d - Add missing licenses * fe2f8cd - Fix Copyright holder This is to make sure all PR's will have an updated vendor directory. The `gencheck` prow job will ensure that. * MAISTRA-2051: Update MemberRollController for xns-informers * MAISTRA-2051: Add AddMemberRoll to kube client * MAISTRA-2051: Configure MemberRoll controller in istiod MAISTRA-2051: Add xns-informer for Service APIs (maistra#229) * MAISTRA-2051: Update xns-informers * MAISTRA-2051: Add xns-informer for Service APIs MAISTRA-2051: Use shared Kubernetes client in galley (maistra#241) This moves galley to the shared Kubernetes client, which will let it use xns-informers for multi-namespace support like everything else. MAISTRA-2051: Update xns-informers to latest (maistra#252) * MAISTRA-2051: Reset Kubernetes client to release-1.8 state * MAISTRA-2051: Use xns-informers in Kubernetes client * MAISTRA-2051: Un-skip tests with xns-informers issues These tests were skipped because of issues with xns-informers, which have now been solved. They should no longer be skipped. * MAISTRA-2051: Update xns-informers to latest * MAISTRA-2051: Skip problematic integration test: TestDashboard MAISTRA-2051: Use MultiNamespaceInformer in galley (maistra#254) * Revert "MAISTRA-2051: Use shared Kubernetes client in galley (maistra#241)" This reverts commit 0b1567a. * MAISTRA-2051: Use MultiNamespaceInformer in galley This is a rework of the previous change that used the central Kubernetes client in Galley. The watchers in Galley manage stopping and starting individual informers, which doesn't work well with the factory returning cached informers. This creates multi-namespace informers individually instead of using the central factory. It's also a much smaller change overall and doesn't affect the tests. * MAISTRA-2051: Add GetMemberRoll method to Kubernetes client * MAISTRA-2051: Integrate MemberRoll with Galley This configures the mulit-namespace aware infomers in Galley to respond to changes in the set of namespaces via the MemberRoll. This includes parts of the following: - 4b70b8d MAISTRA-1895 Add option to enable/disable CRD scan - 6e8019e MAISTRA-1968 allow analyzer to work with multi list watcher MAISTRA-1724: Don't watch namespaces if MemberRoll is used (maistra#257) Rewrite of the following for Maistra 2.1 / Istio 1.8 rebase: a161a53 - MAISTRA-1724 Don't watch namespaces if MRC is used (maistra#161) MAISTRA-1755: invoke UpdateNamespaces() as part of MemberRollController.Register() Cherry-pick of f0eed15 for Maistra 2.1 / Istio 1.8 rebase. MAISTRA-1724: Better hanlde deletion in NamespaceController MAISTRA-2153: Disable namespace informer if MemberRoll is used (maistra#283) This causes istiod to skip creating the namespace informer in the Kubernetes service registry controller if a MemberRoll is specified, because Maistra cannot read namespace objects. This will affect the behavior of multi-network deployments that do not use mesh networks for configuration, i.e. a namespace cannot be labeled with a default network now. MAISTRA-2197: Push first update when cache is warm (maistra#294) Change SMMR Controller behavior to only send the first update to listeners when it has a list of members ready. In other words, when cache is synced. Before this, the first update was sent with only one hardcoded member: The control plane namespace. Now it is sent with the full list of SMMR members. While on that, switch to our own log scope, to facilitate debugging. Manual cherry pick of maistra#291 MAISTRA-2233: Start xns-informers with empty namespace set (maistra#303) The multi-namespace informers created by xns-informers default to watching all namespaces to match upstream behaviour. This causes permissions issues in Maistra because they will do this until the first update from the MemberRoll controller sets the correct set of namespaces on each informer. We should instead explicitly configure them with an empty set of namespaces at startup. MAISTRA-2234: Seed MemberRoll listeners with system namespace (maistra#302) The MemberRoll controller was changed in MAISTRA-2197 to not send the initial update with just the system namespace to all listeners. This can be a problem when the user hasn't created an SMMR resource yet, because any listeners registered before the caches sync may never get an update informing them to watch the system namespace. This attempts to work around the issue by having all listeners individually wait on the caches to sync, then seed just the system namespace if no SMMR resource is found. MAISTRA-2271: Update xns-informers to fix delete events issue (maistra#315) This updates xns-informers to include a fix for sending delete events for all objects when a namespace is no longer watched. See: maistra/xns-informer#12 Co-authored-by: Brad Ison <brad.ison@redhat.com> OSSM-2006 Fix multiNamespaceInformer.HasSynced() fix(xns-informer): only sync nsInformer when not nil (maistra#684) Fix shutting down namespace controller Signed-off-by: Jacek Ewertowski <jewertow@redhat.com> OSSM-2233: uses maistra.io/api instead of copying Before we were generating and copying Maistra API types, now we use it as a dependency. Additionally following changes are introduced: - vendoring has been removed, as we now use embedded manifests from maistra/api in tests - cleans up Makefiles - removes unnecessary files (generated API) OSSM-2375 Log the list of member namespaces on every change (maistra#716) Co-authored-by: Marko Lukša <marko.luksa@gmail.com> OSSM-3703: Fix AUTO_RELOAD_PLUGIN_CERTS in multi-tenant mode (maistra#778) * OSSM-3703: Fix AUTO_RELOAD_PLUGIN_CERTS in multi-tenant mode Signed-off-by: Jacek Ewertowski <jewertow@redhat.com> * Revert unnecessary variable declaration Signed-off-by: Jacek Ewertowski <jewertow@redhat.com> --------- Co-authored-by: Marko Lukša <marko.luksa@gmail.com> Co-authored-by: Jacek Ewertowski <jewertow@redhat.com> Co-authored-by: Daniel Grimm <dgrimm@redhat.com> Co-authored-by: Brad Ison <brad.ison@redhat.com> Signed-off-by: Yann Liu <yannliu@redhat.com>
MAISTRA-2051: Add xns-informer for Kubernetes types (maistra#223) * Update mirrored licenses to fix gen-check * MAISTRA-2051: Add xns-informer for Kubernetes types This integrates the xns-informer library for multi-namespace support, but only for core Kubernetes types. The informers are hard-coded to watch all namespaces here. The integration with MemberRoll will come in a follow-up. MAISTRA-2051 Add xns-informer for Istio types (maistra#221) MAISTRA-2051: Add MemberRollController (maistra#227) * MAISTRA-2051: Add MemberRollController Includes the following: * 75742b0 - Add Makefile for Maistra client generation This adds a Makefile with tasks for generating the Maistra specific clients. It is adapted from the one in the Istio client-go repository. * 5f8562c - Add MemberRollController Squashed commit, consisting of: * MAISTRA-417: Add MemberRollController * MAISTRA-450: Switch across to ConfiguredMembers and check existing config for changes * MAISTRA-1005 Do not expect namespaces to have a stable ordering The clients have also been regenerated. * 1b7a89d - Add missing licenses * fe2f8cd - Fix Copyright holder This is to make sure all PR's will have an updated vendor directory. The `gencheck` prow job will ensure that. * MAISTRA-2051: Update MemberRollController for xns-informers * MAISTRA-2051: Add AddMemberRoll to kube client * MAISTRA-2051: Configure MemberRoll controller in istiod MAISTRA-2051: Add xns-informer for Service APIs (maistra#229) * MAISTRA-2051: Update xns-informers * MAISTRA-2051: Add xns-informer for Service APIs MAISTRA-2051: Use shared Kubernetes client in galley (maistra#241) This moves galley to the shared Kubernetes client, which will let it use xns-informers for multi-namespace support like everything else. MAISTRA-2051: Update xns-informers to latest (maistra#252) * MAISTRA-2051: Reset Kubernetes client to release-1.8 state * MAISTRA-2051: Use xns-informers in Kubernetes client * MAISTRA-2051: Un-skip tests with xns-informers issues These tests were skipped because of issues with xns-informers, which have now been solved. They should no longer be skipped. * MAISTRA-2051: Update xns-informers to latest * MAISTRA-2051: Skip problematic integration test: TestDashboard MAISTRA-2051: Use MultiNamespaceInformer in galley (maistra#254) * Revert "MAISTRA-2051: Use shared Kubernetes client in galley (maistra#241)" This reverts commit 0b1567a. * MAISTRA-2051: Use MultiNamespaceInformer in galley This is a rework of the previous change that used the central Kubernetes client in Galley. The watchers in Galley manage stopping and starting individual informers, which doesn't work well with the factory returning cached informers. This creates multi-namespace informers individually instead of using the central factory. It's also a much smaller change overall and doesn't affect the tests. * MAISTRA-2051: Add GetMemberRoll method to Kubernetes client * MAISTRA-2051: Integrate MemberRoll with Galley This configures the mulit-namespace aware infomers in Galley to respond to changes in the set of namespaces via the MemberRoll. This includes parts of the following: - 4b70b8d MAISTRA-1895 Add option to enable/disable CRD scan - 6e8019e MAISTRA-1968 allow analyzer to work with multi list watcher MAISTRA-1724: Don't watch namespaces if MemberRoll is used (maistra#257) Rewrite of the following for Maistra 2.1 / Istio 1.8 rebase: a161a53 - MAISTRA-1724 Don't watch namespaces if MRC is used (maistra#161) MAISTRA-1755: invoke UpdateNamespaces() as part of MemberRollController.Register() Cherry-pick of f0eed15 for Maistra 2.1 / Istio 1.8 rebase. MAISTRA-1724: Better hanlde deletion in NamespaceController MAISTRA-2153: Disable namespace informer if MemberRoll is used (maistra#283) This causes istiod to skip creating the namespace informer in the Kubernetes service registry controller if a MemberRoll is specified, because Maistra cannot read namespace objects. This will affect the behavior of multi-network deployments that do not use mesh networks for configuration, i.e. a namespace cannot be labeled with a default network now. MAISTRA-2197: Push first update when cache is warm (maistra#294) Change SMMR Controller behavior to only send the first update to listeners when it has a list of members ready. In other words, when cache is synced. Before this, the first update was sent with only one hardcoded member: The control plane namespace. Now it is sent with the full list of SMMR members. While on that, switch to our own log scope, to facilitate debugging. Manual cherry pick of maistra#291 MAISTRA-2233: Start xns-informers with empty namespace set (maistra#303) The multi-namespace informers created by xns-informers default to watching all namespaces to match upstream behaviour. This causes permissions issues in Maistra because they will do this until the first update from the MemberRoll controller sets the correct set of namespaces on each informer. We should instead explicitly configure them with an empty set of namespaces at startup. MAISTRA-2234: Seed MemberRoll listeners with system namespace (maistra#302) The MemberRoll controller was changed in MAISTRA-2197 to not send the initial update with just the system namespace to all listeners. This can be a problem when the user hasn't created an SMMR resource yet, because any listeners registered before the caches sync may never get an update informing them to watch the system namespace. This attempts to work around the issue by having all listeners individually wait on the caches to sync, then seed just the system namespace if no SMMR resource is found. MAISTRA-2271: Update xns-informers to fix delete events issue (maistra#315) This updates xns-informers to include a fix for sending delete events for all objects when a namespace is no longer watched. See: maistra/xns-informer#12 Co-authored-by: Brad Ison <brad.ison@redhat.com> OSSM-2006 Fix multiNamespaceInformer.HasSynced() fix(xns-informer): only sync nsInformer when not nil (maistra#684) Fix shutting down namespace controller Signed-off-by: Jacek Ewertowski <jewertow@redhat.com> OSSM-2233: uses maistra.io/api instead of copying Before we were generating and copying Maistra API types, now we use it as a dependency. Additionally following changes are introduced: - vendoring has been removed, as we now use embedded manifests from maistra/api in tests - cleans up Makefiles - removes unnecessary files (generated API) OSSM-2375 Log the list of member namespaces on every change (maistra#716) Co-authored-by: Marko Lukša <marko.luksa@gmail.com> OSSM-3703: Fix AUTO_RELOAD_PLUGIN_CERTS in multi-tenant mode (maistra#778) * OSSM-3703: Fix AUTO_RELOAD_PLUGIN_CERTS in multi-tenant mode Signed-off-by: Jacek Ewertowski <jewertow@redhat.com> * Revert unnecessary variable declaration Signed-off-by: Jacek Ewertowski <jewertow@redhat.com> --------- Co-authored-by: Marko Lukša <marko.luksa@gmail.com> Co-authored-by: Jacek Ewertowski <jewertow@redhat.com> Co-authored-by: Daniel Grimm <dgrimm@redhat.com> Co-authored-by: Brad Ison <brad.ison@redhat.com> Signed-off-by: Yann Liu <yannliu@redhat.com>
MAISTRA-2051: Add xns-informer for Kubernetes types (maistra#223) * Update mirrored licenses to fix gen-check * MAISTRA-2051: Add xns-informer for Kubernetes types This integrates the xns-informer library for multi-namespace support, but only for core Kubernetes types. The informers are hard-coded to watch all namespaces here. The integration with MemberRoll will come in a follow-up. MAISTRA-2051 Add xns-informer for Istio types (maistra#221) MAISTRA-2051: Add MemberRollController (maistra#227) * MAISTRA-2051: Add MemberRollController Includes the following: * 75742b0 - Add Makefile for Maistra client generation This adds a Makefile with tasks for generating the Maistra specific clients. It is adapted from the one in the Istio client-go repository. * 5f8562c - Add MemberRollController Squashed commit, consisting of: * MAISTRA-417: Add MemberRollController * MAISTRA-450: Switch across to ConfiguredMembers and check existing config for changes * MAISTRA-1005 Do not expect namespaces to have a stable ordering The clients have also been regenerated. * 1b7a89d - Add missing licenses * fe2f8cd - Fix Copyright holder This is to make sure all PR's will have an updated vendor directory. The `gencheck` prow job will ensure that. * MAISTRA-2051: Update MemberRollController for xns-informers * MAISTRA-2051: Add AddMemberRoll to kube client * MAISTRA-2051: Configure MemberRoll controller in istiod MAISTRA-2051: Add xns-informer for Service APIs (maistra#229) * MAISTRA-2051: Update xns-informers * MAISTRA-2051: Add xns-informer for Service APIs MAISTRA-2051: Use shared Kubernetes client in galley (maistra#241) This moves galley to the shared Kubernetes client, which will let it use xns-informers for multi-namespace support like everything else. MAISTRA-2051: Update xns-informers to latest (maistra#252) * MAISTRA-2051: Reset Kubernetes client to release-1.8 state * MAISTRA-2051: Use xns-informers in Kubernetes client * MAISTRA-2051: Un-skip tests with xns-informers issues These tests were skipped because of issues with xns-informers, which have now been solved. They should no longer be skipped. * MAISTRA-2051: Update xns-informers to latest * MAISTRA-2051: Skip problematic integration test: TestDashboard MAISTRA-2051: Use MultiNamespaceInformer in galley (maistra#254) * Revert "MAISTRA-2051: Use shared Kubernetes client in galley (maistra#241)" This reverts commit 0b1567a. * MAISTRA-2051: Use MultiNamespaceInformer in galley This is a rework of the previous change that used the central Kubernetes client in Galley. The watchers in Galley manage stopping and starting individual informers, which doesn't work well with the factory returning cached informers. This creates multi-namespace informers individually instead of using the central factory. It's also a much smaller change overall and doesn't affect the tests. * MAISTRA-2051: Add GetMemberRoll method to Kubernetes client * MAISTRA-2051: Integrate MemberRoll with Galley This configures the mulit-namespace aware infomers in Galley to respond to changes in the set of namespaces via the MemberRoll. This includes parts of the following: - 4b70b8d MAISTRA-1895 Add option to enable/disable CRD scan - 6e8019e MAISTRA-1968 allow analyzer to work with multi list watcher MAISTRA-1724: Don't watch namespaces if MemberRoll is used (maistra#257) Rewrite of the following for Maistra 2.1 / Istio 1.8 rebase: a161a53 - MAISTRA-1724 Don't watch namespaces if MRC is used (maistra#161) MAISTRA-1755: invoke UpdateNamespaces() as part of MemberRollController.Register() Cherry-pick of f0eed15 for Maistra 2.1 / Istio 1.8 rebase. MAISTRA-1724: Better hanlde deletion in NamespaceController MAISTRA-2153: Disable namespace informer if MemberRoll is used (maistra#283) This causes istiod to skip creating the namespace informer in the Kubernetes service registry controller if a MemberRoll is specified, because Maistra cannot read namespace objects. This will affect the behavior of multi-network deployments that do not use mesh networks for configuration, i.e. a namespace cannot be labeled with a default network now. MAISTRA-2197: Push first update when cache is warm (maistra#294) Change SMMR Controller behavior to only send the first update to listeners when it has a list of members ready. In other words, when cache is synced. Before this, the first update was sent with only one hardcoded member: The control plane namespace. Now it is sent with the full list of SMMR members. While on that, switch to our own log scope, to facilitate debugging. Manual cherry pick of maistra#291 MAISTRA-2233: Start xns-informers with empty namespace set (maistra#303) The multi-namespace informers created by xns-informers default to watching all namespaces to match upstream behaviour. This causes permissions issues in Maistra because they will do this until the first update from the MemberRoll controller sets the correct set of namespaces on each informer. We should instead explicitly configure them with an empty set of namespaces at startup. MAISTRA-2234: Seed MemberRoll listeners with system namespace (maistra#302) The MemberRoll controller was changed in MAISTRA-2197 to not send the initial update with just the system namespace to all listeners. This can be a problem when the user hasn't created an SMMR resource yet, because any listeners registered before the caches sync may never get an update informing them to watch the system namespace. This attempts to work around the issue by having all listeners individually wait on the caches to sync, then seed just the system namespace if no SMMR resource is found. MAISTRA-2271: Update xns-informers to fix delete events issue (maistra#315) This updates xns-informers to include a fix for sending delete events for all objects when a namespace is no longer watched. See: maistra/xns-informer#12 Co-authored-by: Brad Ison <brad.ison@redhat.com> OSSM-2006 Fix multiNamespaceInformer.HasSynced() fix(xns-informer): only sync nsInformer when not nil (maistra#684) Fix shutting down namespace controller Signed-off-by: Jacek Ewertowski <jewertow@redhat.com> OSSM-2233: uses maistra.io/api instead of copying Before we were generating and copying Maistra API types, now we use it as a dependency. Additionally following changes are introduced: - vendoring has been removed, as we now use embedded manifests from maistra/api in tests - cleans up Makefiles - removes unnecessary files (generated API) OSSM-2375 Log the list of member namespaces on every change (maistra#716) Co-authored-by: Marko Lukša <marko.luksa@gmail.com> OSSM-3703: Fix AUTO_RELOAD_PLUGIN_CERTS in multi-tenant mode (maistra#778) * OSSM-3703: Fix AUTO_RELOAD_PLUGIN_CERTS in multi-tenant mode Signed-off-by: Jacek Ewertowski <jewertow@redhat.com> * Revert unnecessary variable declaration Signed-off-by: Jacek Ewertowski <jewertow@redhat.com> --------- Co-authored-by: Marko Lukša <marko.luksa@gmail.com> Co-authored-by: Jacek Ewertowski <jewertow@redhat.com> Co-authored-by: Daniel Grimm <dgrimm@redhat.com> Co-authored-by: Brad Ison <brad.ison@redhat.com> Signed-off-by: Yann Liu <yannliu@redhat.com>
MAISTRA-2051: Add xns-informer for Kubernetes types (maistra#223) * Update mirrored licenses to fix gen-check * MAISTRA-2051: Add xns-informer for Kubernetes types This integrates the xns-informer library for multi-namespace support, but only for core Kubernetes types. The informers are hard-coded to watch all namespaces here. The integration with MemberRoll will come in a follow-up. MAISTRA-2051 Add xns-informer for Istio types (maistra#221) MAISTRA-2051: Add MemberRollController (maistra#227) * MAISTRA-2051: Add MemberRollController Includes the following: * 75742b0 - Add Makefile for Maistra client generation This adds a Makefile with tasks for generating the Maistra specific clients. It is adapted from the one in the Istio client-go repository. * 5f8562c - Add MemberRollController Squashed commit, consisting of: * MAISTRA-417: Add MemberRollController * MAISTRA-450: Switch across to ConfiguredMembers and check existing config for changes * MAISTRA-1005 Do not expect namespaces to have a stable ordering The clients have also been regenerated. * 1b7a89d - Add missing licenses * fe2f8cd - Fix Copyright holder This is to make sure all PR's will have an updated vendor directory. The `gencheck` prow job will ensure that. * MAISTRA-2051: Update MemberRollController for xns-informers * MAISTRA-2051: Add AddMemberRoll to kube client * MAISTRA-2051: Configure MemberRoll controller in istiod MAISTRA-2051: Add xns-informer for Service APIs (maistra#229) * MAISTRA-2051: Update xns-informers * MAISTRA-2051: Add xns-informer for Service APIs MAISTRA-2051: Use shared Kubernetes client in galley (maistra#241) This moves galley to the shared Kubernetes client, which will let it use xns-informers for multi-namespace support like everything else. MAISTRA-2051: Update xns-informers to latest (maistra#252) * MAISTRA-2051: Reset Kubernetes client to release-1.8 state * MAISTRA-2051: Use xns-informers in Kubernetes client * MAISTRA-2051: Un-skip tests with xns-informers issues These tests were skipped because of issues with xns-informers, which have now been solved. They should no longer be skipped. * MAISTRA-2051: Update xns-informers to latest * MAISTRA-2051: Skip problematic integration test: TestDashboard MAISTRA-2051: Use MultiNamespaceInformer in galley (maistra#254) * Revert "MAISTRA-2051: Use shared Kubernetes client in galley (maistra#241)" This reverts commit 0b1567a. * MAISTRA-2051: Use MultiNamespaceInformer in galley This is a rework of the previous change that used the central Kubernetes client in Galley. The watchers in Galley manage stopping and starting individual informers, which doesn't work well with the factory returning cached informers. This creates multi-namespace informers individually instead of using the central factory. It's also a much smaller change overall and doesn't affect the tests. * MAISTRA-2051: Add GetMemberRoll method to Kubernetes client * MAISTRA-2051: Integrate MemberRoll with Galley This configures the mulit-namespace aware infomers in Galley to respond to changes in the set of namespaces via the MemberRoll. This includes parts of the following: - 4b70b8d MAISTRA-1895 Add option to enable/disable CRD scan - 6e8019e MAISTRA-1968 allow analyzer to work with multi list watcher MAISTRA-1724: Don't watch namespaces if MemberRoll is used (maistra#257) Rewrite of the following for Maistra 2.1 / Istio 1.8 rebase: a161a53 - MAISTRA-1724 Don't watch namespaces if MRC is used (maistra#161) MAISTRA-1755: invoke UpdateNamespaces() as part of MemberRollController.Register() Cherry-pick of f0eed15 for Maistra 2.1 / Istio 1.8 rebase. MAISTRA-1724: Better hanlde deletion in NamespaceController MAISTRA-2153: Disable namespace informer if MemberRoll is used (maistra#283) This causes istiod to skip creating the namespace informer in the Kubernetes service registry controller if a MemberRoll is specified, because Maistra cannot read namespace objects. This will affect the behavior of multi-network deployments that do not use mesh networks for configuration, i.e. a namespace cannot be labeled with a default network now. MAISTRA-2197: Push first update when cache is warm (maistra#294) Change SMMR Controller behavior to only send the first update to listeners when it has a list of members ready. In other words, when cache is synced. Before this, the first update was sent with only one hardcoded member: The control plane namespace. Now it is sent with the full list of SMMR members. While on that, switch to our own log scope, to facilitate debugging. Manual cherry pick of maistra#291 MAISTRA-2233: Start xns-informers with empty namespace set (maistra#303) The multi-namespace informers created by xns-informers default to watching all namespaces to match upstream behaviour. This causes permissions issues in Maistra because they will do this until the first update from the MemberRoll controller sets the correct set of namespaces on each informer. We should instead explicitly configure them with an empty set of namespaces at startup. MAISTRA-2234: Seed MemberRoll listeners with system namespace (maistra#302) The MemberRoll controller was changed in MAISTRA-2197 to not send the initial update with just the system namespace to all listeners. This can be a problem when the user hasn't created an SMMR resource yet, because any listeners registered before the caches sync may never get an update informing them to watch the system namespace. This attempts to work around the issue by having all listeners individually wait on the caches to sync, then seed just the system namespace if no SMMR resource is found. MAISTRA-2271: Update xns-informers to fix delete events issue (maistra#315) This updates xns-informers to include a fix for sending delete events for all objects when a namespace is no longer watched. See: maistra/xns-informer#12 Co-authored-by: Brad Ison <brad.ison@redhat.com> OSSM-2006 Fix multiNamespaceInformer.HasSynced() fix(xns-informer): only sync nsInformer when not nil (maistra#684) Fix shutting down namespace controller Signed-off-by: Jacek Ewertowski <jewertow@redhat.com> OSSM-2233: uses maistra.io/api instead of copying Before we were generating and copying Maistra API types, now we use it as a dependency. Additionally following changes are introduced: - vendoring has been removed, as we now use embedded manifests from maistra/api in tests - cleans up Makefiles - removes unnecessary files (generated API) OSSM-2375 Log the list of member namespaces on every change (maistra#716) Co-authored-by: Marko Lukša <marko.luksa@gmail.com> OSSM-3703: Fix AUTO_RELOAD_PLUGIN_CERTS in multi-tenant mode (maistra#778) * OSSM-3703: Fix AUTO_RELOAD_PLUGIN_CERTS in multi-tenant mode Signed-off-by: Jacek Ewertowski <jewertow@redhat.com> * Revert unnecessary variable declaration Signed-off-by: Jacek Ewertowski <jewertow@redhat.com> --------- Co-authored-by: Marko Lukša <marko.luksa@gmail.com> Co-authored-by: Jacek Ewertowski <jewertow@redhat.com> Co-authored-by: Daniel Grimm <dgrimm@redhat.com> Co-authored-by: Brad Ison <brad.ison@redhat.com> Signed-off-by: Yann Liu <yannliu@redhat.com>
MAISTRA-2051: Add xns-informer for Kubernetes types (maistra#223) * Update mirrored licenses to fix gen-check * MAISTRA-2051: Add xns-informer for Kubernetes types This integrates the xns-informer library for multi-namespace support, but only for core Kubernetes types. The informers are hard-coded to watch all namespaces here. The integration with MemberRoll will come in a follow-up. MAISTRA-2051 Add xns-informer for Istio types (maistra#221) MAISTRA-2051: Add MemberRollController (maistra#227) * MAISTRA-2051: Add MemberRollController Includes the following: * 75742b0 - Add Makefile for Maistra client generation This adds a Makefile with tasks for generating the Maistra specific clients. It is adapted from the one in the Istio client-go repository. * 5f8562c - Add MemberRollController Squashed commit, consisting of: * MAISTRA-417: Add MemberRollController * MAISTRA-450: Switch across to ConfiguredMembers and check existing config for changes * MAISTRA-1005 Do not expect namespaces to have a stable ordering The clients have also been regenerated. * 1b7a89d - Add missing licenses * fe2f8cd - Fix Copyright holder This is to make sure all PR's will have an updated vendor directory. The `gencheck` prow job will ensure that. * MAISTRA-2051: Update MemberRollController for xns-informers * MAISTRA-2051: Add AddMemberRoll to kube client * MAISTRA-2051: Configure MemberRoll controller in istiod MAISTRA-2051: Add xns-informer for Service APIs (maistra#229) * MAISTRA-2051: Update xns-informers * MAISTRA-2051: Add xns-informer for Service APIs MAISTRA-2051: Use shared Kubernetes client in galley (maistra#241) This moves galley to the shared Kubernetes client, which will let it use xns-informers for multi-namespace support like everything else. MAISTRA-2051: Update xns-informers to latest (maistra#252) * MAISTRA-2051: Reset Kubernetes client to release-1.8 state * MAISTRA-2051: Use xns-informers in Kubernetes client * MAISTRA-2051: Un-skip tests with xns-informers issues These tests were skipped because of issues with xns-informers, which have now been solved. They should no longer be skipped. * MAISTRA-2051: Update xns-informers to latest * MAISTRA-2051: Skip problematic integration test: TestDashboard MAISTRA-2051: Use MultiNamespaceInformer in galley (maistra#254) * Revert "MAISTRA-2051: Use shared Kubernetes client in galley (maistra#241)" This reverts commit 0b1567a. * MAISTRA-2051: Use MultiNamespaceInformer in galley This is a rework of the previous change that used the central Kubernetes client in Galley. The watchers in Galley manage stopping and starting individual informers, which doesn't work well with the factory returning cached informers. This creates multi-namespace informers individually instead of using the central factory. It's also a much smaller change overall and doesn't affect the tests. * MAISTRA-2051: Add GetMemberRoll method to Kubernetes client * MAISTRA-2051: Integrate MemberRoll with Galley This configures the mulit-namespace aware infomers in Galley to respond to changes in the set of namespaces via the MemberRoll. This includes parts of the following: - 4b70b8d MAISTRA-1895 Add option to enable/disable CRD scan - 6e8019e MAISTRA-1968 allow analyzer to work with multi list watcher MAISTRA-1724: Don't watch namespaces if MemberRoll is used (maistra#257) Rewrite of the following for Maistra 2.1 / Istio 1.8 rebase: a161a53 - MAISTRA-1724 Don't watch namespaces if MRC is used (maistra#161) MAISTRA-1755: invoke UpdateNamespaces() as part of MemberRollController.Register() Cherry-pick of f0eed15 for Maistra 2.1 / Istio 1.8 rebase. MAISTRA-1724: Better hanlde deletion in NamespaceController MAISTRA-2153: Disable namespace informer if MemberRoll is used (maistra#283) This causes istiod to skip creating the namespace informer in the Kubernetes service registry controller if a MemberRoll is specified, because Maistra cannot read namespace objects. This will affect the behavior of multi-network deployments that do not use mesh networks for configuration, i.e. a namespace cannot be labeled with a default network now. MAISTRA-2197: Push first update when cache is warm (maistra#294) Change SMMR Controller behavior to only send the first update to listeners when it has a list of members ready. In other words, when cache is synced. Before this, the first update was sent with only one hardcoded member: The control plane namespace. Now it is sent with the full list of SMMR members. While on that, switch to our own log scope, to facilitate debugging. Manual cherry pick of maistra#291 MAISTRA-2233: Start xns-informers with empty namespace set (maistra#303) The multi-namespace informers created by xns-informers default to watching all namespaces to match upstream behaviour. This causes permissions issues in Maistra because they will do this until the first update from the MemberRoll controller sets the correct set of namespaces on each informer. We should instead explicitly configure them with an empty set of namespaces at startup. MAISTRA-2234: Seed MemberRoll listeners with system namespace (maistra#302) The MemberRoll controller was changed in MAISTRA-2197 to not send the initial update with just the system namespace to all listeners. This can be a problem when the user hasn't created an SMMR resource yet, because any listeners registered before the caches sync may never get an update informing them to watch the system namespace. This attempts to work around the issue by having all listeners individually wait on the caches to sync, then seed just the system namespace if no SMMR resource is found. MAISTRA-2271: Update xns-informers to fix delete events issue (maistra#315) This updates xns-informers to include a fix for sending delete events for all objects when a namespace is no longer watched. See: maistra/xns-informer#12 Co-authored-by: Brad Ison <brad.ison@redhat.com> OSSM-2006 Fix multiNamespaceInformer.HasSynced() fix(xns-informer): only sync nsInformer when not nil (maistra#684) Fix shutting down namespace controller Signed-off-by: Jacek Ewertowski <jewertow@redhat.com> OSSM-2233: uses maistra.io/api instead of copying Before we were generating and copying Maistra API types, now we use it as a dependency. Additionally following changes are introduced: - vendoring has been removed, as we now use embedded manifests from maistra/api in tests - cleans up Makefiles - removes unnecessary files (generated API) OSSM-2375 Log the list of member namespaces on every change (maistra#716) Co-authored-by: Marko Lukša <marko.luksa@gmail.com> OSSM-3703: Fix AUTO_RELOAD_PLUGIN_CERTS in multi-tenant mode (maistra#778) * OSSM-3703: Fix AUTO_RELOAD_PLUGIN_CERTS in multi-tenant mode Signed-off-by: Jacek Ewertowski <jewertow@redhat.com> * Revert unnecessary variable declaration Signed-off-by: Jacek Ewertowski <jewertow@redhat.com> --------- Co-authored-by: Marko Lukša <marko.luksa@gmail.com> Co-authored-by: Jacek Ewertowski <jewertow@redhat.com> Co-authored-by: Daniel Grimm <dgrimm@redhat.com> Co-authored-by: Brad Ison <brad.ison@redhat.com> Signed-off-by: Yann Liu <yannliu@redhat.com>
MAISTRA-2051: Add xns-informer for Kubernetes types (maistra#223) * Update mirrored licenses to fix gen-check * MAISTRA-2051: Add xns-informer for Kubernetes types This integrates the xns-informer library for multi-namespace support, but only for core Kubernetes types. The informers are hard-coded to watch all namespaces here. The integration with MemberRoll will come in a follow-up. MAISTRA-2051 Add xns-informer for Istio types (maistra#221) MAISTRA-2051: Add MemberRollController (maistra#227) * MAISTRA-2051: Add MemberRollController Includes the following: * 75742b0 - Add Makefile for Maistra client generation This adds a Makefile with tasks for generating the Maistra specific clients. It is adapted from the one in the Istio client-go repository. * 5f8562c - Add MemberRollController Squashed commit, consisting of: * MAISTRA-417: Add MemberRollController * MAISTRA-450: Switch across to ConfiguredMembers and check existing config for changes * MAISTRA-1005 Do not expect namespaces to have a stable ordering The clients have also been regenerated. * 1b7a89d - Add missing licenses * fe2f8cd - Fix Copyright holder This is to make sure all PR's will have an updated vendor directory. The `gencheck` prow job will ensure that. * MAISTRA-2051: Update MemberRollController for xns-informers * MAISTRA-2051: Add AddMemberRoll to kube client * MAISTRA-2051: Configure MemberRoll controller in istiod MAISTRA-2051: Add xns-informer for Service APIs (maistra#229) * MAISTRA-2051: Update xns-informers * MAISTRA-2051: Add xns-informer for Service APIs MAISTRA-2051: Use shared Kubernetes client in galley (maistra#241) This moves galley to the shared Kubernetes client, which will let it use xns-informers for multi-namespace support like everything else. MAISTRA-2051: Update xns-informers to latest (maistra#252) * MAISTRA-2051: Reset Kubernetes client to release-1.8 state * MAISTRA-2051: Use xns-informers in Kubernetes client * MAISTRA-2051: Un-skip tests with xns-informers issues These tests were skipped because of issues with xns-informers, which have now been solved. They should no longer be skipped. * MAISTRA-2051: Update xns-informers to latest * MAISTRA-2051: Skip problematic integration test: TestDashboard MAISTRA-2051: Use MultiNamespaceInformer in galley (maistra#254) * Revert "MAISTRA-2051: Use shared Kubernetes client in galley (maistra#241)" This reverts commit 0b1567a. * MAISTRA-2051: Use MultiNamespaceInformer in galley This is a rework of the previous change that used the central Kubernetes client in Galley. The watchers in Galley manage stopping and starting individual informers, which doesn't work well with the factory returning cached informers. This creates multi-namespace informers individually instead of using the central factory. It's also a much smaller change overall and doesn't affect the tests. * MAISTRA-2051: Add GetMemberRoll method to Kubernetes client * MAISTRA-2051: Integrate MemberRoll with Galley This configures the mulit-namespace aware infomers in Galley to respond to changes in the set of namespaces via the MemberRoll. This includes parts of the following: - 4b70b8d MAISTRA-1895 Add option to enable/disable CRD scan - 6e8019e MAISTRA-1968 allow analyzer to work with multi list watcher MAISTRA-1724: Don't watch namespaces if MemberRoll is used (maistra#257) Rewrite of the following for Maistra 2.1 / Istio 1.8 rebase: a161a53 - MAISTRA-1724 Don't watch namespaces if MRC is used (maistra#161) MAISTRA-1755: invoke UpdateNamespaces() as part of MemberRollController.Register() Cherry-pick of f0eed15 for Maistra 2.1 / Istio 1.8 rebase. MAISTRA-1724: Better hanlde deletion in NamespaceController MAISTRA-2153: Disable namespace informer if MemberRoll is used (maistra#283) This causes istiod to skip creating the namespace informer in the Kubernetes service registry controller if a MemberRoll is specified, because Maistra cannot read namespace objects. This will affect the behavior of multi-network deployments that do not use mesh networks for configuration, i.e. a namespace cannot be labeled with a default network now. MAISTRA-2197: Push first update when cache is warm (maistra#294) Change SMMR Controller behavior to only send the first update to listeners when it has a list of members ready. In other words, when cache is synced. Before this, the first update was sent with only one hardcoded member: The control plane namespace. Now it is sent with the full list of SMMR members. While on that, switch to our own log scope, to facilitate debugging. Manual cherry pick of maistra#291 MAISTRA-2233: Start xns-informers with empty namespace set (maistra#303) The multi-namespace informers created by xns-informers default to watching all namespaces to match upstream behaviour. This causes permissions issues in Maistra because they will do this until the first update from the MemberRoll controller sets the correct set of namespaces on each informer. We should instead explicitly configure them with an empty set of namespaces at startup. MAISTRA-2234: Seed MemberRoll listeners with system namespace (maistra#302) The MemberRoll controller was changed in MAISTRA-2197 to not send the initial update with just the system namespace to all listeners. This can be a problem when the user hasn't created an SMMR resource yet, because any listeners registered before the caches sync may never get an update informing them to watch the system namespace. This attempts to work around the issue by having all listeners individually wait on the caches to sync, then seed just the system namespace if no SMMR resource is found. MAISTRA-2271: Update xns-informers to fix delete events issue (maistra#315) This updates xns-informers to include a fix for sending delete events for all objects when a namespace is no longer watched. See: maistra/xns-informer#12 Co-authored-by: Brad Ison <brad.ison@redhat.com> OSSM-2006 Fix multiNamespaceInformer.HasSynced() fix(xns-informer): only sync nsInformer when not nil (maistra#684) Fix shutting down namespace controller Signed-off-by: Jacek Ewertowski <jewertow@redhat.com> OSSM-2233: uses maistra.io/api instead of copying Before we were generating and copying Maistra API types, now we use it as a dependency. Additionally following changes are introduced: - vendoring has been removed, as we now use embedded manifests from maistra/api in tests - cleans up Makefiles - removes unnecessary files (generated API) OSSM-2375 Log the list of member namespaces on every change (maistra#716) Co-authored-by: Marko Lukša <marko.luksa@gmail.com> OSSM-3703: Fix AUTO_RELOAD_PLUGIN_CERTS in multi-tenant mode (maistra#778) * OSSM-3703: Fix AUTO_RELOAD_PLUGIN_CERTS in multi-tenant mode Signed-off-by: Jacek Ewertowski <jewertow@redhat.com> * Revert unnecessary variable declaration Signed-off-by: Jacek Ewertowski <jewertow@redhat.com> --------- Co-authored-by: Marko Lukša <marko.luksa@gmail.com> Co-authored-by: Jacek Ewertowski <jewertow@redhat.com> Co-authored-by: Daniel Grimm <dgrimm@redhat.com> Co-authored-by: Brad Ison <brad.ison@redhat.com> Signed-off-by: Yann Liu <yannliu@redhat.com>
MAISTRA-2051: Add xns-informer for Kubernetes types (maistra#223) * Update mirrored licenses to fix gen-check * MAISTRA-2051: Add xns-informer for Kubernetes types This integrates the xns-informer library for multi-namespace support, but only for core Kubernetes types. The informers are hard-coded to watch all namespaces here. The integration with MemberRoll will come in a follow-up. MAISTRA-2051 Add xns-informer for Istio types (maistra#221) MAISTRA-2051: Add MemberRollController (maistra#227) * MAISTRA-2051: Add MemberRollController Includes the following: * 75742b0 - Add Makefile for Maistra client generation This adds a Makefile with tasks for generating the Maistra specific clients. It is adapted from the one in the Istio client-go repository. * 5f8562c - Add MemberRollController Squashed commit, consisting of: * MAISTRA-417: Add MemberRollController * MAISTRA-450: Switch across to ConfiguredMembers and check existing config for changes * MAISTRA-1005 Do not expect namespaces to have a stable ordering The clients have also been regenerated. * 1b7a89d - Add missing licenses * fe2f8cd - Fix Copyright holder This is to make sure all PR's will have an updated vendor directory. The `gencheck` prow job will ensure that. * MAISTRA-2051: Update MemberRollController for xns-informers * MAISTRA-2051: Add AddMemberRoll to kube client * MAISTRA-2051: Configure MemberRoll controller in istiod MAISTRA-2051: Add xns-informer for Service APIs (maistra#229) * MAISTRA-2051: Update xns-informers * MAISTRA-2051: Add xns-informer for Service APIs MAISTRA-2051: Use shared Kubernetes client in galley (maistra#241) This moves galley to the shared Kubernetes client, which will let it use xns-informers for multi-namespace support like everything else. MAISTRA-2051: Update xns-informers to latest (maistra#252) * MAISTRA-2051: Reset Kubernetes client to release-1.8 state * MAISTRA-2051: Use xns-informers in Kubernetes client * MAISTRA-2051: Un-skip tests with xns-informers issues These tests were skipped because of issues with xns-informers, which have now been solved. They should no longer be skipped. * MAISTRA-2051: Update xns-informers to latest * MAISTRA-2051: Skip problematic integration test: TestDashboard MAISTRA-2051: Use MultiNamespaceInformer in galley (maistra#254) * Revert "MAISTRA-2051: Use shared Kubernetes client in galley (maistra#241)" This reverts commit 0b1567a. * MAISTRA-2051: Use MultiNamespaceInformer in galley This is a rework of the previous change that used the central Kubernetes client in Galley. The watchers in Galley manage stopping and starting individual informers, which doesn't work well with the factory returning cached informers. This creates multi-namespace informers individually instead of using the central factory. It's also a much smaller change overall and doesn't affect the tests. * MAISTRA-2051: Add GetMemberRoll method to Kubernetes client * MAISTRA-2051: Integrate MemberRoll with Galley This configures the mulit-namespace aware infomers in Galley to respond to changes in the set of namespaces via the MemberRoll. This includes parts of the following: - 4b70b8d MAISTRA-1895 Add option to enable/disable CRD scan - 6e8019e MAISTRA-1968 allow analyzer to work with multi list watcher MAISTRA-1724: Don't watch namespaces if MemberRoll is used (maistra#257) Rewrite of the following for Maistra 2.1 / Istio 1.8 rebase: a161a53 - MAISTRA-1724 Don't watch namespaces if MRC is used (maistra#161) MAISTRA-1755: invoke UpdateNamespaces() as part of MemberRollController.Register() Cherry-pick of f0eed15 for Maistra 2.1 / Istio 1.8 rebase. MAISTRA-1724: Better hanlde deletion in NamespaceController MAISTRA-2153: Disable namespace informer if MemberRoll is used (maistra#283) This causes istiod to skip creating the namespace informer in the Kubernetes service registry controller if a MemberRoll is specified, because Maistra cannot read namespace objects. This will affect the behavior of multi-network deployments that do not use mesh networks for configuration, i.e. a namespace cannot be labeled with a default network now. MAISTRA-2197: Push first update when cache is warm (maistra#294) Change SMMR Controller behavior to only send the first update to listeners when it has a list of members ready. In other words, when cache is synced. Before this, the first update was sent with only one hardcoded member: The control plane namespace. Now it is sent with the full list of SMMR members. While on that, switch to our own log scope, to facilitate debugging. Manual cherry pick of maistra#291 MAISTRA-2233: Start xns-informers with empty namespace set (maistra#303) The multi-namespace informers created by xns-informers default to watching all namespaces to match upstream behaviour. This causes permissions issues in Maistra because they will do this until the first update from the MemberRoll controller sets the correct set of namespaces on each informer. We should instead explicitly configure them with an empty set of namespaces at startup. MAISTRA-2234: Seed MemberRoll listeners with system namespace (maistra#302) The MemberRoll controller was changed in MAISTRA-2197 to not send the initial update with just the system namespace to all listeners. This can be a problem when the user hasn't created an SMMR resource yet, because any listeners registered before the caches sync may never get an update informing them to watch the system namespace. This attempts to work around the issue by having all listeners individually wait on the caches to sync, then seed just the system namespace if no SMMR resource is found. MAISTRA-2271: Update xns-informers to fix delete events issue (maistra#315) This updates xns-informers to include a fix for sending delete events for all objects when a namespace is no longer watched. See: maistra/xns-informer#12 Co-authored-by: Brad Ison <brad.ison@redhat.com> OSSM-2006 Fix multiNamespaceInformer.HasSynced() fix(xns-informer): only sync nsInformer when not nil (maistra#684) Fix shutting down namespace controller Signed-off-by: Jacek Ewertowski <jewertow@redhat.com> OSSM-2233: uses maistra.io/api instead of copying Before we were generating and copying Maistra API types, now we use it as a dependency. Additionally following changes are introduced: - vendoring has been removed, as we now use embedded manifests from maistra/api in tests - cleans up Makefiles - removes unnecessary files (generated API) OSSM-2375 Log the list of member namespaces on every change (maistra#716) Co-authored-by: Marko Lukša <marko.luksa@gmail.com> OSSM-3703: Fix AUTO_RELOAD_PLUGIN_CERTS in multi-tenant mode (maistra#778) * OSSM-3703: Fix AUTO_RELOAD_PLUGIN_CERTS in multi-tenant mode Signed-off-by: Jacek Ewertowski <jewertow@redhat.com> * Revert unnecessary variable declaration Signed-off-by: Jacek Ewertowski <jewertow@redhat.com> --------- Co-authored-by: Marko Lukša <marko.luksa@gmail.com> Co-authored-by: Jacek Ewertowski <jewertow@redhat.com> Co-authored-by: Daniel Grimm <dgrimm@redhat.com> Co-authored-by: Brad Ison <brad.ison@redhat.com> Signed-off-by: Yann Liu <yannliu@redhat.com>
MAISTRA-2051: Add xns-informer for Kubernetes types (maistra#223) * Update mirrored licenses to fix gen-check * MAISTRA-2051: Add xns-informer for Kubernetes types This integrates the xns-informer library for multi-namespace support, but only for core Kubernetes types. The informers are hard-coded to watch all namespaces here. The integration with MemberRoll will come in a follow-up. MAISTRA-2051 Add xns-informer for Istio types (maistra#221) MAISTRA-2051: Add MemberRollController (maistra#227) * MAISTRA-2051: Add MemberRollController Includes the following: * 75742b0 - Add Makefile for Maistra client generation This adds a Makefile with tasks for generating the Maistra specific clients. It is adapted from the one in the Istio client-go repository. * 5f8562c - Add MemberRollController Squashed commit, consisting of: * MAISTRA-417: Add MemberRollController * MAISTRA-450: Switch across to ConfiguredMembers and check existing config for changes * MAISTRA-1005 Do not expect namespaces to have a stable ordering The clients have also been regenerated. * 1b7a89d - Add missing licenses * fe2f8cd - Fix Copyright holder This is to make sure all PR's will have an updated vendor directory. The `gencheck` prow job will ensure that. * MAISTRA-2051: Update MemberRollController for xns-informers * MAISTRA-2051: Add AddMemberRoll to kube client * MAISTRA-2051: Configure MemberRoll controller in istiod MAISTRA-2051: Add xns-informer for Service APIs (maistra#229) * MAISTRA-2051: Update xns-informers * MAISTRA-2051: Add xns-informer for Service APIs MAISTRA-2051: Use shared Kubernetes client in galley (maistra#241) This moves galley to the shared Kubernetes client, which will let it use xns-informers for multi-namespace support like everything else. MAISTRA-2051: Update xns-informers to latest (maistra#252) * MAISTRA-2051: Reset Kubernetes client to release-1.8 state * MAISTRA-2051: Use xns-informers in Kubernetes client * MAISTRA-2051: Un-skip tests with xns-informers issues These tests were skipped because of issues with xns-informers, which have now been solved. They should no longer be skipped. * MAISTRA-2051: Update xns-informers to latest * MAISTRA-2051: Skip problematic integration test: TestDashboard MAISTRA-2051: Use MultiNamespaceInformer in galley (maistra#254) * Revert "MAISTRA-2051: Use shared Kubernetes client in galley (maistra#241)" This reverts commit 0b1567a. * MAISTRA-2051: Use MultiNamespaceInformer in galley This is a rework of the previous change that used the central Kubernetes client in Galley. The watchers in Galley manage stopping and starting individual informers, which doesn't work well with the factory returning cached informers. This creates multi-namespace informers individually instead of using the central factory. It's also a much smaller change overall and doesn't affect the tests. * MAISTRA-2051: Add GetMemberRoll method to Kubernetes client * MAISTRA-2051: Integrate MemberRoll with Galley This configures the mulit-namespace aware infomers in Galley to respond to changes in the set of namespaces via the MemberRoll. This includes parts of the following: - 4b70b8d MAISTRA-1895 Add option to enable/disable CRD scan - 6e8019e MAISTRA-1968 allow analyzer to work with multi list watcher MAISTRA-1724: Don't watch namespaces if MemberRoll is used (maistra#257) Rewrite of the following for Maistra 2.1 / Istio 1.8 rebase: a161a53 - MAISTRA-1724 Don't watch namespaces if MRC is used (maistra#161) MAISTRA-1755: invoke UpdateNamespaces() as part of MemberRollController.Register() Cherry-pick of f0eed15 for Maistra 2.1 / Istio 1.8 rebase. MAISTRA-1724: Better hanlde deletion in NamespaceController MAISTRA-2153: Disable namespace informer if MemberRoll is used (maistra#283) This causes istiod to skip creating the namespace informer in the Kubernetes service registry controller if a MemberRoll is specified, because Maistra cannot read namespace objects. This will affect the behavior of multi-network deployments that do not use mesh networks for configuration, i.e. a namespace cannot be labeled with a default network now. MAISTRA-2197: Push first update when cache is warm (maistra#294) Change SMMR Controller behavior to only send the first update to listeners when it has a list of members ready. In other words, when cache is synced. Before this, the first update was sent with only one hardcoded member: The control plane namespace. Now it is sent with the full list of SMMR members. While on that, switch to our own log scope, to facilitate debugging. Manual cherry pick of maistra#291 MAISTRA-2233: Start xns-informers with empty namespace set (maistra#303) The multi-namespace informers created by xns-informers default to watching all namespaces to match upstream behaviour. This causes permissions issues in Maistra because they will do this until the first update from the MemberRoll controller sets the correct set of namespaces on each informer. We should instead explicitly configure them with an empty set of namespaces at startup. MAISTRA-2234: Seed MemberRoll listeners with system namespace (maistra#302) The MemberRoll controller was changed in MAISTRA-2197 to not send the initial update with just the system namespace to all listeners. This can be a problem when the user hasn't created an SMMR resource yet, because any listeners registered before the caches sync may never get an update informing them to watch the system namespace. This attempts to work around the issue by having all listeners individually wait on the caches to sync, then seed just the system namespace if no SMMR resource is found. MAISTRA-2271: Update xns-informers to fix delete events issue (maistra#315) This updates xns-informers to include a fix for sending delete events for all objects when a namespace is no longer watched. See: maistra/xns-informer#12 Co-authored-by: Brad Ison <brad.ison@redhat.com> OSSM-2006 Fix multiNamespaceInformer.HasSynced() fix(xns-informer): only sync nsInformer when not nil (maistra#684) Fix shutting down namespace controller Signed-off-by: Jacek Ewertowski <jewertow@redhat.com> OSSM-2233: uses maistra.io/api instead of copying Before we were generating and copying Maistra API types, now we use it as a dependency. Additionally following changes are introduced: - vendoring has been removed, as we now use embedded manifests from maistra/api in tests - cleans up Makefiles - removes unnecessary files (generated API) OSSM-2375 Log the list of member namespaces on every change (maistra#716) Co-authored-by: Marko Lukša <marko.luksa@gmail.com> OSSM-3703: Fix AUTO_RELOAD_PLUGIN_CERTS in multi-tenant mode (maistra#778) * OSSM-3703: Fix AUTO_RELOAD_PLUGIN_CERTS in multi-tenant mode Signed-off-by: Jacek Ewertowski <jewertow@redhat.com> * Revert unnecessary variable declaration Signed-off-by: Jacek Ewertowski <jewertow@redhat.com> --------- Co-authored-by: Marko Lukša <marko.luksa@gmail.com> Co-authored-by: Jacek Ewertowski <jewertow@redhat.com> Co-authored-by: Daniel Grimm <dgrimm@redhat.com> Co-authored-by: Brad Ison <brad.ison@redhat.com> Signed-off-by: Yann Liu <yannliu@redhat.com>
MAISTRA-2051: Add xns-informer for Kubernetes types (maistra#223) * Update mirrored licenses to fix gen-check * MAISTRA-2051: Add xns-informer for Kubernetes types This integrates the xns-informer library for multi-namespace support, but only for core Kubernetes types. The informers are hard-coded to watch all namespaces here. The integration with MemberRoll will come in a follow-up. MAISTRA-2051 Add xns-informer for Istio types (maistra#221) MAISTRA-2051: Add MemberRollController (maistra#227) * MAISTRA-2051: Add MemberRollController Includes the following: * 75742b0 - Add Makefile for Maistra client generation This adds a Makefile with tasks for generating the Maistra specific clients. It is adapted from the one in the Istio client-go repository. * 5f8562c - Add MemberRollController Squashed commit, consisting of: * MAISTRA-417: Add MemberRollController * MAISTRA-450: Switch across to ConfiguredMembers and check existing config for changes * MAISTRA-1005 Do not expect namespaces to have a stable ordering The clients have also been regenerated. * 1b7a89d - Add missing licenses * fe2f8cd - Fix Copyright holder This is to make sure all PR's will have an updated vendor directory. The `gencheck` prow job will ensure that. * MAISTRA-2051: Update MemberRollController for xns-informers * MAISTRA-2051: Add AddMemberRoll to kube client * MAISTRA-2051: Configure MemberRoll controller in istiod MAISTRA-2051: Add xns-informer for Service APIs (maistra#229) * MAISTRA-2051: Update xns-informers * MAISTRA-2051: Add xns-informer for Service APIs MAISTRA-2051: Use shared Kubernetes client in galley (maistra#241) This moves galley to the shared Kubernetes client, which will let it use xns-informers for multi-namespace support like everything else. MAISTRA-2051: Update xns-informers to latest (maistra#252) * MAISTRA-2051: Reset Kubernetes client to release-1.8 state * MAISTRA-2051: Use xns-informers in Kubernetes client * MAISTRA-2051: Un-skip tests with xns-informers issues These tests were skipped because of issues with xns-informers, which have now been solved. They should no longer be skipped. * MAISTRA-2051: Update xns-informers to latest * MAISTRA-2051: Skip problematic integration test: TestDashboard MAISTRA-2051: Use MultiNamespaceInformer in galley (maistra#254) * Revert "MAISTRA-2051: Use shared Kubernetes client in galley (maistra#241)" This reverts commit 0b1567a. * MAISTRA-2051: Use MultiNamespaceInformer in galley This is a rework of the previous change that used the central Kubernetes client in Galley. The watchers in Galley manage stopping and starting individual informers, which doesn't work well with the factory returning cached informers. This creates multi-namespace informers individually instead of using the central factory. It's also a much smaller change overall and doesn't affect the tests. * MAISTRA-2051: Add GetMemberRoll method to Kubernetes client * MAISTRA-2051: Integrate MemberRoll with Galley This configures the mulit-namespace aware infomers in Galley to respond to changes in the set of namespaces via the MemberRoll. This includes parts of the following: - 4b70b8d MAISTRA-1895 Add option to enable/disable CRD scan - 6e8019e MAISTRA-1968 allow analyzer to work with multi list watcher MAISTRA-1724: Don't watch namespaces if MemberRoll is used (maistra#257) Rewrite of the following for Maistra 2.1 / Istio 1.8 rebase: a161a53 - MAISTRA-1724 Don't watch namespaces if MRC is used (maistra#161) MAISTRA-1755: invoke UpdateNamespaces() as part of MemberRollController.Register() Cherry-pick of f0eed15 for Maistra 2.1 / Istio 1.8 rebase. MAISTRA-1724: Better hanlde deletion in NamespaceController MAISTRA-2153: Disable namespace informer if MemberRoll is used (maistra#283) This causes istiod to skip creating the namespace informer in the Kubernetes service registry controller if a MemberRoll is specified, because Maistra cannot read namespace objects. This will affect the behavior of multi-network deployments that do not use mesh networks for configuration, i.e. a namespace cannot be labeled with a default network now. MAISTRA-2197: Push first update when cache is warm (maistra#294) Change SMMR Controller behavior to only send the first update to listeners when it has a list of members ready. In other words, when cache is synced. Before this, the first update was sent with only one hardcoded member: The control plane namespace. Now it is sent with the full list of SMMR members. While on that, switch to our own log scope, to facilitate debugging. Manual cherry pick of maistra#291 MAISTRA-2233: Start xns-informers with empty namespace set (maistra#303) The multi-namespace informers created by xns-informers default to watching all namespaces to match upstream behaviour. This causes permissions issues in Maistra because they will do this until the first update from the MemberRoll controller sets the correct set of namespaces on each informer. We should instead explicitly configure them with an empty set of namespaces at startup. MAISTRA-2234: Seed MemberRoll listeners with system namespace (maistra#302) The MemberRoll controller was changed in MAISTRA-2197 to not send the initial update with just the system namespace to all listeners. This can be a problem when the user hasn't created an SMMR resource yet, because any listeners registered before the caches sync may never get an update informing them to watch the system namespace. This attempts to work around the issue by having all listeners individually wait on the caches to sync, then seed just the system namespace if no SMMR resource is found. MAISTRA-2271: Update xns-informers to fix delete events issue (maistra#315) This updates xns-informers to include a fix for sending delete events for all objects when a namespace is no longer watched. See: maistra/xns-informer#12 Co-authored-by: Brad Ison <brad.ison@redhat.com> OSSM-2006 Fix multiNamespaceInformer.HasSynced() fix(xns-informer): only sync nsInformer when not nil (maistra#684) Fix shutting down namespace controller Signed-off-by: Jacek Ewertowski <jewertow@redhat.com> OSSM-2233: uses maistra.io/api instead of copying Before we were generating and copying Maistra API types, now we use it as a dependency. Additionally following changes are introduced: - vendoring has been removed, as we now use embedded manifests from maistra/api in tests - cleans up Makefiles - removes unnecessary files (generated API) OSSM-2375 Log the list of member namespaces on every change (maistra#716) Co-authored-by: Marko Lukša <marko.luksa@gmail.com> OSSM-3703: Fix AUTO_RELOAD_PLUGIN_CERTS in multi-tenant mode (maistra#778) * OSSM-3703: Fix AUTO_RELOAD_PLUGIN_CERTS in multi-tenant mode Signed-off-by: Jacek Ewertowski <jewertow@redhat.com> * Revert unnecessary variable declaration Signed-off-by: Jacek Ewertowski <jewertow@redhat.com> --------- Co-authored-by: Marko Lukša <marko.luksa@gmail.com> Co-authored-by: Jacek Ewertowski <jewertow@redhat.com> Co-authored-by: Daniel Grimm <dgrimm@redhat.com> Co-authored-by: Brad Ison <brad.ison@redhat.com> Signed-off-by: Yann Liu <yannliu@redhat.com>
MAISTRA-2051: Add xns-informer for Kubernetes types (#223) * Update mirrored licenses to fix gen-check * MAISTRA-2051: Add xns-informer for Kubernetes types This integrates the xns-informer library for multi-namespace support, but only for core Kubernetes types. The informers are hard-coded to watch all namespaces here. The integration with MemberRoll will come in a follow-up. MAISTRA-2051 Add xns-informer for Istio types (#221) MAISTRA-2051: Add MemberRollController (#227) * MAISTRA-2051: Add MemberRollController Includes the following: * 75742b0 - Add Makefile for Maistra client generation This adds a Makefile with tasks for generating the Maistra specific clients. It is adapted from the one in the Istio client-go repository. * 5f8562c - Add MemberRollController Squashed commit, consisting of: * MAISTRA-417: Add MemberRollController * MAISTRA-450: Switch across to ConfiguredMembers and check existing config for changes * MAISTRA-1005 Do not expect namespaces to have a stable ordering The clients have also been regenerated. * 1b7a89d - Add missing licenses * fe2f8cd - Fix Copyright holder This is to make sure all PR's will have an updated vendor directory. The `gencheck` prow job will ensure that. * MAISTRA-2051: Update MemberRollController for xns-informers * MAISTRA-2051: Add AddMemberRoll to kube client * MAISTRA-2051: Configure MemberRoll controller in istiod MAISTRA-2051: Add xns-informer for Service APIs (#229) * MAISTRA-2051: Update xns-informers * MAISTRA-2051: Add xns-informer for Service APIs MAISTRA-2051: Use shared Kubernetes client in galley (#241) This moves galley to the shared Kubernetes client, which will let it use xns-informers for multi-namespace support like everything else. MAISTRA-2051: Update xns-informers to latest (#252) * MAISTRA-2051: Reset Kubernetes client to release-1.8 state * MAISTRA-2051: Use xns-informers in Kubernetes client * MAISTRA-2051: Un-skip tests with xns-informers issues These tests were skipped because of issues with xns-informers, which have now been solved. They should no longer be skipped. * MAISTRA-2051: Update xns-informers to latest * MAISTRA-2051: Skip problematic integration test: TestDashboard MAISTRA-2051: Use MultiNamespaceInformer in galley (#254) * Revert "MAISTRA-2051: Use shared Kubernetes client in galley (#241)" This reverts commit 0b1567a. * MAISTRA-2051: Use MultiNamespaceInformer in galley This is a rework of the previous change that used the central Kubernetes client in Galley. The watchers in Galley manage stopping and starting individual informers, which doesn't work well with the factory returning cached informers. This creates multi-namespace informers individually instead of using the central factory. It's also a much smaller change overall and doesn't affect the tests. * MAISTRA-2051: Add GetMemberRoll method to Kubernetes client * MAISTRA-2051: Integrate MemberRoll with Galley This configures the mulit-namespace aware infomers in Galley to respond to changes in the set of namespaces via the MemberRoll. This includes parts of the following: - 4b70b8d MAISTRA-1895 Add option to enable/disable CRD scan - 6e8019e MAISTRA-1968 allow analyzer to work with multi list watcher MAISTRA-1724: Don't watch namespaces if MemberRoll is used (#257) Rewrite of the following for Maistra 2.1 / Istio 1.8 rebase: a161a53 - MAISTRA-1724 Don't watch namespaces if MRC is used (#161) MAISTRA-1755: invoke UpdateNamespaces() as part of MemberRollController.Register() Cherry-pick of f0eed15 for Maistra 2.1 / Istio 1.8 rebase. MAISTRA-1724: Better hanlde deletion in NamespaceController MAISTRA-2153: Disable namespace informer if MemberRoll is used (#283) This causes istiod to skip creating the namespace informer in the Kubernetes service registry controller if a MemberRoll is specified, because Maistra cannot read namespace objects. This will affect the behavior of multi-network deployments that do not use mesh networks for configuration, i.e. a namespace cannot be labeled with a default network now. MAISTRA-2197: Push first update when cache is warm (#294) Change SMMR Controller behavior to only send the first update to listeners when it has a list of members ready. In other words, when cache is synced. Before this, the first update was sent with only one hardcoded member: The control plane namespace. Now it is sent with the full list of SMMR members. While on that, switch to our own log scope, to facilitate debugging. Manual cherry pick of #291 MAISTRA-2233: Start xns-informers with empty namespace set (#303) The multi-namespace informers created by xns-informers default to watching all namespaces to match upstream behaviour. This causes permissions issues in Maistra because they will do this until the first update from the MemberRoll controller sets the correct set of namespaces on each informer. We should instead explicitly configure them with an empty set of namespaces at startup. MAISTRA-2234: Seed MemberRoll listeners with system namespace (#302) The MemberRoll controller was changed in MAISTRA-2197 to not send the initial update with just the system namespace to all listeners. This can be a problem when the user hasn't created an SMMR resource yet, because any listeners registered before the caches sync may never get an update informing them to watch the system namespace. This attempts to work around the issue by having all listeners individually wait on the caches to sync, then seed just the system namespace if no SMMR resource is found. MAISTRA-2271: Update xns-informers to fix delete events issue (#315) This updates xns-informers to include a fix for sending delete events for all objects when a namespace is no longer watched. See: maistra/xns-informer#12 Co-authored-by: Brad Ison <brad.ison@redhat.com> OSSM-2006 Fix multiNamespaceInformer.HasSynced() fix(xns-informer): only sync nsInformer when not nil (#684) Fix shutting down namespace controller Signed-off-by: Jacek Ewertowski <jewertow@redhat.com> OSSM-2233: uses maistra.io/api instead of copying Before we were generating and copying Maistra API types, now we use it as a dependency. Additionally following changes are introduced: - vendoring has been removed, as we now use embedded manifests from maistra/api in tests - cleans up Makefiles - removes unnecessary files (generated API) OSSM-2375 Log the list of member namespaces on every change (#716) Co-authored-by: Marko Lukša <marko.luksa@gmail.com> OSSM-3703: Fix AUTO_RELOAD_PLUGIN_CERTS in multi-tenant mode (#778) * OSSM-3703: Fix AUTO_RELOAD_PLUGIN_CERTS in multi-tenant mode Signed-off-by: Jacek Ewertowski <jewertow@redhat.com> * Revert unnecessary variable declaration Signed-off-by: Jacek Ewertowski <jewertow@redhat.com> --------- Co-authored-by: Marko Lukša <marko.luksa@gmail.com> Co-authored-by: Jacek Ewertowski <jewertow@redhat.com> Co-authored-by: Daniel Grimm <dgrimm@redhat.com> Co-authored-by: Brad Ison <brad.ison@redhat.com> Signed-off-by: Yann Liu <yannliu@redhat.com>
This moves galley to the shared Kubernetes client, which will let it
use xns-informers for multi-namespace support like everything else.