summaryrefslogtreecommitdiff
path: root/ChangeLog
diff options
context:
space:
mode:
Diffstat (limited to 'ChangeLog')
-rw-r--r--ChangeLog776
1 files changed, 0 insertions, 776 deletions
diff --git a/ChangeLog b/ChangeLog
deleted file mode 100644
index bae982e3..00000000
--- a/ChangeLog
+++ /dev/null
@@ -1,776 +0,0 @@
-0.7.7:
- - 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)
- - 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
- - 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)
- - Be more tolerant of ssh keys passed into 'ssh_authorized_keys'; allowing
- for list, tuple, set, dict, string types and warning on other unexpected
- types
- - 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]
- - 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]
- - 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]
- - 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.
- - systemd: use network-online instead of network.target (LP: #1440180)
- [Steve Langasek]
- - 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)
- - 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]
- - Systemd: check for systemd using sd_booted symantics (LP: #1461201)
- [Lars Kellogg-Stedman]
- - 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)
- - 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)
- - 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)
- - systemd/power_state: fix power_state to work even if cloud-final
- exited non-zero (LP: #1449318)
- - SmartOS: Add support for Joyent LX-Brand Zones (LP: #1540965)
- [Robert C Jennings]
- - systemd: support using systemd-detect-virt to detect container
- (LP: #1539016) [Martin Pitt]
- - docs: fix lock_passwd documentation [Robert C Jennings]
- - Azure: Handle escaped quotes in WALinuxAgentShim.find_endpoint.
- (LP: #1488891) [Dan Watkins]
- - lxd: add support for setting up lxd using 'lxd init' (LP: #1522879)
- - Add Image Customization Parser for VMware vSphere Hypervisor
- Support. [Sankar Tanguturi]
- - 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)
- - 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]
- - ssh_pwauth: fix module to support 'unchanged' and match behavior
- described in documentation [Chris Cosby]
- - quickly check to see if the previous instance id is still valid to
- avoid dependency on network metadata service on every boot (LP: #1553815)
- - support network configuration in cloud-init --local with support
- device naming via systemd.link.
- - 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 syslog.target (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]
- - cloudstack: Only use DHCPv4 lease files as a datasource (LP: #1576273)
- [Wido den Hollander]
- - Paths: fix instance path if datasource's id has a '/'. (LP: #1575938)
- [Robert Jennings]
- - Ec2: do not retry requests for user-data path on 404.
- - 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]
- - apt sources: support inserting key/key-id only, custom sources.list,
- long gpg key fingerprints with spaces, and dictionary format (LP: #1574113)
- - SmartOS: datasource improvements and support for metadata service
- providing networking information.
- - 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]
-
-0.7.6:
- - open 0.7.6
- - Enable vendordata on CloudSigma datasource (LP: #1303986)
- - 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]
- - doc: fix user-groups doc to reference plural ssh-authorized-keys
- (LP: #1327065) [Joern Heissler]
- - fix 'make test' in python 2.6
- - support jinja2 as a templating engine. Drop the hard requirement on
- cheetah. This helps in python3 effort. (LP: #1219223)
- - change install path for systemd files to /lib/systemd/system
- [Dimitri John Ledkov]
- - 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
- - systemd: make cloud-init block ssh service startup to guarantee keys
- are generated. [Jordan Evans] (LP: #1333920)
- - 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)
- - 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]
- - 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.
- - configdrive: fix reading of vendor data to be like metadata service reader.
- [Jay Faulkner]
- - resizefs: fix broken background resizing [Jay Faulkner] (LP: #1338614)
- - 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
-0.7.5:
- - open 0.7.5
- - Add a debug log message around import failures
- - add a 'debug' module for easily printing out some information about
- datasource and cloud-init [Shraddha Pandhe]
- - support running apt with 'eatmydata' via configuration token
- apt_get_wrapper (LP: #1236531).
- - convert paths provided in config-drive 'files' to string before writing
- (LP: #1260072).
- - Azure: minor changes in logging output. ensure filenames are strings (not
- unicode).
- - 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.
- - 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.
- - add 'Requires' on sudo (for OpenNebula datasource) in rpm specs, and
- 'Recommends' in the debian/control.in [Vlastimil Holer]
- - if mount_info reports /dev/root is a device path for /, then convert
- that to a device via help of kernel cmdline.
- - configdrive: consider partitions as possible datasources if they have
- theh correct filesystem label. [Paul Querna]
- - 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)
- - 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]
- - Add initial support for Gentoo and Arch distributions [Nate House]
- - Add GCE datasource [Vaidas Jablonskis]
- - Add native Openstack datasource which reads openstack metadata
- rather than relying on EC2 data in openstack metadata service.
- - SmartOS, AltCloud: disable running on arm systems due to bug
- (LP: #1243287, #1285686) [Oleg Strikov]
- - Allow running a command to seed random, default is 'pollinate -q'
- (LP: #1286316) [Dustin Kirkland]
- - Write status to /run/cloud-init/status.json for consumption by
- other programs (LP: #1284439)
- - Azure: if a reboot causes ephemeral storage to be re-provisioned
- Then we need to re-format it. (LP: #1292648)
- - OpenNebula: support base64 encoded user-data
- [Enol Fernandez, Peter Kotcauer]
-0.7.4:
- - 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)
- - 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'
- - 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)
-0.7.3:
- - fix omnibus chef installer (LP: #1182265) [Chris Wing]
- - small fix for OVF datasource for iso transport on non-iso9660 filesystem
- - determine if upstart version is suitable for
- 'initctl reload-configuration' (LP: #1124384). If so, then invoke it.
- supports setting up instance-store disk with partition table and filesystem.
- - add Azure datasource.
- - add support for SuSE / SLES [Juerg Haefliger]
- - 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.
- - 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)
- - support random data seed from config drive or azure, and a module
- 'seed_random' to read that and write it to /dev/urandom.
- - add OpenNebula Datasource [Vlastimil Holer]
- - add 'cc_disk_setup' config module for paritioning disks and creating
- filesystems. Useful if attached disks are not formatted (LP: #1218506)
- - Fix usage of libselinux-python when selinux is disabled. [Garrett Holmstrom]
- - multi_log: only write to /dev/console if it exists [Garrett Holmstrom]
- - 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)
-0.7.2:
- - add a debian watch file
- - add 'sudo' entry to ubuntu's default user (LP: #1080717)
- - fix resizefs module when 'noblock' was provided (LP: #1080985)
- - 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)
- - 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]
- - fix bug where cloud-config in user-data could not modify system_info
- settings (LP: #1090482)
- - 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)
- - fix to cloud-config user setup. Previously, lock_passwd was broken and
- all accounts would be locked unless 'system' was given (LP: #1096423).
- - Allow 'sr0' (or sr[0-9]) to be specified without /dev/ as a source for
- mounts. [Vlastimil Holer]
- - allow config-drive-data to come from a CD device by more correctly
- filtering out partitions. (LP: #1100545)
- - setup docs to be available on read-the-docs
- https://cloudinit.readthedocs.org/en/latest/ (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)
- - add package versioning logic to package installation
- functionality (LP: #1108047)
- - fix documentation for write_files to correctly list 'permissions'
- rather than 'perms' (LP: #1111205)
- - cloud-init-container.conf: ensure /run/network before running ifquery
- - DataSourceNoCloud: allow user-data and meta-data to be specified
- in config (LP: #1115833).
- - 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]
- - 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')
- - support different and user-suppliable merging algorithms for cloud-config
- (LP: #1023179)
- - use python-requests rather than urllib2. By using recent versions of
- python-requests, we get https support (LP: #1067888).
- - make apt-get invoke 'dist-upgrade' rather than 'upgrade' for
- package_upgrade. (LP: #1164147)
- - improvements for systemd with Fedora 18
- - workaround 2.6 kernel issue that stopped blkid from showing /dev/sr0
- - add new, backwards compatible merging syntax so merging of cloud-config
- can be more useful.
-
-0.7.1:
- - sysvinit: fix missing dependency in cloud-init job for RHEL 5.6
- - config-drive: map hostname to local-hostname (LP: #1061964)
- - 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)
- - multipart/archive. do not fail on unknown headers in multipart
- mime or cloud-archive config (LP: #1065116).
- - tools/Z99-cloud-locale-test.sh: avoid warning when user's shell is
- zsh (LP: #1073077)
- - fix stack trace when unknown user-data input had unicode (LP: #1075756)
- - 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.
- - Cleanups:
- - Remove usage of paths.join, as all code should run through util helpers
- - Fix pylint complaining about tests folder 'helpers.py' not being found
- - Add a pylintrc file that is used instead options hidden in 'run_pylint'
- - 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)
- - handle renaming and fixing up of marker names (LP: 1075980) [revno 710]
- this relieves that burden from the distro/packaging.
- - 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)
- - 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)
- - add power_state_change config module for shutting down stystem after
- cloud-init finishes. (LP: #1064665)
-0.7.0:
- - 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)
- - catch signals and exit rather than stack tracing
- - if logging fails, enable a fallback logger by patching the logging module
- - 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)
- - search only top level dns for 'instance-data' in
- DataSourceEc2 (LP: #1040200)
- - add support for config-drive-v2 (LP:#1037567)
- - support creating users, including the default user.
- [Ben Howard] (LP: #1028503)
- - add apt_reboot_if_required to reboot if an upgrade or package installation
- forced the need for one (LP: #1038108)
- - allow distro mirror selection to include availability-zone (LP: #1037727)
- - allow arch specific mirror selection (select ports.ubuntu.com on arm)
- LP: #1028501
- - allow specification of security mirrors (LP: #1006963)
- - 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
- config module [Joshua Harlow] (LP: #1010582)
- - Added RHEVm and vSphere support as source AltCloud [Joseph VLcek]
- - add write-files module (LP: #1012854)
- - 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
- - 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 'helpers.py'
- - 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
- frequency
- - add in a 'paths' object that provides access to the previously global
- 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
- - 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 setup.py to ensure dependencies are installed when
- using that method of packaging
- - add a 'version.py' 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
- helps in debugging and determining exactly which system actions cloud-init
- is performing
- - 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
- - 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
- tracing)
- - 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
- 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)
- - 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
- and binary package to be used with a cloud-init install on a 'rpm'
- supporting system
- - 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)
- - 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)
- - 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)
- - 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
- cleaned up manually in finally blocks, which is typically not done and
- will eventually be a bug in the future
- - 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
- 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
- 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
- distrobution
- - 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
- benefit from the unified and enhanced functionality being provided in that
- util module
- - 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 ('hacking.py') that allows
- 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)
-0.6.3:
- - 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.
- - support configuration of mirror based on dns name ubuntu-mirror in
- local domain.
- - support setting of Acquire::HTTP::Proxy via 'apt_proxy'
- - DataSourceEc2: more resilliant to slow metadata service
- - config change: 'retries' dropped, 'max_wait' added, timeout increased
- - 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)
- - 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)
- - 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)
- - 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)
- - 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
- - DataSourceMaaS: add data source for Ubuntu Machines as a Service (MaaS)
- (LP: #942061)
- - DataSourceCloudStack: add support for CloudStack datasource [Cosmin Luta]
- - 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)
- - Fix bug in Chef support where validation_key was present in config, but
- 'validation_cert' was not (LP: #960547)
- - Provide user friendly message when an invalid locale is set
- [Ben Howard] (LP: #859814)
- - Support reading cloud-config from kernel command line parameter and
- populating local file with it, which can then provide data for DataSources
- - improve chef examples for working configurations on 11.10 and 12.04
- [Lorin Hochstein] (LP: #960564)
-
-0.6.2:
- - 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
- - fix bug in part-handler code, that prevented working part-handlers
- (LP: #739694)
- - fix bug in resizefs cloud-config that would cause trace based on
- failure of 'blkid /dev/root' (LP: #726938)
- - convert dos formated files to unix for user-scripts, boothooks,
- and upstart jobs (LP: #744965)
- - fix bug in seeding of grub dpkg configuration (LP: #752361) due
- to renamed devices in newer (natty) kernels (/dev/sda1 -> /dev/xvda1)
- - make metadata urls configurable, to support eucalyptus in
- STATIC or SYSTEM modes (LP: #761847)
- - support disabling byobu in cloud-config
- - run cc_ssh as a cloud-init module so it is guaranteed to run before
- ssh starts (LP: #781101)
- - 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)
- - make fstab fields used to 'fill in' shorthand entries configurable
- This means you do not have to have 'nobootwait' in the values
- (LP: #785542)
- - 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 127.0.1.1 (LP: #802637)
- - add chef support (cloudinit/CloudConfig/cc_chef.py) (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)
- - do not write entries for ephemeral0 on t1.micro (LP: #744019)
- - 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
- - support multiple staticly configured network devices, as long as
- all of them come up early (LP: #810044)
- - Changes to handling user data mean that:
- * boothooks will now run more than once as they were intended (and as
- bootcmd commands do)
- * cloud-config and user-scripts will be updated from user data every boot
- - Fix issue where 'isatty' would return true for apt-add-repository.
- apt-add-repository would get stdin which was attached to a terminal
- (/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
- specified
- - Add some debug info to the console when cloud-init runs.
- This is useful if debugging, IP and route information is printed to the
- console.
- - change the mechanism for handling .ssh/authorized_keys, to update entries
- 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.
- - 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'
- - Improve the OVF documentation, and provide a simple command line
- tool for creating a useful ISO file.
-
-0.6.1:
- - fix bug in fixing permission on /var/log/cloud-init.log (LP: #704509)
- - improve comment strings in rsyslog file tools/21-cloudinit.conf
- - add previous-instance-id and previous-datasource files to datadir
- - add 'datasource' file to instance dir
- - 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]
- - fix pickling of DataSource, which broke seeding.
- - turn resize_rootfs default to True
- - avoid mounts in DataSourceOVF if 'read' on device fails
- 'mount /dev/sr0' for an empty virtual cdrom device was taking 18 seconds
- - 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
- - make DataSourceEc2 retries and timeout configurable
- - add helper routines for apt-get update and install
- - add 'bootcmd' like 'runcmd' to cloud-config syntax for running things early
- - 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
- - 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)
- - update rather than append in puppet config [Marc Cluet]
- - add cloud-config for mcollective [Marc Cluet]
-0.6.0:
- - 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)
- - 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
- - 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
- - 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
- - 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)
- - 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 (cc_rightscale_userdata.py)
- - 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