From f768403f882af8d6ee2e2e64acd63735c2e2e737 Mon Sep 17 00:00:00 2001 From: Bridget Kromhout Date: Mon, 6 Jul 2020 17:44:46 -0500 Subject: [PATCH] Backporting bugfix from Helm v3. Signed-off-by: Bridget Kromhout --- pkg/kube/client.go | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/pkg/kube/client.go b/pkg/kube/client.go index 20edb3ba0..0f34b5686 100644 --- a/pkg/kube/client.go +++ b/pkg/kube/client.go @@ -79,17 +79,23 @@ type Client struct { Log func(string, ...interface{}) } +var addToScheme sync.Once + // New creates a new Client. func New(getter genericclioptions.RESTClientGetter) *Client { if getter == nil { getter = genericclioptions.NewConfigFlags(true) } - - err := apiextv1beta1.AddToScheme(scheme.Scheme) - if err != nil { - panic(err) - } - + // Add CRDs to the scheme. They are missing by default. + addToScheme.Do(func() { + if err := apiextv1.AddToScheme(scheme.Scheme); err != nil { + // This should never happen. + panic(err) + } + if err := apiextv1beta1.AddToScheme(scheme.Scheme); err != nil { + panic(err) + } + }) return &Client{ Factory: cmdutil.NewFactory(getter), Log: nopLogger,