Skip to content
Extension of the OpenStackSDK && OpenStackClient with OpenTelekomCloud services
Branch: master
Clone or download
gtema Sdk0.29 (#36)
* Prepare for sdk0.29

* Update for SDK 0.29

* praise pep8 gods
Latest commit e3dc9f7 Jun 7, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
doc Sdk0.29 (#36) Jun 7, 2019
spec add basic kms to osc Apr 3, 2018
.coveragerc fix coverage tests env Mar 1, 2018
.gitignore add first cce cluster commands in osc Apr 4, 2018
.stestr.conf Initial version Feb 20, 2018
.zuul.yaml set default OS_CLOUD for functional tests May 30, 2018
HACKING.rst Initial version Feb 20, 2018
LICENSE Initial version Feb 20, 2018
README.rst add info to readme about S3 env values Mar 29, 2018
babel.cfg Initial version Feb 20, 2018
setup.cfg Initial version Feb 20, 2018
test-requirements.txt exchange boto3 module with custom requests_auth implementation Oct 4, 2018
tox.ini enable py37 tests Aug 7, 2018


OpenTelekomCloud extensions Documentation Status

OTCExtensions is a project to bring OTC extensions into the native OpenStack toolstack. Covered are currently following items:

  • python-openstacksdk
  • python-openstackclient

The primary goal is to provide a possibility to use native OpenStack SDK and CLI with the OTC additional services

Getting Started

The very first step to get started is to install otcextensions into your system. For this please follow installation instructions

Next step would be logically configuration



The recommended way, since it is the most efficient way to configure both SDK and the CLI in one place

openstack.config will find cloud configuration for as few as 1 clouds and as many as you want to put in a config file. It will read environment variables and config files, and it also contains some vendor specific default values so that you don't have to know extra info to use OpenStack

  • If you have a config file, you will get the clouds listed in it
  • If you have environment variables, you will get a cloud named envvars
  • If you have neither, you will get a cloud named defaults with base defaults

Sometimes an example is nice.

Create a clouds.yaml file:

     username: 'USER_NAME'
     password: 'PASS'
     project_name: 'eu-de'
     auth_url: ''
     user_domain_name: 'OTC00000000001000000xxx'
   interface: 'public'
   identity_api_version: 3 # !Important
   ak: 'AK_VALUE' # AK/SK pair for access to OBS
   sk: 'SK_VALUE'

Please note: openstack.config will look for a file called clouds.yaml in the following locations:

  • Current Directory
  • ~/.config/openstack
  • /etc/openstack

AK/SK values required for access to some services (i.e. OBS) can be either configured as shown above in the clouds.yaml/secure.yaml, or they can be automatically retrieved from the S3_ACCESS_KEY_ID and S3_SECRET_ACCESS_KEY. Values from the clouds.yaml/secure.yaml take precedence over the ones from environment.

With this configuration you can start using openstackCLI simply openstack --os-cloud otc

More information at

Old style way

The CLI can be configured via environment variables and command-line options as listed in or

Authentication using username/password is often used:

export OS_AUTH_URL=<url-to-openstack-identity>
export OS_PROJECT_NAME=<project-name>
export OS_PROJECT_DOMAIN_NAME=<project-domain-name>
export OS_USERNAME=<username>
export OS_USER_DOMAIN_NAME=<user-domain-name>
export OS_PASSWORD=<password>  # (optional)
export S3_ACCESS_KEY_ID=<access_key>
export S3_SECRET_ACCESS_KEY=<secret_access_key>

The corresponding command-line options look very similar:

--os-auth-url <url>
--os-identity-api-version 3
--os-project-name <project-name>
--os-project-domain-name <project-domain-name>
--os-username <username>
--os-user-domain-name <user-domain-name>
[--os-password <password>]

If a password is not provided above (in plaintext), you will be interactively prompted to provide one securely.

Authentication may also be performed using an already-acquired token and a URL pointing directly to the service API that presumably was acquired from the Service Catalog:

export OS_TOKEN=<token>
export OS_URL=<url-to-openstack-service>

The corresponding command-line options look very similar:

--os-token <token>
--os-url <url-to-openstack-service>

In addition to that a regular clouds.yaml configuration file can be used


You can’t perform that action at this time.