add status subresources for volumeSnapshot & solute conflict
This commit is contained in:
@@ -38,13 +38,24 @@ func CreateCRD(clientset apiextensionsclient.Interface) error {
|
|||||||
Plural: crdv1.VolumeSnapshotClassResourcePlural,
|
Plural: crdv1.VolumeSnapshotClassResourcePlural,
|
||||||
Kind: reflect.TypeOf(crdv1.VolumeSnapshotClass{}).Name(),
|
Kind: reflect.TypeOf(crdv1.VolumeSnapshotClass{}).Name(),
|
||||||
},
|
},
|
||||||
|
Subresources: &apiextensionsv1beta1.CustomResourceSubresources{
|
||||||
|
Status: &apiextensionsv1beta1.CustomResourceSubresourceStatus{},
|
||||||
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
res, err := clientset.ApiextensionsV1beta1().CustomResourceDefinitions().Create(crd)
|
|
||||||
|
|
||||||
if err != nil && !apierrors.IsAlreadyExists(err) {
|
_, err := clientset.ApiextensionsV1beta1().CustomResourceDefinitions().Get(crd.Name, metav1.GetOptions{})
|
||||||
klog.Fatalf("failed to create VolumeSnapshotResource: %#v, err: %#v",
|
if err == nil {
|
||||||
res, err)
|
if res, err := clientset.ApiextensionsV1beta1().CustomResourceDefinitions().Update(crd); err != nil {
|
||||||
|
klog.Fatalf("failed to update VolumeSnapshotResource: %#v, err: %#v",
|
||||||
|
res, err)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
res, err := clientset.ApiextensionsV1beta1().CustomResourceDefinitions().Create(crd)
|
||||||
|
if err != nil && !apierrors.IsAlreadyExists(err) {
|
||||||
|
klog.Fatalf("failed to create VolumeSnapshotResource: %#v, err: %#v",
|
||||||
|
res, err)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
crd = &apiextensionsv1beta1.CustomResourceDefinition{
|
crd = &apiextensionsv1beta1.CustomResourceDefinition{
|
||||||
@@ -61,7 +72,7 @@ func CreateCRD(clientset apiextensionsclient.Interface) error {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
res, err = clientset.ApiextensionsV1beta1().CustomResourceDefinitions().Create(crd)
|
res, err := clientset.ApiextensionsV1beta1().CustomResourceDefinitions().Create(crd)
|
||||||
|
|
||||||
if err != nil && !apierrors.IsAlreadyExists(err) {
|
if err != nil && !apierrors.IsAlreadyExists(err) {
|
||||||
klog.Fatalf("failed to create VolumeSnapshotContentResource: %#v, err: %#v",
|
klog.Fatalf("failed to create VolumeSnapshotContentResource: %#v, err: %#v",
|
||||||
|
@@ -44,9 +44,12 @@ rules:
|
|||||||
- apiGroups: ["snapshot.storage.k8s.io"]
|
- apiGroups: ["snapshot.storage.k8s.io"]
|
||||||
resources: ["volumesnapshots"]
|
resources: ["volumesnapshots"]
|
||||||
verbs: ["get", "list", "watch", "update"]
|
verbs: ["get", "list", "watch", "update"]
|
||||||
|
- apiGroups: ["snapshot.storage.k8s.io"]
|
||||||
|
resources: ["volumesnapshots/status"]
|
||||||
|
verbs: ["update"]
|
||||||
- apiGroups: ["apiextensions.k8s.io"]
|
- apiGroups: ["apiextensions.k8s.io"]
|
||||||
resources: ["customresourcedefinitions"]
|
resources: ["customresourcedefinitions"]
|
||||||
verbs: ["create", "list", "watch", "delete"]
|
verbs: ["create", "list", "watch", "delete", "get", "update"]
|
||||||
|
|
||||||
---
|
---
|
||||||
kind: ClusterRoleBinding
|
kind: ClusterRoleBinding
|
||||||
|
@@ -415,9 +415,9 @@ func (ctrl *csiSnapshotController) updateSnapshotErrorStatusWithEvent(snapshot *
|
|||||||
Message: message,
|
Message: message,
|
||||||
}
|
}
|
||||||
snapshotClone.Status.Error = statusError
|
snapshotClone.Status.Error = statusError
|
||||||
|
|
||||||
snapshotClone.Status.ReadyToUse = false
|
snapshotClone.Status.ReadyToUse = false
|
||||||
newSnapshot, err := ctrl.clientset.VolumesnapshotV1alpha1().VolumeSnapshots(snapshotClone.Namespace).Update(snapshotClone)
|
newSnapshot, err := ctrl.clientset.VolumesnapshotV1alpha1().VolumeSnapshots(snapshotClone.Namespace).UpdateStatus(snapshotClone)
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
klog.V(4).Infof("updating VolumeSnapshot[%s] error status failed %v", snapshotKey(snapshot), err)
|
klog.V(4).Infof("updating VolumeSnapshot[%s] error status failed %v", snapshotKey(snapshot), err)
|
||||||
return err
|
return err
|
||||||
@@ -831,7 +831,7 @@ func (ctrl *csiSnapshotController) updateSnapshotStatus(snapshot *crdv1.VolumeSn
|
|||||||
status.RestoreSize = resource.NewQuantity(size, resource.BinarySI)
|
status.RestoreSize = resource.NewQuantity(size, resource.BinarySI)
|
||||||
}
|
}
|
||||||
snapshotClone.Status = status
|
snapshotClone.Status = status
|
||||||
newSnapshotObj, err := ctrl.clientset.VolumesnapshotV1alpha1().VolumeSnapshots(snapshotClone.Namespace).Update(snapshotClone)
|
newSnapshotObj, err := ctrl.clientset.VolumesnapshotV1alpha1().VolumeSnapshots(snapshotClone.Namespace).UpdateStatus(snapshotClone)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, newControllerUpdateError(snapshotKey(snapshot), err.Error())
|
return nil, newControllerUpdateError(snapshotKey(snapshot), err.Error())
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user