OpenStack datasource detection fails during init on Hyper-V compute nodes
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Compute (nova) |
Confirmed
|
Undecided
|
Unassigned | ||
cloud-init |
Invalid
|
Undecided
|
Unassigned |
Bug Description
The OpenStack datasource detection fails on an Hyper-V compute (Nova) node (running on-premises, no cloud provider). It does not try to attempt to use the metdata endpoint and the instance fails to initialize properly unless another datasource is used (like ConfigDrive or EC2, the latter which gives a warning).
The issue is in cloudinit/
In Hyper-V the following info is returned from DMI:
grep "" /sys/class/dmi/id/*
/sys/class/
/sys/class/
/sys/class/
/sys/class/
/sys/class/
/sys/class/
/sys/class/
/sys/class/
/sys/class/
/sys/class/
/sys/class/
/sys/class/
/sys/class/
grep: /sys/class/
/sys/class/
/sys/class/
/sys/class/
/sys/class/
grep: /sys/class/
/sys/class/
/sys/class/
cat /proc/1/environ
HOME=/ init=/sbin/init NETWORK_
summary: |
- OpenStack init fails on Hyper-V compute nodes + OpenStack datasource detection fails during init on Hyper-V compute + nodes |
description: | updated |
description: | updated |
description: | updated |
tags: | added: dsid |
Changed in nova: | |
status: | New → Confirmed |
cloud-init detects OpenStack via DMI 'product_name' field. Upstream OpenStack sets this value to 'OpenStack Nova' or 'OpenStack Compute' and the HyperV compute driver should use these values.
From your output, the HyperV compute driver is setting your DMI 'product_name' field to:
/sys/class/ dmi/id/ product_ name:Virtual Machine
which is why cloud-init does not detect that it's running on OpenStack.