summaryrefslogtreecommitdiff
path: root/ChangeLog
AgeCommit message (Collapse)Author
2015-10-14azure: support extracting SSH key values from ovf-env.xmlScott Moser
Azure has or will be offering shortly the ability to directly define the SSH key value instead of a fingerprint in the ovf-env.xml file. This patch favors defined SSH keys over the fingerprint method (LP: #1506244).
2015-10-09support configuring and installing the Ubuntu fan driverScott Moser
#cloud-config fan: config: | # fan 240 10.0.0.0/8 eth0/16 dhcp 10.0.0.0/8 eth1/16 dhcp off # fan 241 241.0.0.0/8 eth0/16 dhcp config_path: /etc/network/fan LP: #1504604
2015-09-08 power_state: support 'condition' argumentScott Moser
if 'condition' is provided to config in power_state, then consult it before powering off. This allows the user to shut down only if a condition is met, and leave the system in a debuggable state otherwise. An example is as simple as: power_state: mode: poweroff condition: ['sh', '-c', '[ -f /disable-poweroff ]']
2015-09-08NoCloud: fix consumption of vendor-dataScott Moser
the content of vendordata was was being assigned to vendordata, rather than vendordata_raw. The result was that it is not processed for includes or part handlers or other things as it is in other datasources. LP: #1493453
2015-08-07Add initial reporting module and eventsScott Moser
2015-07-30status_wrapper in main: fix use of print_exc when handling exceptionScott Moser
2015-07-28rsyslog: add new format of configScott Moser
new format of config is namespaced under top level 'rsyslog' rather than having 3 tokens in the top level namespace. Additionally added here are: * tests * support for legacy config * support for 'remotes' configuration allowing simple config like rsyslog: remotes: {'myremote': "192.168.1.1"}
2015-07-27_read_dmi_syspath: fix bad log message causing unintended exceptionScott Moser
2015-07-22mounts: support reliably detecting and using Azure ephemeral disksScott Moser
Azure's ephemeral disks are not guaranteed to be assigned the same name by the kernel every boot. This causes problems on ~2% of Azure instances, and can be fixed by using udev rules to give us a deterministic path to mount; this patch introduces those udev rules and modifies the Azure data source to use them. Changes to a couple of config modules were also required. In some places, they just needed to learn to dereference symlinks. In cc_mounts this wasn't sufficient because the dereferenced device would have been put in /etc/fstab (rather defeating the point of using the udev rules in the first place). A fairly hefty refactor was required to separate "is this a valid block device?" from "what shall I put in fstab?". LP: #1411582
2015-07-22provide data source to mirror selection code for region-specific mirrors.Scott Moser
This makes the full data source available to the mirror selection code, which means we can implement region logic on the data source for everything to use rather than it being mirror-selection-specific. It also implements that region logic for EC2 and GCE. LP: #1470890
2015-07-22fixes bug: https://launchpad.net/bugs/1461242Scott Moser
ssh: generate ed25519 host keys if supported now we attempt to generate ed25519 host keys. If ssh-keygen does not support it, a debug log message will be written. LP: #1461242
2015-07-20Return a sensible value for DataSourceGCE.availability_zone.Daniel Watkins
LP: #1470880
2015-06-16Use wget to fetch CloudStack passwords.Scott Moser
Different versions of the CloudStack password server respond differently; wget handles these nicely for us, so it's easier to just use wget. LP: #1464253, #1440263
2015-06-16growpart: fix specification of 'devices' list.Scott Moser
given config: {'growpart': {'devices': ["/"]}} the 'devices' was ignored, it was incorrectly read from the top level non-namespaced location. LP: #1465436
2015-06-15apt_configure: fix importing of apt gpg keys under in python3Scott Moser
LP: #1463373
2015-06-10Add ChangeLog entry for last merge.Daniel Watkins
2015-06-10check for systemd using sd_booted() semanticsScott Moser
The existing code determines if systemd is in use by looking at the distribution name and version. This is prone to error because: - RHEL derivatives other than CentOS (e.g., Scientific Linux) will fail this test - Distributions that are not derived from RHEL also use systemd This patch makes cloud-init use the same logic that is used in systemd's sd_booted() method http://www.freedesktop.org/software/systemd/man/sd_booted.html LP: #1461201
2015-06-01Doc: include information on vendor-data in OpenStackScott Moser
2015-05-22Azure: Redact on-disk user password in /var/lib/ovf-env.xmlScott Moser
The fabric provides the user password in plain text via the CDROM, and cloud-init has previously wrote the ovf-env.xml in /var/lib/waagent with the password in plain text. This change redacts the password. LP: #1311827
2015-05-19EC2: be aware of eu-central-1 availability zoneScott Moser
eu-central-1 means that 'central' is a direction to update the regular expression to understand. LP: #1456684
2015-05-15Azure: remove dependency on walinux-agentScott Moser
This takes away our dependency on walinux-agent, by providing a builtin path for doing cloud-init had delegated to it. Currently the default is to still use the old path, but adding this code in will allow us to move to the new code path with more confidence.
2015-05-15detect that CentOS 7 uses systemd, write previous-hostname in that case.Scott Moser
Also, on RHEL-type systems using systemd, /var/lib/cloud/data/previous-hostname would never get created (because rather then write to files, it was executing hostnamectl)
2015-05-01Fix exception when running with no arguments on Python 3Scott Moser
LP: #1424277
2015-05-01Azure: if user has set hostname, do not overwrite itScott Moser
Due to the way the azure boot works, where we identify the hostname to the fabric, we were inadvertently overwriting hostname that the user had set. LP: #1375252
2015-04-21sysvinit: make cloud-init-local run before networking is brought upScott Moser
While booting a VM from a snapshot image, network service use to find the residual network config scripts and use to configure the old IPs. cloud-init-local use to run later and populate the config scripts with latest information, which does not override the previous configuration. To solve this, we are ensuring that cloud-init-local runs before network. LP: #1275098
2015-04-21Fix +tests for GCE datasource not handling per-instance SSH keysJoshua Harlow
2015-04-21Update changelog with previously merged branchesJoshua Harlow
2015-04-09systemd: use network-online instead of network.target (LP: #1440180)Scott Moser
don't declare a Wants/Requires on network.target; this is a passive target that should only be pulled in by implementors of the networking service. The requirement for network needs to be expressed as a dependency on network-online.target. LP: #1440180
2015-03-27fix snappy package installation.Scott Moser
Some tests added here to make sure this works. The install '--config' will only start to work with the next version of snappy-go. LP: #1437137
2015-03-27NoCloud: the local portion of NoCloud incorrectly claimed datasourcesScott Moser
The intent has always been for the local datasource (NoCloud) to require the provider of metadata to provide 'dsmode=local'. If that wasn't found, then the default 'dsmode' would be 'net', and the NoCloudNet datasource would then find the data. The bug here was that the default 'net' wasn't being set when data was found on a local source.
2015-03-25Update SmartOS data source to use v2 metadata.Scott Moser
v2 metadata is described at http://eng.joyent.com/mdata/protocol.html LP: #1436417
2015-02-26readurl, read_file_or_url returns bytes, user must convert as necessaryScott Moser
* explicitly test compressed user-data. * userdata_raw is now bytes * add load_tfile_or_url for loading text file or url * ec2_utils: all meta-data is text, remove non-obvious string translations * DigitalOcean: adjust for ec2_utils * DataSourceGCE, DataSourceMAAS: user-data is binary other fields are text. * openstack.py: read paths without decoding to text. This is ok as paths other than user-data are json, and load_json will handle * load_file still returns text, and that is what most things use. LP: #1424900
2015-02-24CloudStack: support fetching password from virtual routerScott Moser
LP: #1422388
2015-02-23Make parameter list for get_hostname method consistentJoshua Harlow
2015-02-13support for managing GPT partitionsScott Moser
Specifically, this is to support Azure's G-series VMs (which come with disks up to 6500GB).
2015-02-11some python3 fixesScott Moser
This fixes the last set of WARN messages in my testing. * open /dev/console in text mode * move final message to be jinja template by default to avoid a warning about lack of cheetah. * write and read pickle'd contents in binary * some logging tests Also: * add tool tox-venv for simple things like: tox-venv py34 /bin/bash
2015-02-10python3 support.Scott Moser
This gives us functional python3 support. There are likely still bugs, but instance boot on openstack is functional now. LP: #1247132
2015-01-22remove dependency on dmidecode on linuxScott Moser
on linux we can read dmi information from /sys rather than using dmidecode binary, and thus removing a dependency.
2015-01-16hostname: apply hostname same as is writtenScott Moser
on RHEL, we were writing to persistent configuration the fqdn, but invoking 'hostname' on the first boot with just the shortname. On 'reboot', then the hostname would differ. Now, whatever we write, invoke hostname with. Also remove some duplicate code. LP: #1246485
2015-01-16systemd: run cloud-init before systemd-user-sessions.serviceSteve Langasek
This fixes a race condition that can cause cloud-init output to be spit out over the login prompt on the console when booting under systemd.
2015-01-15Use the GCE short hostname.Scott Moser
Google Compute Engine fqdn hostnames are usually longer than 64 characters. This causes issues with many tools (often Java based). Note that per gethostname(2): POSIX.1-2001 guarantees that "Host names (not including the terminating null byte) are limed to HOST_NAME_MAX bytes". On Linux, HOST_NAME_MAX is defined with the value 64. LP: #1383794
2015-01-06Enable user-data encoding support for GCE.Scott Moser
Enable user-data encoding support for GCE. Extended and updated tests to support checking the user-data encoding. User can now pass in user-data encoded in base64 and indicate they've done so by adding a tag 'user-data-encoding' with value 'base64'. LP: #1404311
2014-11-22Update to use a newer and better OMNIBUS_URLJoshua Harlow
This is minor change which uses the new Chef (company) top level domain for grabbing the Omnibus installation shell script.
2014-11-22Be more tolerant of 'ssh_authorized_keys' typesJoshua Harlow
Instead of only expected a list, tuple, or set type allow for a string type and dict to be passed in for 'ssh_authorized_keys', and add log message that occurs if some other type is used that can not be correctly processed.
2014-11-21Fix parse_ssh_config failing in ssh_util.pyJoshua Harlow
This fix handles '=' as a delimiter in SSH config and adds appropriate test methods to ensure this functionality continues to work correctly.
2014-11-21Increase the robustness/configurability of the chef module...Joshua Harlow
Add the following adjustments to the chef template and module: - Make it so that the chef directories can be provided (defaults to the existing directories) - Make the params much more configurable, and if a parameter is provided in the chef configuration it will override existing template parameters. - Make the template skip lines if the values are None in the configuration so that template lines can be removed if/when this is desirable. - Allow the firstboot json path to be configurable (defaults to the existing location). - Adds a basic set of tests to ensure that good things are happening. - Make a helper function to tell if already installed. - Have the install routine not run chef after installed but have it instead return a result to tell the caller to run the chef program once completed. - Use the generated_by() utility function to give the ruby template a better header comment. - Set special parameters after selecting the basic chef parameters. - Allow for the running after install and run arguments to be configured. - Allow the omnibus url fetching retries to be configurable. - Move the chef running to its own helper function - Add module docs
2014-11-21Fix the digital ocean test on py2.6Joshua Harlow
The digital ocean datasource test is using assertIs which is only created/existent on py2.7, so for the older py2.6 we need to add similar logic so that the test works correctly there.
2014-11-21Only use datafiles and initsys addon outside virtualenvsJoshua Harlow
To make it so that cloud-init is installable in a virtualenv where it can be tested in an isolated scenario we need to avoid using and including datafiles (which won't be written into the virtualenv) and also avoid using our initsys helper class which also adds on its own files when we are being ran from a virtualenv.
2014-11-18retain trailing newline from template files when using jinja2Scott Moser
sources.list was where this showed itself, but all rendered files would have their newline stripped. LP: #1355343
2014-10-29Start adding cloud config module docs.Scott Moser
Add the basics of docs that can be extracted from the code itself (also impose a initial format that will be useful for further modules to follow). In this initial addition modify the cc_debug.py and cc_ubuntu_init_switch.py to use this new style. LP: #1383510