Bug 1298232 - [RFE] Allow setting different Cloud-init/Sysprep setting for VMs in pools
[RFE] Allow setting different Cloud-init/Sysprep setting for VMs in pools
Status: NEW
Product: ovirt-engine
Classification: oVirt
Component: RFEs (Show other bugs)
x86_64 Linux
medium Severity low (vote)
: ovirt-4.3.0
: ---
Assigned To: nobody nobody
Nisim Simsolo
: FutureFeature
Depends On:
  Show dependency treegraph
Reported: 2016-01-13 09:54 EST by Barak Korren
Modified: 2018-07-06 12:26 EDT (History)
8 users (show)

See Also:
Fixed In Version:
Doc Type: Enhancement
Doc Text:
Story Points: ---
Clone Of:
Last Closed:
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
Verified Versions:
Category: ---
oVirt Team: Virt
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---
mtessun: ovirt‑4.3?
mtessun: planning_ack+
rule-engine: devel_ack?
rule-engine: testing_ack?

Attachments (Terms of Use)

  None (edit)
Description Barak Korren 2016-01-13 09:54:12 EST
Description of problem:
At this time every VM in a VM pool gets the exact same settings set for the pool.
For example, if a hostname is set, it it set the same way for all VMs created in the pool.

Version-Release number of selected component (if applicable):
oVirt Engine Version:

Expected results:
Allow to set some differences between settings given to VMs in a VM pool for example, allow embedding '??' in the hostname set with clount-init so it will be replaced with the VM's pool number when it is created.
Comment 1 Moran Goldboim 2016-12-14 07:18:31 EST
didn't get to 4.1
We will look into it in the future.
Comment 2 paul 2017-06-20 05:54:02 EDT
I did encounter same issue, any updates on this?

I would like to automatically set the hostname of a VM to be the same as the ovirt machine name seen in the portal.
This can be done by creating a template and activating cloud-init in the initial run tab. 
A new VM named “test” based in this template is created and the hostname is “test”, works perfect!

But when I create a pool (i.e. “testpool”) based on this template I get machines with names “testpool-1”, “testpool-2”, etc. but the machine name is not present in the metadata and cannot be set as hostname. This is probably due to the fact that the machine names are auto generated by the oVirt Pool.

Is this expected/desired behavior for cloud-init from pools? 
If so, what would be the best way to retrieve the machine name (as seen in the portal) and manually set it to be hostname via cloud-init (i.e. runcmd – hostnamectl set-hostname $(hostname))
Comment 3 paul 2017-06-20 09:33:45 EDT
Created a workaround for making pool hostnames unique based on the last octet of ip-address from de DHCP after setting it to static. Not sure if it is safe/durable but seems to work enough for me and has at least some logic in the hostname.

- ip=$(ip route get | awk '{print $NF;exit}')
- nmcli con mod eth0 ipv4.addresses $ip"/24" ipv4.dns x.x.x.x ipv4.gateway x.x.x.x ipv4.method manual
- hostnamectl set-hostname testpool-"${ip##*.}".example.com
Comment 4 Rik Theys 2017-08-11 04:11:29 EDT

I'm running into the same problem.

We would like to use cloud-init to set the hostname of the VM's which are created from a pool.

There should be a way to specify variables (or ??) in the cloud-init hostname field so we can reference the VM name (or use the ?? as in the pool definition).



Note You need to log in before you can comment on or make changes to this bug.