summaryrefslogtreecommitdiff
path: root/src/talks/os-client-config.hbs
diff options
context:
space:
mode:
Diffstat (limited to 'src/talks/os-client-config.hbs')
-rw-r--r--src/talks/os-client-config.hbs179
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>
32openstack \
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>
49export OS_AUTH_URL=https://region-b.geo-1.identity.hpcloudsvc.com:35357/v2.0
50export OS_USERNAME=mordred@inaugust.com
51export OS_PASSWORD=XXXXXXXXXXXXX
52export OS_TENANT_NAME=mordred@inaugust.com
53export 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
6913
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>
102CLOUD_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>
120clouds:
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>
146openstack --cloud=mordred server list
147 </pre>
148 <pre>
149export OS_CLOUD=mordred
150openstack 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>