diff --git a/internal/controller/controller.go b/internal/controller/controller.go index 37066045e91..5c4693d7d22 100644 --- a/internal/controller/controller.go +++ b/internal/controller/controller.go @@ -20,6 +20,8 @@ import ( "github.com/ceph/ceph-csi/internal/util/log" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/client-go/rest" "k8s.io/client-go/tools/leaderelection/resourcelock" clientConfig "sigs.k8s.io/controller-runtime/pkg/client/config" "sigs.k8s.io/controller-runtime/pkg/manager" @@ -69,7 +71,11 @@ func Start(config Config) error { LeaderElectionResourceLock: resourcelock.LeasesResourceLock, LeaderElectionID: electionID, } - mgr, err := manager.New(clientConfig.GetConfigOrDie(), opts) + + kubeConfig := clientConfig.GetConfigOrDie() + coreKubeConfig := rest.CopyConfig(kubeConfig) + coreKubeConfig.ContentType = runtime.ContentTypeProtobuf + mgr, err := manager.New(coreKubeConfig, opts) if err != nil { log.ErrorLogMsg("failed to create manager %s", err) diff --git a/internal/util/k8s/client.go b/internal/util/k8s/client.go index d5629fee54d..c7731db04e9 100644 --- a/internal/util/k8s/client.go +++ b/internal/util/k8s/client.go @@ -20,6 +20,7 @@ import ( "fmt" "os" + "k8s.io/apimachinery/pkg/runtime" "k8s.io/client-go/kubernetes" "k8s.io/client-go/rest" "k8s.io/client-go/tools/clientcmd" @@ -47,6 +48,7 @@ func NewK8sClient() (*kubernetes.Clientset, error) { return nil, fmt.Errorf("failed to get cluster config: %w", err) } } + cfg.ContentType = runtime.ContentTypeProtobuf client, err := kubernetes.NewForConfig(cfg) if err != nil { return nil, fmt.Errorf("failed to create client: %w", err)