Commit b699df64 authored by Daniel Watkins's avatar Daniel Watkins

Update merging documentation to make its application clearer

Currently, some users think that user-data and conf.d configuration will be
merged together[0].  This has never been the case, and we should make it clear
that this is not currently supported to avoid user confusion.

[0] https://bugs.launchpad.net/cloud-init/+bug/1532234
parent 1df451e7
Overview
--------
This was done because it has been a common feature request that there be a
way to specify how cloud-config yaml "dictionaries" are merged together when
there are multiple yamls to merge together (say when performing an #include).
This was implemented because it has been a common feature request that there be
a way to specify how cloud-config yaml "dictionaries" provided as user-data are
merged together when there are multiple yamls to merge together (say when
performing an #include).
Since previously the merging algorithm was very simple and would only overwrite
and not append lists, or strings, and so on it was decided to create a new and
improved way to merge dictionaries (and there contained objects) together in a
way that is customizable, thus allowing for users who provide cloud-config data
to determine exactly how there objects will be merged.
way that is customizable, thus allowing for users who provide cloud-config
user-data to determine exactly how there objects will be merged.
For example.
......@@ -181,8 +182,13 @@ cloud-config dictionary coming after it.
Other uses
----------
The default merging algorithm for merging 'conf.d' yaml files (which form a initial
yaml config for cloud-init) was also changed to use this mechanism so its full
In addition to being used for merging user-data sections, the default merging
algorithm for merging 'conf.d' yaml files (which form an initial yaml config
for cloud-init) was also changed to use this mechanism so its full
benefits (and customization) can also be used there as well. Other places that
used the previous merging are also similar now extensible (metadata merging for
example).
used the previous merging are also, similarly, now extensible (metadata
merging, for example).
Note, however, that merge algorithms are not used *across* types of
configuration. As was previously the case, merged user-data will still
overwrite conf.d configuration.
=========
Merging
=========
==========================
Merging User-Data Sections
==========================
.. include:: ../../merging.rst
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment