Merge ~chad.smith/cloud-init/+git/sru-info:sru-bug-updates into ~smoser/cloud-init/+git/sru-info:master
- Git
- lp:~chad.smith/cloud-init/+git/sru-info
- sru-bug-updates
- Merge into master
Proposed by
Chad Smith
Status: | Merged |
---|---|
Merged at revision: | 966dda4288da922e85e27fdf88ff8029e3197fda |
Proposed branch: | ~chad.smith/cloud-init/+git/sru-info:sru-bug-updates |
Merge into: | ~smoser/cloud-init/+git/sru-info:master |
Diff against target: |
1185 lines (+1071/-0) 19 files modified
bugs/1686514.txt (+39/-0) bugs/1692093.txt (+33/-0) bugs/lp-1636531.txt (+37/-0) bugs/lp-1644064.txt (+41/-0) bugs/lp-1645644.txt (+42/-0) bugs/lp-1673637.txt (+46/-0) bugs/lp-1676908.txt (+42/-0) bugs/lp-1681531.txt (+64/-0) bugs/lp-1682160.txt (+34/-0) bugs/lp-1684349.txt (+181/-0) bugs/lp-1685810.txt (+40/-0) bugs/lp-1685935.txt (+18/-0) bugs/lp-1687485.txt (+24/-0) bugs/lp-1689346.txt (+121/-0) bugs/lp-1689944.txt (+136/-0) bugs/lp-1691551.txt (+41/-0) bugs/lp-1692093.txt (+78/-0) bugs/lp-1692097.txt (+24/-0) bugs/lp-1693582.txt (+30/-0) |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Scott Moser | Pending | ||
Review via email: mp+325017@code.launchpad.net |
Commit message
Description of the change
couple of additional SRU bugs from May 2017 SRU.
To post a comment you must log in.
Preview Diff
[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1 | diff --git a/bugs/1686514.txt b/bugs/1686514.txt |
2 | new file mode 100644 |
3 | index 0000000..2a6c74a |
4 | --- /dev/null |
5 | +++ b/bugs/1686514.txt |
6 | @@ -0,0 +1,39 @@ |
7 | +http://pad.lv/1686514 |
8 | +https://bugs.launchpad.net/ubuntu/+source/cloud-init/+bug/1686514 |
9 | + |
10 | +=== Begin SRU Template === |
11 | +[Impact] |
12 | +VMs on MS Azure have an ephemeral disk attached to them. On first boot, |
13 | +the disk has a empty ntfs formated filesystem. Cloud-init is expected |
14 | +to notice that the empty ntfs filesystem should be reformatted with |
15 | +a more linux-friendly ext4 filesystem. This function is working as |
16 | +expected. |
17 | + |
18 | +However, the user can 'redeploy' a VM to a new azure host, or stop and |
19 | +deallocate the vm for some time and then restart/reallocate the vm. After |
20 | +that operation, a pristine ephemeral disk is attached. Cloud-init is |
21 | +expected to re-format this pristine ephemeral disk, but clearly not |
22 | +reformat a disk with user's data on it. On large (L32) size VMs, azure |
23 | +presents a GPT formatted disk with 2 partitions where the second partition |
24 | +is ntfs. Cloud-init currently does not consider disks with 2 partitions |
25 | +to be re-formattable. |
26 | + |
27 | +[Test Case] |
28 | +Test cases: |
29 | + 1. Deploy an L32(s) VM on Azure |
30 | + 2. Log in and ensure that the ephemeral disk is formatted and mounted to /mnt |
31 | + 3. Via the portal you can "Redeploy" the VM to a new Azure Host (or alternatively stop and deallocate the VM for some time, and then restart/reallocate the VM). |
32 | + |
33 | +Expected Results: |
34 | + - After reallocation we expect the ephemeral disk to be formatted and mounted to /mnt. |
35 | + |
36 | +Actual Results: |
37 | + - After reallocation /mnt is not mounted and there are errors in the cloud-init log. |
38 | + |
39 | +[Regression Potential] |
40 | + |
41 | +[Other Info] |
42 | +Upstream commit at |
43 | + https://git.launchpad.net/cloud-init/commit/?id=XXXXXXXXXX |
44 | + |
45 | +=== End SRU Template === |
46 | diff --git a/bugs/1692093.txt b/bugs/1692093.txt |
47 | new file mode 100644 |
48 | index 0000000..cfd0654 |
49 | --- /dev/null |
50 | +++ b/bugs/1692093.txt |
51 | @@ -0,0 +1,33 @@ |
52 | +http://pad.lv/1692093 |
53 | +https://bugs.launchpad.net/ubuntu/+source/cloud-init/+bug/1692093 |
54 | + |
55 | +=== Begin SRU Template === |
56 | +[Impact] |
57 | +VMs on MS Azure have an ephemeral disk attached to them. |
58 | +On first boot, cloud-init properly notices the empty ntfs filesystem and |
59 | +reformats it ext4. |
60 | + |
61 | +After deallocating the instance or moving to a new azure host, |
62 | +the filesystem reformat is logged, but isn't actually performed because |
63 | +the udev device creation may not have settled. |
64 | + |
65 | +[Test Case] |
66 | +Test cases: |
67 | + 1. Deploy an instance VM on Azure |
68 | + 2. Log in and ensure that the ephemeral disk is formatted and mounted to /mnt |
69 | + 3. Via the portal you can "Redeploy" the VM to a new Azure Host (or alternatively stop and deallocate the VM for some time, and then restart/reallocate the VM). |
70 | + |
71 | +Expected Results:a |
72 | + - Check cloud-init.log expecting to see logs from cc_disk_setup about the mount. |
73 | + - After reallocation we expect the ephemeral disk to be formatted and mounted to /mnt. |
74 | + |
75 | +Actual Results: |
76 | + - After reallocation /mnt is not mounted and there are errors in the cloud-init log. |
77 | + |
78 | +[Regression Potential] |
79 | + |
80 | +[Other Info] |
81 | +Upstream commit at |
82 | + https://git.launchpad.net/cloud-init/commit/?id=1815c6d801933c47a01f1a94a8e689824f6797b4 |
83 | + |
84 | +=== End SRU Template === |
85 | diff --git a/bugs/lp-1636531.txt b/bugs/lp-1636531.txt |
86 | new file mode 100644 |
87 | index 0000000..a374439 |
88 | --- /dev/null |
89 | +++ b/bugs/lp-1636531.txt |
90 | @@ -0,0 +1,37 @@ |
91 | +https://bugs.launchpad.net/ubuntu/+source/cloud-init/+bug/1636531 |
92 | +http://pad.lv/1636531 |
93 | + |
94 | +=== Begin SRU Template === |
95 | +[Impact] |
96 | + Unit test updates to avoid leaking blkid calls from tests/unittests/test_datasource/test_altcloud.py. |
97 | + |
98 | +[Test Case] |
99 | + |
100 | +wget https://git.launchpad.net/~smoser/cloud-init/+git/sru-info/plain/bin/lxc-proposed-snapshot |
101 | +chmod 755 lxc-proposed-snapshot |
102 | + |
103 | + |
104 | +# Create fake-blkid.sh |
105 | +cat fake-blkid.sh |
106 | +#!/bin/bash |
107 | +echo "LEAKED BLKID CALL" |
108 | + |
109 | +name=proposed-test |
110 | +for release in xenial yakkety zesty; do \ |
111 | + ref=$release-proposed; |
112 | + lxc-proposed-snapshot --proposed --publish $release $ref; |
113 | + lxc init $ref $name; |
114 | + lxc start $name; |
115 | + sleep 10; |
116 | + lxc exec $name mv /sbin/blkid /sbin/blkid.orig; |
117 | + lxc file push fake-flkid.sh $name/sbin/blkid |
118 | + lxc exec $name git clone -b ubuntu/xenial https://git.launchpad.net/cloud-init |
119 | + tox -e py27 tests/unittests/test_datasource/test_altcloud.py | grep 'LEAKED BLKID'; |
120 | +done |
121 | + |
122 | +[Regression Potential] |
123 | +None. Unit test changes only |
124 | + |
125 | +[Other Info] |
126 | + |
127 | +=== End SRU Template === |
128 | diff --git a/bugs/lp-1644064.txt b/bugs/lp-1644064.txt |
129 | new file mode 100644 |
130 | index 0000000..5fb23fb |
131 | --- /dev/null |
132 | +++ b/bugs/lp-1644064.txt |
133 | @@ -0,0 +1,41 @@ |
134 | +https://bugs.launchpad.net/ubuntu/+source/cloud-init/+bug/1644064 |
135 | +http://pad.lv/1644064 |
136 | + |
137 | +=== Begin SRU Template === |
138 | +[Impact] |
139 | +Existing security permissions on /etc/ssh/sshd_config file not honored. |
140 | + |
141 | +[Test Case] |
142 | +if [ ! -f lxc-proposed-snapshot ]; then |
143 | + wget https://git.launchpad.net/~smoser/cloud-init/+git/sru-info/plain/bin/lxc-proposed-snapshot |
144 | + chmod 755 lxc-proposed-snapshot |
145 | +fi |
146 | + |
147 | +cat << EOF > config.yaml |
148 | +#cloud-config |
149 | +ntp: |
150 | + pools: [1.ntp.mypool] |
151 | + servers: [my.server.nonpool] |
152 | +EOF |
153 | + |
154 | +for release in xenial yaketty zesty; do |
155 | + ref=$release-proposed; |
156 | + echo "$release START --------------"; |
157 | + ./lxc-proposed-snapshot --proposed --install ntp --publish $release $ref; |
158 | + lxc init $ref test-$release; |
159 | + lxc config set test-$release user.user-data - < config.yaml |
160 | + lxc start test-$release; |
161 | + sleep 10 |
162 | + # Should not see [0-3].ubuntu.pool.n |
163 | + lxc exec test-$release -- ntpq -p |
164 | + echo "$release DONE --------------"; |
165 | +done |
166 | + |
167 | + |
168 | +[Regression Potential] |
169 | +Minimal ntp service confguration could be stale if this breaks anything. |
170 | +It is minimal regression potential as the fix only reorders the creation of /etc/ntp.conf prior to the package intall and adds a call to service ntp restart. |
171 | + |
172 | +[Other Info] |
173 | + |
174 | +=== End SRU Template === |
175 | diff --git a/bugs/lp-1645644.txt b/bugs/lp-1645644.txt |
176 | new file mode 100644 |
177 | index 0000000..3ba10bf |
178 | --- /dev/null |
179 | +++ b/bugs/lp-1645644.txt |
180 | @@ -0,0 +1,42 @@ |
181 | + |
182 | +http://pad.lv/1645644 |
183 | +http://bugs.launchpad.net/ubuntu/+source/cloud-init/+bug/1645644 |
184 | + |
185 | + |
186 | +=== Begin SRU Template === |
187 | +[Impact] |
188 | +Existing security permissions on /etc/ssh/sshd_config file not honored. |
189 | + |
190 | +[Test Case] |
191 | +if [ ! -f lxc-proposed-snapshot ]; then |
192 | + wget https://git.launchpad.net/~smoser/cloud-init/+git/sru-info/plain/bin/lxc-proposed-snapshot |
193 | + chmod 755 lxc-proposed-snapshot |
194 | +fi |
195 | + |
196 | +cat << EOF > config.yaml |
197 | +#cloud-config |
198 | +ntp: |
199 | + pools: [1.ntp.mypool] |
200 | + servers: [my.server.nonpool] |
201 | +EOF |
202 | + |
203 | +for release in xenial yakkety zesty; do |
204 | + ref=$release-proposed; |
205 | + echo "$release START --------------"; |
206 | + ./lxc-proposed-snapshot --proposed --install ntp --publish $release $ref; |
207 | + lxc init $ref test-$release; |
208 | + lxc config set test-$release user.user-data - < config.yaml |
209 | + lxc start test-$release; |
210 | + sleep 10 |
211 | + # Should not see [0-3].ubuntu.pool.n |
212 | + lxc exec test-$release -- ntpq -p |
213 | + echo "$release DONE --------------"; |
214 | +done |
215 | + |
216 | +[Regression Potential] |
217 | +Minimal ntp service confguration could be stale if this breaks anything. |
218 | +It is minimal regression potential as the fix only reorders the creation of /etc/ntp.conf prior to the package intall and adds a call to service ntp restart. |
219 | + |
220 | +[Other Info] |
221 | + |
222 | +=== End SRU Template === |
223 | diff --git a/bugs/lp-1673637.txt b/bugs/lp-1673637.txt |
224 | new file mode 100644 |
225 | index 0000000..e1cec15 |
226 | --- /dev/null |
227 | +++ b/bugs/lp-1673637.txt |
228 | @@ -0,0 +1,46 @@ |
229 | +http://pad.lv/1673637 |
230 | +https://bugs.launchpad.net/ubuntu/+source/cloud-init/+bug/1673637 |
231 | + |
232 | +=== Begin cloud-init SRU Template === |
233 | +[Impact] |
234 | +Softcloud user datasource is undetected when only openstack/latest config-drive is provided. |
235 | + |
236 | +[Test Case] |
237 | + |
238 | +For cloud-init, the easiest way to demonstrate this is to |
239 | +create a lxc container and populate it with a '/config-drive' that only contains a openstack/latest path. |
240 | + |
241 | +wget https://git.launchpad.net/~smoser/cloud-init/+git/sru-info/plain/bin/lxc-proposed-snapshot |
242 | +chmod 755 lxc-proposed-snapshot |
243 | +wget https://git.launchpad.net/~smoser/cloud-init/+git/sru-info/plain/tools/make-configdrive-dir |
244 | +chmod 755 make-configdrive-dir |
245 | +name=test-proposed |
246 | + |
247 | +for release in xenial yaketty zesty; do |
248 | + ref=$release-proposed; |
249 | + ./lxc-proposed-snapshot --proposed --publish $release $ref; |
250 | + ./lxc init $ref $name; |
251 | + |
252 | +## populate a /config-drive with attached 'make-config-drive-dir' |
253 | +## and push it to the container |
254 | + |
255 | + d=$(mktemp -d) |
256 | + ./make-configdrive-dir "$d" "$name" |
257 | + rm -Rf "$d" |
258 | + lxc file pull $name/etc/cloud/cloud.cfg.d/90_dpkg.cfg - | |
259 | + sed 's/NoCloud, //' | |
260 | + lxc file push - $name/etc/cloud/cloud.cfg.d/90_dpkg.cfg; |
261 | + |
262 | + |
263 | + lxc start $name |
264 | + sleep 10 |
265 | + lxc exec $name cp -r /config-drive /var/lib/cloud/seed/config_drive |
266 | + lxc exec $name rm -rf /var/lib/cloud/seed/config_drive/openstack/2015-10-15 |
267 | + lxc exec $name sudo DEBUG_LEVEL=2 DI_LOG=stderr /usr/lib/cloud-init/ds-identify --force 2>&1 | grep latest |
268 | + |
269 | + |
270 | +[Regression Potential] |
271 | + |
272 | +[Other Info] |
273 | + |
274 | +=== End cloud-init SRU Template === |
275 | diff --git a/bugs/lp-1676908.txt b/bugs/lp-1676908.txt |
276 | new file mode 100644 |
277 | index 0000000..46b30a3 |
278 | --- /dev/null |
279 | +++ b/bugs/lp-1676908.txt |
280 | @@ -0,0 +1,42 @@ |
281 | +https://bugs.launchpad.net/ubuntu/+source/cloud-init/+bug/1676908 |
282 | +http://pad.lv/1676908 |
283 | + |
284 | +=== Begin SRU Template === |
285 | +[Impact] |
286 | +DigitalOcean instances are unable to bind nameserves to multiple interfaces. |
287 | + |
288 | +[Test Case] |
289 | + |
290 | +wget https://git.launchpad.net/~smoser/cloud-init/+git/sru-info/plain/bin/lxc-proposed-snapshot |
291 | +chmod 755 lxc-proposed-snapshot |
292 | + |
293 | + |
294 | +# create config.yaml |
295 | +cat config.yaml |
296 | +#cloud-config |
297 | +ssh_pwauth: true |
298 | + |
299 | +name=proposed-test |
300 | +for release in xenial yakkety zesty; do \ |
301 | + ref=$release-proposed; |
302 | + lxc-proposed-snapshot --proposed --publish $release $ref; |
303 | + lxc init $ref $name; |
304 | + lxc start $name; |
305 | + sleep 10; |
306 | + lxc file pull $name/etc/ssh/sshd_config .; |
307 | + chmod 600 sshd_config; |
308 | + lxc file push sshd_config $name/etc/ssh/sshd_config; |
309 | + lxc config set $name user.user-data - < config.yml; |
310 | + lxc start; |
311 | + sleep 10; |
312 | + lxc exec $name ls -ltr /etc/ssh/sshd_config; # should remain 600 |
313 | + lxc stop $name; |
314 | + lxc delete $name; |
315 | +done |
316 | + |
317 | +[Regression Potential] |
318 | +Minimal as we are now honoring file permissions if an sshd_config file exists. |
319 | + |
320 | +[Other Info] |
321 | + |
322 | +=== End SRU Template === |
323 | diff --git a/bugs/lp-1681531.txt b/bugs/lp-1681531.txt |
324 | new file mode 100644 |
325 | index 0000000..7ed04e7 |
326 | --- /dev/null |
327 | +++ b/bugs/lp-1681531.txt |
328 | @@ -0,0 +1,64 @@ |
329 | +http://pad.lv/1681531 |
330 | +https://bugs.launchpad.net/ubuntu/+source/cloud-init/+bug/1681531 |
331 | + |
332 | + |
333 | +[Impact] |
334 | +The cloud-init datasource for DigitalOcean allows for multiple gateways on any NIC. |
335 | + |
336 | +On Ubuntu 16.04, this breaks networking.service. For 17.04 and later, Ubuntu _replaces_ the default gateway with the second gateway on 'ifup' after reboot. |
337 | + |
338 | +DigitalOcean is looking at changing the meta-data, however, this will result in another version of the meta-data JSON. |
339 | + |
340 | +[Regression Potential] |
341 | + |
342 | +Low. This change is scope to DigitalOcean only. DigitalOcean has tested this Datasource exhaustively. |
343 | + |
344 | +[TEST Cases] |
345 | +- provision on DigitalOcean with a private IP |
346 | +- reboot |
347 | +- confirm that a single route exists in /etc/network/interfaces |
348 | + |
349 | +[LOGS] |
350 | + |
351 | +---------------------------------------------------------------------------------------------- |
352 | +From /var/log/cloud-init.log: |
353 | + |
354 | +2017-04-10 17:36:11,608 - util.py[DEBUG]: Running command ['ip', 'link', 'set', 'ens3', 'down'] with allowed return codes [0] (shell=False, capture=True) |
355 | +2017-04-10 17:36:11,615 - util.py[DEBUG]: Running command ['ip', 'link', 'set', 'ens3', 'name', 'eth0'] with allowed return codes [0] (shell=False, capture=True) |
356 | +2017-04-10 17:36:11,635 - util.py[DEBUG]: Running command ['ip', 'link', 'set', 'ens4', 'name', 'eth1'] with allowed return codes [0] (shell=False, capture=True) |
357 | +2017-04-10 17:36:11,651 - util.py[DEBUG]: Running command ['ip', 'link', 'set', 'eth0', 'up'] with allowed return codes [0] (shell=False, capture=True) |
358 | +2017-04-10 17:36:11,654 - stages.py[INFO]: Applying network configuration from ds bringup=False: {'version': 1, 'config': [{'name': 'eth0', 'subnets': [{'address': '138.197.88.85', 'netmask': '255.255.240.0', 'gateway': '138.197.80.1', 'type': 'static', 'control': 'auto'}, {'address': '2604:A880:0800:0010:0000:0000:2ECE:D001/64', 'gateway': '2604:A880:0800:0010:0000:0000:0000:0001', 'type': 'static', 'control': 'auto'}, {'address': '10.17.0.10', 'netmask': '255.255.0.0', 'type': 'static', 'control': 'auto'}], 'mac_address': 'ee:90:f2:c6:dc:db', 'type': 'physical'}, {'name': 'eth1', 'subnets': [{'address': '10.132.92.131', 'netmask': '255.255.0.0', 'gateway': '10.132.0.1', 'type': 'static', 'control': 'auto'}], 'mac_address': '1a:b6:7c:24:5e:cd', 'type': 'physical'}, {'address': ['2001:4860:4860::8844', '2001:4860:4860::8888', '8.8.8.8'], 'type': 'nameserver'}]} |
359 | +2017-04-10 17:36:11,668 - util.py[DEBUG]: Writing to /etc/network/interfaces.d/50-cloud-init.cfg - wb: [420] 868 bytes |
360 | +2017-04-10 17:36:11,669 - main.py[DEBUG]: [local] Exiting. datasource DataSourceDigitalOcean not in local mode. |
361 | +2017-04-10 17:36:11,674 - util.py[DEBUG]: Reading from /proc/uptime (quiet=False) |
362 | + |
363 | +---------------------------------------------------------------------------------------------- |
364 | +From 'dmesg': |
365 | +Apr 10 17:36:11 ubuntu systemd[1]: Started Initial cloud-init job (pre-networking). |
366 | +Apr 10 17:36:12 ubuntu systemd[1]: Started LSB: AppArmor initialization. |
367 | +Apr 10 17:36:12 ubuntu systemd[1]: Reached target Network (Pre). |
368 | +Apr 10 17:36:12 ubuntu systemd[1]: Starting Raise network interfaces... |
369 | +Apr 10 17:36:13 ubuntu ifup[1099]: Waiting for DAD... Done |
370 | +Apr 10 17:36:13 ubuntu ifup[1099]: RTNETLINK answers: File exists |
371 | +Apr 10 17:36:13 ubuntu ifup[1099]: Failed to bring up eth1. |
372 | + |
373 | +---------------------------------------------------------------------------------------------- |
374 | +$ sudo journalctl -xe -u networking |
375 | +Apr 10 17:36:12 ubuntu systemd[1]: Starting Raise network interfaces... |
376 | +-- Subject: Unit networking.service has begun start-up |
377 | +-- Defined-By: systemd |
378 | +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel |
379 | +-- |
380 | +-- Unit networking.service has begun starting up. |
381 | +Apr 10 17:36:13 ubuntu ifup[1099]: Waiting for DAD... Done |
382 | +Apr 10 17:36:13 ubuntu ifup[1099]: RTNETLINK answers: File exists |
383 | +Apr 10 17:36:13 ubuntu ifup[1099]: Failed to bring up eth1. |
384 | +Apr 10 17:36:13 ubuntu systemd[1]: networking.service: Main process exited, code=exited, status=1/FAILURE |
385 | +Apr 10 17:36:13 ubuntu systemd[1]: Failed to start Raise network interfaces. |
386 | +-- Subject: Unit networking.service has failed |
387 | +-- Defined-By: systemd |
388 | +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel |
389 | +-- |
390 | +-- Unit networking.service has failed. |
391 | +-- |
392 | + |
393 | diff --git a/bugs/lp-1682160.txt b/bugs/lp-1682160.txt |
394 | new file mode 100644 |
395 | index 0000000..d794a45 |
396 | --- /dev/null |
397 | +++ b/bugs/lp-1682160.txt |
398 | @@ -0,0 +1,34 @@ |
399 | +https://bugs.launchpad.net/ubuntu/+source/cloud-init/+bug/1682160 |
400 | +http://pad.lv/1674766 |
401 | + |
402 | +=== Begin SRU Template === |
403 | +[Impact] |
404 | +update-grub-legacy-ec2 fails on system with missing /etc/fstab. |
405 | + |
406 | +[Test Case] |
407 | + |
408 | +Mimic missing /etc/fstab config using lxc-proposed-snapshot from |
409 | + https://git.launchpad.net/~smoser/cloud-init/+git/sru-info/tree/bin/lxc-proposed-snapshot |
410 | + |
411 | +It publishes an image to lxd with proposed enabled and cloud-init upgraded. |
412 | + |
413 | +$ for release in xenial yakkety zesty; do |
414 | +$ ref=$release-proposed |
415 | +$ lxc-proposed-snapshot --proposed --publish $release $ref |
416 | +$ lxc init $ref $name |
417 | +$ lxc start $name |
418 | +$ sleep 10 |
419 | +$ lxc exec $name apt install grub-legacy-ec2 |
420 | +$ lxc exec $name mv /etc/fstab /etc/fstab.orig |
421 | +$ lxc exec $name dpkg-reconfigure grub-legacy-ec2 |
422 | + |
423 | +# Ensure error message does not exist "This error is probably caused by an invalid /etc/fstab" |
424 | + |
425 | +[Regression Potential] |
426 | +Low. oneliner in a script |
427 | + |
428 | +[Other Info] |
429 | +Upstream commit: |
430 | + https://git.launchpad.net/cloud-init/commit/?id=fd9f36267541 |
431 | + |
432 | +=== End SRU Template === |
433 | diff --git a/bugs/lp-1684349.txt b/bugs/lp-1684349.txt |
434 | new file mode 100644 |
435 | index 0000000..718eb75 |
436 | --- /dev/null |
437 | +++ b/bugs/lp-1684349.txt |
438 | @@ -0,0 +1,181 @@ |
439 | +http://pad.lv/1684349 |
440 | +https://bugs.launchpad.net/ubuntu/+source/cloud-init/+bug/1684349 |
441 | + |
442 | + |
443 | +=== Begin SRU Template === |
444 | +[Impact] |
445 | +On Openstack instances, when rendering sysconfig output, cloud-init |
446 | +would stacktrace due to a TypeError. |
447 | +This affects runtime only when rendering sysconfig networking, which |
448 | +is what is used on CentOS and RedHat systems. |
449 | + |
450 | +[Test Case] |
451 | +The basic idea below is: |
452 | + a.) launch an instance with proposed version of cloud-init. |
453 | + b.) inside instance, get cloud-init's network rendering tool from trunk |
454 | + c.) run the rendering tool against a config that failed before. |
455 | + d.) check rendered netplan config to verify it has the correct format. |
456 | + The failed output would have 'addresses' with a format like: |
457 | + 172.19.1.34/255.255.255.0 |
458 | + The expected output would be 'cidr' format: |
459 | + 172.19.1.34/24 |
460 | + |
461 | +## launch an instance. |
462 | +$ release=xenial |
463 | +$ ref=$release-proposed |
464 | +$ lxc-proposed-snapshot --proposed --publish $release $ref |
465 | +$ lxc launch $ref $name |
466 | +$ lxc exec $name |
467 | + |
468 | +## get render tool |
469 | +% wget https://git.launchpad.net/~cloud-init-dev/cloud-init/plain/tools/net-convert.py -O net-convert.py |
470 | + |
471 | +## write the network_data.json |
472 | +% cat > simple-ipv6.yaml <<EOF |
473 | +version: 1 |
474 | +config: |
475 | + - type: physical |
476 | + name: eth0 |
477 | + subnets: |
478 | + - type: static |
479 | + address: "2000:192:168::5" |
480 | + netmask: 64 |
481 | + routes: |
482 | + - netmask: 0 |
483 | + gateway: "2000:192:168::1" |
484 | + network: "::" |
485 | +EOF |
486 | + |
487 | +## run the converter |
488 | +% ./net-convert.py --network-data=simple-ipv6.yaml \ |
489 | + --kind=yaml --output-kind=eni --directory=out.d |
490 | + |
491 | +## check the output |
492 | +% cat out.d/etc/network/interfaces |
493 | +auto lo |
494 | +iface lo inet loopback |
495 | + |
496 | +auto eth0 |
497 | +iface eth0 inet6 static |
498 | + address 2000:192:168::5 |
499 | + netmask 64 |
500 | + post-up route add -A inet6 default gw 2000:192:168::1 || true |
501 | + pre-down route del -A inet6 default gw 2000:192:168::1 || true |
502 | + |
503 | +## show the cloud-init versions |
504 | +% dpkg-query --show cloud-init |
505 | +... |
506 | + |
507 | +[Regression Potential] |
508 | +The fix here was just to make a common networking method accept |
509 | +a string input as intended rather than only an integer. |
510 | + |
511 | +The common code changes could shake out other failures in the networking |
512 | +path. |
513 | + |
514 | +[Other Info] |
515 | +Upstream commit at |
516 | + https://git.launchpad.net/cloud-init/commit/?id=16a7302f6a |
517 | + |
518 | +lxc-proposed-snapshot is |
519 | + https://git.launchpad.net/~smoser/cloud-init/+git/sru-info/tree/bin/lxc-proposed-snapshot |
520 | +It publishes an image to lxd with proposed enabled and cloud-init upgraded. |
521 | +=== End SRU Template === |
522 | + |
523 | +mask2cidr error with integer value - argument of type 'int' is not iterable |
524 | + |
525 | +~~~ |
526 | +def mask2cidr(mask): |
527 | + if ':' in str(mask): |
528 | + return ipv6mask2cidr(mask) |
529 | + elif '.' in mask: |
530 | + return ipv4mask2cidr(mask) |
531 | + else: |
532 | + return mask |
533 | +~~~ |
534 | + |
535 | +is not type safe. It tries to take into account that this can be a prefix (so it does not contain ':' not '.' and then return mask. The problem is that if mask is an integer, then this returns: |
536 | + |
537 | +~~~ |
538 | +Traceback (most recent call last): |
539 | + File "/usr/lib/python2.7/site-packages/cloudinit/cmd/main.py", line 513, in status_wrapper |
540 | + ret = functor(name, args) |
541 | + File "/usr/lib/python2.7/site-packages/cloudinit/cmd/main.py", line 269, in main_init |
542 | + init.apply_network_config(bring_up=bool(mode != sources.DSMODE_LOCAL)) |
543 | + File "/usr/lib/python2.7/site-packages/cloudinit/stages.py", line 641, in apply_network_config |
544 | + return self.distro.apply_network_config(netcfg, bring_up=bring_up) |
545 | + File "/usr/lib/python2.7/site-packages/cloudinit/distros/__init__.py", line 150, in apply_network_config |
546 | + dev_names = self._write_network_config(netconfig) |
547 | + File "/usr/lib/python2.7/site-packages/cloudinit/distros/rhel.py", line 59, in _write_network_config |
548 | + ns = parse_net_config_data(netconfig) |
549 | + File "/usr/lib/python2.7/site-packages/cloudinit/net/network_state.py", line 32, in parse_net_config_data |
550 | + nsi.parse_config(skip_broken=skip_broken) |
551 | + File "/usr/lib/python2.7/site-packages/cloudinit/net/network_state.py", line 205, in parse_config |
552 | + handler(self, command) |
553 | + File "/usr/lib/python2.7/site-packages/cloudinit/net/network_state.py", line 78, in decorator |
554 | + return func(self, command, *args, **kwargs) |
555 | + File "/usr/lib/python2.7/site-packages/cloudinit/net/network_state.py", line 239, in handle_physical |
556 | + subnet['netmask'] = mask2cidr(subnet['netmask']) |
557 | + File "/usr/lib/python2.7/site-packages/cloudinit/net/network_state.py", line 441, in mask2cidr |
558 | + elif '.' in mask: |
559 | +~~~ |
560 | + |
561 | +Made a modification to the code to troubleshoot this: |
562 | +~~~ |
563 | + # convert subnet ipv6 netmask to cidr as needed |
564 | + subnets = command.get('subnets') |
565 | + print subnets |
566 | + if subnets: |
567 | + for subnet in subnets: |
568 | + if subnet['type'] == 'static': |
569 | + if 'netmask' in subnet and ':' in subnet['address']: |
570 | + subnet['netmask'] = mask2cidr(subnet['netmask']) |
571 | + for route in subnet.get('routes', []): |
572 | + if 'netmask' in route: |
573 | + route['netmask'] = mask2cidr(route['netmask']) |
574 | +~~~ |
575 | + |
576 | +This error can be hit on RHEL when running the following 2x (don't know why 2x): |
577 | + |
578 | + rm -Rf /var/lib/cloud/data/* ; cloud-init --force init |
579 | + |
580 | +On the second run, this will be returned: |
581 | +~~~ |
582 | +Traceback (most recent call last): |
583 | + File "/usr/lib/python2.7/site-packages/cloudinit/cmd/main.py", line 513, in status_wrapper |
584 | + ret = functor(name, args) |
585 | + File "/usr/lib/python2.7/site-packages/cloudinit/cmd/main.py", line 269, in main_init |
586 | + init.apply_network_config(bring_up=bool(mode != sources.DSMODE_LOCAL)) |
587 | + File "/usr/lib/python2.7/site-packages/cloudinit/stages.py", line 641, in apply_network_config |
588 | + return self.distro.apply_network_config(netcfg, bring_up=bring_up) |
589 | + File "/usr/lib/python2.7/site-packages/cloudinit/distros/__init__.py", line 150, in apply_network_config |
590 | + dev_names = self._write_network_config(netconfig) |
591 | + File "/usr/lib/python2.7/site-packages/cloudinit/distros/rhel.py", line 59, in _write_network_config |
592 | + ns = parse_net_config_data(netconfig) |
593 | + File "/usr/lib/python2.7/site-packages/cloudinit/net/network_state.py", line 32, in parse_net_config_data |
594 | + nsi.parse_config(skip_broken=skip_broken) |
595 | + File "/usr/lib/python2.7/site-packages/cloudinit/net/network_state.py", line 205, in parse_config |
596 | + handler(self, command) |
597 | + File "/usr/lib/python2.7/site-packages/cloudinit/net/network_state.py", line 78, in decorator |
598 | + return func(self, command, *args, **kwargs) |
599 | + File "/usr/lib/python2.7/site-packages/cloudinit/net/network_state.py", line 239, in handle_physical |
600 | + subnet['netmask'] = mask2cidr(subnet['netmask']) |
601 | + File "/usr/lib/python2.7/site-packages/cloudinit/net/network_state.py", line 441, in mask2cidr |
602 | + elif '.' in mask: |
603 | +TypeError: argument of type 'int' is not iterable |
604 | +------------------------------------------------------------ |
605 | +[{u'routes': [{u'netmask': u'0.0.0.0', u'network': u'0.0.0.0', u'gateway': u'192.168.0.1'}], u'netmask': u'255.255.255.0', u'type': 'static', 'ipv4': True, 'address': u'192.168.0.11'}, {u'routes': [{u'netmask': 0, u'network': u'::', u'gateway': u'2000:192:168::1'}], u'netmask': 64, 'ipv6': True, u'type': 'static', 'address': u'2000:192:168::4'}] |
606 | +~~~ |
607 | + |
608 | +not the `u'netmask': 64` integer |
609 | + |
610 | +This can be fixed by changing the code to: |
611 | +~~~ |
612 | +def mask2cidr(mask): |
613 | + if ':' in str(mask): |
614 | + return ipv6mask2cidr(mask) |
615 | + elif '.' in str(mask): |
616 | + return ipv4mask2cidr(mask) |
617 | + else: |
618 | + return mask |
619 | +~~~ |
620 | diff --git a/bugs/lp-1685810.txt b/bugs/lp-1685810.txt |
621 | new file mode 100644 |
622 | index 0000000..b15f7a3 |
623 | --- /dev/null |
624 | +++ b/bugs/lp-1685810.txt |
625 | @@ -0,0 +1,40 @@ |
626 | +http://pad.lv/1685810 |
627 | +https://bugs.launchpad.net/ubuntu/+source/cloud-init/+bug/1685810 |
628 | + |
629 | +=== Begin SRU Template === |
630 | +[Impact] |
631 | +Warning message for nova-lxd images in openstack clouds due to no valid datasource found. |
632 | + |
633 | +[Test Case] |
634 | +# It downloads a cloud image of a given release, and then creates a -proposed |
635 | +image with cloud-init upgraded. |
636 | +wget https://git.launchpad.net/~smoser/cloud-init/+git/sru-info/plain/bin/lxc-proposed-snapshot |
637 | +chmod 755 get-proposed-image |
638 | + |
639 | +source novarc |
640 | + |
641 | +for release in xenial yakkety zesty do; |
642 | + ref=$release-proposed; |
643 | + lxc-proposed-snapshot --proposed --publish $release $ref; |
644 | + lxc image export $ref .; |
645 | + imagefile=`ls -tr *gz | tail -n 1` |
646 | + mkdir $ref; |
647 | + cd $ref; |
648 | + tar -zxvf ../$imagefile; |
649 | + cd rootfs; |
650 | + tar zcvf $ref.tar.gz *; |
651 | + #upload raw image to your cloud |
652 | + openstack image create --disk-format raw --container-format bare --file $ref.tar.gz testing/$ref.tar.gz; |
653 | + openstack server create --image testing/$ref.tar.gz --flavor=m1.tiny lxd-$release --key-name <your-key>; |
654 | + nova floating-ip-create; |
655 | + nova foating-ip-associate <server> <address>; |
656 | + ssh ubuntu@<address> 'sudo DEBUG_LEVEL=2 DI_LOG=stderr /usr/lib/cloud-init/ds-identify --force 2>&1 | grep Found'; # single datasource: OpenStack |
657 | +done |
658 | + |
659 | +[Regression Potential] |
660 | +Low as this only addresses the warning by correctly identifying the OpenStack cloud datasource. |
661 | + |
662 | + |
663 | +[Other Info] |
664 | + |
665 | +=== End SRU Template === |
666 | diff --git a/bugs/lp-1685935.txt b/bugs/lp-1685935.txt |
667 | new file mode 100644 |
668 | index 0000000..4d4fb50 |
669 | --- /dev/null |
670 | +++ b/bugs/lp-1685935.txt |
671 | @@ -0,0 +1,18 @@ |
672 | + |
673 | +http://pad.lv/1685935 |
674 | +https://bugs.launchpad.net/ubuntu/+source/cloud-init/+bug/1685935 |
675 | + |
676 | + |
677 | +=== Begin SRU Template === |
678 | +[Impact] |
679 | +Minor tweak to Makefile target make deb to announce missing devscripts package dependency in developer environments. |
680 | + |
681 | +[Test Case] |
682 | +No test case as this Makefile and related bddeb script are developer tools and aren't part of cloud-init deb package. |
683 | + |
684 | +[Regression Potential] |
685 | +None |
686 | +[Other Info] |
687 | + |
688 | +=== End SRU Template === |
689 | + |
690 | diff --git a/bugs/lp-1687485.txt b/bugs/lp-1687485.txt |
691 | new file mode 100644 |
692 | index 0000000..4dd858f |
693 | --- /dev/null |
694 | +++ b/bugs/lp-1687485.txt |
695 | @@ -0,0 +1,24 @@ |
696 | +http://pad.lv/1687485 |
697 | +https://bugs.launchpad.net/ubuntu/+source/cloud-init/+bug/1687485 |
698 | + |
699 | + |
700 | +=== Begin SRU Template === |
701 | +[Impact] |
702 | +This code path is not applicable to Ubuntu. |
703 | +The bug resolved properly detecting and raising ValueErrors if multiple default |
704 | +gateways were defined in ipv4 or or ipv6 addresses for sysconfig |
705 | +(Redhat/centos) format. |
706 | + |
707 | +[Test Case] |
708 | +Launch an instance on lxd, make sure it has network. |
709 | + |
710 | +[Regression Potential] |
711 | +Changes to network rendering could have negatively affected Ubuntu |
712 | +the test above is valid to check that that didn't go horribly wrong. |
713 | + |
714 | +[Other Info] |
715 | +Upstream commit: |
716 | + https://git.launchpad.net/cloud-init/commit/?id=dd03bb411c9a6f10854a3bbc3223b204c3d4d174 |
717 | + |
718 | +=== End SRU Template === |
719 | + |
720 | diff --git a/bugs/lp-1689346.txt b/bugs/lp-1689346.txt |
721 | new file mode 100644 |
722 | index 0000000..1b191bb |
723 | --- /dev/null |
724 | +++ b/bugs/lp-1689346.txt |
725 | @@ -0,0 +1,121 @@ |
726 | +http://pad.lv/1689346 |
727 | +https://bugs.launchpad.net/ubuntu/+source/cloud-init/+bug/1689346 |
728 | + |
729 | + |
730 | +=== Begin SRU Template === |
731 | +[Impact] |
732 | +On Openstack instances, cloud-init incorrectly rendered netplan |
733 | +configuration files. The result is that networking does not work |
734 | +as expected. |
735 | + |
736 | +Note that this is not a default configuration on any Ubuntu provided images. |
737 | +Default images use ifupdown (eni) rendering which did not have this issue. |
738 | + |
739 | +[Test Case] |
740 | +The basic idea below is: |
741 | + a.) launch an instance with proposed version of cloud-init. |
742 | + b.) inside instance, get cloud-init's network rendering tool from trunk |
743 | + c.) run the rendering tool against a config that failed before. |
744 | + d.) check rendered netplan config to verify it has the correct format. |
745 | + The failed output would have 'addresses' with a format like: |
746 | + 172.19.1.34/255.255.255.0 |
747 | + The expected output would be 'cidr' format: |
748 | + 172.19.1.34/24 |
749 | + |
750 | +## launch an instance. |
751 | +$ release=xenial |
752 | +$ ref=$release-proposed |
753 | +$ lxc-proposed-snapshot --proposed --publish $release $ref |
754 | +$ lxc init $ref $name |
755 | + |
756 | +## get render tool |
757 | +$ wget https://git.launchpad.net/~cloud-init-dev/cloud-init/plain/tools/net-convert.py -O net-convert.py |
758 | + |
759 | +## write the network_data.json |
760 | +$ cat >network_data.json <<EOF |
761 | +{ |
762 | + "links": [ |
763 | + {"ethernet_mac_address": "aa:ab:ac:ad:ae:00", |
764 | + "id": "tap1a", "type": "phy", "vif_id": "1a81968a"} |
765 | + ], |
766 | + "networks": [ |
767 | + {"id": "network0", "ip_address": "172.19.1.34", "link": "tap1a", |
768 | + "netmask": "255.255.255.0", "network_id": "dacd568d", "type": "ipv4", |
769 | + "routes": [ |
770 | + {"gateway": "172.19.3.254", "netmask": "0.0.0.0", |
771 | + "network": "0.0.0.0"}]} |
772 | + ], |
773 | + "services": [{"address": "172.19.0.12", "type": "dns"}] |
774 | +} |
775 | +EOF |
776 | + |
777 | +## run the converter |
778 | +$ ./net-convert.py --network-data=network_data.json \ |
779 | + --kind=network_data.json --output-kind=netplan \ |
780 | + -m eth1,aa:ab:ac:ad:ae:00 --directory=./out.d |
781 | + |
782 | + |
783 | +## check the output |
784 | +$ cat out.d/etc/netplan/50-cloud-init.yaml |
785 | +network: |
786 | + version: 2 |
787 | + ethernets: |
788 | + eth1: |
789 | + addresses: |
790 | + - 172.19.1.34/24 |
791 | + match: |
792 | + macaddress: aa:ab:ac:ad:ae:00 |
793 | + nameservers: |
794 | + addresses: |
795 | + - 172.19.0.12 |
796 | + routes: |
797 | + - to: 0.0.0.0/0 |
798 | + via: 172.19.3.254 |
799 | + set-name: eth1 |
800 | + |
801 | +## show the cloud-init versions |
802 | +$ dpkg-query --show cloud-init |
803 | +... |
804 | + |
805 | +[Regression Potential] |
806 | +The change is fairly safe in that it basically renders: |
807 | + 172.19.1.34/24 |
808 | +instead of |
809 | + 172.19.1.34/255.255.255.0 |
810 | + |
811 | +The previous rendering just plain did not work as it is not valid |
812 | +input for netplan. So the regression path there should be low. |
813 | + |
814 | +The common code changes could shake out other failures in the networking |
815 | +path. |
816 | + |
817 | +[Other Info] |
818 | +Upstream commit at |
819 | + https://git.launchpad.net/cloud-init/commit/?id=16a7302f6a |
820 | + |
821 | +lxc-proposed-snapshot is |
822 | + https://git.launchpad.net/~smoser/cloud-init/+git/sru-info/tree/bin/lxc-proposed-snapshot |
823 | +It publishes an image to lxd with proposed enabled and cloud-init upgraded. |
824 | +=== End SRU Template === |
825 | + |
826 | + |
827 | +networking data josn has: |
828 | + |
829 | +"ip_address" : "104.130.20.155", |
830 | +"netmask" : "255.255.255.0" |
831 | + |
832 | +"ip_address" : "10.184.3.234", |
833 | +"netmask" : "255.255.240.0", |
834 | + |
835 | +that got rendered into nplan as: |
836 | + - 104.130.20.155/255.255.255.0 |
837 | + - 10.184.3.234/255.255.240.0 |
838 | + |
839 | +which it failed to parse |
840 | + |
841 | +Stderr: Error in network definition //etc/netplan/50-cloud-init.yaml line 32 column 12: invalid prefix length in address '104.130.20.155/255.255.255.0' |
842 | + |
843 | +I believe nplan is expecing CIDR notation of /24 or some such. I belive the current plan is to fix cloud-init to generate /24 cidr notation in the nplan renderer. |
844 | + |
845 | +This needs SRU into xenial. |
846 | + |
847 | diff --git a/bugs/lp-1689944.txt b/bugs/lp-1689944.txt |
848 | new file mode 100644 |
849 | index 0000000..4b4daaf |
850 | --- /dev/null |
851 | +++ b/bugs/lp-1689944.txt |
852 | @@ -0,0 +1,136 @@ |
853 | +http://pad.lv/1689944 |
854 | +https://bugs.launchpad.net/ubuntu/+source/cloud-init/+bug/1689944 |
855 | + |
856 | + |
857 | +=== Begin SRU Template === |
858 | +[Impact] |
859 | +Cloud-init when running in Ubuntu core does not recognize it is |
860 | +running on a 'snappy. As a result the snappy specific code paths are not |
861 | +taken. |
862 | + |
863 | +[Test Case] |
864 | +There are fairly extensive unit tests added to cover the code path |
865 | +that has been added to detect when system is snappy. See the upstream |
866 | +commit link below for that. Those tests run on package build, so |
867 | +the fact that this is in the archive means those have run. |
868 | + |
869 | +In addition to that we will: |
870 | +a.) boot an instance of Ubuntu in lxd with cloud-init from proposed |
871 | + to verify it is not regressed. |
872 | +b.) craft an lxd instance with /etc/os-release that appears to be snappy. |
873 | + and then verify via log inspection that it thinks it is. |
874 | + |
875 | +The test is admittedly superficial, the real end test is having cloud-init |
876 | +inside a ubuntu core image and it recognizing that it is snappy there. |
877 | +That test is much more involved. |
878 | + |
879 | +## launch an instance |
880 | +$ release=xenial |
881 | +$ ref=$release-proposed |
882 | +$ lxc-proposed-snapshot --proposed --publish $release $ref |
883 | +$ lxc launch $ref $name |
884 | +$ lxc exec $name |
885 | + |
886 | +## let it boot |
887 | +$ sleep 10 |
888 | +## check log for warnings |
889 | +$ lxc exec $name -- cat /run/cloud-init/result.json |
890 | +{ |
891 | + "v1": { |
892 | + "datasource": "DataSourceNoCloud [seed=/var/lib/cloud/seed/nocloud-net][dsmode=net]", |
893 | + "errors": [] |
894 | + } |
895 | +} |
896 | + |
897 | +$ lxc exec $name -- grep WARN /var/log/cloud-init.log || echo no warnings |
898 | +no warnings |
899 | + |
900 | + |
901 | +## write to /etc/os-release so it thinks it is Ubuntu core. |
902 | +$ lxc exec $name -- sh -c 'echo ID=ubuntu-core >> /etc/os-release' |
903 | +$ lxc exec $name -- sh -c 'd=/etc/system-image; mkdir -p $d; cd $d; echo ubuntu-core > channel.ini' |
904 | + |
905 | +## Now clear the instance state so it thinks it is first boot. |
906 | +$ lxc exec $name -- sh -c 'rm -Rf /var/log/cloud-init*' |
907 | +$ lxc exec $name -- sh -xec 'cd /var/lib/cloud; mv seed .x; rm -Rf *; mv .x seed' |
908 | ++ cd /var/lib/cloud |
909 | ++ mv seed .x |
910 | ++ rm -Rf data handlers instance instances scripts sem |
911 | ++ mv .x seed |
912 | + |
913 | +$ lxc restart $name |
914 | +$ sleep 10 |
915 | +$ lxc exec $name -- grep "running on snappy" /var/log/cloud-init.log |
916 | +2017-06-01 20:53:24,346 - cc_apt_configure.py[DEBUG]: Nothing to do: No apt config and running on snappy |
917 | + |
918 | +[Regression Potential] |
919 | +The regression potential would be |
920 | +a.) cloud-init falsely identifies it is running on snappy when it is not. |
921 | +b.) cloud-init does not recognize it is on snappy when it is. |
922 | + |
923 | +[Other Info] |
924 | +Upstream commit at |
925 | + https://git.launchpad.net/cloud-init/commit/?id=4bcc947301b |
926 | + |
927 | +lxc-proposed-snapshot is |
928 | + https://git.launchpad.net/~smoser/cloud-init/+git/sru-info/tree/bin/lxc-proposed-snapshot |
929 | +It publishes an image to lxd with proposed enabled and cloud-init upgraded. |
930 | + |
931 | +=== End SRU Template === |
932 | + |
933 | +Recent core snap images (edge channel revision 1886) do not contain the previously known files used to detect that a system is ubuntu core. |
934 | + |
935 | +In this bug, we should collect as many known paths/files/commands so we're hopefully defensive against further changes. |
936 | + |
937 | +Ubuntu Core 16 |
938 | +-------------- |
939 | +% cat etc/os-release |
940 | +NAME="Ubuntu Core" |
941 | +VERSION="16" |
942 | +ID=ubuntu-core |
943 | +PRETTY_NAME="Ubuntu Core 16" |
944 | +VERSION_ID="16" |
945 | +HOME_URL="http://www.snapcraft.io/" |
946 | +BUG_REPORT_URL="http://bugs.launchpad.net/snappy/" |
947 | + |
948 | +% snap version |
949 | +snap 2.24+201704201952.git.2ba71ec~ubuntu16.04.1 |
950 | +snapd 2.24+201704201952.git.2ba71ec~ubuntu16.04.1 |
951 | +series 16 |
952 | +kernel 4.4.0-59-generic |
953 | + |
954 | +% lsb_release -rd |
955 | +bash: lsb_release: command not found |
956 | + |
957 | +% test -e /writable/system-data/var/lib/snapd; echo $? |
958 | +0 |
959 | + |
960 | +Ubuntu 16.04 (Classic) |
961 | +----------------------- |
962 | + % cat /etc/os-release |
963 | +NAME="Ubuntu" |
964 | +VERSION="16.04.2 LTS (Xenial Xerus)" |
965 | +ID=ubuntu |
966 | +ID_LIKE=debian |
967 | +PRETTY_NAME="Ubuntu 16.04.2 LTS" |
968 | +VERSION_ID="16.04" |
969 | +HOME_URL="http://www.ubuntu.com/" |
970 | +SUPPORT_URL="http://help.ubuntu.com/" |
971 | +BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/" |
972 | +VERSION_CODENAME=xenial |
973 | +UBUNTU_CODENAME=xenial |
974 | + |
975 | +% snap version |
976 | +snap unknown |
977 | +snapd 2.24.1 |
978 | +series 16 |
979 | +ubuntu 16.04 |
980 | +kernel 4.4.0-75-generic |
981 | + |
982 | +% lsb_release -rd |
983 | +Description: Ubuntu 16.04.2 LTS |
984 | +Release: 16.04 |
985 | + |
986 | +% test -e /writable/system-data/var/lib/snapd; echo $? |
987 | +1 |
988 | + |
989 | diff --git a/bugs/lp-1691551.txt b/bugs/lp-1691551.txt |
990 | new file mode 100644 |
991 | index 0000000..ed3e18f |
992 | --- /dev/null |
993 | +++ b/bugs/lp-1691551.txt |
994 | @@ -0,0 +1,41 @@ |
995 | +http://pad.lv/1691551 |
996 | +https://bugs.launchpad.net/ubuntu/+source/cloud-init/+bug/1691551 |
997 | + |
998 | + |
999 | +=== Begin SRU Template === |
1000 | +[Impact] |
1001 | +Warnings are not suppressed when /var/lib/cloud/instance/warnings/.skip exists. |
1002 | + |
1003 | +[Test Case] |
1004 | +if [ ! -f lxc-proposed-snapshot ]; then |
1005 | + wget https://git.launchpad.net/~smoser/cloud-init/+git/sru-info/plain/bin/lxc-proposed-snapshot |
1006 | + chmod 755 lxc-proposed-snapshot |
1007 | +fi |
1008 | + |
1009 | +for release in xenial yakkety zesty; do |
1010 | + ref=$release-proposed; |
1011 | + echo "$release START --------------"; |
1012 | + ./lxc-proposed-snapshot --proposed --install ntp --publish $release $ref; |
1013 | + lxc init $ref test-$release; |
1014 | + lxc start test-$release; |
1015 | + sleep 10 |
1016 | + # Create a warning |
1017 | + lxc exec test-$release -- sh -c 'd=/var/lib/cloud/instance/warnings/; mkdir -p $d; echo "WARNING WARNING FOO" > "$d/warn-foo"' |
1018 | + # Validate warning exists |
1019 | + echo -n "Warning should exist on login: " |
1020 | + lxc exec test-$release -- bash --login </dev/null 2>&1 | grep WARNING |
1021 | + lxc exec test-$release -- touch /var/lib/cloud/instance/warnings/.skip |
1022 | + echo -n "Warning should now be suppressed on login: " |
1023 | + lxc exec test-$release -- bash --login </dev/null 2>&1 | grep WARNING |
1024 | + echo "$release DONE --------------"; |
1025 | +done |
1026 | + |
1027 | +[Regression Potential] |
1028 | +Minimal as the alternative warning suppression file works if you touch /root/.cloud-warnings.skip |
1029 | + |
1030 | +[Other Info] |
1031 | +Upstream commit: |
1032 | + https://git.launchpad.net/cloud-init/commit/?id=66e46d8ec290737fd74f50eb8c7672d627d9b516 |
1033 | + |
1034 | +=== End SRU Template === |
1035 | + |
1036 | diff --git a/bugs/lp-1692093.txt b/bugs/lp-1692093.txt |
1037 | new file mode 100644 |
1038 | index 0000000..82391c1 |
1039 | --- /dev/null |
1040 | +++ b/bugs/lp-1692093.txt |
1041 | @@ -0,0 +1,78 @@ |
1042 | +http://pad.lv/1692093 |
1043 | +https://bugs.launchpad.net/ubuntu/+source/cloud-init/+bug/1692093 |
1044 | + |
1045 | + |
1046 | +=== Begin SRU Template === |
1047 | +[Impact] |
1048 | +VMs on MS Azure have an ephemeral disk attached to them. |
1049 | +On first boot, cloud-init properly notices the empty ntfs filesystem and |
1050 | +reformats it ext4. |
1051 | + |
1052 | +After deallocating the instance or moving to a new azure host, |
1053 | +the filesystem reformat is logged, but isn't actually performed because |
1054 | +the udev device creation may not have settled. |
1055 | + |
1056 | +[Test Case] |
1057 | +Test cases: |
1058 | + 1. Deploy an instance VM on Azure |
1059 | + 2. Log in and ensure that the ephemeral disk is formatted and mounted to /mnt |
1060 | + 3. Via the portal you can "Redeploy" the VM to a new Azure Host (or alternatively stop and deallocate the VM for some time, and then restart/reallocate the VM). |
1061 | + |
1062 | +Expected Results:a |
1063 | + - Check cloud-init.log expecting to see logs from cc_disk_setup about the mount. |
1064 | + - After reallocation we expect the ephemeral disk to be formatted and mounted to /mnt. |
1065 | + |
1066 | +Actual Results: |
1067 | + - After reallocation /mnt is not mounted and there are errors in the cloud-init log. |
1068 | + |
1069 | +[Regression Potential] |
1070 | + |
1071 | +[Other Info] |
1072 | +Upstream commit at |
1073 | + https://git.launchpad.net/cloud-init/commit/?id=1815c6d801933c47a01f1a94a8e689824f6797b4 |
1074 | + |
1075 | +=== End SRU Template === |
1076 | + |
1077 | +Cloud Provider: Azure |
1078 | +dpkg-query -W -f='${Version}' cloud-init output: 0.7.9-90-g61eb03fe-0ubuntu1~16.04.1 |
1079 | + |
1080 | +When the following is specified in cloud init it seems to be re-executing fs and disk setup (even though run command does not seem to re run) |
1081 | +disk_setup: |
1082 | + /dev/sdc: |
1083 | + table_type: gpt |
1084 | + layout: true |
1085 | + overwrite: false |
1086 | + |
1087 | +fs_setup: |
1088 | +- label: etcd_disk |
1089 | + filesystem: ext4 |
1090 | + device: /dev/sdc1 |
1091 | + extra_opts: |
1092 | + - "-F" |
1093 | + - "-E" |
1094 | + - "lazy_itable_init=1,lazy_journal_init=1" |
1095 | + |
1096 | +mounts: |
1097 | +- - /dev/sdc1 |
1098 | + - /var/lib/etcddisk |
1099 | + |
1100 | +From cloud-init-output.log: |
1101 | + |
1102 | +Cloud-init v. 0.7.9 running 'modules:final' at Mon, 15 May 2017 18:33:15 +0000. Up 64.24 seconds. |
1103 | +Cloud-init v. 0.7.9 finished at Mon, 15 May 2017 18:34:46 +0000. Datasource DataSourceAzureNet [seed=/dev/sr0]. Up 155.34 seconds |
1104 | +Cloud-init v. 0.7.9 running 'init-local' at Tue, 16 May 2017 01:52:37 +0000. Up 10.33 seconds. |
1105 | +Cloud-init v. 0.7.9 running 'init' at Tue, 16 May 2017 01:52:39 +0000. Up 12.06 seconds. |
1106 | + |
1107 | +From cloud-init.log for the initial provision: |
1108 | + |
1109 | +2017-05-15 18:32:46,820 - cc_disk_setup.py[DEBUG]: Creating file system etcd_disk on /dev/sdc1 |
1110 | +2017-05-15 18:32:46,820 - cc_disk_setup.py[DEBUG]: Using cmd: /sbin/mkfs.ext4 /dev/sdc1 -L etcd_disk -F -E lazy_itable_init=1,lazy_journal_init=1 |
1111 | +2017-05-15 18:32:46,820 - util.py[DEBUG]: Running command ['/sbin/mkfs.ext4', '/dev/sdc1', '-L', 'etcd_disk', '-F', '-E', 'lazy_itable_init=1,lazy_journal_init=1'] with allowed return codes [0] (shell=False, capture=True) |
1112 | +2017-05-15 18:33:04,054 - util.py[DEBUG]: Creating fs for /dev/sdc1 took 17.237 seconds |
1113 | + |
1114 | +and after reboot (cloud-init.log) |
1115 | + |
1116 | +2017-05-16 01:52:40,245 - cc_disk_setup.py[DEBUG]: Creating file system etcd_disk on /dev/sdc1 |
1117 | +2017-05-16 01:52:40,246 - cc_disk_setup.py[DEBUG]: Using cmd: /sbin/mkfs.ext4 /dev/sdc1 -L etcd_disk -F -E lazy_itable_init=1,lazy_journal_init=1 |
1118 | +2017-05-16 01:52:40,246 - util.py[DEBUG]: Running command ['/sbin/mkfs.ext4', '/dev/sdc1', '-L', 'etcd_disk', '-F', '-E', 'lazy_itable_init=1,lazy_journal_init=1'] with allowed return codes [0] (shell=False, capture=True) |
1119 | + |
1120 | diff --git a/bugs/lp-1692097.txt b/bugs/lp-1692097.txt |
1121 | new file mode 100644 |
1122 | index 0000000..012fa07 |
1123 | --- /dev/null |
1124 | +++ b/bugs/lp-1692097.txt |
1125 | @@ -0,0 +1,24 @@ |
1126 | +http://pad.lv/1692097 |
1127 | +https://bugs.launchpad.net/ubuntu/+source/cloud-init/+bug/1692097 |
1128 | + |
1129 | + |
1130 | +Evergreen circ 2.12 |
1131 | + |
1132 | +The Grunt-driven minification and concatenation configuration is missing some parts and not doing all that it could to make JS file downloads more efficient. |
1133 | + |
1134 | +I have put together a patch to do the following: |
1135 | + |
1136 | +* Support minifying the core Evergreen services files (i.e. service/*.js). Previously, they were only concatenated. |
1137 | + |
1138 | +* Create one concatenated file for external dependencies (jquery, angular, etc.) and a separate concatenated file for Evergreen core service files. |
1139 | + |
1140 | +Included in this is replacing the template variable EXPAND_WEB_IMPORTS with EXPAND_WEB_DEP_IMPORTS and EXPAND_WEB_CORE_IMPORTS. |
1141 | + |
1142 | +The thinking here is that concatenating 3rd party files (which are already minified) is an easy win and should not complicate debugging, whereas minifying and concatenating EG service files will require more testing. It's also nice that you can expand one or the other as needed for debugging. |
1143 | + |
1144 | +The build creates evergreen-staff-client.0.0.1.deps.min.js and evergreen-staff-client.0.0.1.core.min.js |
1145 | + |
1146 | +* Various fixes to the Gruntfile, including missing dependency references and fixing some faulty assumptions from early iterations of the file. |
1147 | + |
1148 | +* Remove OpenSRF JS from the minify/concat processes. Otherwise, we have to add some variable replacements in Gruntfile to avoid hard-coding the path to the OpenSRF js files. Not sure it's worth it for 3 small-ish files. |
1149 | + |
1150 | diff --git a/bugs/lp-1693582.txt b/bugs/lp-1693582.txt |
1151 | new file mode 100644 |
1152 | index 0000000..6521a49 |
1153 | --- /dev/null |
1154 | +++ b/bugs/lp-1693582.txt |
1155 | @@ -0,0 +1,30 @@ |
1156 | + |
1157 | +http://pad.lv/1693582 |
1158 | +https://bugs.launchpad.net/ubuntu/+source/cloud-init/+bug/1693582 |
1159 | + |
1160 | + |
1161 | +=== Begin SRU Template === |
1162 | +[Impact] |
1163 | +This code path is only exercised on GCE datasources and in such cases get_data |
1164 | +would have not configured GCE-configured authorized ssh keys for the default user. |
1165 | + |
1166 | +[Test Case] |
1167 | +Launch an instance on GCE |
1168 | +Update cloud-init deb |
1169 | +run sudo cloud-init single -n cc_ntp |
1170 | +curl -H "Metadata-Flavor: Google" http://metadata.google.internal/computeMetadata/v1/instance/attributes/ssh-keys |
1171 | +validate .ssh/authorized_keys contains keys listed in the above curl |
1172 | + |
1173 | +[Regression Potential] |
1174 | +GCE instances with don't support instance/attributes/ssh-keys would only be able |
1175 | +to configure ssh access via #cloud-config ssh declarations. |
1176 | + |
1177 | + |
1178 | +[Other Info] |
1179 | +Upstream commit: |
1180 | + https://git.launchpad.net/cloud-init/commit/?id=d27c49391df343d25bd2e24045d2be6bf39c30d2 |
1181 | +GCE metadata docs: |
1182 | + https://cloud.google.com/compute/docs/storing-retrieving-metadata |
1183 | + |
1184 | +=== End SRU Template === |
1185 | + |