From 0767ad7f64e098d4cde8dc377f1d41663f2d47c3 Mon Sep 17 00:00:00 2001 From: Andy Goldstein Date: Fri, 19 Aug 2022 14:48:40 -0400 Subject: [PATCH] ddsif: exclude v1beta1 Workspaces Don't inform on v1beta1 Workspaces as these are a projection from v1alpha1 ClusterWorkspaces, and it breaks in a topology where the virtual-workspaces server is standalone. Signed-off-by: Andy Goldstein --- pkg/informer/informer.go | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/pkg/informer/informer.go b/pkg/informer/informer.go index 783dcefb7e1..70a1c06da77 100644 --- a/pkg/informer/informer.go +++ b/pkg/informer/informer.go @@ -42,6 +42,7 @@ import ( "k8s.io/client-go/tools/cache" "k8s.io/klog/v2" + "github.com/kcp-dev/kcp/pkg/apis/tenancy" metadataclient "github.com/kcp-dev/kcp/pkg/metadata" ) @@ -425,6 +426,15 @@ func (d *DynamicDiscoverySharedInformerFactory) updateInformers() { group := parts[0] version := parts[1] resource := parts[2] + + // Don't start a dynamic informer for tenancy.kcp.dev/v1beta1 Workspaces. These are a virtual projection of + // data from tenancy.kcp.dev/v1alpha1 ClusterWorkspaces. Starting an informer for them causes problems when + // the virtual-workspaces server is deployed separately. See https://github.com/kcp-dev/kcp/issues/1654 for + // more details. + if group == tenancy.GroupName && version == "v1beta1" && resource == "workspaces" { + continue + } + latest[gvrFor(group, version, resource)] = struct{}{} }