Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New Ignition provider for OpenNebula #166

Open
6 tasks
BernhardGruen opened this issue Mar 21, 2019 · 2 comments
Open
6 tasks

New Ignition provider for OpenNebula #166

BernhardGruen opened this issue Mar 21, 2019 · 2 comments

Comments

@BernhardGruen
Copy link

BernhardGruen commented Mar 21, 2019

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.

@lucab
Copy link
Contributor

lucab commented Aug 12, 2020

There seems to be some interest in adding support for the OpenNebula platform in Afterburn: coreos/afterburn#478.

However the authoritative registry for platform ID is part of the Fedora CoreOS effort. Thus the first step is to pick up a stable ID for this provider, and then wire all the pieces together.

@lucab
Copy link
Contributor

lucab commented Aug 13, 2020

This was discussed in the IRC meeting yesterday. The broad consensus was to start by reserving the platform ID opennebula for this to unblock Afterburn, without having to commit to further development (e.g. Ignition) and pipeline (e.g. producing images) work right at this time (external PRs on this are of course always welcome, though).

AGREED: proceed with reserving a platform ID for OpenNebula, without committing to full support nor producing images at this time
AGREED: propose `opennebula` as the actual platform ID for OpenNebula

@lucab lucab removed the meeting topics for meetings label Aug 13, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants