Age | Commit message (Collapse) | Author |
|
If the datasource's instance id contained a '/' then the instance_id path
would not be as expected under /var/lib/cloud/instances/instance_id.
LP: #1575938
|
|
LP: #1576273
|
|
This simply allows the phone_home template to pass the systems fully
qualified domain name.
LP: #1566824
|
|
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
|
|
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
|
|
syslog.target is obsolete in debian, this fixes a lintian warning.
LP: #1536964
|
|
Installation from gems was previously always broken. This
fixes the order or parameters calling install_chef_from_gems.
LP: #1553345
|
|
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
|
|
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
|
|
|
|
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>.
|
|
This adds a check in cloud-init to see if the existing (cached)
datasource is still valid. It relies on support from the Datasource
to implement 'check_instance_id'. That method should quickly determine
(if possible) if the instance id found in the datasource is still valid.
This means that we can still notice new instance ids without
depending on a network datasource on every boot.
I've also implemented check_instance_id for the superclass and for
3 classes:
DataSourceAzure (check dmi data)
DataSourceOpenstack (check dmi data)
DataSourceNocloud (check the seeded data or kernel command line)
LP: #1553815
|
|
Add option checking for ssh_pwauth to bring behavior inline with the
description cloud-config.txt example.
Previously, setting 'ssh_pwauth' to 'unchanged' or '' would result
in an empty value for PasswordAuthentication when it should have
simply not been modified.
|
|
|
|
it is not uncommon to find dmi data in /sys full of 'ff'. utf-8
decoding of those would fail, causing warning and stacktrace.
Return '.' instead of \xff. This maps to what dmidecode would return
$ dmidecode --string system-product-name
.................................
|
|
This add 'lxd' to the list of groups that the default user is added to.
It also changes behavior to create any necessary groups that are listed
for the user rather than failing to add the user.
Theres also a fix for usage of logexc that I found along the way.
LP: #1539317
|
|
The user can still choose to run pollinate here to seed their
random data. And in an environment with network datasource, that
would be expected to work. However, we do not want to run it any
more from cloud-init because
a.) pollinate's own init system jobs should get it ran before ssh,
which is the primary purpose of wanting cloud-init to run it.
b.) with a local datasource, there is no network guarantee when
init_modules run, so pollinate -q would often cause issues then.
c.) cloud-init would run pollinate and log the failure causing
many cloud-init specific failures that it could do nothing about.
LP: #1554152
|
|
|
|
|
|
Unless /etc/localtime is an existing file and not a symlink,
then we will symlink instead of copying the tz_file to /etc/localtime.
The copy was due to an old bug in Ubuntu, symlink should be preferred.
LP: #1543025
|
|
This is the first changeset submitted as a part of project to
add cloud-init support for VMware vSphere Hypervisor. This changeset
contains _only_ the changes for a simple python parser for a
Image Customization Specification file pushed by VMware vSphere
hypervisor into the guest VMs. In a later changeset, will be submitting
another patch to actually detect the underlying VMware vSphere hypervisor
and do the necessary customization.
|
|
|
|
LP: #1488891
|
|
|
|
|
|
running-in-container is a wrapper around systemd-detect-virt -c,
and was removed from ubuntu. This adjusts to run if only running-in-container
is available.
LP: #1539016
|
|
LX-brand zones on Joyent's SmartOS use a different metadata source
(socket file) than the KVM-based SmartOS virtualization (serial port).
This patch adds support for recognizing the different flavors of
virtualization on SmartOS and setting up a metadata source file object.
After the file object is created, the rest of the code for the datasource
LP: #1540965
|
|
If lxd key is present in cfg, then run 'lxd init' with values from the 'init'
entry in lxd configuration as flags.
|
|
if a runcmd exited failure, then power_state would not work.
This was because systemd was killing off subprocesses, and cloud-init
implemented power off with a subprocess that waited for the parent
to exit.
LP: #1449318
|
|
Replace the use of SharedConfig.xml in both the walinuxagent case,
and the case where we communicate with the Azure fabric ourselves.
The instance id present in the dmi data is unfortunately different
that that in the SharedConfig. This means that something needs
to handle migration so that a reboot after newer version is installed
will not re-run first instance things.
In Ubuntu this is being handled in packaging.
LP: #1506187
|
|
'nofail' is the systemd equivalent of the mountall/upstart 'nobootwait'.
So, if a system uses systemd, then use 'nofail' in /etc/fstab for
ephemeral mounts.
|
|
This modifies a designed decision to have trimmer sources.list than
one would find on a server iso install. Specifically, here we now
enable: restricted and multiverse and backports.
LP: #1177432
|
|
|
|
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).
|
|
#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
|
|
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 ]']
|
|
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
|
|
|
|
|
|
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"}
|
|
|
|
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
|
|
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
|
|
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
|
|
LP: #1470880
|
|
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
|
|
given config:
{'growpart': {'devices': ["/"]}}
the 'devices' was ignored, it was incorrectly read from the top
level non-namespaced location.
LP: #1465436
|
|
LP: #1463373
|
|
|
|
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
|