diff --git a/cmd/cainjector/app/cainjector.go b/cmd/cainjector/app/cainjector.go index ac96bc4ea..681fe7283 100644 --- a/cmd/cainjector/app/cainjector.go +++ b/cmd/cainjector/app/cainjector.go @@ -27,6 +27,7 @@ import ( "github.com/cert-manager/cert-manager/cainjector-binary/app/options" config "github.com/cert-manager/cert-manager/internal/apis/config/cainjector" + "github.com/cert-manager/cert-manager/internal/apis/config/cainjector/validation" cmdutil "github.com/cert-manager/cert-manager/internal/cmd/util" cainjectorconfigfile "github.com/cert-manager/cert-manager/pkg/cainjector/configfile" @@ -88,6 +89,10 @@ servers and webhook servers.`, return err } + if err := validation.ValidateCAInjectorConfiguration(cainjectorConfig); err != nil { + return fmt.Errorf("error validating flags: %w", err) + } + if err := logf.ValidateAndApplyAsField(&cainjectorConfig.Logging, field.NewPath("logging")); err != nil { return fmt.Errorf("failed to validate cainjector logging flags: %w", err) } diff --git a/cmd/controller/app/start.go b/cmd/controller/app/start.go index 05dcbcf81..aae4ca6f5 100644 --- a/cmd/controller/app/start.go +++ b/cmd/controller/app/start.go @@ -27,6 +27,7 @@ import ( "github.com/cert-manager/cert-manager/controller-binary/app/options" config "github.com/cert-manager/cert-manager/internal/apis/config/controller" + "github.com/cert-manager/cert-manager/internal/apis/config/controller/validation" cmdutil "github.com/cert-manager/cert-manager/internal/cmd/util" _ "github.com/cert-manager/cert-manager/pkg/controller/acmechallenges" @@ -99,6 +100,10 @@ to renew certificates at an appropriate time before expiry.`, return err } + if err := validation.ValidateControllerConfiguration(controllerConfig); err != nil { + return fmt.Errorf("error validating flags: %w", err) + } + if err := logf.ValidateAndApplyAsField(&controllerConfig.Logging, field.NewPath("logging")); err != nil { return fmt.Errorf("failed to validate controller logging flags: %w", err) } diff --git a/cmd/webhook/app/webhook.go b/cmd/webhook/app/webhook.go index 0c5fd470c..12fa8ef1b 100644 --- a/cmd/webhook/app/webhook.go +++ b/cmd/webhook/app/webhook.go @@ -26,6 +26,7 @@ import ( "k8s.io/apimachinery/pkg/util/validation/field" config "github.com/cert-manager/cert-manager/internal/apis/config/webhook" + "github.com/cert-manager/cert-manager/internal/apis/config/webhook/validation" cmdutil "github.com/cert-manager/cert-manager/internal/cmd/util" cmwebhook "github.com/cert-manager/cert-manager/internal/webhook" logf "github.com/cert-manager/cert-manager/pkg/logs" @@ -94,6 +95,10 @@ functionality for cert-manager.`, return err } + if err := validation.ValidateWebhookConfiguration(webhookConfig); err != nil { + return fmt.Errorf("error validating flags: %w", err) + } + if err := logf.ValidateAndApplyAsField(&webhookConfig.Logging, field.NewPath("logging")); err != nil { return fmt.Errorf("failed to validate webhook logging flags: %w", err) }