diff --git a/pkg/client/watch.go b/pkg/client/watch.go index 181b22a673..8de5d64b4b 100644 --- a/pkg/client/watch.go +++ b/pkg/client/watch.go @@ -18,6 +18,7 @@ package client import ( "context" + "errors" "strings" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -35,6 +36,15 @@ func NewWithWatch(config *rest.Config, options Options) (WithWatch, error) { return &watchingClient{client: client}, nil } +// AsWithWatch wraps an existing client in a WithWatch +func AsWithWatch(c Client) (WithWatch, error) { + cl, ok := c.(*client) + if !ok { + return nil, errors.New("incompatible client type") + } + return &watchingClient{client: cl}, nil +} + type watchingClient struct { *client }