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:
49
vendor/github.com/kubesphere/storageclass-accessor/webhook/pvc.go
generated
vendored
49
vendor/github.com/kubesphere/storageclass-accessor/webhook/pvc.go
generated
vendored
@@ -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{
|
||||
|
||||
Reference in New Issue
Block a user