From 418af0f4dcbe15147b21462b9e5db5a5ba769c12 Mon Sep 17 00:00:00 2001 From: Anish Ramasekar Date: Fri, 1 Sep 2023 17:24:20 +0000 Subject: [PATCH] register API types only once for encryption config Signed-off-by: Anish Ramasekar --- .../pkg/server/options/encryptionconfig/config.go | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/staging/src/k8s.io/apiserver/pkg/server/options/encryptionconfig/config.go b/staging/src/k8s.io/apiserver/pkg/server/options/encryptionconfig/config.go index 13819bf90c1..a5560d11fd9 100644 --- a/staging/src/k8s.io/apiserver/pkg/server/options/encryptionconfig/config.go +++ b/staging/src/k8s.io/apiserver/pkg/server/options/encryptionconfig/config.go @@ -104,6 +104,15 @@ const ( kmsReloadHealthCheckName = "kms-providers" ) +var codecs serializer.CodecFactory + +func init() { + configScheme := runtime.NewScheme() + utilruntime.Must(apiserverconfig.AddToScheme(configScheme)) + utilruntime.Must(apiserverconfigv1.AddToScheme(configScheme)) + codecs = serializer.NewCodecFactory(configScheme) +} + type kmsPluginHealthzResponse struct { err error received time.Time @@ -475,11 +484,6 @@ func loadConfig(filepath string, reload bool) (*apiserverconfig.EncryptionConfig return nil, "", fmt.Errorf("encryption provider configuration file %q is empty", filepath) } - scheme := runtime.NewScheme() - codecs := serializer.NewCodecFactory(scheme) - utilruntime.Must(apiserverconfig.AddToScheme(scheme)) - utilruntime.Must(apiserverconfigv1.AddToScheme(scheme)) - configObj, gvk, err := codecs.UniversalDecoder().Decode(data, nil, nil) if err != nil { return nil, "", fmt.Errorf("error decoding encryption provider configuration file %q: %w", filepath, err)