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/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/conversion_test.go b/internal/apis/config/controller/v1alpha1/conversion_test.go deleted file mode 100644 index 2af97888a1f..00000000000 --- a/internal/apis/config/controller/v1alpha1/conversion_test.go +++ /dev/null @@ -1,82 +0,0 @@ -/* -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 v1alpha1 - -import ( - "reflect" - "testing" - - logsapi "k8s.io/component-base/logs/api/v1" - - "k8s.io/component-base/logs" -) - -func TestConvert_Pointer_v1_LoggingConfiguration_To_v1_LoggingConfiguration(t *testing.T) { - - testInput := logs.NewOptions() - generalInput := &testInput - var nilTestInput *logsapi.LoggingConfiguration = nil - var nilInput **logsapi.LoggingConfiguration = &nilTestInput - - testcases := map[string]struct { - in **logsapi.LoggingConfiguration - expected logsapi.LoggingConfiguration - }{ - "general case ": { - in: generalInput, - expected: *logs.NewOptions(), - }, - "nil case": { - in: nilInput, - expected: *logs.NewOptions(), - }, - } - for testName, testcase := range testcases { - - out := logsapi.LoggingConfiguration{} - Convert_Pointer_v1_LoggingConfiguration_To_v1_LoggingConfiguration(testcase.in, &out, nil) - if !reflect.DeepEqual(testcase.expected, out) { - t.Errorf("\"%s\": expected \n\t%#v, got \n\t%#v\n", testName, testcase.expected, out) - } - if *testcase.in != nil && *testcase.in == &out { - t.Errorf("\"%s\": expected input and output to have different pointers, but they are the same.\n", testName) - } - } -} - -func Test_Convert_v1_LoggingConfiguration_To_Pointer_v1_LoggingConfiguration(t *testing.T) { - testcases := map[string]struct { - in *logsapi.LoggingConfiguration - expected *logsapi.LoggingConfiguration - }{ - "general case ": { - in: logs.NewOptions(), - expected: logs.NewOptions(), - }, - } - - for testName, testcase := range testcases { - temp := &logsapi.LoggingConfiguration{} - out := &temp - Convert_v1_LoggingConfiguration_To_Pointer_v1_LoggingConfiguration(testcase.in, out, nil) - if !reflect.DeepEqual(testcase.expected, *out) { - t.Errorf("\"%s\": expected \n\t%#v, got \n\t%#v\n", testName, testcase.expected, out) - } - - } - -} diff --git a/internal/apis/config/controller/v1alpha1/defaults.go b/internal/apis/config/controller/v1alpha1/defaults.go index d42803147a6..7384cef6385 100644 --- a/internal/apis/config/controller/v1alpha1/defaults.go +++ b/internal/apis/config/controller/v1alpha1/defaults.go @@ -20,7 +20,7 @@ import ( "fmt" "k8s.io/apimachinery/pkg/runtime" - "k8s.io/component-base/logs" + logsapi "k8s.io/component-base/logs/api/v1" "time" @@ -71,8 +71,6 @@ var ( defaultEnableProfiling = false defaultProfilerAddr = "localhost:6060" - defaultLogging = logs.NewOptions() - defaultClusterIssuerAmbientCredentials = true defaultIssuerAmbientCredentials = false @@ -243,9 +241,7 @@ func SetDefaults_ControllerConfiguration(obj *v1alpha1.ControllerConfiguration) obj.PprofAddress = defaultProfilerAddr } - if obj.Logging == nil { - obj.Logging = defaultLogging - } + logsapi.SetRecommendedLoggingConfiguration(&obj.Logging) } func SetDefaults_LeaderElectionConfig(obj *v1alpha1.LeaderElectionConfig) { diff --git a/internal/apis/config/controller/v1alpha1/zz_generated.conversion.go b/internal/apis/config/controller/v1alpha1/zz_generated.conversion.go index 520ccd4ff53..d0cae62330c 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,31 +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 { - return err - } + out.Logging = in.Logging out.FeatureGates = *(*map[string]bool)(unsafe.Pointer(&in.FeatureGates)) if err := Convert_v1alpha1_IngressShimConfig_To_controller_IngressShimConfig(&in.IngressShimConfig, &out.IngressShimConfig, s); err != nil { return err @@ -240,13 +208,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,31 +228,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 { - return err - } + out.Logging = in.Logging out.FeatureGates = *(*map[string]bool)(unsafe.Pointer(&in.FeatureGates)) if err := Convert_controller_IngressShimConfig_To_v1alpha1_IngressShimConfig(&in.IngressShimConfig, &out.IngressShimConfig, s); err != nil { return err @@ -293,6 +264,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 +296,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 +313,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..aa03ea17a4e --- /dev/null +++ b/internal/apis/config/util/conversion.go @@ -0,0 +1,51 @@ +/* +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" +) + +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 +} 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/defaults.go b/internal/apis/config/webhook/v1alpha1/defaults.go index cc5373d031e..d698a6f9670 100644 --- a/internal/apis/config/webhook/v1alpha1/defaults.go +++ b/internal/apis/config/webhook/v1alpha1/defaults.go @@ -18,6 +18,7 @@ package v1alpha1 import ( "k8s.io/apimachinery/pkg/runtime" + logsapi "k8s.io/component-base/logs/api/v1" "k8s.io/utils/pointer" "github.com/cert-manager/cert-manager/pkg/apis/config/webhook/v1alpha1" @@ -37,4 +38,6 @@ func SetDefaults_WebhookConfiguration(obj *v1alpha1.WebhookConfiguration) { if obj.PprofAddress == "" { obj.PprofAddress = "localhost:6060" } + + logsapi.SetRecommendedLoggingConfiguration(&obj.Logging) } diff --git a/internal/apis/config/webhook/v1alpha1/zz_generated.conversion.go b/internal/apis/config/webhook/v1alpha1/zz_generated.conversion.go index a71a79ebe29..c1637e1fe8f 100644 --- a/internal/apis/config/webhook/v1alpha1/zz_generated.conversion.go +++ b/internal/apis/config/webhook/v1alpha1/zz_generated.conversion.go @@ -170,6 +170,7 @@ func autoConvert_v1alpha1_WebhookConfiguration_To_webhook_WebhookConfiguration(i out.APIServerHost = in.APIServerHost out.EnablePprof = in.EnablePprof out.PprofAddress = in.PprofAddress + out.Logging = in.Logging out.FeatureGates = *(*map[string]bool)(unsafe.Pointer(&in.FeatureGates)) return nil } @@ -189,6 +190,7 @@ func autoConvert_webhook_WebhookConfiguration_To_v1alpha1_WebhookConfiguration(i out.APIServerHost = in.APIServerHost out.EnablePprof = in.EnablePprof out.PprofAddress = in.PprofAddress + out.Logging = in.Logging 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/controller/v1alpha1/types.go b/pkg/apis/config/controller/v1alpha1/types.go index c115904941c..79674a37d4f 100644 --- a/pkg/apis/config/controller/v1alpha1/types.go +++ b/pkg/apis/config/controller/v1alpha1/types.go @@ -19,9 +19,8 @@ package v1alpha1 import ( "time" - "k8s.io/component-base/logs" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + logsapi "k8s.io/component-base/logs/api/v1" ) // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object @@ -113,7 +112,7 @@ type ControllerConfiguration struct { // logging configures the logging behaviour of the controller. // https://pkg.go.dev/k8s.io/component-base@v0.27.3/logs/api/v1#LoggingConfiguration - Logging *logs.Options `json:"logging,omitempty"` + Logging logsapi.LoggingConfiguration `json:"logging"` // featureGates is a map of feature names to bools that enable or disable experimental // features. diff --git a/pkg/apis/config/controller/v1alpha1/zz_generated.deepcopy.go b/pkg/apis/config/controller/v1alpha1/zz_generated.deepcopy.go index 722a2bf35b3..d5e7b21ebf6 100644 --- a/pkg/apis/config/controller/v1alpha1/zz_generated.deepcopy.go +++ b/pkg/apis/config/controller/v1alpha1/zz_generated.deepcopy.go @@ -23,7 +23,6 @@ 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. @@ -133,11 +132,7 @@ func (in *ControllerConfiguration) DeepCopyInto(out *ControllerConfiguration) { *out = new(bool) **out = **in } - if in.Logging != nil { - in, out := &in.Logging, &out.Logging - *out = new(v1.LoggingConfiguration) - (*in).DeepCopyInto(*out) - } + 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..6ef03ddf4a2 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" + logsapi "k8s.io/component-base/logs/api/v1" +) // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object @@ -49,6 +52,10 @@ type WebhookConfiguration struct { // Defaults to 'localhost:6060'. PprofAddress string `json:"pprofAddress,omitempty"` + // logging configures the logging behaviour of the webhook. + // https://pkg.go.dev/k8s.io/component-base@v0.27.3/logs/api/v1#LoggingConfiguration + Logging logsapi.LoggingConfiguration `json:"logging"` + // 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..0484144972b 100644 --- a/pkg/apis/config/webhook/v1alpha1/zz_generated.deepcopy.go +++ b/pkg/apis/config/webhook/v1alpha1/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/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) }