update storageclass-accessor webhook (#5927)

Signed-off-by: stoneshi-yunify <stoneshi@kubesphere.io>
This commit is contained in:
yonghongshi
2023-10-07 10:45:53 +08:00
committed by GitHub
parent 925f3091f8
commit b0812d183d
14 changed files with 227 additions and 648 deletions

View File

@@ -1,3 +1,4 @@
// Package webhooks
// Copyright 2022 The KubeSphere Authors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
@@ -18,13 +19,23 @@ import (
accessor "github.com/kubesphere/storageclass-accessor/webhook"
v1 "k8s.io/api/admission/v1"
"sigs.k8s.io/controller-runtime/pkg/client"
"sigs.k8s.io/controller-runtime/pkg/webhook/admission"
)
type AccessorHandler struct {
C client.Client
decoder *admission.Decoder
admitter *accessor.Admitter
decoder *admission.Decoder
}
func NewAccessorHandler() (*AccessorHandler, error) {
admitter, err := accessor.NewAdmitter()
if err != nil {
return nil, err
}
handler := &AccessorHandler{
admitter: admitter,
}
return handler, nil
}
func (h *AccessorHandler) InjectDecoder(d *admission.Decoder) error {
@@ -36,7 +47,7 @@ func (h *AccessorHandler) Handle(ctx context.Context, req admission.Request) adm
review := v1.AdmissionReview{
Request: &req.AdmissionRequest,
}
resp := accessor.AdmitPVC(review)
resp := h.admitter.AdmitPVC(review)
return admission.Response{
AdmissionResponse: *resp,
}