summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2016-04-13chef: straighten out validation_cert and validation_keyScott Moser
Now, validation_key is always a path to a file, as it is in chef's client.rb syntax. validation_cert is always the *content* of that file that should be written. However, if validation_cert is the string "system", then we do not write that value, but rather assume the file exists. LP: #1568940
2016-04-13skip bridges when generating fallback networkingScott Moser
It does not make sense to consider bridges when searching for fallback networking. If the system is configured with a bridge, then its probably for some purpose other than to get to a metadata service. Considering the bridge could make cloud-init pick the wrong device on reboot. LP: #1569974
2016-04-12rh_subscription: only check subscription if configuredScott Moser
The rh_subscription config module would attempt to connect to the RHN servers even when no config is provided. Now, instead check to make sure that valid config is provided first. That consists of username and password or a activation key. LP: #1536706
2016-04-12SmartOS, CloudSigma: fix error when dmi data is not availbleScott Moser
In Cloudsigma, the datasource would warn if no product id was availble. SmartOS would log exception. This fixes both of those, changing the warning to a debug message. LP: #1569469
2016-04-12DataSourceNoCloud: fix check_instance_id when upgradedScott Moser
A system that had booted, upgraded, and then rebooted would show a cloud-init stack trace as it attempted to run new code with the old pickled object. The old object would not have the seed_dirs attribute. So we check and fallback correctly if that is not present. LP: #1568150
2016-04-12provide a warning if 'system' but file does not existScott Moser
2016-04-12chef: straighten out validation_cert and validation_keyScott Moser
Now, validation_key is always a path to a file, as it is in chef's client.rb syntax. validation_cert is always the *content* of that file that should be written. However, if validation_cert is the string "system", then we do not write that value, but rather assume the file exists. LP: #1568940
2016-04-11lxd: adds basic support for dpkg based lxd-bridge configuration.Scott Moser
It exposes the most useful debconf keys as cloud-init configuration keys.
2016-04-11minor cleanupsScott Moser
- use util.del_file rather than os.remove - raise exception if debconf-communicate is not present - add a trailing newline into debconf-communicate input
2016-04-11Add tests for lxd-bridgeStéphane Graber
2016-04-11lxd-bridge: Don't require a bridge name and implement support for domain nameStéphane Graber
2016-04-11Update lxd-bridge code to do a single debconf-communicate run and split ↵Stéphane Graber
debconf logic to a function
2016-04-11Add support for lxd-bridge configurationStéphane Graber
2016-04-06Ensure that a resolve conf object is written as a string.Scott Moser
Instead of passing the raw object and expecting the write_file to work automatically make sure we explicitly pass the string version of it so that the write_file routine can correctly encode/decode it as needed. LP: #1479988
2016-04-06fix tests and hopefully actually workScott Moser
2016-04-06rh_subscription: only check subscription if configuredScott Moser
The rh_subscription config module would attempt to connect to the RHN servers even when no config is provided. Now, instead check to make sure that valid config is provided first. That consists of username and password or a activation key. LP: #1536706
2016-04-06fix adding of users when no group is specifiedScott Moser
revision 1179 regressed adding a user that did not have a 'groups' entry present in cloud-config. This handles that correctly, making 'add_user' able to take: a.) groups="group1,group2" b.) groups=["group1", "group2"] c.) groups=None d.) no groups parameter Additionally, if a primary group is specified it will also be created. End result is that this is functional: #cloud-config groups: ["sudo"] users: - name: sysop primary-group: sysop groups: "sudo,adm" shell: /bin/bash - name: user1 primary-group: users groups: sudo - name: foo1 - name: bar gecos: Bar groups: ["bargroup"] Resulting in: $ groups sysop sysop : sysop adm sudo $ groups user1 user1 : users sudo $ groups foo1 foo1 : foo1 $ groups bar bar : bar bargroup LP: #1562918
2016-04-06support adding the primary group alsoScott Moser
2016-04-05write_files: fix decompression of contentScott Moser
When provided with gzipped data, an exception would be raised because of a conversion to string. This fixes the issue and adds a test for write_files. LP: #1565638
2016-04-04systemd: do not specify After of obsolete syslog.target (LP: #1536964)Scott Moser
syslog.target is obsolete in debian, this fixes a lintian warning. LP: #1536964
2016-04-04chef: fix chef installation from gemsScott Moser
Installation from gems was previously always broken. This fixes the order or parameters calling install_chef_from_gems. LP: #1553345
2016-04-04disk_setup: correctly send --force to mkfs on block devicesScott Moser
Send the --force flag to mkfs or other filesystems when target is a block device. This fixes a general code flow issue where we were setting the --force flag. LP: #1548772
2016-04-04locale: list unsupported environment settings in warningScott Moser
Now if you log in with unsupported locale, you'll see: The unknown environment variables are: LC_CTYPE=en_GB.utf-8 LC_MESSAGES=en_GB.utf-8 LC_ALL=en_GB.utf-8 LP: #1558069
2016-04-04DataSource: set ds_cfg to be a dictionaryScott Moser
if the Datasource does not have an entry in config, then set it to be a empty dictionary rather than None. Also remove places that did this elsewhere.
2016-04-04FreeBSD: improvements for packages, setting password and timezoneScott Moser
- Implement set_passwd - Implement set_timezone - support installing packages - Use /bin/tcsh as default user shell (FreeBSD default) - Change default username to freebsd - Enable set-passwords, package-update-upgrade-install and timezone modules
2016-04-04add ChangeLog entryScott Moser
2016-04-04merge with trunkScott Moser
2016-03-30fix adding of users without a groupScott Moser
revision 1179 regressed adding a user that did not have a 'groups' entry present. This should handle that correctly, making 'add_user' able to take: a.) groups="group1,group2" b.) groups=["group1", "group2"] c.) groups=None d.) no groups parameter LP: #1562918
2016-03-29Misc fixes for VMware Support.Scott Moser
- Modified the code to look for customization specification file in /var/run/vmware-imc/ directory instead of /tmp - Fixed the 'seed file' issue. There was a regression in DataSourceOVF.py file. Fixed it.
2016-03-29apply_network_config improvementsScott Moser
3 things here: a.) do not raise exception, only warn when trying to apply a network config for a distro that does not have an implementation. This is important since debian/ubuntu is the only one *with* an implementation at the moment b.) apply network config in 'cloud-init --local' even if there is no datasource found. This means that the fallback datasource has to get things right. c.) do not write 70-persistent-net.rules the code was writing both 70-persistent-net.rules and /etc/systemd/network/50-cloud-init-*.link files that would just be confusing.
2016-03-29 Added a comment about /var/run/vmware-imc directory.Sankar Tanguturi
2016-03-29apply_network_config improvementsScott Moser
3 things here: a.) do not raise exception, only warn when trying to apply a network config for a distro that does not have an implementation. This is important since debian/ubuntu is the only one *with* an implementation at the moment b.) apply network config in 'cloud-init --local' even if there is no datasource found. c.) do not write 70-persistent-net.rules the code was writing both 70-persistent-net.rules and /etc/systemd/network/50-cloud-init-*.link files that would just be confusing.
2016-03-29improve how cloud-init-wait waitsScott Moser
Instead of sleep and check loop, use 'udevadm settle' to wait. since we run from a udev event, this is sufficient. udev settle will exit when either of a.) the file exists b.) the udev event queue has all been processed. c.) timeout is reached. Since cloud-init-wait is being run as a udev event, 'b' cannot be satisfied until it finishes. Thus, this essentially becomes a inotify based wait for the file /run/cloud-init/network-config-ready and no loops are needed.
2016-03-28improve how cloud-init-wait waitsScott Moser
since we run from a udev event, this is sufficient. udev settle will exit when either of a.) the file exists b.) the udev event queue has all been processed. Since cloud-init-wait is being run as a udev event, 'b' cannot be satisfied until it finishes. Thus, this essentially becomes a inotify based wait for the file /run/cloud-init/network-config-ready and no loops are needed.
2016-03-24support network configuration in cloud-init --localScott Moser
this allows 'cloud-init --local' to fully run before networking comes up. By doing so, we can now cleanly apply networking to the new system. This adds support for reading ConfigDrive network configuration and also from NoCloud. The support is only present for ubuntu/debian at the current time. Other distros will follow. Also ability to specify network configuration on kernel command line via either ip= or network-config=<base64>.
2016-03-24pyflakesScott Moser
2016-03-24some final changesScott Moser
a.) do not write systemd link files if we do not have a mac address. the check is updated to check for value rather than just presense (ie, 'mac_address': None) b.) DataSourceNoCloudNet: search in the nocloud seed dir this is important because NoCloud if dsmode is Net will look only would pass by, expecting NoCloudNet to pick it up but NoCloudNet would not look in /var/lib/cloud/seed/nocloud and thus skip it. c.) support the disabling of network configuration via /var/lib/cloud/data/upgraded-network This is what the package upgrader is writing.
2016-03-24pep8 fixes from last comment mergeScott Moser
2016-03-24support reading network config from kernel command lineScott Moser
This adds support for suppling network configuration on the kernel command line in 2 ways: a.) kernel command line includes 'network-config=<base64>' value of that parameter is base64 encoded json (or yaml) it is taken as network config yaml. In order to save space on kernel command line, it can be base64 encoded gzipped json also. b.) ip= paired with files authored by klibc's ipconfig tool When network devices are brought up in the initramfs, klibc's ipconfig tool writes files are named /run/net-<DEVNAME>.conf. The best documentation available on that tool is /usr/share/doc/libklibc/README.ipconfig.gz. Also changes util.get_cmdline() to return the command line of pid 1 if it is in a container. That is to make it consistent with The systemd generator, and allow passing a command line to lxd, as lxd does not mask /proc/cmdline.
2016-03-24add comments and improve error messagesScott Moser
2016-03-24make get_cmdline read /proc/1/cmdline if inside a containerScott Moser
This follows behavior of systemd/cloud-init-generator. This way you can feed a command line into lxc container.
2016-03-24ConfigDrive: convert OpenStack network_data.json to network_config.yamlScott Moser
OpenStack clouds may provide network_data.json information via the MetadataService in ConfigDrive. Teach ConfigDrive to read, store and convert the data into network_config yaml format. Making this available allows cloud-init to read network config from OpenStack and use the distro.apply_network_config() method to render the network_config from OpenStack into a distro network configuration file.
2016-03-24fix review commentsRyan Harper
net: add render_route comment to document why we added || true to route statements DataSourceConfigDrive: Only convert network_json to network_config when caller reads network_config attr. Cache the conversion.
2016-03-24remove debug codeScott Moser
2016-03-24provide datasource.check_instance_id with access to system configScott Moser
Changing this interface to allow for easy change later. The thing that this will enable is: a.) maas datasource to look at the system config and see if it is configured with the same consumer_key b.) datasource config could allow setting a variable that it would look at.
2016-03-24improve commentScott Moser
2016-03-24add suport for base64 encoded gzipped text on command lineScott Moser
add tests to show this functional.
2016-03-23network_data: add link type 'phys', no need to reload json dataRyan Harper
2016-03-23support [untested] network-config=<base64> on kernel command lineScott Moser
2016-03-23one more toxScott Moser