From 8313de1aa0323653f1934a3d205cb0a06ce4dcfb Mon Sep 17 00:00:00 2001 From: Tim Ramlot <42113979+inteon@users.noreply.github.com> Date: Mon, 31 Jul 2023 14:59:28 +0200 Subject: [PATCH] Make Logging options configurable using configfile. Signed-off-by: Tim Ramlot <42113979+inteon@users.noreply.github.com> --- cmd/webhook/app/webhook.go | 7 +- hack/k8s-codegen.sh | 1 + internal/apis/config/controller/types.go | 3 +- .../config/controller/v1alpha1/conversion.go | 68 ----------- .../v1alpha1/zz_generated.conversion.go | 112 +++++++----------- internal/apis/config/util/conversion.go | 69 +++++++++++ .../v1alpha1 => util}/conversion_test.go | 6 +- internal/apis/config/webhook/types.go | 4 + .../v1alpha1/zz_generated.conversion.go | 7 ++ .../config/webhook/zz_generated.deepcopy.go | 1 + pkg/apis/config/webhook/v1alpha1/types.go | 8 +- .../webhook/v1alpha1/zz_generated.deepcopy.go | 6 + pkg/webhook/options/options.go | 10 +- 13 files changed, 154 insertions(+), 148 deletions(-) create mode 100644 internal/apis/config/util/conversion.go rename internal/apis/config/{controller/v1alpha1 => util}/conversion_test.go (97%) diff --git a/cmd/webhook/app/webhook.go b/cmd/webhook/app/webhook.go index d7a512a9fbf..2d2104d4406 100644 --- a/cmd/webhook/app/webhook.go +++ b/cmd/webhook/app/webhook.go @@ -95,7 +95,7 @@ func NewServerCommand(stopCh <-chan struct{}) *cobra.Command { os.Exit(1) } - if err := logf.ValidateAndApply(webhookFlags.Logging); err != nil { + if err := logf.ValidateAndApply(&webhookConfig.Logging); err != nil { log.Error(err, "Failed to validate webhook flags") os.Exit(1) } @@ -117,6 +117,11 @@ func NewServerCommand(stopCh <-chan struct{}) *cobra.Command { log.Error(err, "Failed to set feature gates from config file") os.Exit(1) } + + if err := logf.ValidateAndApply(&webhookConfig.Logging); err != nil { + log.Error(err, "Failed to validate webhook flags") + os.Exit(1) + } } srv, err := cmwebhook.NewCertManagerWebhookServer(log, *webhookConfig) diff --git a/hack/k8s-codegen.sh b/hack/k8s-codegen.sh index 193004e2ddc..8a51ae09b94 100755 --- a/hack/k8s-codegen.sh +++ b/hack/k8s-codegen.sh @@ -104,6 +104,7 @@ conversion_inputs=( internal/apis/acme/v1alpha3 \ internal/apis/acme/v1beta1 \ internal/apis/acme/v1 \ + internal/apis/config/util \ internal/apis/config/webhook/v1alpha1 \ internal/apis/config/controller/v1alpha1 \ internal/apis/meta/v1 \ diff --git a/internal/apis/config/controller/types.go b/internal/apis/config/controller/types.go index 509ef697335..1480ba2f53b 100644 --- a/internal/apis/config/controller/types.go +++ b/internal/apis/config/controller/types.go @@ -19,9 +19,8 @@ package controller import ( "time" - "k8s.io/component-base/logs" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/component-base/logs" ) // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object diff --git a/internal/apis/config/controller/v1alpha1/conversion.go b/internal/apis/config/controller/v1alpha1/conversion.go index 5992b340491..335956697c5 100644 --- a/internal/apis/config/controller/v1alpha1/conversion.go +++ b/internal/apis/config/controller/v1alpha1/conversion.go @@ -15,71 +15,3 @@ limitations under the License. */ package v1alpha1 - -import ( - controller "github.com/cert-manager/cert-manager/internal/apis/config/controller" - v1alpha1 "github.com/cert-manager/cert-manager/pkg/apis/config/controller/v1alpha1" - conversion "k8s.io/apimachinery/pkg/conversion" - "k8s.io/component-base/logs" - logsapi "k8s.io/component-base/logs/api/v1" -) - -func Convert_v1alpha1_ControllerConfiguration_To_controller_ControllerConfiguration(in *v1alpha1.ControllerConfiguration, out *controller.ControllerConfiguration, s conversion.Scope) error { - if err := autoConvert_v1alpha1_ControllerConfiguration_To_controller_ControllerConfiguration(in, out, s); err != nil { - return err - } - return nil -} - -func Convert_controller_ControllerConfiguration_To_v1alpha1_ControllerConfiguration(in *controller.ControllerConfiguration, out *v1alpha1.ControllerConfiguration, s conversion.Scope) error { - if err := autoConvert_controller_ControllerConfiguration_To_v1alpha1_ControllerConfiguration(in, out, s); err != nil { - return err - } - return nil -} - -func Convert_Pointer_float32_To_float32(in **float32, out *float32, s conversion.Scope) error { - if *in == nil { - *out = 0 - return nil - } - *out = float32(**in) - return nil -} - -func Convert_float32_To_Pointer_float32(in *float32, out **float32, s conversion.Scope) error { - temp := float32(*in) - *out = &temp - return nil -} - -func Convert_Pointer_int32_To_int(in **int32, out *int, s conversion.Scope) error { - if *in == nil { - *out = 0 - return nil - } - *out = int(**in) - return nil -} - -func Convert_int_To_Pointer_int32(in *int, out **int32, s conversion.Scope) error { - temp := int32(*in) - *out = &temp - return nil -} - -func Convert_Pointer_v1_LoggingConfiguration_To_v1_LoggingConfiguration(in **logsapi.LoggingConfiguration, out *logsapi.LoggingConfiguration, s conversion.Scope) error { - if *in == nil { - temp := logs.NewOptions() - temp.DeepCopyInto(out) - return nil - } - (*in).DeepCopyInto(out) - return nil -} - -func Convert_v1_LoggingConfiguration_To_Pointer_v1_LoggingConfiguration(in *logsapi.LoggingConfiguration, out **logsapi.LoggingConfiguration, s conversion.Scope) error { - temp := in.DeepCopy() - *out = temp - return nil -} diff --git a/internal/apis/config/controller/v1alpha1/zz_generated.conversion.go b/internal/apis/config/controller/v1alpha1/zz_generated.conversion.go index 520ccd4ff53..6d9c5bfc860 100644 --- a/internal/apis/config/controller/v1alpha1/zz_generated.conversion.go +++ b/internal/apis/config/controller/v1alpha1/zz_generated.conversion.go @@ -26,11 +26,11 @@ import ( unsafe "unsafe" controller "github.com/cert-manager/cert-manager/internal/apis/config/controller" + util "github.com/cert-manager/cert-manager/internal/apis/config/util" v1alpha1 "github.com/cert-manager/cert-manager/pkg/apis/config/controller/v1alpha1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" - v1 "k8s.io/component-base/logs/api/v1" ) func init() { @@ -60,6 +60,16 @@ func RegisterConversions(s *runtime.Scheme) error { }); err != nil { return err } + if err := s.AddGeneratedConversionFunc((*v1alpha1.ControllerConfiguration)(nil), (*controller.ControllerConfiguration)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha1_ControllerConfiguration_To_controller_ControllerConfiguration(a.(*v1alpha1.ControllerConfiguration), b.(*controller.ControllerConfiguration), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*controller.ControllerConfiguration)(nil), (*v1alpha1.ControllerConfiguration)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_controller_ControllerConfiguration_To_v1alpha1_ControllerConfiguration(a.(*controller.ControllerConfiguration), b.(*v1alpha1.ControllerConfiguration), scope) + }); err != nil { + return err + } if err := s.AddGeneratedConversionFunc((*v1alpha1.IngressShimConfig)(nil), (*controller.IngressShimConfig)(nil), func(a, b interface{}, scope conversion.Scope) error { return Convert_v1alpha1_IngressShimConfig_To_controller_IngressShimConfig(a.(*v1alpha1.IngressShimConfig), b.(*controller.IngressShimConfig), scope) }); err != nil { @@ -80,52 +90,12 @@ func RegisterConversions(s *runtime.Scheme) error { }); err != nil { return err } - if err := s.AddConversionFunc((**float32)(nil), (*float32)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_Pointer_float32_To_float32(a.(**float32), b.(*float32), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((**int32)(nil), (*int)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_Pointer_int32_To_int(a.(**int32), b.(*int), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((**v1.LoggingConfiguration)(nil), (*v1.LoggingConfiguration)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_Pointer_v1_LoggingConfiguration_To_v1_LoggingConfiguration(a.(**v1.LoggingConfiguration), b.(*v1.LoggingConfiguration), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*controller.ControllerConfiguration)(nil), (*v1alpha1.ControllerConfiguration)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_controller_ControllerConfiguration_To_v1alpha1_ControllerConfiguration(a.(*controller.ControllerConfiguration), b.(*v1alpha1.ControllerConfiguration), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*float32)(nil), (**float32)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_float32_To_Pointer_float32(a.(*float32), b.(**float32), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*int)(nil), (**int32)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_int_To_Pointer_int32(a.(*int), b.(**int32), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*v1.LoggingConfiguration)(nil), (**v1.LoggingConfiguration)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1_LoggingConfiguration_To_Pointer_v1_LoggingConfiguration(a.(*v1.LoggingConfiguration), b.(**v1.LoggingConfiguration), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*v1alpha1.ControllerConfiguration)(nil), (*controller.ControllerConfiguration)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha1_ControllerConfiguration_To_controller_ControllerConfiguration(a.(*v1alpha1.ControllerConfiguration), b.(*controller.ControllerConfiguration), scope) - }); err != nil { - return err - } return nil } func autoConvert_v1alpha1_ACMEDNS01Config_To_controller_ACMEDNS01Config(in *v1alpha1.ACMEDNS01Config, out *controller.ACMEDNS01Config, s conversion.Scope) error { out.RecursiveNameservers = *(*[]string)(unsafe.Pointer(&in.RecursiveNameservers)) - if err := metav1.Convert_Pointer_bool_To_bool(&in.RecursiveNameserversOnly, &out.RecursiveNameserversOnly, s); err != nil { + if err := v1.Convert_Pointer_bool_To_bool(&in.RecursiveNameserversOnly, &out.RecursiveNameserversOnly, s); err != nil { return err } out.CheckRetryPeriod = time.Duration(in.CheckRetryPeriod) @@ -139,7 +109,7 @@ func Convert_v1alpha1_ACMEDNS01Config_To_controller_ACMEDNS01Config(in *v1alpha1 func autoConvert_controller_ACMEDNS01Config_To_v1alpha1_ACMEDNS01Config(in *controller.ACMEDNS01Config, out *v1alpha1.ACMEDNS01Config, s conversion.Scope) error { out.RecursiveNameservers = *(*[]string)(unsafe.Pointer(&in.RecursiveNameservers)) - if err := metav1.Convert_bool_To_Pointer_bool(&in.RecursiveNameserversOnly, &out.RecursiveNameserversOnly, s); err != nil { + if err := v1.Convert_bool_To_Pointer_bool(&in.RecursiveNameserversOnly, &out.RecursiveNameserversOnly, s); err != nil { return err } out.CheckRetryPeriod = time.Duration(in.CheckRetryPeriod) @@ -157,7 +127,7 @@ func autoConvert_v1alpha1_ACMEHTTP01Config_To_controller_ACMEHTTP01Config(in *v1 out.SolverResourceRequestMemory = in.SolverResourceRequestMemory out.SolverResourceLimitsCPU = in.SolverResourceLimitsCPU out.SolverResourceLimitsMemory = in.SolverResourceLimitsMemory - if err := metav1.Convert_Pointer_bool_To_bool(&in.SolverRunAsNonRoot, &out.SolverRunAsNonRoot, s); err != nil { + if err := v1.Convert_Pointer_bool_To_bool(&in.SolverRunAsNonRoot, &out.SolverRunAsNonRoot, s); err != nil { return err } out.SolverNameservers = *(*[]string)(unsafe.Pointer(&in.SolverNameservers)) @@ -175,7 +145,7 @@ func autoConvert_controller_ACMEHTTP01Config_To_v1alpha1_ACMEHTTP01Config(in *co out.SolverResourceRequestMemory = in.SolverResourceRequestMemory out.SolverResourceLimitsCPU = in.SolverResourceLimitsCPU out.SolverResourceLimitsMemory = in.SolverResourceLimitsMemory - if err := metav1.Convert_bool_To_Pointer_bool(&in.SolverRunAsNonRoot, &out.SolverRunAsNonRoot, s); err != nil { + if err := v1.Convert_bool_To_Pointer_bool(&in.SolverRunAsNonRoot, &out.SolverRunAsNonRoot, s); err != nil { return err } out.SolverNameservers = *(*[]string)(unsafe.Pointer(&in.SolverNameservers)) @@ -190,10 +160,10 @@ func Convert_controller_ACMEHTTP01Config_To_v1alpha1_ACMEHTTP01Config(in *contro func autoConvert_v1alpha1_ControllerConfiguration_To_controller_ControllerConfiguration(in *v1alpha1.ControllerConfiguration, out *controller.ControllerConfiguration, s conversion.Scope) error { out.KubeConfig = in.KubeConfig out.APIServerHost = in.APIServerHost - if err := Convert_Pointer_float32_To_float32(&in.KubernetesAPIQPS, &out.KubernetesAPIQPS, s); err != nil { + if err := util.Convert_Pointer_float32_To_float32(&in.KubernetesAPIQPS, &out.KubernetesAPIQPS, s); err != nil { return err } - if err := Convert_Pointer_int32_To_int(&in.KubernetesAPIBurst, &out.KubernetesAPIBurst, s); err != nil { + if err := util.Convert_Pointer_int32_To_int(&in.KubernetesAPIBurst, &out.KubernetesAPIBurst, s); err != nil { return err } out.Namespace = in.Namespace @@ -202,29 +172,29 @@ func autoConvert_v1alpha1_ControllerConfiguration_To_controller_ControllerConfig return err } out.Controllers = *(*[]string)(unsafe.Pointer(&in.Controllers)) - if err := metav1.Convert_Pointer_bool_To_bool(&in.IssuerAmbientCredentials, &out.IssuerAmbientCredentials, s); err != nil { + if err := v1.Convert_Pointer_bool_To_bool(&in.IssuerAmbientCredentials, &out.IssuerAmbientCredentials, s); err != nil { return err } - if err := metav1.Convert_Pointer_bool_To_bool(&in.ClusterIssuerAmbientCredentials, &out.ClusterIssuerAmbientCredentials, s); err != nil { + if err := v1.Convert_Pointer_bool_To_bool(&in.ClusterIssuerAmbientCredentials, &out.ClusterIssuerAmbientCredentials, s); err != nil { return err } - if err := metav1.Convert_Pointer_bool_To_bool(&in.EnableCertificateOwnerRef, &out.EnableCertificateOwnerRef, s); err != nil { + if err := v1.Convert_Pointer_bool_To_bool(&in.EnableCertificateOwnerRef, &out.EnableCertificateOwnerRef, s); err != nil { return err } out.CopiedAnnotationPrefixes = *(*[]string)(unsafe.Pointer(&in.CopiedAnnotationPrefixes)) - if err := Convert_Pointer_int32_To_int(&in.NumberOfConcurrentWorkers, &out.NumberOfConcurrentWorkers, s); err != nil { + if err := util.Convert_Pointer_int32_To_int(&in.NumberOfConcurrentWorkers, &out.NumberOfConcurrentWorkers, s); err != nil { return err } - if err := Convert_Pointer_int32_To_int(&in.MaxConcurrentChallenges, &out.MaxConcurrentChallenges, s); err != nil { + if err := util.Convert_Pointer_int32_To_int(&in.MaxConcurrentChallenges, &out.MaxConcurrentChallenges, s); err != nil { return err } out.MetricsListenAddress = in.MetricsListenAddress out.HealthzListenAddress = in.HealthzListenAddress - if err := metav1.Convert_Pointer_bool_To_bool(&in.EnablePprof, &out.EnablePprof, s); err != nil { + if err := v1.Convert_Pointer_bool_To_bool(&in.EnablePprof, &out.EnablePprof, s); err != nil { return err } out.PprofAddress = in.PprofAddress - if err := Convert_Pointer_v1_LoggingConfiguration_To_v1_LoggingConfiguration(&in.Logging, &out.Logging, s); err != nil { + if err := util.Convert_Pointer_v1_LoggingConfiguration_To_v1_LoggingConfiguration(&in.Logging, &out.Logging, s); err != nil { return err } out.FeatureGates = *(*map[string]bool)(unsafe.Pointer(&in.FeatureGates)) @@ -240,13 +210,18 @@ func autoConvert_v1alpha1_ControllerConfiguration_To_controller_ControllerConfig return nil } +// Convert_v1alpha1_ControllerConfiguration_To_controller_ControllerConfiguration is an autogenerated conversion function. +func Convert_v1alpha1_ControllerConfiguration_To_controller_ControllerConfiguration(in *v1alpha1.ControllerConfiguration, out *controller.ControllerConfiguration, s conversion.Scope) error { + return autoConvert_v1alpha1_ControllerConfiguration_To_controller_ControllerConfiguration(in, out, s) +} + func autoConvert_controller_ControllerConfiguration_To_v1alpha1_ControllerConfiguration(in *controller.ControllerConfiguration, out *v1alpha1.ControllerConfiguration, s conversion.Scope) error { out.APIServerHost = in.APIServerHost out.KubeConfig = in.KubeConfig - if err := Convert_float32_To_Pointer_float32(&in.KubernetesAPIQPS, &out.KubernetesAPIQPS, s); err != nil { + if err := util.Convert_float32_To_Pointer_float32(&in.KubernetesAPIQPS, &out.KubernetesAPIQPS, s); err != nil { return err } - if err := Convert_int_To_Pointer_int32(&in.KubernetesAPIBurst, &out.KubernetesAPIBurst, s); err != nil { + if err := util.Convert_int_To_Pointer_int32(&in.KubernetesAPIBurst, &out.KubernetesAPIBurst, s); err != nil { return err } out.Namespace = in.Namespace @@ -255,29 +230,29 @@ func autoConvert_controller_ControllerConfiguration_To_v1alpha1_ControllerConfig return err } out.Controllers = *(*[]string)(unsafe.Pointer(&in.Controllers)) - if err := metav1.Convert_bool_To_Pointer_bool(&in.IssuerAmbientCredentials, &out.IssuerAmbientCredentials, s); err != nil { + if err := v1.Convert_bool_To_Pointer_bool(&in.IssuerAmbientCredentials, &out.IssuerAmbientCredentials, s); err != nil { return err } - if err := metav1.Convert_bool_To_Pointer_bool(&in.ClusterIssuerAmbientCredentials, &out.ClusterIssuerAmbientCredentials, s); err != nil { + if err := v1.Convert_bool_To_Pointer_bool(&in.ClusterIssuerAmbientCredentials, &out.ClusterIssuerAmbientCredentials, s); err != nil { return err } - if err := metav1.Convert_bool_To_Pointer_bool(&in.EnableCertificateOwnerRef, &out.EnableCertificateOwnerRef, s); err != nil { + if err := v1.Convert_bool_To_Pointer_bool(&in.EnableCertificateOwnerRef, &out.EnableCertificateOwnerRef, s); err != nil { return err } out.CopiedAnnotationPrefixes = *(*[]string)(unsafe.Pointer(&in.CopiedAnnotationPrefixes)) - if err := Convert_int_To_Pointer_int32(&in.NumberOfConcurrentWorkers, &out.NumberOfConcurrentWorkers, s); err != nil { + if err := util.Convert_int_To_Pointer_int32(&in.NumberOfConcurrentWorkers, &out.NumberOfConcurrentWorkers, s); err != nil { return err } - if err := Convert_int_To_Pointer_int32(&in.MaxConcurrentChallenges, &out.MaxConcurrentChallenges, s); err != nil { + if err := util.Convert_int_To_Pointer_int32(&in.MaxConcurrentChallenges, &out.MaxConcurrentChallenges, s); err != nil { return err } out.MetricsListenAddress = in.MetricsListenAddress out.HealthzListenAddress = in.HealthzListenAddress - if err := metav1.Convert_bool_To_Pointer_bool(&in.EnablePprof, &out.EnablePprof, s); err != nil { + if err := v1.Convert_bool_To_Pointer_bool(&in.EnablePprof, &out.EnablePprof, s); err != nil { return err } out.PprofAddress = in.PprofAddress - if err := Convert_v1_LoggingConfiguration_To_Pointer_v1_LoggingConfiguration(&in.Logging, &out.Logging, s); err != nil { + if err := util.Convert_v1_LoggingConfiguration_To_Pointer_v1_LoggingConfiguration(&in.Logging, &out.Logging, s); err != nil { return err } out.FeatureGates = *(*map[string]bool)(unsafe.Pointer(&in.FeatureGates)) @@ -293,6 +268,11 @@ func autoConvert_controller_ControllerConfiguration_To_v1alpha1_ControllerConfig return nil } +// Convert_controller_ControllerConfiguration_To_v1alpha1_ControllerConfiguration is an autogenerated conversion function. +func Convert_controller_ControllerConfiguration_To_v1alpha1_ControllerConfiguration(in *controller.ControllerConfiguration, out *v1alpha1.ControllerConfiguration, s conversion.Scope) error { + return autoConvert_controller_ControllerConfiguration_To_v1alpha1_ControllerConfiguration(in, out, s) +} + func autoConvert_v1alpha1_IngressShimConfig_To_controller_IngressShimConfig(in *v1alpha1.IngressShimConfig, out *controller.IngressShimConfig, s conversion.Scope) error { out.DefaultIssuerName = in.DefaultIssuerName out.DefaultIssuerKind = in.DefaultIssuerKind @@ -320,7 +300,7 @@ func Convert_controller_IngressShimConfig_To_v1alpha1_IngressShimConfig(in *cont } func autoConvert_v1alpha1_LeaderElectionConfig_To_controller_LeaderElectionConfig(in *v1alpha1.LeaderElectionConfig, out *controller.LeaderElectionConfig, s conversion.Scope) error { - if err := metav1.Convert_Pointer_bool_To_bool(&in.Enabled, &out.Enabled, s); err != nil { + if err := v1.Convert_Pointer_bool_To_bool(&in.Enabled, &out.Enabled, s); err != nil { return err } out.Namespace = in.Namespace @@ -337,7 +317,7 @@ func Convert_v1alpha1_LeaderElectionConfig_To_controller_LeaderElectionConfig(in } func autoConvert_controller_LeaderElectionConfig_To_v1alpha1_LeaderElectionConfig(in *controller.LeaderElectionConfig, out *v1alpha1.LeaderElectionConfig, s conversion.Scope) error { - if err := metav1.Convert_bool_To_Pointer_bool(&in.Enabled, &out.Enabled, s); err != nil { + if err := v1.Convert_bool_To_Pointer_bool(&in.Enabled, &out.Enabled, s); err != nil { return err } out.Namespace = in.Namespace diff --git a/internal/apis/config/util/conversion.go b/internal/apis/config/util/conversion.go new file mode 100644 index 00000000000..3e4b39d3907 --- /dev/null +++ b/internal/apis/config/util/conversion.go @@ -0,0 +1,69 @@ +/* +Copyright 2021 The cert-manager Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package config + +import ( + conversion "k8s.io/apimachinery/pkg/conversion" + "k8s.io/component-base/logs" + logsapi "k8s.io/component-base/logs/api/v1" +) + +func Convert_Pointer_float32_To_float32(in **float32, out *float32, s conversion.Scope) error { + if *in == nil { + *out = 0 + return nil + } + *out = float32(**in) + return nil +} + +func Convert_float32_To_Pointer_float32(in *float32, out **float32, s conversion.Scope) error { + temp := float32(*in) + *out = &temp + return nil +} + +func Convert_Pointer_int32_To_int(in **int32, out *int, s conversion.Scope) error { + if *in == nil { + *out = 0 + return nil + } + *out = int(**in) + return nil +} + +func Convert_int_To_Pointer_int32(in *int, out **int32, s conversion.Scope) error { + temp := int32(*in) + *out = &temp + return nil +} + +func Convert_Pointer_v1_LoggingConfiguration_To_v1_LoggingConfiguration(in **logsapi.LoggingConfiguration, out *logsapi.LoggingConfiguration, s conversion.Scope) error { + if *in == nil { + temp := logs.NewOptions() + temp.DeepCopyInto(out) + return nil + } + (*in).DeepCopyInto(out) + return nil +} + +func Convert_v1_LoggingConfiguration_To_Pointer_v1_LoggingConfiguration(in *logsapi.LoggingConfiguration, out **logsapi.LoggingConfiguration, s conversion.Scope) error { + temp := in.DeepCopy() + *out = temp + return nil +} diff --git a/internal/apis/config/controller/v1alpha1/conversion_test.go b/internal/apis/config/util/conversion_test.go similarity index 97% rename from internal/apis/config/controller/v1alpha1/conversion_test.go rename to internal/apis/config/util/conversion_test.go index 2af97888a1f..2183e2ffa0c 100644 --- a/internal/apis/config/controller/v1alpha1/conversion_test.go +++ b/internal/apis/config/util/conversion_test.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -package v1alpha1 +package config import ( "reflect" @@ -36,7 +36,7 @@ func TestConvert_Pointer_v1_LoggingConfiguration_To_v1_LoggingConfiguration(t *t in **logsapi.LoggingConfiguration expected logsapi.LoggingConfiguration }{ - "general case ": { + "general case": { in: generalInput, expected: *logs.NewOptions(), }, @@ -63,7 +63,7 @@ func Test_Convert_v1_LoggingConfiguration_To_Pointer_v1_LoggingConfiguration(t * in *logsapi.LoggingConfiguration expected *logsapi.LoggingConfiguration }{ - "general case ": { + "general case": { in: logs.NewOptions(), expected: logs.NewOptions(), }, diff --git a/internal/apis/config/webhook/types.go b/internal/apis/config/webhook/types.go index 0402eb4da4a..53e6d7e8e54 100644 --- a/internal/apis/config/webhook/types.go +++ b/internal/apis/config/webhook/types.go @@ -18,6 +18,7 @@ package webhook import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/component-base/logs" ) // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object @@ -51,6 +52,9 @@ type WebhookConfiguration struct { // Defaults to 'localhost:6060'. PprofAddress string + // https://pkg.go.dev/k8s.io/component-base@v0.27.3/logs/api/v1#LoggingConfiguration + Logging logs.Options + // featureGates is a map of feature names to bools that enable or disable experimental // features. // Default: nil diff --git a/internal/apis/config/webhook/v1alpha1/zz_generated.conversion.go b/internal/apis/config/webhook/v1alpha1/zz_generated.conversion.go index a71a79ebe29..ca0744891f1 100644 --- a/internal/apis/config/webhook/v1alpha1/zz_generated.conversion.go +++ b/internal/apis/config/webhook/v1alpha1/zz_generated.conversion.go @@ -24,6 +24,7 @@ package v1alpha1 import ( unsafe "unsafe" + util "github.com/cert-manager/cert-manager/internal/apis/config/util" webhook "github.com/cert-manager/cert-manager/internal/apis/config/webhook" v1alpha1 "github.com/cert-manager/cert-manager/pkg/apis/config/webhook/v1alpha1" conversion "k8s.io/apimachinery/pkg/conversion" @@ -170,6 +171,9 @@ func autoConvert_v1alpha1_WebhookConfiguration_To_webhook_WebhookConfiguration(i out.APIServerHost = in.APIServerHost out.EnablePprof = in.EnablePprof out.PprofAddress = in.PprofAddress + if err := util.Convert_Pointer_v1_LoggingConfiguration_To_v1_LoggingConfiguration(&in.Logging, &out.Logging, s); err != nil { + return err + } out.FeatureGates = *(*map[string]bool)(unsafe.Pointer(&in.FeatureGates)) return nil } @@ -189,6 +193,9 @@ func autoConvert_webhook_WebhookConfiguration_To_v1alpha1_WebhookConfiguration(i out.APIServerHost = in.APIServerHost out.EnablePprof = in.EnablePprof out.PprofAddress = in.PprofAddress + if err := util.Convert_v1_LoggingConfiguration_To_Pointer_v1_LoggingConfiguration(&in.Logging, &out.Logging, s); err != nil { + return err + } out.FeatureGates = *(*map[string]bool)(unsafe.Pointer(&in.FeatureGates)) return nil } diff --git a/internal/apis/config/webhook/zz_generated.deepcopy.go b/internal/apis/config/webhook/zz_generated.deepcopy.go index aeeba9d7f11..655700ded8e 100644 --- a/internal/apis/config/webhook/zz_generated.deepcopy.go +++ b/internal/apis/config/webhook/zz_generated.deepcopy.go @@ -100,6 +100,7 @@ func (in *WebhookConfiguration) DeepCopyInto(out *WebhookConfiguration) { **out = **in } in.TLSConfig.DeepCopyInto(&out.TLSConfig) + in.Logging.DeepCopyInto(&out.Logging) if in.FeatureGates != nil { in, out := &in.FeatureGates, &out.FeatureGates *out = make(map[string]bool, len(*in)) diff --git a/pkg/apis/config/webhook/v1alpha1/types.go b/pkg/apis/config/webhook/v1alpha1/types.go index 13b01a84766..78a0d13e5f0 100644 --- a/pkg/apis/config/webhook/v1alpha1/types.go +++ b/pkg/apis/config/webhook/v1alpha1/types.go @@ -16,7 +16,10 @@ limitations under the License. package v1alpha1 -import metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" +import ( + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/component-base/logs" +) // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object @@ -49,6 +52,9 @@ type WebhookConfiguration struct { // Defaults to 'localhost:6060'. PprofAddress string `json:"pprofAddress,omitempty"` + // https://pkg.go.dev/k8s.io/component-base@v0.27.3/logs/api/v1#LoggingConfiguration + Logging *logs.Options `json:"logging,omitempty"` + // featureGates is a map of feature names to bools that enable or disable experimental // features. // Default: nil diff --git a/pkg/apis/config/webhook/v1alpha1/zz_generated.deepcopy.go b/pkg/apis/config/webhook/v1alpha1/zz_generated.deepcopy.go index d5674181ee9..9ac18afa961 100644 --- a/pkg/apis/config/webhook/v1alpha1/zz_generated.deepcopy.go +++ b/pkg/apis/config/webhook/v1alpha1/zz_generated.deepcopy.go @@ -23,6 +23,7 @@ package v1alpha1 import ( runtime "k8s.io/apimachinery/pkg/runtime" + v1 "k8s.io/component-base/logs/api/v1" ) // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. @@ -100,6 +101,11 @@ func (in *WebhookConfiguration) DeepCopyInto(out *WebhookConfiguration) { **out = **in } in.TLSConfig.DeepCopyInto(&out.TLSConfig) + if in.Logging != nil { + in, out := &in.Logging, &out.Logging + *out = new(v1.LoggingConfiguration) + (*in).DeepCopyInto(*out) + } if in.FeatureGates != nil { in, out := &in.FeatureGates, &out.FeatureGates *out = make(map[string]bool, len(*in)) diff --git a/pkg/webhook/options/options.go b/pkg/webhook/options/options.go index 88de8101f2d..c2941023afc 100644 --- a/pkg/webhook/options/options.go +++ b/pkg/webhook/options/options.go @@ -21,7 +21,6 @@ import ( "github.com/spf13/pflag" cliflag "k8s.io/component-base/cli/flag" - "k8s.io/component-base/logs" config "github.com/cert-manager/cert-manager/internal/apis/config/webhook" configscheme "github.com/cert-manager/cert-manager/internal/apis/config/webhook/scheme" @@ -32,21 +31,16 @@ import ( // WebhookFlags defines options that can only be configured via flags. type WebhookFlags struct { - Logging *logs.Options - // Path to a file containing a WebhookConfiguration resource Config string } func NewWebhookFlags() *WebhookFlags { - return &WebhookFlags{ - Logging: logs.NewOptions(), - } + return &WebhookFlags{} } func (f *WebhookFlags) AddFlags(fs *pflag.FlagSet) { fs.StringVar(&f.Config, "config", "", "Path to a file containing a WebhookConfiguration object used to configure the webhook") - logf.AddFlags(f.Logging, fs) } func NewWebhookConfiguration() (*config.WebhookConfiguration, error) { @@ -93,4 +87,6 @@ func AddConfigFlags(fs *pflag.FlagSet, c *config.WebhookConfiguration) { "Possible values: "+strings.Join(tlsPossibleVersions, ", ")) fs.Var(cliflag.NewMapStringBool(&c.FeatureGates), "feature-gates", "A set of key=value pairs that describe feature gates for alpha/experimental features. "+ "Options are:\n"+strings.Join(utilfeature.DefaultFeatureGate.KnownFeatures(), "\n")) + + logf.AddFlags(&c.Logging, fs) }