-
Notifications
You must be signed in to change notification settings - Fork 64
Description
Currently Ignition does not have support for OpenNebula - an open source cloud environment.
OpenNebula uses a config drive (called CONTEXT). This drive is visible from the VM as a CD drive.
Usually there is only one file on the config drive: context.sh
This file contains environment variables (multi-line is supported) in the format KEY='VALUE'.
Variables can be added freely and therefore using one variable as input for Ignition would surely be possible. Another way would be to add a config.ign file directly to the config drive.
nb. A (non-maintained) metadata server addon is available under https://github.com/OpenNebula/addon-metadata - so this could be a possible way to go too.
Both projects ignition and coreos-metadata need some changes to support OpenNebula. The implementations for CloudStack and OpenStack could provide a good starting point as both are also able to use a config drive instead of a metadata server.
- The Ignition project provider needs a way to mount the CONTEXT config drive. (check first if cdrom / file system drivers are available)
- Afterburn needs a way to read and process the variables inside of
context.sh. - The metadata provider needs to configure the static IP addresses (e.g. multiple interfaces) as OpenNebula does not use DHCP to provide IP addresses to the VMs. The IPs can be extracted out of
ETHx_*variables. - The metadata provider can configure the hostname if the variable
SET_HOSTNAMEis set. - The metadata provider can configure the SSH user keys if the variable
SSH_PUBLIC_KEYSis set. - The metadata provider can append something to the Ignition configuration if the variable
IGNITION_CONFIGis set.
I will no start looking into building my own FCOS / CL image to hopefully understand how I can implement this by myself.