Add upgrade note for cinder volumev3 removal - #2556
Conversation
|
Important Review skippedAuto incremental reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
📝 WalkthroughAdds an upgrade note for the removal of the Cinder WalkthroughThe upgrade documentation adds a subsection for the Cinder ChangesCinder endpoint documentation
Estimated code review effort: 1 (Trivial) | ~2 minutes Merge Risk: 🔵 Low · up to The upgrade note uses endpoint terminology for Keystone service types, which could mislead operators about how clients discover Cinder and obscure the compatibility impact of the 2026.1 change. This is a bounded documentation-correctness issue; the PR is mergeable with owner follow-up to reword it. 🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
Full details: Docstring CoverageExplanation No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0 files. (1 skipped: 1 unsupported.) Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Pro Plus
Run ID: ac803f1f-ccdc-4189-91a9-dec50e73fbb4
📒 Files selected for processing (1)
doc/source/operations/upgrading-openstack.rst
Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review.
📜 Review details
⏰ Context from checks skipped due to timeout. (3)
- GitHub Check: stackhpc/check
- GitHub Check: Ansible 2.20 lint with Python 3.12
- GitHub Check: Ansible 2.19 lint with Python 3.12
| Cinder volumev3 endpoint removal | ||
| -------------------------------- | ||
|
|
||
| The Cinder ``volumev3`` endpoint has been removed in the 2026.1 release. The | ||
| new endpoint is ``block-storage``. Older clients that rely on this endpoint, | ||
| such as older versions of Gophercloud or the OpenStack Terraform/OpenTofu | ||
| provider, will fail to reach the Cinder service. This can usually be resolved | ||
| by updating dependencies to their latest versions. |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
🔎 Supported by static analysis
🏁 Script executed:
#!/bin/bash
set -eu
printf '%s\n' '--- repository conventions ---'
find /tmp/coderabbit-repo-knowledge/stackhpc-stackhpc-kayobe-config-578eaa86 -maxdepth 2 -type f -name '*.md' -print
for f in /tmp/coderabbit-repo-knowledge/stackhpc-stackhpc-kayobe-config-578eaa86/*/*.md; do
printf '\n--- %s ---\n' "$f"
sed -n '1,220p' "$f"
done
printf '%s\n' '--- changed file ---'
git diff -- doc/source/operations/upgrading-openstack.rst
printf '%s\n' '--- target context ---'
cat -n doc/source/operations/upgrading-openstack.rst | sed -n '1,75p'Repository: stackhpc/stackhpc-kayobe-config
Length of output: 4299
🌐 Web query:
OpenStack 2026.1 Cinder volumev3 block-storage service type endpoint removal Keystone service catalog Terraform provider
💡 Result:
In OpenStack 2026.1, the legacy Cinder service type aliases 'volumev3' and 'cinderv3' have been removed from the Keystone service catalog in favor of the canonical 'block-storage' service type [1][2]. This change aligns with the OpenStack Service Types Authority, which designates 'block-storage' as the official, unversioned service type for Cinder [3]. Deployments that previously relied on 'volumev3' in their configuration files or service catalogs must update these references to 'block-storage' to ensure proper service discovery and functionality [1][4][5]. For users of the Terraform OpenStack provider, this shift primarily impacts any custom endpoint overrides or service type configurations that explicitly specified 'volumev3'. While the Terraform provider typically leverages OpenStack SDK's authentication and discovery mechanisms—which are increasingly migrating toward the 'block-storage' standard—it is recommended to review your provider configuration to ensure service discovery is not restricted to legacy types. If you are experiencing issues with resource provisioning, verify that the endpoints registered in your Keystone catalog use the 'block-storage' type, as components (including clients like Tempest and various OpenStack services) have updated their internal mappings to prioritize this canonical type [1][2][4]. Deployers still requiring the legacy 'volumev3' type for specific compatibility reasons may need to manually re-register the alias in their Keystone catalog, though this is considered deprecated behavior [6]. Going forward, all integrations and configuration files should reference 'block-storage' for Cinder operations [5].
Citations:
- 1: https://review.opendev.org/c/openinfra/python-tempestconf/+/991669
- 2: https://review.opendev.org/changes/openinfra%2Fpython-tempestconf~991669/revisions/8/patch?download=&raw=
- 3: https://specs.openstack.org/openstack/service-types-authority/
- 4: https://review.opendev.org/c/openstack/skyline-apiserver/+/982601
- 5: https://review.opendev.org/changes/openstack%2Fglance_store~989454/revisions/2/patch?download=&raw=
- 6: https://review.opendev.org/c/openstack/openstack-ansible-os_cinder/+/942581/3/releasenotes/notes/cinder_remove_versioned_service_types-75bad8363b5cbff7.yaml
Use service-type terminology instead of endpoint terminology.
volumev3 and block-storage are Keystone service types, not API endpoints. In 2026.1, the legacy Cinder service types are removed in favour of block-storage. Clients that still use volumev3 for service discovery can fail to reach Cinder. Reword this section accordingly.
Source: MCP tools
There was a problem hiding this comment.
Alternatively we could add the endpoint back as done in SMSLab.
There was a problem hiding this comment.
@jackhodgkiss, re-adding the volumev3 service type alias to the Keystone catalog is a valid mitigation. It lets old clients keep working without an update. This approach avoids the need for clients to change how they discover the Cinder service.
Choose one of these two approaches, and document the choice clearly:
- Keep this doc as a heads-up for operators. Tell them to update client dependencies to use the
block-storageservice type. - Add a step to re-register the
volumev3service type alias in the Keystone catalog. This step restores compatibility for older clients.
If you add the alias back, state this fact in the doc. Also state that the compatibility fix is deprecated, since the volumev3 and cinderv3 aliases are legacy service types in OpenStack 2026.1.
In both cases, replace the word "endpoint" with "service type" in the text. This word matches the actual OpenStack concept.
You are interacting with an AI system.
| If migration to the new endpoint is not feasible, the old endpoint can be | ||
| persisted by adding the following configuration to ``kolla/globals.yml``: | ||
|
|
||
| .. code-block:: yaml | ||
| :caption: ``kolla/globals.yml`` | ||
|
|
||
|
|
||
| cinder_ks_services: | ||
| - name: "cinder" | ||
| type: "block-storage" | ||
| description: "Openstack Block Storage" | ||
| endpoints: | ||
| - {'interface': 'internal', 'url': '{{ cinder_internal_endpoint }}'} | ||
| - {'interface': 'public', 'url': '{{ cinder_public_endpoint }}'} | ||
| - name: "cinderv3" | ||
| type: "volumev3" | ||
| description: "Openstack Block Storage (deprecated)" | ||
| endpoints: | ||
| - {'interface': 'internal', 'url': '{{ cinder_v3_internal_endpoint }}'} | ||
| - {'interface': 'public', 'url': '{{ cinder_v3_public_endpoint }}'} |
There was a problem hiding this comment.
We could also in our downstream fork stop the removal of cinder endpoint openstack/kolla-ansible@596e4ca
Doesn't seem that the community is ready for this removal.
No description provided.