diff --git a/ChangeLog b/ChangeLog index d8a2038a..b81d7f6b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,662 +1,2 @@ -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 -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 -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 ' or '#include ' 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" - - 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 +1.9.0: + - open 1.9.0