README included
This commit is contained in:
parent
89a95ef70b
commit
b07920df4a
|
@ -0,0 +1,71 @@
|
||||||
|
# keystone-admin interface
|
||||||
|
|
||||||
|
Use this interface to use keystone credentials in your charm layers.
|
||||||
|
|
||||||
|
## Purpose
|
||||||
|
|
||||||
|
By relating you charm layer (keystone-admin:identity-admin) with
|
||||||
|
keystone service, keystone's API endpoint as well as username, password
|
||||||
|
and region name will be shared.
|
||||||
|
|
||||||
|
## How to use in your layers
|
||||||
|
|
||||||
|
The event handler for `identity-admin.connected` is called when a relation
|
||||||
|
is established between your charm layer and keystone.
|
||||||
|
|
||||||
|
In case there are no unset shared data (ie: service_password), a new event
|
||||||
|
handler will be set: `identity-admin.available`.
|
||||||
|
|
||||||
|
This object provides a method,
|
||||||
|
|
||||||
|
credentials()
|
||||||
|
|
||||||
|
returing a dict of:
|
||||||
|
|
||||||
|
{u'service_password': u'XXXXXXXX',
|
||||||
|
u'service_port': u'5000',
|
||||||
|
u'service_hostname': u'10.XX.XX.XXX',
|
||||||
|
u'service_username': u'admin',
|
||||||
|
u'service_tenant_name': u'Admin',
|
||||||
|
u'service_region': u'RegionOne'}
|
||||||
|
|
||||||
|
|
||||||
|
metadata.yaml
|
||||||
|
```
|
||||||
|
requires:
|
||||||
|
identity-admin:
|
||||||
|
interface: keystone-admin
|
||||||
|
```
|
||||||
|
|
||||||
|
layer.yaml,
|
||||||
|
```
|
||||||
|
includes: ['layer:basic', 'interface:keystone-admin']
|
||||||
|
```
|
||||||
|
|
||||||
|
charm layer example,
|
||||||
|
```
|
||||||
|
@when('identity-admin.available')
|
||||||
|
def setup_openstack_plugin(kst_data):
|
||||||
|
creds = kst_data.credentials()
|
||||||
|
if data_changed('identity-admin.config', creds):
|
||||||
|
settings = {'keystone_vip': creds['service_hostname'],
|
||||||
|
'keystone_port': creds['service_port'],
|
||||||
|
'username': creds['service_username'],
|
||||||
|
'password': creds['service_password'],
|
||||||
|
'tenant_name': creds['service_tenant_name'],
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
## Example deployment
|
||||||
|
|
||||||
|
```
|
||||||
|
$ juju deploy your-awesome-charm
|
||||||
|
$ juju deploy keystone --config keystone-creds.yaml
|
||||||
|
$ juju deploy mysql
|
||||||
|
$ juju add-relation keystone mysql
|
||||||
|
$ juju add-relation your-awesome-charm keystone
|
||||||
|
```
|
||||||
|
|
||||||
|
where `keystone-creds.yaml` has the necessary configuration settings for your
|
||||||
|
awesome charm to connect to keystone.
|
||||||
|
|
Loading…
Reference in New Issue