From 213688fd7d2379ba421020fe034cc8655611cd91 Mon Sep 17 00:00:00 2001 From: leonnicolas Date: Sat, 23 Apr 2022 11:35:10 +0200 Subject: [PATCH] Update autogenerated code and CRD Also edit Makefile to generate valid manifest. Signed-off-by: leonnicolas --- Makefile | 2 +- docs/kg.md | 1 + manifests/crds.yaml | 3 +- pkg/k8s/clientset/versioned/clientset.go | 38 +++++++++++++++---- .../versioned/fake/clientset_generated.go | 5 ++- .../typed/kilo/v1alpha1/fake/fake_peer.go | 2 +- .../typed/kilo/v1alpha1/kilo_client.go | 20 +++++++++- 7 files changed, 59 insertions(+), 12 deletions(-) diff --git a/Makefile b/Makefile index 4d6573e..28b0ca6 100644 --- a/Makefile +++ b/Makefile @@ -81,7 +81,7 @@ crd: manifests/crds.yaml manifests/crds.yaml: pkg/k8s/apis/kilo/v1alpha1/types.go $(CONTROLLER_GEN_BINARY) $(CONTROLLER_GEN_BINARY) crd \ paths=./pkg/k8s/apis/kilo/... \ - output:crd:stdout | tail -n +3 > $@ + output:crd:stdout > $@ client: pkg/k8s/clientset/versioned/typed/kilo/v1alpha1/peer.go pkg/k8s/clientset/versioned/typed/kilo/v1alpha1/peer.go: .header pkg/k8s/apis/kilo/v1alpha1/types.go $(CLIENT_GEN_BINARY) diff --git a/docs/kg.md b/docs/kg.md index 544036c..9d6f071 100644 --- a/docs/kg.md +++ b/docs/kg.md @@ -26,6 +26,7 @@ Usage: kg [command] Available Commands: + completion generate the autocompletion script for the specified shell help Help about any command version Print the version and exit. webhook webhook starts a HTTPS server to validate updates and creations of Kilo peers. diff --git a/manifests/crds.yaml b/manifests/crds.yaml index 132a873..fdc3dee 100644 --- a/manifests/crds.yaml +++ b/manifests/crds.yaml @@ -1,8 +1,9 @@ +--- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.6.0 + controller-gen.kubebuilder.io/version: v0.8.0 creationTimestamp: null name: peers.kilo.squat.ai spec: diff --git a/pkg/k8s/clientset/versioned/clientset.go b/pkg/k8s/clientset/versioned/clientset.go index 86f7f9c..6dd7087 100644 --- a/pkg/k8s/clientset/versioned/clientset.go +++ b/pkg/k8s/clientset/versioned/clientset.go @@ -18,6 +18,7 @@ package versioned import ( "fmt" + "net/http" kilov1alpha1 "github.com/squat/kilo/pkg/k8s/clientset/versioned/typed/kilo/v1alpha1" discovery "k8s.io/client-go/discovery" @@ -53,22 +54,45 @@ func (c *Clientset) Discovery() discovery.DiscoveryInterface { // NewForConfig creates a new Clientset for the given config. // If config's RateLimiter is not set and QPS and Burst are acceptable, // NewForConfig will generate a rate-limiter in configShallowCopy. +// NewForConfig is equivalent to NewForConfigAndClient(c, httpClient), +// where httpClient was generated with rest.HTTPClientFor(c). func NewForConfig(c *rest.Config) (*Clientset, error) { configShallowCopy := *c + + if configShallowCopy.UserAgent == "" { + configShallowCopy.UserAgent = rest.DefaultKubernetesUserAgent() + } + + // share the transport between all clients + httpClient, err := rest.HTTPClientFor(&configShallowCopy) + if err != nil { + return nil, err + } + + return NewForConfigAndClient(&configShallowCopy, httpClient) +} + +// NewForConfigAndClient creates a new Clientset for the given config and http client. +// Note the http client provided takes precedence over the configured transport values. +// If config's RateLimiter is not set and QPS and Burst are acceptable, +// NewForConfigAndClient will generate a rate-limiter in configShallowCopy. +func NewForConfigAndClient(c *rest.Config, httpClient *http.Client) (*Clientset, error) { + configShallowCopy := *c if configShallowCopy.RateLimiter == nil && configShallowCopy.QPS > 0 { if configShallowCopy.Burst <= 0 { return nil, fmt.Errorf("burst is required to be greater than 0 when RateLimiter is not set and QPS is set to greater than 0") } configShallowCopy.RateLimiter = flowcontrol.NewTokenBucketRateLimiter(configShallowCopy.QPS, configShallowCopy.Burst) } + var cs Clientset var err error - cs.kiloV1alpha1, err = kilov1alpha1.NewForConfig(&configShallowCopy) + cs.kiloV1alpha1, err = kilov1alpha1.NewForConfigAndClient(&configShallowCopy, httpClient) if err != nil { return nil, err } - cs.DiscoveryClient, err = discovery.NewDiscoveryClientForConfig(&configShallowCopy) + cs.DiscoveryClient, err = discovery.NewDiscoveryClientForConfigAndClient(&configShallowCopy, httpClient) if err != nil { return nil, err } @@ -78,11 +102,11 @@ func NewForConfig(c *rest.Config) (*Clientset, error) { // NewForConfigOrDie creates a new Clientset for the given config and // panics if there is an error in the config. func NewForConfigOrDie(c *rest.Config) *Clientset { - var cs Clientset - cs.kiloV1alpha1 = kilov1alpha1.NewForConfigOrDie(c) - - cs.DiscoveryClient = discovery.NewDiscoveryClientForConfigOrDie(c) - return &cs + cs, err := NewForConfig(c) + if err != nil { + panic(err) + } + return cs } // New creates a new Clientset for the given RESTClient. diff --git a/pkg/k8s/clientset/versioned/fake/clientset_generated.go b/pkg/k8s/clientset/versioned/fake/clientset_generated.go index 0732e17..a2767f4 100644 --- a/pkg/k8s/clientset/versioned/fake/clientset_generated.go +++ b/pkg/k8s/clientset/versioned/fake/clientset_generated.go @@ -72,7 +72,10 @@ func (c *Clientset) Tracker() testing.ObjectTracker { return c.tracker } -var _ clientset.Interface = &Clientset{} +var ( + _ clientset.Interface = &Clientset{} + _ testing.FakeClient = &Clientset{} +) // KiloV1alpha1 retrieves the KiloV1alpha1Client func (c *Clientset) KiloV1alpha1() kilov1alpha1.KiloV1alpha1Interface { diff --git a/pkg/k8s/clientset/versioned/typed/kilo/v1alpha1/fake/fake_peer.go b/pkg/k8s/clientset/versioned/typed/kilo/v1alpha1/fake/fake_peer.go index 8970066..1cb5f42 100644 --- a/pkg/k8s/clientset/versioned/typed/kilo/v1alpha1/fake/fake_peer.go +++ b/pkg/k8s/clientset/versioned/typed/kilo/v1alpha1/fake/fake_peer.go @@ -97,7 +97,7 @@ func (c *FakePeers) Update(ctx context.Context, peer *v1alpha1.Peer, opts v1.Upd // Delete takes name of the peer and deletes it. Returns an error if one occurs. func (c *FakePeers) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error { _, err := c.Fake. - Invokes(testing.NewRootDeleteAction(peersResource, name), &v1alpha1.Peer{}) + Invokes(testing.NewRootDeleteActionWithOptions(peersResource, name, opts), &v1alpha1.Peer{}) return err } diff --git a/pkg/k8s/clientset/versioned/typed/kilo/v1alpha1/kilo_client.go b/pkg/k8s/clientset/versioned/typed/kilo/v1alpha1/kilo_client.go index 610f726..2363798 100644 --- a/pkg/k8s/clientset/versioned/typed/kilo/v1alpha1/kilo_client.go +++ b/pkg/k8s/clientset/versioned/typed/kilo/v1alpha1/kilo_client.go @@ -17,6 +17,8 @@ package v1alpha1 import ( + "net/http" + v1alpha1 "github.com/squat/kilo/pkg/k8s/apis/kilo/v1alpha1" "github.com/squat/kilo/pkg/k8s/clientset/versioned/scheme" rest "k8s.io/client-go/rest" @@ -37,12 +39,28 @@ func (c *KiloV1alpha1Client) Peers() PeerInterface { } // NewForConfig creates a new KiloV1alpha1Client for the given config. +// NewForConfig is equivalent to NewForConfigAndClient(c, httpClient), +// where httpClient was generated with rest.HTTPClientFor(c). func NewForConfig(c *rest.Config) (*KiloV1alpha1Client, error) { config := *c if err := setConfigDefaults(&config); err != nil { return nil, err } - client, err := rest.RESTClientFor(&config) + httpClient, err := rest.HTTPClientFor(&config) + if err != nil { + return nil, err + } + return NewForConfigAndClient(&config, httpClient) +} + +// NewForConfigAndClient creates a new KiloV1alpha1Client for the given config and http client. +// Note the http client provided takes precedence over the configured transport values. +func NewForConfigAndClient(c *rest.Config, h *http.Client) (*KiloV1alpha1Client, error) { + config := *c + if err := setConfigDefaults(&config); err != nil { + return nil, err + } + client, err := rest.RESTClientForConfigAndClient(&config, h) if err != nil { return nil, err }