diff options
Diffstat (limited to 'src/talks/os-client-config.hbs')
| -rw-r--r-- | src/talks/os-client-config.hbs | 179 |
1 files changed, 179 insertions, 0 deletions
diff --git a/src/talks/os-client-config.hbs b/src/talks/os-client-config.hbs new file mode 100644 index 0000000..3bfce44 --- /dev/null +++ b/src/talks/os-client-config.hbs | |||
| @@ -0,0 +1,179 @@ | |||
| 1 | <!doctype html> | ||
| 2 | <html lang="en"> | ||
| 3 | |||
| 4 | <head> | ||
| 5 | <meta charset="utf-8"> | ||
| 6 | |||
| 7 | <title>os-client-config: Making OpenStack usability easier, starting with client configuration</title> | ||
| 8 | |||
| 9 | </head> | ||
| 10 | <body> | ||
| 11 | |||
| 12 | <section> | ||
| 13 | <h1>I'm awash in cloud accounts</h1> | ||
| 14 | <ul> | ||
| 15 | <li>Infra has 5<ul> | ||
| 16 | <li>control plane and nodepool in 3 Rackspace regions</li> | ||
| 17 | <li>control plane and nodepool in HP</li> | ||
| 18 | </ul></li> | ||
| 19 | <li>two personal on HP and one on Rackspace</li> | ||
| 20 | <li>two internal HP accounts</li> | ||
| 21 | <li>That's 12 OpenStack cloud-regions</li> | ||
| 22 | </ul> | ||
| 23 | </section> | ||
| 24 | |||
| 25 | <section> | ||
| 26 | How do I connect to them? | ||
| 27 | </section> | ||
| 28 | |||
| 29 | <section> | ||
| 30 | List Servers | ||
| 31 | <pre> | ||
| 32 | openstack \ | ||
| 33 | --auth-url=https://region-b.geo-1.identity.hpcloudsvc.com:35357/v2.0 \ | ||
| 34 | --username=mordred@inaugust.com \ | ||
| 35 | --password=XXXXXX \ | ||
| 36 | --project-name=mordred@inaugust.com \ | ||
| 37 | --region-name=region-b.geo-1 \ | ||
| 38 | server list | ||
| 39 | </pre> | ||
| 40 | </section> | ||
| 41 | |||
| 42 | <section> | ||
| 43 | Well that's silly | ||
| 44 | </section> | ||
| 45 | |||
| 46 | <section> | ||
| 47 | Consistent Environment Variables | ||
| 48 | <pre> | ||
| 49 | export OS_AUTH_URL=https://region-b.geo-1.identity.hpcloudsvc.com:35357/v2.0 | ||
| 50 | export OS_USERNAME=mordred@inaugust.com | ||
| 51 | export OS_PASSWORD=XXXXXXXXXXXXX | ||
| 52 | export OS_TENANT_NAME=mordred@inaugust.com | ||
| 53 | export OS_REGION_NAME=region-b.geo-1 | ||
| 54 | </pre> | ||
| 55 | </section> | ||
| 56 | |||
| 57 | <section> | ||
| 58 | 12 shell script snippet files | ||
| 59 | </section> | ||
| 60 | |||
| 61 | <section> | ||
| 62 | ENV processing is in command line tools, not client libraries | ||
| 63 | </section> | ||
| 64 | |||
| 65 | <section> | ||
| 66 | ENV processing is just copied everywhere | ||
| 67 | <pre> | ||
| 68 | $ egrep -r 'add_(option|argument).*os-username' openstack/python*client | wc -l | ||
| 69 | 13 | ||
| 70 | </pre> | ||
| 71 | </section> | ||
| 72 | |||
| 73 | <section> | ||
| 74 | <h1> Pre-existing knowledge </h1> | ||
| 75 | <ul> | ||
| 76 | <li>auth-url</li> | ||
| 77 | <li>glance API version</li> | ||
| 78 | <li>override settings<ul> | ||
| 79 | <li>URLs (swift URL in rackspace keystone catalog is wrong)</li> | ||
| 80 | <li>service types (DNS in HP is hpext:dns)</li> | ||
| 81 | </ul></li> | ||
| 82 | </ul> | ||
| 83 | </section> | ||
| 84 | |||
| 85 | <section> | ||
| 86 | <p>I wrote a library (yay!)</p> | ||
| 87 | <h1>os-client-config</h1> | ||
| 88 | </section> | ||
| 89 | |||
| 90 | <section> | ||
| 91 | <h1>Processes, in this order</h1> | ||
| 92 | <ul> | ||
| 93 | <li>config file: clouds.yaml</li> | ||
| 94 | <li>env vars</li> | ||
| 95 | <li>command line args</li> | ||
| 96 | </ul> | ||
| 97 | </section> | ||
| 98 | |||
| 99 | <section> | ||
| 100 | <h1>Provides vendor defaults</h1> | ||
| 101 | <pre> | ||
| 102 | CLOUD_DEFAULTS = dict( | ||
| 103 | hp=dict( | ||
| 104 | auth_url='https://region-b.geo-1.identity.hpcloudsvc.com:35357/v2.0', | ||
| 105 | dns_service_type='hpext:dns', | ||
| 106 | ), | ||
| 107 | rackspace=dict( | ||
| 108 | auth_url='https://identity.api.rackspacecloud.com/v2.0/', | ||
| 109 | database_service_type='rax:database', | ||
| 110 | image_api_version='2', | ||
| 111 | ) | ||
| 112 | ) | ||
| 113 | </pre> | ||
| 114 | <p> Patches welcome for any cloud </p> | ||
| 115 | </section> | ||
| 116 | |||
| 117 | <section> | ||
| 118 | <h1>clouds.yaml</h1> | ||
| 119 | <pre> | ||
| 120 | clouds: | ||
| 121 | mordred: | ||
| 122 | cloud: hp | ||
| 123 | username: mordred@inaugust.com | ||
| 124 | password: XXXXXXXXXX | ||
| 125 | project_name: mordred@inaugust.com | ||
| 126 | region_name: region-b.geo-1 | ||
| 127 | monty: | ||
| 128 | cloud: https://region-b.geo-1.identity.hpcloudsvc.com:35357/v2.0 | ||
| 129 | username: monty.taylor@hp.com | ||
| 130 | password: XXXXXXXXX | ||
| 131 | project_name: monty.taylor@hp.com-default-tenant | ||
| 132 | region_name: region-b.geo-1 | ||
| 133 | dns_service_type: hpext:dns | ||
| 134 | rax: | ||
| 135 | cloud: rackspace | ||
| 136 | username: openstackci | ||
| 137 | password: XXXXXXX | ||
| 138 | project_id: 610275 | ||
| 139 | region_name: DFW,ORD,IAD | ||
| 140 | </pre> | ||
| 141 | </section> | ||
| 142 | |||
| 143 | <section> | ||
| 144 | <h1> Allows for named clouds </h1> | ||
| 145 | <pre> | ||
| 146 | openstack --cloud=mordred server list | ||
| 147 | </pre> | ||
| 148 | <pre> | ||
| 149 | export OS_CLOUD=mordred | ||
| 150 | openstack server list | ||
| 151 | </pre> | ||
| 152 | </section> | ||
| 153 | |||
| 154 | |||
| 155 | <section> | ||
| 156 | <h1> Where is it in use? </h1> | ||
| 157 | <ul> | ||
| 158 | <li>Shade library</li> | ||
| 159 | <li>python-openstackclient <small>(patch in flight)</small></li> | ||
| 160 | <li>ansible <small>(patch in flight)</small></li> | ||
| 161 | </ul> | ||
| 162 | </section> | ||
| 163 | |||
| 164 | <section> | ||
| 165 | <h1>Where is it?</h1> | ||
| 166 | <p>http://git.openstack.org/stackforge/os-client-config</p> | ||
| 167 | <p>http://pypi.python.org/pypi/os-client-config</p> | ||
| 168 | </section> | ||
| 169 | |||
| 170 | <section> | ||
| 171 | <h1>Where is it?</h1> | ||
| 172 | <p>http://git.openstack.org/stackforge/os-client-config</p> | ||
| 173 | <p>http://pypi.python.org/pypi/os-client-config</p> | ||
| 174 | </section> | ||
| 175 | |||
| 176 | </div> | ||
| 177 | |||
| 178 | </body> | ||
| 179 | </html> | ||
