diff options
Diffstat (limited to 'src/talks/glean/index.html')
-rw-r--r-- | src/talks/glean/index.html | 209 |
1 files changed, 209 insertions, 0 deletions
diff --git a/src/talks/glean/index.html b/src/talks/glean/index.html new file mode 100644 index 0000000..bbf943a --- /dev/null +++ b/src/talks/glean/index.html | |||
@@ -0,0 +1,209 @@ | |||
1 | <!doctype html> | ||
2 | <html lang="en"> | ||
3 | |||
4 | <head> | ||
5 | <meta charset="utf-8"> | ||
6 | |||
7 | <title>glean: a minimal non-cloud-init cloud-init</title> | ||
8 | |||
9 | <meta name="apple-mobile-web-app-capable" content="yes" /> | ||
10 | <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" /> | ||
11 | |||
12 | <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"> | ||
13 | |||
14 | <link rel="stylesheet" href="/css/reveal.css"> | ||
15 | <link rel="stylesheet" href="/css/theme/openstack.css" id="theme"> | ||
16 | |||
17 | <!-- For syntax highlighting --> | ||
18 | <link rel="stylesheet" href="/lib/css/zenburn.css"> | ||
19 | |||
20 | <!-- If the query includes 'print-pdf', include the PDF print sheet --> | ||
21 | <script> | ||
22 | if( window.location.search.match( /print-pdf/gi ) ) { | ||
23 | var link = document.createElement( 'link' ); | ||
24 | link.rel = 'stylesheet'; | ||
25 | link.type = 'text/css'; | ||
26 | link.href = '/css/print/pdf.css'; | ||
27 | document.getElementsByTagName( 'head' )[0].appendChild( link ); | ||
28 | } | ||
29 | </script> | ||
30 | |||
31 | </head> | ||
32 | <body> | ||
33 | |||
34 | <div class="background"></div> | ||
35 | |||
36 | <div class="reveal"> | ||
37 | <div class="slides"> | ||
38 | |||
39 | <section data-state="cover"> | ||
40 | <h1><span xmlns:dct="http://purl.org/dc/terms/" | ||
41 | href="http://purl.org/dc/dcmitype/InteractiveResource" | ||
42 | property="dct:title" | ||
43 | rel="dct:type"> | ||
44 | glean: a minimal non-cloud-init cloud-init | ||
45 | </span></h1> | ||
46 | <h3 xmlns:cc="http://creativecommons.org/ns#" | ||
47 | property="cc:attributionName">Monty Taylor</h3> | ||
48 | <h4><a xmlns:cc="http://creativecommons.org/ns#" | ||
49 | rel="cc:attributionURL" | ||
50 | href='http://inaugust.com/talks/os-client-config.html'>http://inaugust.com/talks/glean.html</a> </h4> | ||
51 | <h3> twitter: @e_monty </h3> | ||
52 | </section> | ||
53 | |||
54 | <section> | ||
55 | <h1>When you boot a VM, it needs boot time data or bootstrapping</h1> | ||
56 | </section> | ||
57 | |||
58 | <section> | ||
59 | <h1>I use ansible for orchestration</h1> | ||
60 | </section> | ||
61 | |||
62 | <section> | ||
63 | <h1>I don't need boot time fancy, | ||
64 | I <em>JUST</em> need ssh bootstrap</h1> | ||
65 | <p class='fragment'>Ok. And maybe network</p> | ||
66 | </section> | ||
67 | |||
68 | <section> | ||
69 | <h1>Things I must consume at boot</h1> | ||
70 | <ul> | ||
71 | <li class='fragment'> | ||
72 | Network Configuration | ||
73 | </li> | ||
74 | <li class='fragment'> | ||
75 | <em>maybe</em> SSH Keys | ||
76 | </li> | ||
77 | </ul> | ||
78 | </section> | ||
79 | |||
80 | <section class="slide level2"> | ||
81 | <h1>Network information should be easy</h1> | ||
82 | <p>There is this thing called DHCP</p> | ||
83 | <p>Dynamic Host Configuration Protocol</p> | ||
84 | </section> | ||
85 | |||
86 | <section class="slide level2"> | ||
87 | <img src="/images/worstcat-lettuce.jpg" /> | ||
88 | </section> | ||
89 | |||
90 | <section class="slide level2"> | ||
91 | <h1>Some providers don't support DHCP - because bong</h1> | ||
92 | </section> | ||
93 | |||
94 | <section class="slide level2"> | ||
95 | <h1>cloud-init</h1> | ||
96 | <p>Handles many cases, but not all</p> | ||
97 | <p>Has lots of dependencies that conflict with gate depends</p> | ||
98 | <p>'frozen' pending 2.0 rewrite</p> | ||
99 | </section> | ||
100 | |||
101 | <section class="slide level2"> | ||
102 | <h1>glean</h1> | ||
103 | <h3>http://git.openstack.org/cgit/openstack-infra/glean</h3> | ||
104 | <ul> | ||
105 | <p>No dependencies</p> | ||
106 | <p>Handles future static network config in config drive</p> | ||
107 | <p>Optionally also reads ssh keys from config drive</p> | ||
108 | <p>Nothing else</p> | ||
109 | </ul> | ||
110 | </section> | ||
111 | |||
112 | <section> | ||
113 | <h1>network_info.json</h1> | ||
114 | <p>Hopefully added in liberty</p> | ||
115 | <pre> | ||
116 | services: | ||
117 | - type: dns | ||
118 | address: 72.3.128.241 | ||
119 | - type: dns | ||
120 | address: 72.3.128.240 | ||
121 | networks: | ||
122 | - network_id: 00000000-0000-0000-0000-000000000000 | ||
123 | type: ipv4 | ||
124 | netmask: 255.255.255.0 | ||
125 | link: tapfafb5c05-a6 | ||
126 | routes: | ||
127 | - netmask: 0.0.0.0 | ||
128 | network: 0.0.0.0 | ||
129 | gateway: 23.253.229.1 | ||
130 | ip_address: 23.253.229.154 | ||
131 | id: network0 | ||
132 | - network_id: 11111111-1111-1111-1111-111111111111 | ||
133 | type: ipv4 | ||
134 | netmask: 255.255.224.0 | ||
135 | link: tape501e1cd-10 | ||
136 | routes: | ||
137 | - netmask: 255.240.0.0 | ||
138 | network: 10.176.0.0 | ||
139 | gateway: 10.208.160.1 | ||
140 | - netmask: 255.240.0.0 | ||
141 | network: 10.208.0.0 | ||
142 | gateway: 10.208.160.1 | ||
143 | ip_address: 10.208.169.118 | ||
144 | id: network1 | ||
145 | links: | ||
146 | - ethernet_mac_address: BC:76:4E:01:62:86 | ||
147 | mtu: 1500 | ||
148 | type: null | ||
149 | id: tapfafb5c05-a6 | ||
150 | vif_id: fafb5c05-a661-48ae-9810-46601c7e22d1 | ||
151 | - ethernet_mac_address: BC:76:4E:05:7B:06 | ||
152 | mtu: 1500 | ||
153 | type: null | ||
154 | id: tape501e1cd-10 | ||
155 | vif_id: e501e1cd-10d0-4e63-b0c2-6542989ccbb2 | ||
156 | </pre> | ||
157 | </section> | ||
158 | |||
159 | <section class="slide level2"> | ||
160 | <h1>Integrated with diskimage-builder</h1> | ||
161 | <pre> | ||
162 | disk-image-create -o debian.qcow2 debian-minimal vm simple-init | ||
163 | </pre> | ||
164 | </section> | ||
165 | |||
166 | <section class="slide level2"> | ||
167 | <h1>You know what has less depends than minimal python?</h1> | ||
168 | </section> | ||
169 | |||
170 | <section class="slide level2"> | ||
171 | <h1>Rust</h1> | ||
172 | </section> | ||
173 | |||
174 | <section class="slide level2"> | ||
175 | <h1>glean.rs</h1> | ||
176 | <h3>https://gitlab.com/mordred/glean.rs</h3> | ||
177 | </section> | ||
178 | |||
179 | <section> | ||
180 | <h1> Thank you! </h1> | ||
181 | <h4> <a href='http://inaugust.com/talks/glean.html'>http://inaugust.com/talks/glean.html</a> </h4> | ||
182 | <h3> twitter: @e_monty </h3> | ||
183 | </section> | ||
184 | |||
185 | </div> | ||
186 | |||
187 | <div class="footer"> | ||
188 | <a rel="license" href="http://creativecommons.org/licenses/by/4.0/"> | ||
189 | <img alt="Creative Commons License" | ||
190 | style="border-width:0" | ||
191 | src="https://i.creativecommons.org/l/by/4.0/88x31.png" /> | ||
192 | </a><br /> | ||
193 | Licensed under a | ||
194 | <a rel="license" | ||
195 | href="http://creativecommons.org/licenses/by/4.0/"> | ||
196 | Creative Commons Attribution 4.0 International License | ||
197 | </a>. | ||
198 | <br /> | ||
199 | Source code available at <a href='http://git.inaugust.com/cgit/inaugust.com'>http://git.inaugust.com/cgit/inaugust.com</a> | ||
200 | </div> | ||
201 | </div> | ||
202 | |||
203 | <script src="/lib/js/head.min.js"></script> | ||
204 | <script src="/js/reveal.js"></script> | ||
205 | |||
206 | <script src="/js/this.js"></script> | ||
207 | |||
208 | </body> | ||
209 | </html> | ||