Skip to content

Commit

Permalink
Fix bug in ControllerConfiguration's defaulting of logging config, wh…
Browse files Browse the repository at this point in the history
…ere config would not be correctly defaulted in case a partial logging configuration is provided.

Signed-off-by: Tim Ramlot <42113979+inteon@users.noreply.github.com>
  • Loading branch information
inteon committed Aug 17, 2023
1 parent 061c133 commit 240d3fc
Show file tree
Hide file tree
Showing 9 changed files with 56 additions and 185 deletions.
10 changes: 10 additions & 0 deletions cmd/controller/app/start.go
Original file line number Diff line number Diff line change
Expand Up @@ -114,6 +114,11 @@ to renew certificates at an appropriate time before expiry.`,
os.Exit(1)
}

if err := logf.ValidateAndApply(&controllerConfig.Logging); err != nil {
log.Error(err, "Failed to validate webhook flags")
os.Exit(1)
}

if err := options.ValidateControllerFlags(controllerFlags); err != nil {
log.Error(err, "Failed to validate controller flags")
os.Exit(1)
Expand All @@ -135,6 +140,11 @@ to renew certificates at an appropriate time before expiry.`,
log.Error(err, "Failed to set feature gates from config file")
os.Exit(1)
}

if err := logf.ValidateAndApply(&controllerConfig.Logging); err != nil {
log.Error(err, "Failed to validate webhook flags")
os.Exit(1)
}
}

// Start the controller
Expand Down
9 changes: 4 additions & 5 deletions internal/apis/config/controller/fuzzer/fuzzer.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,11 @@ limitations under the License.
package fuzzer

import (
"time"

fuzz "github.com/google/gofuzz"
runtimeserializer "k8s.io/apimachinery/pkg/runtime/serializer"
"k8s.io/component-base/logs"

"time"
logsapi "k8s.io/component-base/logs/api/v1"

"github.com/cert-manager/cert-manager/internal/apis/config/controller"
)
Expand Down Expand Up @@ -69,10 +69,9 @@ var Funcs = func(codecs runtimeserializer.CodecFactory) []interface{} {
s.LeaderElectionConfig.HealthzTimeout = defaultTime
s.EnablePprof = true
s.PprofAddress = "something:1234"
temp := logs.NewOptions()
s.Logging = *temp
s.CopiedAnnotationPrefixes = []string{"*", "-kubectl.kubernetes.io/", "-fluxcd.io/", "-argocd.argoproj.io/"}

logsapi.SetRecommendedLoggingConfiguration(&s.Logging)
},
}
}
34 changes: 0 additions & 34 deletions internal/apis/config/controller/v1alpha1/conversion.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,27 +17,9 @@ 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
Expand Down Expand Up @@ -67,19 +49,3 @@ func Convert_int_To_Pointer_int32(in *int, out **int32, s conversion.Scope) erro
*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
}
82 changes: 0 additions & 82 deletions internal/apis/config/controller/v1alpha1/conversion_test.go

This file was deleted.

8 changes: 2 additions & 6 deletions internal/apis/config/controller/v1alpha1/defaults.go
Original file line number Diff line number Diff line change
Expand Up @@ -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"

Expand Down Expand Up @@ -71,8 +71,6 @@ var (
defaultEnableProfiling = false
defaultProfilerAddr = "localhost:6060"

defaultLogging = logs.NewOptions()

defaultClusterIssuerAmbientCredentials = true
defaultIssuerAmbientCredentials = false

Expand Down Expand Up @@ -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) {
Expand Down

0 comments on commit 240d3fc

Please sign in to comment.