OpenNebula static marketplace addon

Hi, I’ve developed new marketplace driver as alternative to official one.
I like an idea to store appliances configuration in git, so driver have pretty simple architecture:
All appliances stored as simple manifests, each one in single folder, and have three files:

  • app.conf - main appliance manifest
  • apptemplate.conf - variables applicable to images
  • vmtemplate.conf - virtual machine template (optional)

Appliances can be stored hierarchically. For generate metadata, just run ./generate script, it will prepare metadata file with all your appliances.

Example appliances:
https://github.com/kvaps/addon-appmarket-static/tree/master/appliances (automatically imported from marketplace.opennebula.systems)

Example metadata file:
https://raw.githubusercontent.com/kvaps/addon-appmarket-static/master/metadata

Output metadata file can be placed anywhere, eg. it can be place directly on Github, or same S3-server with images, it should be only accessible via HTTP.

OpenNebula will download this metadata and provide appliances list to user.

1 Like

Hi, I just wanted to tell that I’ve released new version of static marketplace with new cool features: format of appliances changed to yaml, and now it even have some GUI:

You can see full demo here.

Also I’ve made some investigation to automate image building process, and was sucess with that very well, read this topic if you interested in that.

Cheers!

1 Like

Hi, this looks great. Unfortunately I can not open your links to GitHub (I’m getting a 404 error). Is it still there?

Hi, thank you for your remark
Yes, new link is here

(It would be nice to move this project into OpenNebula namespace on the GitHub)

Thanks! I think that is a great idea. @tinova, what do you think?

Hi,

GUI looks good :wink:

However, I don’t see what it adds to having an HTTP marketplace offered through Sunstone? I’m probably missing something …

Hi, main idea is that you don’t need any special services on the server to make it working (eg. mongo, ruby, etc.)
So you can generate all the marketplace statically and upload to any http/s3 hosting, eg even github pages (like now), it will working fine.

You’re right, right now example site is uses the appliances metadata from the official marketplace, but later I’ll replace it with my own images generated automatically using

This like organization is easy to manage and track versioning using Git

Just published our own marketplace with automatically generated images as I’ve promised:
https://marketplace.opennebula.wedos.cloud/

Awesome kvaps!

This would be a great contribution to the OpenNebula Add-on Catalog. I know that you have contributed to our catalog before, but take a look at the steps that we have outlined for Add-on Catalog contribution, (https://github.com/OpenNebula/one/wiki/How-to-participate-in-Add_on-Development). Once you complete the steps 1 through 4, let me know, and we will pick things up at step 5 to get the Add-on published in our Catalog and hosted on our GitHub.

Nice work!
Michael

@mabdou, what do you mean? All the steps from 1-5 already done:

From the standpoint of an add-on, it should have its own separate GitHub repository. If you have steps 1-4 taken care of, we can create the new repository in the OpenNebula GitHub.

We will move ahead and create it, and we’ll keep this moving forward. Sound good?

It is, there is own repo for opennebula-static-marketplace, with all steps done

I also have opennebula-images - but this is another project

Right now, you created the repository within your own GitHub (“kvaps/opennebula-static-marketplace”). In terms of being part of the “official” OpenNebula Add-on Catalog, is should be created and managed in the OpenNebula GitHub - as “opennebula/static-marketplace”.

Thanks.

But I have no permissions to create repository in opennebula namespace on GitHub, usually someone from OpenNebula team is creating repo for me.

Exactly - that is why I stated that we will take step 5 and create the repository. We will do that, and then pick up on the following communication efforts.

Ow, I see, now I understand :slight_smile:

Now driver located in OpenNebula namespace: