A while ago I got a request from a customer to deploy CoreOS with vRA/vRO. They didn’t want to use the built-in vRA IPAM, but they wanted to set their own IP address with the use of advanced parameters. In this blog I’m going to explain how you can deploy CoreOS with setting advanced VM parameters.
Content blog article
1. Create your template
I know this is a simple process, however I just wanted to make sure that it’s clear to everyone that you don’t configure any settings on your OVA deployment. And certainly DO NOT power on the VM afterwards. The use of advanced parameters is only done through the initial boot process. This means if you power on your VM you can no longer use the advanced parameters.
Right-click anywhere you want to put your VM and then choose “Deploy OVF template”
Select the location of the OVA for CoreOS you’ve downloaded. In my case it was locally.
Give your VM a name and put it in a folder if you want.
Select the resource where you want to deploy it.
Just click Next.
Choose the datastore where you want to put the VM.
Select the network you want to attach to it. But this isn’t really important because we change it anyhow with vRA/vRO
Here in the customization you don’t need to put anything. We will pass these settings during deployment.
Check if everything is correct and then click Finish.
Once your OVA has been deployed, convert it to a template.
One important remark here. If you’re going to use advanced settings.
DO NOT power on the VM once it is created. This will destroy your ability to use the advanced settings.
They are only used during the first boot and not any preceding boots.
2. Setting advanced parameters
We’re going to set these advanced parameters with an Action in vRO. You create an action in vRO that looks like this.
Now you can call that action in a scriptable task.
The optionkey is the advanced parameter that’s being set on the VM and there are 3 different keys that are being set:
- guestinfo.afterburn.initrd.network-kargs (this sets the network configuration of your deployed VM and was generated by the customer)
- guestinfo.ignition.config.data (this sets the ignition configuration and was generated by the customer)
- guestinfo.ignition.config.data.encoding (this sets the encoding of the ignition configuration, in our case this was “base64”)
3. Closing off
This was a short blog post on how you can deploy CoreOS with the use of advanced parameters. This allows you to configure the network configuration of your deployment without the use of the built-in IPAM solution of vRA. Something I never did before, so I’ve learned something new with this project 🙂 . Any questions, remarks or tips are always welcome.