Request #2849

OpenNebula Configuration Format is unhandy

Added by Arnold Bechtoldt about 7 years ago. Updated about 7 years ago.

Status:NewStart date:04/27/2014
Priority:NormalDue date:
Assignee:-% Done:

0%

Category:Core & System
Target version:-
Pull request:

Description

First of all:
Thank you for releasing 4.6. It makes a great step forward in the right direction and introduces new opportunities.

But IMHO there's a thing which could be improved a lot:

The configuration format used in oned.conf and all the templates for the virtual resources (VMs, templates, images, etc.) seem to be very unhandy to me. I don't know whether it's a standardized format at all, maybe it is and I think it comes from the early ages of OpenNebula.
I like the feature to have the possibility of setting and reviewing raw template code in sunstone but it isn't really easy to parse it for computers.

The sunstone views and the sunstone server is configured via YAML files which is great because YAML syntax is easy to use/understand for machines and humans.

Example:

In my SaltStack (configuration management system) formula I can set my desired Sunstone config in YAML Syntax ( https://github.com/bechtoldt/opennebula-formula/blob/master/pillar.example.sls ) since SaltStack uses YAML (or JSON or ...) to read these information.
This provides me a lot of ways to manage the sunstone configuration file. I can tell Salt to dump the YAML code into the file. I can parse the YAML code with Jinja and write dynamic templates to set the sunstone configuration file. I don't have any static parameters in my formula so users can set whatever they want, regardless of the saltstack version and the opennebula/ sunstone version.
I don't need to update my formula after every Sunstone release.

Unfortunately this is not (or very difficult) possible with OpenNebula itself since the format used in the templates, oned.conf and others isn't that popular and supported (comparing to YAML/JSON/XML).

With SaltStack (or any other good CMS) I could do automatic setup of templates, images and more without using the API (since I have local system access and ops anyway). It would be also easier to configure opennebula controller/ frontend and other components.
Imagine that you would have support of YAML/JSON/XML format in the VM/image templates. (I think) All you need is an abstract parser interface and a defined set of implemented formats (yaml/json/xml/etc.).

It would be waay easier to generate templates for VMs/images/datastores/etc. for users and sysadmins. Since parsing of popular formats is possible with a lot of existing libraries, you could save some time and work on fixing issues like #30.

What are your thoughts on that?

History

#1 Updated by Carlos Martín about 7 years ago

  • Status changed from Pending to New
  • Target version set to Release 4.8

Hi,

Images, Templates, and any other template can be defined in XML:
http://docs.opennebula.org/4.4/integration/system_interfaces/api.html

I'm not sure if you can define oned.conf and sched.conf in xml, but that's a matter of changing one line if it's needed. The parsing mechanism is the same as the one for the resources.

Cheers

#2 Updated by Ruben S. Montero about 7 years ago

  • Tracker changed from Feature to Request
  • Target version deleted (Release 4.8)

Also available in: Atom PDF