OpenStack Node Driver Fails with Zero-Disk Flavors (Volume-Backed Boot Required)
Environment
-
Rancher Provisioning v2
-
RKE2/K3s Cluster
-
OpenStack Cloud
-
Native OpenStack node driver (
docker-machine-driver-openstack)
Issue Summary
I am encountering a provisioning failure when creating Rancher-managed OpenStack clusters using compute flavors that have a root disk size of 0 GB.
These zero-disk flavors require instances to be launched as volume-backed instances, where a bootable volume is created from the selected image and attached during server creation.
However, the Rancher OpenStack node driver appears to submit a standard image-based instance creation request without providing the required block device mapping configuration. As a result, the OpenStack API rejects the request and machine creation fails.
Steps to Reproduce
-
Navigate to Cluster Management → Create → OpenStack.
-
Create a node pool using an OpenStack flavor with root disk = 0 GB.
-
Select a valid image, network, and other required settings.
-
Start provisioning an RKE2 or K3s cluster.
-
Observe the machine creation logs.
Expected Behavior
The OpenStack driver should detect that the selected flavor has no local root disk and automatically provision the instance using volume-backed boot semantics.
Ideally, the driver should:
-
Create a bootable volume from the selected image.
-
Attach the volume during server creation.
-
Submit the request using OpenStack block-device-mapping parameters.
-
Successfully provision the node.
Actual Behavior
Machine creation fails during the OpenStack server creation phase and Rancher reports a CreateError.
Relevant logs:
Creating machine...
(node-openstack-pool) Authenticating...
(node-openstack-pool) Found flavor id using its name
map[ID:<FLAVOR_ID> Name:<FLAVOR_NAME>]
(node-openstack-pool) Found floating IP pool id using its name
map[ID:<POOL_ID> Name:<POOL_NAME>]
(node-openstack-pool) Loading Key Pair <KEYPAIR_NAME>
(node-openstack-pool) Creating OpenStack instance...
map[FlavorId:<FLAVOR_ID> ImageId:<IMAGE_ID>]
(node-openstack-pool) Creating machine...
error creating machine: error in driver during machine creation: Internal Server Error
failureReason: CreateError
Analysis
Based on testing and OpenStack requirements for zero-disk flavors, the issue appears to be related to missing support for volume-backed instance creation in the OpenStack machine driver.
The current implementation seems to pass:
-
Flavor ID
-
Image ID
but does not provide:
-
block_device_mapping_v2
-
boot volume configuration
-
volume-backed boot parameters
Since OpenStack cannot boot a zero-disk flavor directly from an image, Nova rejects the request and returns an HTTP 500 error.
Questions
-
Is support for zero-disk / volume-backed OpenStack flavors currently available in Rancher Provisioning v2?
-
Has anyone successfully provisioned RKE2/K3s clusters using volume-backed instances on OpenStack?
-
Is this a known limitation of
docker-machine-driver-openstack, or would this be considered a bug/enhancement request?
Any guidance or confirmation from the Rancher/OpenStack maintainers would be appreciated.