gRPC API Porcelain Layer for OpenStack
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
OpenDev Sysadmins 3eb1d6f8c5 OpenDev Migration Patch 1 month ago
devstack Rename Search to List 2 years ago
doc/source Expand on the nodepool API todo in the docs 2 years ago
oaktree Rename Search to List 2 years ago
.coveragerc Initial commit 2 years ago
.gitignore Initial commit 2 years ago
.gitreview OpenDev Migration Patch 1 month ago
.mailmap Initial commit 2 years ago
.testr.conf Initial commit 2 years ago
CONTRIBUTING.rst Add a few more docs 2 years ago
HACKING.rst Initial commit 2 years ago
LICENSE Initial commit 2 years ago
MANIFEST.in Initial commit 2 years ago
README.rst Fix some minor typos in README.rst 2 years ago
TODO Initial commit 2 years ago
requirements.txt Manual sync with global requirements 2 years ago
setup.cfg Initial commit 2 years ago
setup.py Manual sync with global requirements 2 years ago
test-requirements.txt Manual sync with global requirements 2 years ago
tox.ini Clean a couple of meaningless things 2 years ago

README.rst

oaktree

Make your cloud throw some shade

oaktree is a gRPC interface for interacting with OpenStack clouds that is inherently interoperable and multi-cloud aware. It is based on the python shade library, which grew all of the logic needed to interact with OpenStack clouds and to work around differences in vendor deployment choices. Rather than keep all of that love in Python Library form, oaktree allows other languages to reap the benefits as well.

oaktree is not a replacement for all of the individual project REST APIs. Those are all essential for cross-project communication and are well suited for operators who can be expected to know things about how they have deployed their clouds - and who in fact WANT to be able to make changes in the cloud knowing deployment specifics. oaktree will never be for them.

oaktree is for end-users who do not and should not know what hypervisor, what storage driver or what network stack the deployer has chosen. The two sets of people are different audiences, so oaktree is a project to support the end user.

Using

Install oaktreemodel by hand. Then:

In one window:

oaktree/server.py assumes you have a clouds.yaml accessible.

In another window:

You'll have an images and a flavors object you can poke at.

If you want to operate against a different cloud than devstack, you can pass it to devstack/test.py as the first command line argument.

Shape of the Project

oaktree should be super simple to deploy, and completely safe for deployers to upgrade from master constantly. Once it's released as a 1.0, it should NEVER EVER EVER EVER EVER EVER EVER have a backwards incompatible change. There is no reason, no justification, no obsession important enough to inflict such pain on the user.

The shade library will grow the ability to detect if a cloud has an oaktree api available, and if it does, it will use it. Hopefully we'll quickly reach a point where all deployers are deploying oaktree.