From 8dab94087f733ad6208a7fd7bd42f11ba9ed6b30 Mon Sep 17 00:00:00 2001 From: Feilian Xie Date: Thu, 11 Jan 2024 02:43:05 +0800 Subject: [PATCH 1/2] Fix client-related comments --- pkg/client/client.go | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/pkg/client/client.go b/pkg/client/client.go index 2fb0acb7b3..27dbd52edf 100644 --- a/pkg/client/client.go +++ b/pkg/client/client.go @@ -90,10 +90,11 @@ type CacheOptions struct { type NewClientFunc func(config *rest.Config, options Options) (Client, error) // New returns a new Client using the provided config and Options. -// The returned client reads *and* writes directly from the server -// (it doesn't use object caches). It understands how to work with -// normal types (both custom resources and aggregated/built-in resources), -// as well as unstructured types. +// The returned client reads from a local cache or directly from the API server, +// and writes are always performed directly on the API server. +// (read operations may use object caches, but write operations do not). +// It understands how to work with normal types (both custom resources +// and aggregated/built-in resources), as well as unstructured types. // // In the case of normal types, the scheme will be used to look up the // corresponding group, version, and kind for the given type. In the @@ -210,7 +211,8 @@ func newClient(config *rest.Config, options Options) (*client, error) { var _ Client = &client{} -// client is a client.Client that reads and writes directly from/to an API server. +// client is a client.Client configured to either read from a local cache or directly from the API server. +// Write operations are always performed directly on the API server. // It lazily initializes new clients at the time they are used. type client struct { typedClient typedClient From f29ed4e7e77077cce701023dbaca413847f66281 Mon Sep 17 00:00:00 2001 From: Feilian Xie Date: Fri, 12 Jan 2024 03:09:23 +0800 Subject: [PATCH 2/2] Elaborate in which cases the client reads from a cache --- pkg/client/client.go | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/pkg/client/client.go b/pkg/client/client.go index 27dbd52edf..c0ebb39e3d 100644 --- a/pkg/client/client.go +++ b/pkg/client/client.go @@ -90,12 +90,18 @@ type CacheOptions struct { type NewClientFunc func(config *rest.Config, options Options) (Client, error) // New returns a new Client using the provided config and Options. -// The returned client reads from a local cache or directly from the API server, -// and writes are always performed directly on the API server. -// (read operations may use object caches, but write operations do not). -// It understands how to work with normal types (both custom resources -// and aggregated/built-in resources), as well as unstructured types. // +// The client's read behavior is determined by Options.Cache. +// If either Options.Cache or Options.Cache.Reader is nil, +// the client reads directly from the API server. +// If both Options.Cache and Options.Cache.Reader are non-nil, +// the client reads from a local cache. However, specific +// resources can still be configured to bypass the cache based +// on Options.Cache.Unstructured and Options.Cache.DisableFor. +// Write operations are always performed directly on the API server. +// +// The client understands how to work with normal types (both custom resources +// and aggregated/built-in resources), as well as unstructured types. // In the case of normal types, the scheme will be used to look up the // corresponding group, version, and kind for the given type. In the // case of unstructured types, the group, version, and kind will be extracted