OpenNebula backend for Cloudkeeper
What does Cloudkeeper-ONE do?
Cloudkeeper-ONE is able to manage OpenNebula CMF - upload, update and remove images and templates representing EGI AppDB appliances. Cloudkeeper-ONE runs as a server listening for gRPC communication usually from core cloudkeeper component.
- Ruby >= 2.2.0
- OpenNebula >= 5.2 (doesn't have to be present on the same machine)
To install the most recent stable version
gem install cloudkeeper-one
From source (dev)
Installation from source should never be your first choice! Especially, if you are not familiar with RVM, Bundler, Rake and other dev tools for Ruby!
However, if you wish to contribute to our project, this is the right way to start.
To build and install the bleeding edge version from master
git clone git://github.com/the-cloudkeeper-project/cloudkeeper-one.git cd cloudkeeper-one gem install bundler bundle install bundle exec rake spec
Create a configuration file for Cloudkeeper-ONE
Configuration file can be read by Cloudkeeper-ONE from these three locations:
The default configuration file can be found at the last location
Cloudkeeper-ONE is run with executable
cloudkeeper-one. For further assistance run
cloudkeeper-one help sync:
Usage: cloudkeeper-one sync --appliances-permissions=APPLIANCES-PERMISSIONS --appliances-tmp-dir=APPLIANCES-TMP-DIR --identifier=IDENTIFIER --listen-address=LISTEN-ADDRESS --opennebula-api-call-timeout=OPENNEBULA-API-CALL-TIMEOUT --opennebula-datastore=OPENNEBULA-DATASTORE Options: --listen-address=LISTEN-ADDRESS # IP address gRPC server will listen on # Default: 127.0.0.1:50051 [--authentication], [--no-authentication] # Client <-> server authentication [--certificate=CERTIFICATE] # Backend's host certificate # Default: /etc/grid-security/hostcert.pem [--key=KEY] # Backend's host key # Default: /etc/grid-security/hostkey.pem --identifier=IDENTIFIER # Instance identifier # Default: cloudkeeper-one [--core-certificate=CORE-CERTIFICATE] # Core's certificate # Default: /etc/grid-security/corecert.pem --appliances-tmp-dir=APPLIANCES-TMP-DIR # Directory where to temporarily store appliances # Default: /var/spool/cloudkeeper/appliances [--appliances-template-dir=APPLIANCES-TEMPLATE-DIR] # If set, templates within this directory are used to construct images and templates in OpenNebula --appliances-permissions=APPLIANCES-PERMISSIONS # UNIX-like permissions appliances will have within OpenNebula # Default: 640 [--opennebula-secret=OPENNEBULA-SECRET] # OpenNebula authentication secret # Default: oneadmin:opennebula [--opennebula-endpoint=OPENNEBULA-ENDPOINT] # OpenNebula XML-RPC endpoint # Default: http://localhost:2633/RPC2 --opennebula-datastore=OPENNEBULA-DATASTORE # OpenNebula datastore images will be uploaded to # Default: default --opennebula-api-call-timeout=OPENNEBULA-API-CALL-TIMEOUT # How long will cloudkeeper-one wait for image/template operations to finish in OpenNebula # Default: 3h [--opennebula-allow-remote-source], [--no-opennebula-allow-remote-source] # Allows OpenNebula to directly download remote image # Default: true --logging-level=LOGGING-LEVEL # Default: ERROR # Possible values: DEBUG, INFO, WARN, ERROR, FATAL, UNKNOWN [--logging-file=LOGGING-FILE] # File to write logs to # Default: /var/log/cloudkeeper/cloudkeeper-one.log [--debug], [--no-debug] # Runs cloudkeeper in debug mode
- Fork it ( https://github.com/the-cloudkeeper-project/cloudkeeper-one/fork )
- Create your feature branch (
git checkout -b my-new-feature)
- Commit your changes (
git commit -am 'Add some feature')
- Push to the branch (
git push origin my-new-feature)
- Create a new Pull Request