feat(cinder): add VAST data volume backend support#3837
feat(cinder): add VAST data volume backend support#3837Donny Arief Oktavian (donnyao) wants to merge 3 commits intomainfrom
Conversation
Add VolumeBackendVast to the storage filter plugin, enabling atmosphere_storage configuration for the VAST Data Cinder driver (cinder.volume.drivers.vastdata.driver.VASTVolumeDriver). Supports authentication via API token or username/password, with required subsystem and VIP pool name fields, and optional tenant name. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Signed-off-by: donnyao <ao.donny@gmail.com>
Document the VAST data volume backend type in storage.rst, covering API token and username/password authentication, required fields, and the optional tenant_name parameter. Also add VAST to the vale vocabulary as a proper noun. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Signed-off-by: donnyao <ao.donny@gmail.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Signed-off-by: donnyao <ao.donny@gmail.com>
There was a problem hiding this comment.
Pull request overview
Adds a new Cinder volume backend type (vast) to support the VAST Data driver introduced in OpenStack 2026.1, including schema validation, Helm values generation, docs, and release notes.
Changes:
- Introduces
VolumeBackendVast(token or username/password auth) and registers it in theVolumeBackenddiscriminated union. - Adds unit tests covering VAST backend rendering and credential validation.
- Documents the new backend and adds “VAST” to the Vale vocabulary, plus a release note entry.
Reviewed changes
Copilot reviewed 5 out of 5 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
plugins/filter/storage.py |
Adds the vast volume backend model and maps it to Cinder driver config keys. |
tests/unit/plugins/filter/test_storage.py |
Adds tests for token/userpass auth paths, tenant name, and missing-credential validation. |
doc/source/deploy/storage.rst |
Documents vast backend configuration fields and example YAML. |
releasenotes/notes/cinder-vast-data-backend-c4aa359f26d6911e.yaml |
Announces the new VAST Data backend support. |
.github/styles/config/vocabularies/Base/accept.txt |
Adds “VAST” to the Vale accepted vocabulary. |
| assert result["conf"]["backends"]["vast"]["vast_tenant_name"] == "my-tenant" | ||
|
|
||
| def test_vast_backend_missing_credentials_raises(self): | ||
| with pytest.raises(Exception): |
There was a problem hiding this comment.
This test uses pytest.raises(Exception), which can mask unrelated failures and makes the intent unclear. Since StorageConfig.model_validate(...) wraps model-level ValueErrors into a pydantic.ValidationError, assert ValidationError here (and ideally match the message) so you're specifically testing the missing-credentials validation.
| with pytest.raises(Exception): | |
| with pytest.raises( | |
| ValidationError, match=r"api_token|san_login|san_password" | |
| ): |
| VAST data (``vast``) | ||
| ==================== | ||
|
|
||
| VAST Data volume backend. Supports authentication via API token or username | ||
| and password. You must provide ``subsystem`` and ``vippool_name``. |
There was a problem hiding this comment.
The section title uses "VAST data" while the section body and release note use the product name "VAST Data". Please make the capitalization consistent throughout this section (title + description) so documentation reads consistently and avoids style-lint churn.
Summary
Adds support for the VAST Data volume backend in Cinder, introduced in OpenStack 2026.1.
Changes
plugins/filter/storage.pyVolumeBackendVastclass with:address,subsystem,vippool_nameapi_tokenorusername+password(validated at model level)tenant_namecinder.volume.drivers.vastdata.driver.VASTVolumeDriver_HostAttachedVolumeBackend(iSCSI enablement, trimmed dependency graph)VolumeBackenddiscriminated uniontests/unit/plugins/filter/test_storage.pydoc/source/deploy/storage.rstExample configuration