ChangeLog 52.3 KB
Newer Older
Scott Moser's avatar
Scott Moser committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97
 - doc: adjust headers in tests documentation for consistency.
 - pep8: fix issue found in zesty build with pycodestyle.
 - integration test: initial commit of integration test framework
   [Wesley Wiedenmeier]
 - LICENSE: Allow dual licensing GPL-3 or Apache 2.0 [Jon Grimm]
 - Fix config order of precedence, putting kernel command line over system.
   [Wesley Wiedenmeier] (LP: #1582323)
 - pep8: whitespace fix
 - Update the list of valid ssh keys. [Michael Felt]
 - network: add ENI unit test for statically rendered routes.
 - set_hostname: avoid erroneously appending domain to fqdn
   [Lars Kellogg-Stedman] (LP: #1647910)
 - doc: change 'nobootwait' to 'nofail' in docs [Anhad Jai Singh]
 - Replace an expired link in code comment.
 - user-groups: fix bug when groups was provided as string and had spaces
   (LP: #1354694)
 - mounts: use mount -a again to accomplish mounts (LP: #1647708)
 - CloudSigma: Fix bug where datasource was not loaded in local search.
   (LP: #1648380)
 - when adding a user, strip whitespace from group list [Lars Kellogg-Stedman]
   (LP: #1354694)
 - fix decoding of utf-8 chars in yaml test
 - Replace usage of sys_netdev_info with read_sys_net (LP: #1625766)
 - fix problems found in python2.6 test.
 - OpenStack: extend physical types to include hyperv, hw_veb, vhost_user.
   (LP: #1642679)
 - tests: fix assumptions that expected no eth0 in system. (LP: #1644043)
 - net/cmdline: Consider ip= or ip6= on command line not only ip=
   (LP: #1639930)
 - Just use file logging by default (LP: #1643990)
 - Improve formatting for ProcessExecutionError [Wesley Wiedenmeier]
 - flake8: fix trailing white space
 - Doc: various documentation fixes [Sean Bright]
 - cloudinit/config/ Remove repos before adding
   [Brent Baude]
 - packages/redhat: fix rpm spec file.
 - main: set TZ in environment if not already set. [Ryan Harper]
 - Azure: No longer rely on walinux agent. (LP: #1538522)
 - disk_setup: Use sectors as unit when formatting MBR disks with sfdisk.
   [Daniel Watkins] (LP: #1460715)
 - Add activate_datasource, for datasource specific code paths. (LP: #1611074)
 - systemd: cloud-init-local use RequiresMountsFor=/var/lib/cloud
   (LP: #1642062)
 - systemd: cloud-init remove After=systemd-networkd-wait-online
 - systemd: cloud-init-local change Before basic to sysinit
 - pep8: fix style errors reported by pycodestyle 2.1.0
 - systemd: drop both Wants and After
 - systemd: networking service adjustments. (LP: #1636912)
 - systemd: replace, with
   (LP: #1629797)
 - doc: Add documentation on stages of boot.
 - doc: make the RST files consistently formated and other improvements.
 - Ec2: fix syntax and tox in previous commit.
 - Ec2: protect against non-dictionary in block-device-mapping.
 - doc: fixed example to not overwrite /etc/hosts [Chris Glass]
 - Doc: fix spelling / typos in ca_certs and scripts_vendor.
 - pyflakes: fix issue with pyflakes 1.3 found in ubuntu zesty-proposed.
 - net/cmdline: Further adjustments to ipv6 support [LaMont Jones]
   (LP: #1621615)
 - Add coverage dependency to bddeb to fix package build.
 - doc: improve HACKING.rst file
 - dmidecode: Allow dmidecode to be used on aarch64 [Robert Schweikert]
 - AliYun: Add new datasource for Ali-Cloud ECS [kaihuan.pkh]
 - Add coverage collection to tox unit tests. [Joshua Powers]
 - cc_users_groups: fix remaing call to ds.normalize_user_groups [Ryan Harper]
 - disk-config: udev settle after partitioning in gpt format. (LP: #1626243)
 - unittests: do not read system /etc/cloud/cloud.cfg.d (LP: #1635350)
 - Add documentation for logging features. [Wesley Wiedenmeier]
 - Add support for snap create-user on Ubuntu Core images. [Ryan Harper]
 - Fix sshd restarts for rhel distros. [Jim Gorz]
 - OpenNebula: replace 'ip' parsing with usage.
 - Fix python2.6 things found running in centos 6.
 - Move user/group functions to new ug_util file
 - DigitalOcean: enable usage of data source by default.
 - update Gentoo initscripts to run in the correct order [Matthew Thode]
 - MAAS: improve the main of datasource to look at kernel cmdline config.
 - tests: silence the Cheetah UserWarning about NameMapper C version.
 - systemd: Run cloud-init.service Before dbus.socket not
   [Daniel Watkins] (LP: #1629797)
 - systemd: run cloud-init.service Before dbus.service (LP: #1629797)
 - unittests: fix use of mock 2.0 'assert_called' when running make check
   [Ryan Harper]
 - Improve module documentation and doc cleanup. [Wesley Wiedenmeier]
 - lxd: Update network config for LXD 2.3 [Stéphane Graber]
 - DigitalOcean: use meta-data for network configruation [Ben Howard]
 - ntp: move to run after apt configuration (LP: #1628337)
 - Decode unicode types in decode_binary [Robert Schweikert]
 - systemd: Ensure that cloud-init-local happens before NetworkManager
 - Allow ephemeral drive to be unpartitioned [Paul Meyer]
 - subp: add 'update_env' argument
 - net: support reading ipv6 dhcp config from initramfs [LaMont Jones]
   (LP: #1621615, #1621507)
 - Adjust mounts and disk configuration for systemd. (LP: #1611074)
 - dmidecode: run dmidecode only on i?86 or x86_64 arch. [Robert Schweikert]
 - systemd: put After (LP: #1623868)

98 99
 - SmartOS: more improvements for network configuration
Scott Moser's avatar
Scott Moser committed
100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131
 - add ntp config module [Ryan Harper]
 - ChangeLog: update changelog for previous commit.
 - Add distro tags on config modules that should have it.
 - NoCloud: fix bug providing network-interfaces via meta-data. (LP: 1577982)
 - ConfigDrive: recognize 'tap' as a link type. (LP: #1610784)
 - Upgrade to a configobj package new enough to work
 - MAAS: add vendor-data support (LP: #1612313)
 - DigitalOcean: use the v1.json endpoint [Ben Howard]
 - Get Azure endpoint server from DHCP client [Brent Baude]
 - Apt: add new apt configuration format [Christian Ehrhardt]
 - distros: fix get_primary_arch method use of os.uname [Andrew Jorgensen]
 - Fix Gentoo net config generation [Matthew Thode]
 - Minor cleanups to atomic_helper and add unit tests.
 - azure dhclient-hook cleanups
 - network: fix get_interface_mac for bond slave, read_sys_net for ENOTDIR
 - Generate a dummy bond name for OpenStack (LP: #1605749)
 - add install option for openrc [Matthew Thode]
 - Add a module that can configure spacewalk.
 - python2.6: fix dict comprehension usage in _lsb_release.
 - apt-config: allow both old and new format to be present.
   [Christian Ehrhardt] (LP: #1616831)
 - bddeb: add --release flag to specify the release in changelog.
 - salt minion: update default pki directory for newer salt minion.
   (LP: #1609899)
 - Fix typo in default keys for phone_home [Roland Sommer] (LP: #1607810)
 - apt config conversion: treat empty string as not provided.  (LP: #1621180)
 - tests: cleanup tempdirs in apt_source tests
 - systemd: Better support package and upgrade. (LP: #1576692, #1621336)
 - remove obsolete .bzrignore
 - DataSourceOVF: fix user-data as base64 with python3 (LP: #1619394)
 - Allow link type of null in network_data.json [Jon Grimm] (LP: #1621968)

Scott Moser's avatar
Scott Moser committed
132 133
 - open 0.7.7
 - Digital Ocean: add datasource for Digital Ocean. [Neal Shrader]
 - expose uses_systemd as a distro function (fix rhel7)
 - fix broken 'output' config (LP: #1387340)
 - begin adding cloud config module docs to config modules (LP: #1383510)
138 139
 - retain trailing eol from template files (sources.list) when
   rendered with jinja (LP: #1355343)
 - Only use datafiles and initsys addon outside virtualenvs
 - Fix the digital ocean test case on python 2.6
142 143
 - Increase the usefulness, robustness, configurability of the chef module
   so that it is more useful, more documented and better for users
 - Fix how '=' signs are not handled that well in ssh_utils (LP: #1391303)
145 146 147
 - Be more tolerant of ssh keys passed into 'ssh_authorized_keys'; allowing
   for list, tuple, set, dict, string types and warning on other unexpected
 - Update to use newer/better OMNIBUS_URL for chef module
 - GCE: Allow base64 encoded user-data (LP: #1404311) [Wayne Witzell III]
 - GCE: use short hostname rather than fqdn (LP: #1383794) [Ben Howard]
 - systemd: make init stage run before login prompts shown [Steve Langasek]
152 153
 - hostname: on first boot apply hostname to be same as is written for
   persistent hostname.  (LP: #1246485)
 - remove usage of dmidecode on linux in favor of /sys interface [Ben Howard]
155 156 157
 - python3 support [Barry Warsaw, Daniel Watkins, Josh Harlow] (LP: #1247132)
 - support managing gpt partitions in disk config [Daniel Watkins]
 - Azure: utilze gpt support for ephemeral formating [Daniel Watkins]
158 159
 - CloudStack: support fetching password from virtual router [Daniel Watkins]
   (LP: #1422388)
 - readurl, read_file_or_url returns bytes, user must convert as necessary
 - SmartOS: use v2 metadata service (LP: #1436417) [Daniel Watkins]
 - NoCloud: fix local datasource claiming found without explicit dsmode
 - Snappy: add support for installing snappy packages and configuring.
164 165
 - systemd: use network-online instead of (LP: #1440180)
   [Steve Langasek]
166 167
 - Add functionality to fixate the uid of a newly added user.
 - Don't overwrite the hostname if the user has changed it after we set it.
 - GCE datasource does not handle instance ssh keys (LP: 1403617)
169 170
 - sysvinit: make cloud-init-local run before network (LP: #1275098)
   [Surojit Pathak]
 - Azure: do not re-set hostname if user has changed it (LP: #1375252)
 - Fix exception when running with no arguments on Python 3. [Daniel Watkins]
 - Centos: detect/expect use of systemd on centos 7. [Brian Rak]
 - Azure: remove dependency on walinux-agent [Daniel Watkins]
 - EC2: know about eu-central-1 availability-zone (LP: #1456684)
 - Azure: remove password from on-disk ovf-env.xml (LP: #1443311) [Ben Howard]
 - Doc: include information on user-data in OpenStack [Daniel Watkins]
178 179
 - Systemd: check for systemd using sd_booted symantics (LP: #1461201)
   [Lars Kellogg-Stedman]
180 181
 - Add an rh_subscription module to handle registration of Red Hat instances.
   [Brent Baude]
 - cc_apt_configure: fix importing keys under python3 (LP: #1463373)
 - cc_growpart: fix specification of 'devices' list (LP: #1465436)
 - CloudStack: fix password setting on cloudstack > 4.5.1 (LP: #1464253)
 - GCE: fix determination of availability zone (LP: #1470880)
 - ssh: generate ed25519 host keys (LP: #1461242)
187 188
 - distro mirrors: provide datasource to mirror selection code to support
   GCE regional mirrors. (LP: #1470890)
 - add udev rules that identify ephemeral device on Azure (LP: #1411582)
 - _read_dmi_syspath: fix bad log message causing unintended exception
 - rsyslog: add additional configuration mode (LP: #1478103)
 - status_wrapper in main: fix use of print_exc when handling exception
 - reporting: add reporting module for web hook or logging of events.
 - NoCloud: fix consumption of vendordata (LP: #1493453)
 - power_state_change: support 'condition' to disable or enable poweroff
 - ubuntu fan: support for config and installing of ubuntu fan (LP: #1504604)
 - Azure: support extracting SSH key values from ovf-env.xml (LP: #1506244)
 - AltCloud: fix call to udevadm settle (LP: #1507526)
199 200
 - Ubuntu templates: modify sources.list template to provide same sources
   as install from server or desktop ISO. (LP: #1177432)
 - cc_mounts: use 'nofail' if system uses systemd. (LP: #1514485)
 - Azure: get instance id from dmi instead of SharedConfig (LP: #1506187)
203 204
 - systemd/power_state: fix power_state to work even if cloud-final
   exited non-zero (LP: #1449318)
205 206
 - SmartOS: Add support for Joyent LX-Brand Zones (LP: #1540965)
   [Robert C Jennings]
207 208
 - systemd: support using systemd-detect-virt to detect container
   (LP: #1539016) [Martin Pitt]
 - docs: fix lock_passwd documentation [Robert C Jennings]
210 211
 - Azure: Handle escaped quotes in WALinuxAgentShim.find_endpoint.
   (LP: #1488891) [Dan Watkins]
Scott Moser's avatar
Scott Moser committed
 - lxd: add support for setting up lxd using 'lxd init' (LP: #1522879)
213 214
 - Add Image Customization Parser for VMware vSphere Hypervisor
   Support. [Sankar Tanguturi]
215 216
 - timezone: use a symlink rather than copy for /etc/localtime
   unless it is already a file (LP: #1543025).
 - Enable password changing via a hashed string [Alex Sirbu]
 - Added BigStep datasource [Alex Sirbu]
 - No longer run pollinate in seed_random (LP: #1554152)
220 221
 - groups: add defalt user to 'lxd' group.  Create groups listed
   for a user if they do not exist. (LP: #1539317)
 - dmi data: fix failure of reading dmi data for unset dmi values
 - doc: mention label for nocloud datasource must be 'cidata' [Peter Hurley]
224 225
 - ssh_pwauth: fix module to support 'unchanged' and match behavior
   described in documentation [Chris Cosby]
226 227
 - quickly check to see if the previous instance id is still valid to
   avoid dependency on network metadata service on every boot (LP: #1553815)
228 229
 - support network configuration in cloud-init --local with support
   device naming via
Scott Moser's avatar
Scott Moser committed
230 231
 - FreeBSD: add support for installing packages, setting password and
   timezone.  Change default user to 'freebsd'. [Ben Arblaster]
 - locale: list unsupported environment settings in warning (LP: #1558069)
 - disk_setup: correctly send --force to mkfs on block devices (LP: #1548772)
 - chef: fix chef install from gems (LP: #1553345)
 - systemd: do not specify After of obsolete (LP: #1536964)
 - centos: Ensure that resolve conf object is written as a str (LP: #1479988)
 - chef: straighten out validation_cert and validation_key (LP: #1568940)
 - phone_home: allow usage of fqdn (LP: #1566824) [Ollie Armstrong]
239 240
 - cloudstack: Only use DHCPv4 lease files as a datasource (LP: #1576273)
   [Wido den Hollander]
241 242
 - Paths: fix instance path if datasource's id has a '/'. (LP: #1575938)
   [Robert Jennings]
Scott Moser's avatar
Scott Moser committed
 - Ec2: do not retry requests for user-data path on 404.
244 245
 - settings on the kernel command line (cc:) override all local settings
   rather than only those in /etc/cloud/cloud.cfg (LP: #1582323)
 - Improve merging documentation [Daniel Watkins]
247 248
 - apt sources: support inserting key/key-id only, custom sources.list,
   long gpg key fingerprints with spaces, and dictionary format (LP: #1574113)
249 250
 - SmartOS: datasource improvements and support for metadata service
   providing networking information.
251 252 253 254
 - Datasources: centrally handle 'dsmode' and no longer require datasources
   to "pass" if modules_init should be executed with network access.
 - ConfigDrive: improved support for networking information from
   a network_data.json or older interfaces formated network_config.
 - Change missing Cheetah log warning to debug [Andrew Jorgensen]
 - Remove trailing dot from GCE metadata URL (LP: #1581200) [Phil Roche]
 - support network rendering to sysconfig (for centos and RHEL)
 - write_files: if no permissions are given, just use default without warn.
 - user_data: fix error when user-data is not utf-8 decodable (LP: #1532072)
 - fix mcollective module with python3 (LP: #1597699) [Sergii Golovatiuk] 

Scott Moser's avatar
Scott Moser committed
262 263
 - open 0.7.6
 - Enable vendordata on CloudSigma datasource (LP: #1303986)
265 266
 - Poll on /dev/ttyS1 in CloudSigma datasource only if dmidecode says
   we're running on cloudsigma (LP: #1316475) [Kiril Vladimiroff]
 - SmartOS test: do not require existance of /dev/ttyS1. [LP: #1316597]
268 269
 - doc: fix user-groups doc to reference plural ssh-authorized-keys
   (LP: #1327065) [Joern Heissler]
 - fix 'make test' in python 2.6
271 272
 - support jinja2 as a templating engine.  Drop the hard requirement on
   cheetah.  This helps in python3 effort. (LP: #1219223)
273 274
 - change install path for systemd files to /lib/systemd/system
   [Dimitri John Ledkov]
275 276
 - change trunk debian packaging to use pybuild and drop cdbs.
   [Dimitri John Ledkov]
 - SeLinuxGuard: remove invalid check that looked for stat.st_mode in os.lstat.
 - do not write comments in /etc/timezone (LP: #1341710)
 - ubuntu: provide 'ubuntu-init-switch' module to aid in systemd testing.
 - status/result json: remove 'end' entry which was always null
281 282
 - systemd: make cloud-init block ssh service startup to guarantee keys
   are generated. [Jordan Evans] (LP: #1333920)
283 284
 - default settings: fix typo resulting in OpenStack and GCE not working
   unless config explicitly provided (LP: #1329583) [Garrett Holmstrom])
 - fix rendering resolv.conf if no 'options' are provided (LP: #1328953)
 - docs: fix disk-setup to reference 'table_type' [Rail Aliiev] (LP: #1313114)
287 288
 - ssh_authkey_fingerprints: fix bug that prevented disabling the module.
   (LP: #1340903) [Patrick Lucas]
 - no longer use pylint as a checker, fix pep8 [Jay Faulkner].
 - Openstack: do not load some urls twice.
 - FreeBsd: fix initscripts and add working config file [Harm Weites]
292 293
 - Datasource: fix broken logic to provide hostname if datasource does not
   provide one
 - Improved and less verbose logging.
 - resizefs: first check that device is writable.
296 297
 - configdrive: fix reading of vendor data to be like metadata service reader.
   [Jay Faulkner]
 - resizefs: fix broken background resizing [Jay Faulkner] (LP: #1338614)
299 300
 - cc_grub_dpkg: fix EC2 hvm instances to avoid prompt on grub update.
   (LP: #1336855)
 - FreeBsd: support config drive datasource [Joseph bajin]
 - cc_mounts: support creating a swap file
 - DigitalOcean & GCE: fix get_hostname consistency
Scott Moser's avatar
Scott Moser committed
304 305
 - open 0.7.5
 - Add a debug log message around import failures
307 308
 - add a 'debug' module for easily printing out some information about
   datasource and cloud-init [Shraddha Pandhe]
309 310
 - support running apt with 'eatmydata' via configuration token
   apt_get_wrapper (LP: #1236531).
311 312
 - convert paths provided in config-drive 'files' to string before writing
   (LP: #1260072).
313 314
 - Azure: minor changes in logging output. ensure filenames are strings (not
315 316
 - config/cloud.cfg.d/05_logging.cfg: provide a default 'output' setting, to
   redirect cloud-init stderr and stdout /var/log/cloud-init-output.log.
317 318
 - drop support for resizing partitions with parted entirely (LP: #1212492).
   This was broken as it was anyway.
 - add support for vendordata in SmartOS and NoCloud datasources.
 - drop dependency on boto for crawling ec2 metadata service.
321 322
 - add 'Requires' on sudo (for OpenNebula datasource) in rpm specs, and
   'Recommends' in the debian/ [Vlastimil Holer]
323 324
 - if mount_info reports /dev/root is a device path for /, then convert
   that to a device via help of kernel cmdline.
325 326
 - configdrive: consider partitions as possible datasources if they have
   theh correct filesystem label. [Paul Querna]
Harm Weites's avatar
Harm Weites committed
 - initial freebsd support [Harm Weites]
 - fix in is_ipv4 to accept IP addresses with a '0' in them.
 - Azure: fix issue when stale data in /var/lib/waagent (LP: #1269626)
330 331
 - skip config_modules that declare themselves only verified on a set of
   distros.  Add them to 'unverified_modules' list to run anyway.
 - Add CloudSigma datasource [Kiril Vladimiroff]
Scott Moser's avatar
Scott Moser committed
333 334
 - Add initial support for Gentoo and Arch distributions [Nate House]
 - Add GCE datasource [Vaidas Jablonskis]
335 336
 - Add native Openstack datasource which reads openstack metadata
   rather than relying on EC2 data in openstack metadata service.
337 338
 - SmartOS, AltCloud: disable running on arm systems due to bug
   (LP: #1243287, #1285686) [Oleg Strikov]
339 340
 - Allow running a command to seed random, default is 'pollinate -q'
   (LP: #1286316) [Dustin Kirkland]
341 342
 - Write status to /run/cloud-init/status.json for consumption by
   other programs (LP: #1284439)
343 344
 - Azure: if a reboot causes ephemeral storage to be re-provisioned
   Then we need to re-format it. (LP: #1292648)
345 346
 - OpenNebula: support base64 encoded user-data
   [Enol Fernandez, Peter Kotcauer]
Scott Moser's avatar
Scott Moser committed
348 349 350
 - fix issue mounting 'ephemeral0' if ephemeral0 was an alias for a
   partitioned block device with target filesystem on ephemeral0.1.
   (LP: #1236594)
 - fix DataSourceAzure incompatibility with 2.6 (LP: #1232175)
352 353
 - fix power_state_change config module so that example works.  Improve
   its documentation and add reference to 'timeout'
 - support apt-add-archive with 'cloud-archive:' format.  (LP: #1244355)
 - Change SmartOS verb for availability zone (LP: #1249124)
 - documentation fix for boothooks to use 'cloud-init-per'
357 358
 - fix resizefs module by supporting kernels that do not have
   /proc/PID/mountinfo.  (LP: #1248625) [Tim Daly Jr.]
 - fix 'make rpm' by removing 0.6.4 entry from ChangeLog (LP: #1241834)
Scott Moser's avatar
Scott Moser committed
 - fix omnibus chef installer (LP: #1182265) [Chris Wing]
 - small fix for OVF datasource for iso transport on non-iso9660 filesystem
363 364
 - determine if upstart version is suitable for
   'initctl reload-configuration' (LP: #1124384).  If so, then invoke it.
Scott Moser's avatar
Scott Moser committed
   supports setting up instance-store disk with partition table and filesystem.
Scott Moser's avatar
Scott Moser committed
 - add Azure datasource.
 - add support for SuSE / SLES [Juerg Haefliger]
368 369
 - add a trailing carriage return to chpasswd input, which reportedly
   caused a problem on rhel5 if missing.
 - support individual MIME segments to be gzip compressed (LP: #1203203)
 - always finalize handlers even if processing failed (LP: #1203368)
 - support merging into cloud-config via jsonp. (LP: #1200476)
 - add datasource 'SmartOS' for Joyent Cloud.  Adds a dependency on serial.
Scott Moser's avatar
Scott Moser committed
374 375 376
 - add 'log_time' helper to util for timing how long things take
   which also reads from uptime. uptime is useful as clock may change during
   boot due to ntp.
 - prefer growpart resizer to 'parted resizepart' (LP: #1212492)
378 379
 - support random data seed from config drive or azure, and a module
   'seed_random' to read that and write it to /dev/urandom.
Scott Moser's avatar
Scott Moser committed
 - add OpenNebula Datasource [Vlastimil Holer]
381 382
 - add 'cc_disk_setup' config module for paritioning disks and creating
   filesystems.  Useful if attached disks are not formatted (LP: #1218506)
Scott Moser's avatar
Scott Moser committed
383 384
 - Fix usage of libselinux-python when selinux is disabled. [Garrett Holmstrom]
 - multi_log: only write to /dev/console if it exists [Garrett Holmstrom]
385 386
 - config/cloud.cfg: add 'sudo' to list groups for the default user 
   (LP: #1228228)
 - documentation fix for use of 'mkpasswd' [Eric Nordlund]
 - respect /etc/growroot-disabled file (LP: #1234331)
Scott Moser's avatar
Scott Moser committed
Scott Moser's avatar
Scott Moser committed
 - add a debian watch file
 - add 'sudo' entry to ubuntu's default user (LP: #1080717)
Scott Moser's avatar
Scott Moser committed
 - fix resizefs module when 'noblock' was provided (LP: #1080985)
393 394
 - make sure there is no blank line before cloud-init entry in
   there are no blank lines in /etc/ca-certificates.conf (LP: #1077020)
 - fix sudoers writing when entry is a string (LP: #1079002)
396 397
 - tools/write-ssh-key-fingerprints: use '-s' rather than '--stderr'
   option (LP: #1083715)
 - make install of puppet configurable (LP: #1090205) [Craig Tracey]
 - support omnibus installer for chef [Anatoliy Dobrosynets]
400 401
 - fix bug where cloud-config in user-data could not modify system_info
   settings (LP: #1090482)
402 403 404 405
 - fix CloudStack DataSource to use Virtual Router as described by
   CloudStack documentation if it is available by searching through dhclient
   lease files.  If it is not available, then fall back to the default
   gateway. (LP: #1089989)
 - fix redaction of password field in log (LP: #1096417)
407 408
 - fix to cloud-config user setup.  Previously, lock_passwd was broken and
   all accounts would be locked unless 'system' was given (LP: #1096423).
409 410
 - Allow 'sr0' (or sr[0-9]) to be specified without /dev/ as a source for
   mounts. [Vlastimil Holer]
411 412
 - allow config-drive-data to come from a CD device by more correctly
   filtering out partitions.  (LP: #1100545)
Scott Moser's avatar
Scott Moser committed
413 414 415 416 417 418 419 420 421 422
 - setup docs to be available on read-the-docs (LP: #1093039)
 - add HACKING file for information on contributing
 - handle the legacy 'user:' configuration better, making it affect the
   configured OS default user (LP: #1100920)
 - Adding a resolv.conf configuration module (LP: #1100434).  Currently only
   working on redhat systems (no support for resolvconf)
 - support grouping linux distros into "os_families".  This allows a module
   to operate on the family (redhat or debian) rather than the distro (ubuntu,
   debian, fedora, rhel) (LP: #1100029)
 - fix /etc/hosts writing when templates are used (LP: #1100036)
424 425
 - add package versioning logic to package installation
   functionality (LP: #1108047)
426 427
 - fix documentation for write_files to correctly list 'permissions'
   rather than 'perms' (LP: #1111205)
 - cloud-init-container.conf: ensure /run/network before running ifquery
429 430
 - DataSourceNoCloud: allow user-data and meta-data to be specified
   in config (LP: #1115833).
431 432
 - improve debian support in sysvinit scripts, package build scripts, and
   split sources.list template to be distro specific.
 - support for resizing btrfs root filesystems [Blair Zajac]
434 435 436
 - fix issue when writing ssh keys to .ssh/authorized_keys (LP: #1136343)
 - upstart: cloud-init-nonet.conf trap the TERM signal, so that dmesg or other
   output does not get a 'killed by TERM signal' message.
 - support resizing partitions via growpart or parted (LP: #1136936)
 - allow specifying apt-get command in distro config ('apt_get_command')
439 440
 - support different and user-suppliable merging algorithms for cloud-config
   (LP: #1023179)
441 442
 - use python-requests rather than urllib2.  By using recent versions of
   python-requests, we get https support (LP: #1067888).
443 444
 - make apt-get invoke 'dist-upgrade' rather than 'upgrade' for
   package_upgrade. (LP: #1164147)
445 446
 - improvements for systemd with Fedora 18
 - workaround 2.6 kernel issue that stopped blkid from showing /dev/sr0
447 448
 - add new, backwards compatible merging syntax so merging of cloud-config
   can be more useful.

450 451 452
 - sysvinit: fix missing dependency in cloud-init job for RHEL 5.6 
 - config-drive: map hostname to local-hostname (LP: #1061964)
453 454
 - landscape: install landscape-client package if not installed.
   only take action if cloud-config is present (LP: #1066115)
 - cc_landscape: restart landscape after install or config (LP: #1070345)
456 457
 - multipart/archive.  do not fail on unknown headers in multipart
   mime or cloud-archive config (LP: #1065116).
458 459
 - tools/ avoid warning when user's shell is
   zsh (LP: #1073077)
 - fix stack trace when unknown user-data input had unicode (LP: #1075756)
Scott Moser's avatar
Scott Moser committed
461 462 463
 - split 'apt-update-upgrade' config module into 'apt-configure' and
   'package-update-upgrade-install'.  The 'package-update-upgrade-install'
   will be a cross distro module.
Joshua Harlow's avatar
Joshua Harlow committed
464 465 466 467
 - Cleanups:
   - Remove usage of paths.join, as all code should run through util helpers
   - Fix pylint complaining about tests folder '' not being found
   - Add a pylintrc file that is used instead options hidden in 'run_pylint'
Scott Moser's avatar
Scott Moser committed
468 469 470 471 472 473
 - fix bug where cloud-config from user-data could not affect system_info
   settings [revno 703] (LP: #1076811)
 - for write fqdn to system config for rh/fedora [revno 704]
 - add yaml/cloud config examples checking tool [revno 706]
 - Fix the merging of group configuration when that group configuration is a
   dict => members. [revno 707]
 - add yum_add_repo configuration module for adding additional yum repos
 - fix public key importing with config-drive-v2 datasource (LP: #1077700)
476 477
 - handle renaming and fixing up of marker names (LP: 1075980) [revno 710]
   this relieves that burden from the distro/packaging.
478 479 480 481 482 483 484 485
 - group config: fix how group members weren't being translated correctly
   when the group: [member, member...] format was used (LP: #1077245)
 - sysconfig: fix how the /etc/sysconfig/network should be using the fully
   qualified domain name instead of the partially qualified domain name
   which is used in the ubuntu/debian case (LP: #1076759)
 - fix how string escaping was not working when the string was a unicode
   string which was causing the warning message not to be written
   out (LP: #1075756)
486 487 488 489 490 491 492
 - for boto > 0.6.0 there was a lazy load of the metadata added, when
   cloud-init runs the usage of this lazy loading is hidden and since that lazy
   loading will be performed on future attribute access we must traverse the
   lazy loaded dictionary and force it to full expand so that if cloud-init
   blocks the ec2 metadata port the lazy loaded dictionary will continue
   working properly instead of trying to make additional url calls which will
   fail (LP: #1068801)
 - use a set of helper/parsing classes to perform system configuration
   for easier test.  (/etc/sysconfig, /etc/hostname, resolv.conf, /etc/hosts)
495 496
 - add power_state_change config module for shutting down stystem after
   cloud-init finishes. (LP: #1064665)
498 499 500 501
 - add a 'exception_cb' argument to 'wait_for_url'.  If provided, this
   method will be called back with the exception received and the message.
 - utilize the 'exception_cb' above to modify the oauth timestamp in 
   DataSourceMAAS requests if a 401 or 403 is received. (LP: #978127)
502 503
 - catch signals and exit rather than stack tracing
 - if logging fails, enable a fallback logger by patching the logging module
504 505 506
 - do not 'start networking' in cloud-init-nonet, but add
   cloud-init-container job that runs only if in container and emits
   net-device-added (LP: #1031065)
507 508
 - search only top level dns for 'instance-data' in 
   DataSourceEc2 (LP: #1040200)
Scott Moser's avatar
Scott Moser committed
 - add support for config-drive-v2 (LP:#1037567)
510 511
 - support creating users, including the default user.
   [Ben Howard] (LP: #1028503)
512 513
 - add apt_reboot_if_required to reboot if an upgrade or package installation
   forced the need for one (LP: #1038108)
514 515 516 517
 - allow distro mirror selection to include availability-zone (LP: #1037727)
 - allow arch specific mirror selection (select on arm)
   LP: #1028501
 - allow specification of security mirrors (LP: #1006963)
Scott Moser's avatar
Scott Moser committed
518 519
 - add the 'None' datasource (LP: #906669), which will allow jobs
   to run even if there is no "real" datasource found.
 - write ssh authorized keys to console, ssh_authkey_fingerprints
Scott Moser's avatar
Scott Moser committed
   config module [Joshua Harlow] (LP: #1010582)
 - Added RHEVm and vSphere support as source AltCloud [Joseph VLcek]
 - add write-files module (LP: #1012854)
Scott Moser's avatar
Scott Moser committed
524 525 526 527 528 529
 - Add setuptools + cheetah to debian package build dependencies (LP: #1022101)
 - Adjust the sysvinit local script to provide 'cloud-init-local' and have
   the cloud-config script depend on that as well.
 - Add the 'bzr' name to all packages built
 - Reduce logging levels for certain non-critical cases to DEBUG instead of the
   previous level of WARNING
530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554
 - unified binary that activates the various stages
   - Now using argparse + subcommands to specify the various CLI options
 - a stage module that clearly separates the stages of the different
   components (also described how they are used and in what order in the
   new unified binary)
 - user_data is now a module that just does user data processing while the
   actual activation and 'handling' of the processed user data is done via
   a separate set of files (and modules) with the main 'init' stage being the
   controller of this
   - creation of boot_hook, cloud_config, shell_script, upstart_job version 2
     modules (with classes that perform there functionality) instead of those
     having functionality that is attached to the cloudinit object (which
     reduces reuse and limits future functionality, and makes testing harder)
 - removal of global config that defined paths, shared config, now this is
   via objects making unit testing testing and global side-effects a non issue
 - creation of a '' 
   - this contains an abstraction for the 'lock' like objects that the various 
     module/handler running stages use to avoid re-running a given 
     module/handler for a given frequency. this makes it separated from 
     the actual usage of that object (thus helpful for testing and clear lines
     usage and how the actual job is accomplished)
     - a common 'runner' class is the main entrypoint using these locks to
       run function objects passed in (along with there arguments) and there
   - add in a 'paths' object that provides access to the previously global
555 556 557 558 559 560 561 562
     and/or config based paths (thus providing a single entrypoint object/type
     that provides path information)
       - this also adds in the ability to change the path when constructing 
       that path 'object' and adding in additional config that can be used to 
       alter the root paths of 'joins' (useful for testing or possibly useful
       in chroots?)
        - config options now avaiable that can alter the 'write_root' and the 
         'read_root' when backing code uses the paths join() function
563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597
   - add a config parser subclass that will automatically add unknown sections
     and return default values (instead of throwing exceptions for these cases)
   - a new config merging class that will be the central object that knows
     how to do the common configuration merging from the various configuration
     sources. The order is the following:
     - cli config files override environment config files
       which override instance configs which override datasource
       configs which override base configuration which overrides
       default configuration.
 - remove the passing around of the 'cloudinit' object as a 'cloud' variable
   and instead pass around an 'interface' object that can be given to modules
   and handlers as there cloud access layer while the backing of that
   object can be varied (good for abstraction and testing)
 - use a single set of functions to do importing of modules
 - add a function in which will search for a given set of module names with
   a given set of attributes and return those which are found
 - refactor logging so that instead of using a single top level 'log' that
   instead each component/module can use its own logger (if desired), this
   should be backwards compatible with handlers and config modules that used
   the passed in logger (its still passed in)
   - ensure that all places where exception are caught and where applicable
     that the util logexc() is called, so that no exceptions that may occur
     are dropped without first being logged (where it makes sense for this 
     to happen)
 - add a 'requires' file that lists cloud-init dependencies
   - applying it in package creation (bdeb and brpm) as well as using it
     in the modified to ensure dependencies are installed when
     using that method of packaging
 - add a '' that lists the active version (in code) so that code
   inside cloud-init can report the version in messaging and other config files
 - cleanup of subprocess usage so that all subprocess calls go through the
   subp() utility method, which now has an exception type that will provide
   detailed information on python 2.6 and 2.7
 - forced all code loading, moving, chmod, writing files and other system
   level actions to go through standard set of util functions, this greatly 
598 599
   helps in debugging and determining exactly which system actions cloud-init
   is performing
600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634
 - adjust url fetching and url trying to go through a single function that
   reads urls in the new 'url helper' file, this helps in tracing, debugging
   and knowing which urls are being called and/or posted to from with-in 
   cloud-init code
   - add in the sending of a 'User-Agent' header for all urls fetched that
     do not provide there own header mapping, derive this user-agent from
     the following template, 'Cloud-Init/{version}' where the version is the
     cloud-init version number
 - using prettytable for netinfo 'debug' printing since it provides a standard
   and defined output that should be easier to parse than a custom format
 - add a set of distro specific classes, that handle distro specific actions
   that modules and or handler code can use as needed, this is organized into
   a base abstract class with child classes that implement the shared 
   functionality. config determines exactly which subclass to load, so it can
   be easily extended as needed.
   - current functionality
      - network interface config file writing
      - hostname setting/updating
      - locale/timezone/ setting
      - updating of /etc/hosts (with templates or generically)
      - package commands (ie installing, removing)/mirror finding
      - interface up/down activating
   - implemented a debian + ubuntu subclass
   - implemented a redhat + fedora subclass
 - adjust the root 'cloud.cfg' file to now have distrobution/path specific 
   configuration values in it. these special configs are merged as the normal
   config is, but the system level config is not passed into modules/handlers
   - modules/handlers must go through the path and distro object instead
 - have the cloudstack datasource test the url before calling into boto to 
   avoid the long wait for boto to finish retrying and finally fail when
   the gateway meta-data address is unavailable
 - add a simple mock ec2 meta-data python based http server that can serve a
   very simple set of ec2 meta-data back to callers
      - useful for testing or for understanding what the ec2 meta-data 
        service can provide in terms of data or functionality
635 636 637 638
 - for ssh key and authorized key file parsing add in classes and util
   functions that maintain the state of individual lines, allowing for a
   clearer separation of parsing and modification (useful for testing and
639 640 641 642 643
 - add a set of 'base' init.d scripts that can be used on systems that do
   not have full upstart or systemd support (or support that does not match
   the standard fedora/ubuntu implementation)
   - currently these are being tested on RHEL 6.2
 - separate the datasources into there own subdirectory (instead of being
644 645 646
   a top-level item), this matches how config 'modules' and user-data
   'handlers' are also in there own subdirectory (thus helping new developers
   and others understand the code layout in a quicker manner)
647 648
 - add the building of rpms based off a new cli tool and template 'spec' file
   that will templatize and perform the necessary commands to create a source
649 650
   and binary package to be used with a cloud-init install on a 'rpm'
   supporting system
651 652 653
   - uses the new standard set of requires and converts those pypi requirements
     into a local set of package requirments (that are known to exist on RHEL
     systems but should also exist on fedora systems)
654 655 656 657 658
 - adjust the bdeb builder to be a python script (instead of a shell script)
   and make its 'control' file a template that takes in the standard set of
   pypi dependencies and uses a local mapping (known to work on ubuntu) to
   create the packages set of dependencies (that should also work on
   ubuntu-like systems)
659 660 661
 - pythonify a large set of various pieces of code
   - remove wrapping return statements with () when it has no effect
   - upper case all constants used
   - correctly 'case' class and method names (where applicable)
663 664 665 666 667 668
   - use os.path.join (and similar commands) instead of custom path creation
   - use 'is None' instead of the frowned upon '== None' which picks up a large
     set of 'true' cases than is typically desired (ie for objects that have
     there own equality)
   - use context managers on locks, tempdir, chdir, file, selinux, umask, 
     unmounting commands so that these actions do not have to be closed and/or
669 670
     cleaned up manually in finally blocks, which is typically not done and
     will eventually be a bug in the future
671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699
   - use the 'abc' module for abstract classes base where possible
      - applied in the datasource root class, the distro root class, and the
        user-data v2 root class
 - when loading yaml, check that the 'root' type matches a predefined set of
   valid types (typically just 'dict') and throw a type error if a mismatch
   occurs, this seems to be a good idea to do when loading user config files
 - when forking a long running task (ie resizing a filesytem) use a new util
   function that will fork and then call a callback, instead of having to
   implement all that code in a non-shared location (thus allowing it to be
   used by others in the future)
 - when writing out filenames, go through a util function that will attempt to
   ensure that the given filename is 'filesystem' safe by replacing '/' with
   '_' and removing characters which do not match a given whitelist of allowed
   filename characters
 - for the varying usages of the 'blkid' command make a function in the util
   module that can be used as the single point of entry for interaction with
   that command (and its results) instead of having X separate implementations
 - place the rfc 8222 time formatting and uptime repeated pieces of code in the
   util module as a set of function with the name 'time_rfc2822'/'uptime'
 - separate the pylint+pep8 calling from one tool into two indivudal tools so
   that they can be called independently, add make file sections that can be 
   used to call these independently
 - remove the support for the old style config that was previously located in
   '/etc/ec2-init/ec2-config.cfg', no longer supported!
 - instead of using a altered config parser that added its own 'dummy' section
   on in the 'mcollective' module, use configobj which handles the parsing of
   config without sections better (and it also maintains comments instead of
   removing them)
 - use the new defaulting config parser (that will not raise errors on sections
700 701
   that do not exist or return errors when values are fetched that do not
   exist) in the 'puppet' module
 - for config 'modules' add in the ability for the module to provide a list of 
703 704 705 706
   distro names which it is known to work with, if when ran and the distro
   being used name does not match one of those in this list, a warning will be
   written out saying that this module may not work correctly on this
707 708 709 710
 - for all dynamically imported modules ensure that they are fixed up before 
   they are used by ensuring that they have certain attributes, if they do not
   have those attributes they will be set to a sensible set of defaults instead
 - adjust all 'config' modules and handlers to use the adjusted util functions
   and the new distro objects where applicable so that those pieces of code can
712 713
   benefit from the unified and enhanced functionality being provided in that
   util module
714 715 716 717
 - fix a potential bug whereby when a #includeonce was encountered it would
   enable checking of urls against a cache, if later a #include was encountered
   it would continue checking against that cache, instead of refetching (which
   would likely be the expected case)
 - add a openstack/nova based pep8 extension utility ('') that allows
719 720
   for custom checks (along with the standard pep8 checks) to occur when
   running 'make pep8' and its derivatives
 - support relative path in AuthorizedKeysFile (LP: #970071).
 - make apt-get update run with --quiet (suitable for logging) (LP: #1012613)
 - cc_salt_minion: use package 'salt-minion' rather than 'salt' (LP: #996166)
 - use yaml.safe_load rather than yaml.load (LP: #1015818)
725 726
 - add sample systemd config files [Garrett Holmstrom]
 - add Fedora support [Garrent Holstrom] (LP: #883286)
 - fix bug in netinfo.debug_info if no net devices available (LP: #883367)
 - use python module hashlib rather than md5 to avoid deprecation warnings.
730 731 732
 - support configuration of mirror based on dns name ubuntu-mirror in
   local domain.
 - support setting of Acquire::HTTP::Proxy via 'apt_proxy'
733 734
 - DataSourceEc2: more resilliant to slow metadata service
   - config change: 'retries' dropped, 'max_wait' added, timeout increased
735 736
 - close stdin in all cloud-init programs that are launched at boot 
   (LP: #903993)
 - revert management of /etc/hosts to 0.6.1 style (LP: #890501, LP: #871966)
 - write full ssh keys to console for easy machine consumption (LP: #893400)
739 740 741
 - put INSTANCE_ID environment variable in bootcmd scripts
 - add 'cloud-init-per' script for easily running things with a given frequency
 - replace cloud-init-run-module with cloud-init-per
 - support configuration of landscape-client via cloud-config (LP: #857366)
743 744
 - part-handlers now get base64 decoded content rather than 2xbase64 encoded
   in the payload parameter. (LP: #874342)
 - add test case framework [Mike Milner] (LP: #890851)
 - fix pylint warnings [Juerg Haefliger] (LP: #914739)
747 748
 - add support for adding and deleting CA Certificates [Mike Milner] 
   (LP: #915232)
 - in ci-info lines, use '.' to indicate empty field for easier machine reading
 - support empty lines in "#include" files (LP: #923043)
 - support configuration of salt minions (Jeff Bauer) (LP: #927795)
 - DataSourceOVF: only search for OVF data on ISO9660 filesystems (LP: #898373)
753 754 755 756
 - DataSourceConfigDrive: support getting data from openstack config drive
   (LP: #857378)
 - DataSourceNoCloud: support seed from external disk of ISO or vfat
   (LP: #857378)
 - DataSourceNoCloud: support inserting /etc/network/interfaces
758 759
 - DataSourceMaaS: add data source for Ubuntu Machines as a Service (MaaS)
   (LP: #942061)
 - DataSourceCloudStack: add support for CloudStack datasource [Cosmin Luta]
761 762
 - add option 'apt_pipelining' to address issue with S3 mirrors 
   (LP: #948461) [Ben Howard]
 - warn on non-multipart, non-handled user-data [Martin Packman]
 - run resizefs in the background in order to not block boot (LP: #961226)
765 766
 - Fix bug in Chef support where validation_key was present in config, but
   'validation_cert' was not (LP: #960547)
767 768
 - Provide user friendly message when an invalid locale is set 
   [Ben Howard] (LP: #859814)
769 770
 - Support reading cloud-config from kernel command line parameter and
   populating local file with it, which can then provide data for DataSources
771 772
 - improve chef examples for working configurations on 11.10 and 12.04 
   [Lorin Hochstein] (LP: #960564)

774 775 776
 - fix bug where update was not done unless update was explicitly set.
   It would not be run if 'upgrade' or packages were set to be installed
777 778
 - fix bug in part-handler code, that prevented working part-handlers
   (LP: #739694)
779 780
 - fix bug in resizefs cloud-config that would cause trace based on
   failure of 'blkid /dev/root' (LP: #726938)
781 782
 - convert dos formated files to unix for user-scripts, boothooks,
   and upstart jobs (LP: #744965)
783 784
 - fix bug in seeding of grub dpkg configuration (LP: #752361) due
   to renamed devices in newer (natty) kernels (/dev/sda1 -> /dev/xvda1)
785 786
 - make metadata urls configurable, to support eucalyptus in
   STATIC or SYSTEM modes (LP: #761847)
 - support disabling byobu in cloud-config
788 789
 - run cc_ssh as a cloud-init module so it is guaranteed to run before
   ssh starts (LP: #781101)
790 791 792
 - make prefix for keys added to /root/.ssh/authorized_keys configurable
   and add 'no-port-forwarding,no-agent-forwarding,no-X11-forwarding'
   to the default (LP: #798505)
 - make 'cloud-config ready' command configurable (LP: #785551)
794 795 796
 - make fstab fields used to 'fill in' shorthand entries configurable
   This means you do not have to have 'nobootwait' in the values
   (LP: #785542)
797 798
 - read /etc/ssh/sshd_config for AuthorizedKeysFile rather than
   assuming ~/.ssh/authorized_keys (LP: #731849)
 - fix cloud-init in ubuntu lxc containers (LP: #800824)
 - sanitize hosts file for system's hostname to (LP: #802637)
 - add chef support (cloudinit/CloudConfig/ (LP: ##798844)
 - do not give trace on failure to resize in lxc container (LP: #800856)
 - increase the timeout on url gets for "seedfrom" values (LP: #812646)
Scott Moser's avatar
Scott Moser committed
 - do not write entries for ephemeral0 on t1.micro (LP: #744019)
805 806 807
 - support 'include-once' so that expiring or one-time use urls can
   be used for '#include' to provide sensitive data.
 - support for passing public and private keys to mcollective via cloud-config
808 809
 - support multiple staticly configured network devices, as long as
   all of them come up early (LP: #810044)
Scott Moser's avatar
Scott Moser committed
 - Changes to handling user data mean that:
811 812
   * boothooks will now run more than once as they were intended (and as
     bootcmd commands do)
Scott Moser's avatar
Scott Moser committed
   * cloud-config and user-scripts will be updated from user data every boot
814 815
 - Fix issue where 'isatty' would return true for apt-add-repository.
   apt-add-repository would get stdin which was attached to a terminal
816 817 818
   (/dev/console) and would thus hang when running during boot.  (LP: 831505)
   This was done by changing all users of util.subp to have None input unless
 - Add some debug info to the console when cloud-init runs.
820 821
   This is useful if debugging, IP and route information is printed to the 
 - change the mechanism for handling .ssh/authorized_keys, to update entries
823 824
   rather than appending.  This ensures that the authorized_keys that are
   being inserted actually do something (LP: #434076, LP: #833499)
 - log warning on failure to set hostname (LP: #832175)
 - upstart/cloud-init-nonet.conf: wait for all network interfaces to be up
   allow for the possibility of /var/run != /run.
828 829 830
 - DataSourceNoCloud, DataSourceOVF : do not provide a default hostname.
   This way the configured hostname of the system will be used if not provided
   by metadata (LP: #838280)
 - DataSourceOVF: change the default instance id to 'iid-dsovf' from 'nocloud'
832 833
 - Improve the OVF documentation, and provide a simple command line
   tool for creating a useful ISO file.

835 836
 - fix bug in fixing permission on /var/log/cloud-init.log (LP: #704509)
 - improve comment strings in rsyslog file tools/21-cloudinit.conf
838 839
 - add previous-instance-id and previous-datasource files to datadir
 - add 'datasource' file to instance dir
840 841
 - add setting of passwords and enabling/disabling of PasswordAuthentication
   for sshd.  By default no changes are done to sshd.
 - fix for puppet configuration options (LP: #709946) [Ryan Lane]
Scott Moser's avatar
Scott Moser committed
843 844
 - fix pickling of DataSource, which broke seeding.
 - turn resize_rootfs default to True
Scott Moser's avatar
Scott Moser committed
845 846
 - avoid mounts in DataSourceOVF if 'read' on device fails
   'mount /dev/sr0' for an empty virtual cdrom device was taking 18 seconds
847 848 849
 - add 'manual_cache_clean' option to select manual cleaning of
   the /var/lib/cloud/instance/ link, for a data source that might
   not be present on every boot
Scott Moser's avatar
Scott Moser committed
 - make DataSourceEc2 retries and timeout configurable
851 852
 - add helper routines for apt-get update and install
 - add 'bootcmd' like 'runcmd' to cloud-config syntax for running things early
853 854 855
 - move from '#opt_include' in config file format to conf_d.
   ie, now files in /etc/cloud.cfg.d/ is read rather than reading
   '#opt_include <filename>' or '#include <filename>' in cloud.cfg
856 857
 - allow /etc/hosts to be written from hosts.tmpl. which allows
   getting local-hostname into /etc/hosts (LP: #720440)
 - better handle startup if there is no eth0 (LP: #714807)
859 860
 - update rather than append in puppet config [Marc Cluet]
 - add cloud-config for mcollective [Marc Cluet]
Scott Moser's avatar
Scott Moser committed
862 863
 - change permissions of /var/log/cloud-init.log to accomodate
   syslog writing to it (LP: #704509)
 - rework of /var/lib/cloud layout
 - remove updates-check (LP: #653220)
 - support resizing / on first boot (enabled by default)
867 868 869 870 871 872 873 874 875 876 877 878
 - added support for running CloudConfig modules at cloud-init time
   rather than cloud-config time, and the new 'cloud_init_modules'
   entry in cloud.cfg to indicate which should run then.
   The driving force behind this was to have the rsyslog module
   able to run before rsyslog even runs so that a restart would
   not be needed (rsyslog on ubuntu runs on 'filesystem')
 - moved setting and updating of hostname to cloud_init_modules
   this allows the user to easily disable these from running.
   This also means:
   - the semaphore name for 'set_hostname' and 'update_hostname'
     changes to 'config_set_hostname' and 'config_update_hostname'
 - added cloud-config option 'hostname' for setting hostname
879 880 881 882 883 884 885 886 887 888 889
 - moved upstart/cloud-run-user-script.conf to upstart/cloud-final.conf
 - cloud-final.conf now runs runs cloud-config modules similar
   to cloud-config and cloud-init.
 - LP: #653271 
   - added writing of "boot-finished" to /var/lib/cloud/instance/boot-finished
     this is the last thing done, indicating cloud-init is finished booting
   - writes message to console with timestamp and uptime
 - write ssh keys to console as one of the last things done
   this is to ensure they don't get run off the 'get-console-ouptut' buffer
 - user_scripts run via cloud-final and thus semaphore renamed from
   user_scripts to config_user_scripts
890 891
 - add support for redirecting output of cloud-init, cloud-config, cloud-final
   via the config file, or user data config file
 - add support for posting data about the instance to a url (phone_home)
 - add minimal OVF transport (iso) support
894 895 896 897
 - make DataSources that are attempted dynamic and configurable from
   system config. changen "cloud_type: auto" as configuration for this
   to 'datasource_list: [ "Ec2" ]'.  Each of the items in that list
   must be modules that can be loaded by "DataSource<item>"
 - add 'timezone' option to cloud-config (LP: #645458)
899 900 901 902 903 904 905 906
 - Added an additional archive format, that can be used for multi-part
   input to cloud-init.  This may be more user friendly then mime-multipart
   See example in doc/examples/cloud-config-archive.txt (LP: #641504)
 - add support for reading Rightscale style user data (LP: #668400)
   and acting on it in cloud-config (
 - make the message on 'disable_root' more clear (LP: #672417)
 - do not require public key if private is given in ssh cloud-config 
   (LP: #648905)
# vi: syntax=text textwidth=79