diff --git a/changelogs/unreleased/2350-skriss b/changelogs/unreleased/2350-skriss new file mode 100644 index 000000000..236696a97 --- /dev/null +++ b/changelogs/unreleased/2350-skriss @@ -0,0 +1 @@ +Allow `plugins/` as a valid top-level directory within backup storage locations. This directory is a place for plugin authors to store arbitrary data as needed. It is recommended to create an additional subdirectory under `plugins/` specifically for your plugin, e.g. `plugins/my-plugin-data/`. diff --git a/pkg/persistence/object_store_layout.go b/pkg/persistence/object_store_layout.go index afea93a70..ebf75af19 100644 --- a/pkg/persistence/object_store_layout.go +++ b/pkg/persistence/object_store_layout.go @@ -39,6 +39,7 @@ func NewObjectStoreLayout(prefix string) *ObjectStoreLayout { "restores": path.Join(prefix, "restores") + "/", "restic": path.Join(prefix, "restic") + "/", "metadata": path.Join(prefix, "metadata") + "/", + "plugins": path.Join(prefix, "plugins") + "/", } return &ObjectStoreLayout{ diff --git a/pkg/persistence/object_store_test.go b/pkg/persistence/object_store_test.go index fe573b2a0..61d628c09 100644 --- a/pkg/persistence/object_store_test.go +++ b/pkg/persistence/object_store_test.go @@ -138,6 +138,13 @@ func TestIsValid(t *testing.T) { }, expectErr: false, }, + { + name: "backup store with plugins directory is valid", + storageData: map[string][]byte{ + "plugins/vsphere/foo": {}, + }, + expectErr: false, + }, } for _, tc := range tests {