Age | Commit message (Collapse) | Author |
|
|
|
LP: #623609
|
|
|
|
|
|
|
|
|
|
|
|
The new classes 'DataSourceNoCloud' and 'DataSourceNoCloudNet'
implement a way to get data from the filesystem, or (very minimal)
data from the kernel command line. This allows the user to seed data to
these sources.
There are now 2 "cloud-init" jobs, cloud-init-local that runs on
mounted MOUNTPOINT=/
and 'cloud-init' that runs on
start on (mounted MOUNTPOINT=/ and net-device-up IFACE=eth0 and
stopped cloud-init-local )
The idea is that cloud-init-local can actually function without network.
The last thing in this commit is "uncloud-init".
This tool can be invoked as 'init=/usr/lib/cloud-init/uncloud-init'
It will "uncloudify" things in the image, generally making it easier
to use for a simpler environment, and then it will exec /sbin/init.
|
|
|
|
|
|
|
|
It just seems like for cloud instances, getting /etc/fstab written
incorrectly with the result of non-booting system is worth avoiding.
|
|
|
|
nobootwait is likely important if the user is attempting to set up ebs
volume mount points via this mechanism. See 'man fstab' for more
inforation on this option
|
|
|
|
LP: #582667
|
|
|
|
The list of cloud-config modules is now kept in cloud config itself.
There is a builtin list in cloudinit, which is overrideable by
/etc/cloud/cloud.cfg or user data cloud-config.
This should make the modules more easily added or removed (as no code
needs to be edited now)
Basic summary of changes:
- move CloudConfig.py -> cloudinit/CloudConfig/__init__.py
- split cloud-config modules into their own files named
cloudinit/CloudConfig/cc_<name>.py
- remove all the upstart/cloud-config-* scripts, replacing them with
upstart/cloud-config.conf
|
|
remove the section, these should be covered in 'builtin'. The content was
correct, just not needed.
Added an example to doc/examples/cloud-config.txt on how the user can
configure this from either cloud-config user data or from
/etc/cloud/cloud.cfg
|
|
|
|
runcmd allows simple running of commands at rc.local like time frame
see doc/examples/cloud-config.txt for more info.
|
|
|
|
If a part of a multipart file is 'text/part-handler' then it is
expected to be python code that implements 2 methods
- list_types()
list the types that this part-handler supports, return
a list. ie: return(['text/plain'])
- handle_parts(data,ctype,filename,payload)
this method will be called:
once, when loaded, with ctype == '__begin__'
once per part
once, at the end, with ctype == '__end__'
- ctype is the content type ('text/plain')
- filename is the filename portion of the mime data
- payload is the content of the part
- data is currently the cloud object, but this could change
|
|
Also, move swap to use this format for specifying mounts. That way
the user can turn off swap if they want with:
| mounts:
| - [ swap ]
Other change wrapped in here is to have DataSourceEc2 read plain text
(evalable) text for its metadata rather than pickl. This is really for
debuging anyway, so any speed difference is not important.
|
|
|