Skip to content

Commit

Permalink
fix npes in shoot and secret validators (#460)
Browse files Browse the repository at this point in the history
```other operator
Fix NPEs in shoot and secret validators of `gardener-extension-validator-vsphere`
```
  • Loading branch information
MartinWeindel committed Aug 22, 2023
1 parent 6b5fd20 commit f748d36
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 26 deletions.
4 changes: 2 additions & 2 deletions cmd/validator-vsphere/app/app.go
Original file line number Diff line number Diff line change
Expand Up @@ -94,8 +94,8 @@ func NewValidatorCommand(ctx context.Context) *cobra.Command {
hookServer := mgr.GetWebhookServer()

log.Info("Registering webhooks")
hookServer.Register("/webhooks/validate", &webhook.Admission{Handler: &validator.Shoot{Logger: log.WithName("shoot-validator")}})
hookServer.Register("/webhooks/validate/secrets", &webhook.Admission{Handler: &validator.Secret{Logger: log.WithName("secret-validator")}})
hookServer.Register("/webhooks/validate", &webhook.Admission{Handler: validator.NewShootHandler(mgr, log)})
hookServer.Register("/webhooks/validate/secrets", &webhook.Admission{Handler: validator.NewSecretHandler(mgr, log)})

if err := mgr.AddReadyzCheck("informer-sync", gardenerhealthz.NewCacheSyncHealthz(mgr.GetCache())); err != nil {
return fmt.Errorf("could not add readycheck for informers: %w", err)
Expand Down
24 changes: 12 additions & 12 deletions pkg/validator/secret_handler.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,13 +25,25 @@ import (
corev1 "k8s.io/api/core/v1"
"k8s.io/apimachinery/pkg/api/equality"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/runtime/serializer"
"sigs.k8s.io/controller-runtime/pkg/client"
"sigs.k8s.io/controller-runtime/pkg/manager"
"sigs.k8s.io/controller-runtime/pkg/webhook/admission"

vspherevalidation "github.com/gardener/gardener-extension-provider-vsphere/pkg/apis/vsphere/validation"
"github.com/gardener/gardener-extension-provider-vsphere/pkg/vsphere"
)

// NewSecretHandler returns a new instance of a shoot handler.
func NewSecretHandler(mgr manager.Manager, log logr.Logger) admission.Handler {
return &Secret{
client: mgr.GetClient(),
decoder: serializer.NewCodecFactory(mgr.GetScheme(), serializer.EnableStrict).UniversalDecoder(),
apiReader: mgr.GetAPIReader(),
Logger: log.WithName("secret-validator"),
}
}

// Shoot validates shoots
type Secret struct {
client client.Client
Expand Down Expand Up @@ -78,15 +90,3 @@ func (s *Secret) Handle(ctx context.Context, req admission.Request) admission.Re

return admission.Allowed("valid secret")
}

// InjectClient injects the client.
func (s *Secret) InjectClient(c client.Client) error {
s.client = c
return nil
}

// InjectAPIReader injects the given apiReader into the validator.
func (s *Secret) InjectAPIReader(apiReader client.Reader) error {
s.apiReader = apiReader
return nil
}
24 changes: 12 additions & 12 deletions pkg/validator/shoot_handler.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,12 +24,24 @@ import (
"github.com/go-logr/logr"
admissionv1 "k8s.io/api/admission/v1"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/runtime/serializer"
"sigs.k8s.io/controller-runtime/pkg/client"
"sigs.k8s.io/controller-runtime/pkg/manager"
"sigs.k8s.io/controller-runtime/pkg/webhook/admission"

"github.com/gardener/gardener-extension-provider-vsphere/pkg/vsphere"
)

// NewShootHandler returns a new instance of a shoot handler.
func NewShootHandler(mgr manager.Manager, log logr.Logger) admission.Handler {
return &Shoot{
client: mgr.GetClient(),
decoder: serializer.NewCodecFactory(mgr.GetScheme(), serializer.EnableStrict).UniversalDecoder(),
apiReader: mgr.GetAPIReader(),
Logger: log.WithName("shoot-validator"),
}
}

// Shoot validates shoots
type Shoot struct {
client client.Client
Expand Down Expand Up @@ -78,15 +90,3 @@ func (v *Shoot) Handle(ctx context.Context, req admission.Request) admission.Res

return admission.Allowed("validations succeeded")
}

// InjectClient injects the client.
func (v *Shoot) InjectClient(c client.Client) error {
v.client = c
return nil
}

// InjectAPIReader injects the given apiReader into the validator.
func (v *Shoot) InjectAPIReader(apiReader client.Reader) error {
v.apiReader = apiReader
return nil
}

0 comments on commit f748d36

Please sign in to comment.