Dependency: update storageClass-accessor (#5271)

Dependency: update storageClass-accessor to v0.2.2, deleting storage source no longer requires validation now.

Signed-off-by: f10atin9 <f10atin9@kubesphere.io>

Signed-off-by: f10atin9 <f10atin9@kubesphere.io>
This commit is contained in:
f10atin9
2022-10-08 14:14:57 +08:00
committed by GitHub
parent 1b689341ab
commit 94ddcd9408
4 changed files with 19 additions and 42 deletions

View File

@@ -1,14 +1,10 @@
package webhook
import (
"context"
admissionv1 "k8s.io/api/admission/v1"
corev1 "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/types"
"k8s.io/klog/v2"
"sigs.k8s.io/controller-runtime/pkg/client"
"sigs.k8s.io/controller-runtime/pkg/client/config"
)
type ReqInfo struct {
@@ -27,7 +23,7 @@ var reviewResponse = &admissionv1.AdmissionResponse{
func AdmitPVC(ar admissionv1.AdmissionReview) *admissionv1.AdmissionResponse {
klog.Info("admitting pvc")
if !(ar.Request.Operation == admissionv1.Delete || ar.Request.Operation == admissionv1.Create) {
if ar.Request.Operation != admissionv1.Create {
return reviewResponse
}
@@ -35,37 +31,18 @@ func AdmitPVC(ar admissionv1.AdmissionReview) *admissionv1.AdmissionResponse {
var newPVC *corev1.PersistentVolumeClaim
switch ar.Request.Operation {
case admissionv1.Create:
deserializer := codecs.UniversalDeserializer()
pvc := &corev1.PersistentVolumeClaim{}
obj, _, err := deserializer.Decode(raw, nil, pvc)
if err != nil {
klog.Error(err)
return toV1AdmissionResponse(err)
}
var ok bool
newPVC, ok = obj.(*corev1.PersistentVolumeClaim)
if !ok {
klog.Error("obj can't exchange to pvc object")
return toV1AdmissionResponse(err)
}
case admissionv1.Delete:
pvcInfo := types.NamespacedName{
Namespace: ar.Request.Namespace,
Name: ar.Request.Name,
}
cli, err := client.New(config.GetConfigOrDie(), client.Options{})
if err != nil {
return toV1AdmissionResponse(err)
}
targetPVC := &corev1.PersistentVolumeClaim{}
err = cli.Get(context.Background(), pvcInfo, targetPVC)
if err != nil {
klog.Error("get target Delete PVC from client failed, err:", err)
return toV1AdmissionResponse(err)
}
newPVC = targetPVC
deserializer := codecs.UniversalDeserializer()
pvc := &corev1.PersistentVolumeClaim{}
obj, _, err := deserializer.Decode(raw, nil, pvc)
if err != nil {
klog.Error(err)
return toV1AdmissionResponse(err)
}
var ok bool
newPVC, ok = obj.(*corev1.PersistentVolumeClaim)
if !ok {
klog.Error("obj can't exchange to pvc object")
return toV1AdmissionResponse(err)
}
reqPVC := ReqInfo{