diff --git a/pkg/backup/pod_action.go b/pkg/backup/pod_action.go index be43c24ed..0fd479a71 100644 --- a/pkg/backup/pod_action.go +++ b/pkg/backup/pod_action.go @@ -56,12 +56,20 @@ func (a *PodAction) Execute(item runtime.Unstructured, backup *v1.Backup) (runti return nil, nil, errors.WithStack(err) } - if len(pod.Spec.Volumes) == 0 { - a.log.Info("pod has no volumes") - return item, nil, nil + var additionalItems []velero.ResourceIdentifier + if pod.Spec.PriorityClassName > "" { + a.log.Infof("Adding priorityclass %s to additionalItems", pod.Spec.PriorityClassName) + additionalItems = append(additionalItems, velero.ResourceIdentifier{ + GroupResource: kuberesource.PriorityClasses, + Name: pod.Spec.PriorityClassName, + }) + } + + if len(pod.Spec.Volumes) == 0 { + a.log.Info("pod has no volumes") + return item, additionalItems, nil } - var additionalItems []velero.ResourceIdentifier for _, volume := range pod.Spec.Volumes { if volume.PersistentVolumeClaim != nil && volume.PersistentVolumeClaim.ClaimName != "" { a.log.Infof("Adding pvc %s to additionalItems", volume.PersistentVolumeClaim.ClaimName) diff --git a/pkg/kuberesource/kuberesource.go b/pkg/kuberesource/kuberesource.go index a515a70ff..c6dd36a05 100644 --- a/pkg/kuberesource/kuberesource.go +++ b/pkg/kuberesource/kuberesource.go @@ -34,4 +34,5 @@ var ( VolumeSnapshotClasses = schema.GroupResource{Group: "snapshot.storage.k8s.io", Resource: "volumesnapshotclasses"} VolumeSnapshots = schema.GroupResource{Group: "snapshot.storage.k8s.io", Resource: "volumesnapshots"} VolumeSnapshotContents = schema.GroupResource{Group: "snapshot.storage.k8s.io", Resource: "volumesnapshotcontents"} + PriorityClasses = schema.GroupResource{Group: "scheduling.k8s.io", Resource: "priorityclasses"} ) diff --git a/pkg/restore/pod_action.go b/pkg/restore/pod_action.go index 2086954ae..4db9da722 100644 --- a/pkg/restore/pod_action.go +++ b/pkg/restore/pod_action.go @@ -25,6 +25,7 @@ import ( "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" "k8s.io/apimachinery/pkg/runtime" + "github.com/vmware-tanzu/velero/pkg/kuberesource" "github.com/vmware-tanzu/velero/pkg/plugin/velero" ) @@ -85,6 +86,11 @@ func (a *PodAction) Execute(input *velero.RestoreItemActionExecuteInput) (*veler if err != nil { return nil, errors.WithStack(err) } - - return velero.NewRestoreItemActionExecuteOutput(&unstructured.Unstructured{Object: res}), nil + restoreExecuteOutput := velero.NewRestoreItemActionExecuteOutput(&unstructured.Unstructured{Object: res}) + if pod.Spec.PriorityClassName > "" { + a.logger.Infof("Adding priorityclass %s to AdditionalItems", pod.Spec.PriorityClassName) + restoreExecuteOutput.AdditionalItems = []velero.ResourceIdentifier{ + {GroupResource: kuberesource.PriorityClasses, Name: pod.Spec.PriorityClassName}} + } + return restoreExecuteOutput, nil }