diff options
author | Monty Taylor <mordred@inaugust.com> | 2015-08-01 13:49:51 +1000 |
---|---|---|
committer | Monty Taylor <mordred@inaugust.com> | 2015-08-01 14:06:15 +1000 |
commit | e80572bca8d345056862235a41597d8b2540e68b (patch) | |
tree | 3b62bc798c9ad99c8733b46c78a6810a91d925d8 /src/talks/os-client-config.hbs | |
parent | 506f9db1c9d54a1af4d75ee0ee36e79ccaeacef6 (diff) |
Template the talks!
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> | ||