add restore item action to update PVC selected-node annotation (#2377)

* New RestoreItemAction for PVC with annotation `volume.kubernetes.io/selected-node`

Signed-off-by: mayank <mayank.patel@mayadata.io>
This commit is contained in:
Mayank
2020-04-03 20:31:34 +05:30
committed by GitHub
parent 061b4463ce
commit 016868ecd3
6 changed files with 419 additions and 2 deletions

View File

@@ -50,6 +50,7 @@ func NewCommand(f client.Factory) *cobra.Command {
RegisterRestoreItemAction("velero.io/role-bindings", newRoleBindingItemAction).
RegisterRestoreItemAction("velero.io/cluster-role-bindings", newClusterRoleBindingItemAction).
RegisterRestoreItemAction("velero.io/crd-preserve-fields", newCRDV1PreserveUnknownFieldsItemAction).
RegisterRestoreItemAction("velero.io/change-pvc-node-selector", newChangePVCNodeSelectorItemAction(f)).
Serve()
},
}
@@ -162,3 +163,18 @@ func newRoleBindingItemAction(logger logrus.FieldLogger) (interface{}, error) {
func newClusterRoleBindingItemAction(logger logrus.FieldLogger) (interface{}, error) {
return restore.NewClusterRoleBindingAction(logger), nil
}
func newChangePVCNodeSelectorItemAction(f client.Factory) veleroplugin.HandlerInitializer {
return func(logger logrus.FieldLogger) (interface{}, error) {
client, err := f.KubeClient()
if err != nil {
return nil, err
}
return restore.NewChangePVCNodeSelectorAction(
logger,
client.CoreV1().ConfigMaps(f.Namespace()),
client.CoreV1().Nodes(),
), nil
}
}