Skip to content

New Ignition provider for OpenNebula #166

@BernhardGruen

Description

@BernhardGruen

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_HOSTNAME is set.
  • The metadata provider can configure the SSH user keys if the variable SSH_PUBLIC_KEYS is set.
  • The metadata provider can append something to the Ignition configuration if the variable IGNITION_CONFIG is set.

I will no start looking into building my own FCOS / CL image to hopefully understand how I can implement this by myself.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions