cloud-init-dev team mailing list archive
-
cloud-init-dev team
-
Mailing list archive
-
Message #05919
Re: [Merge] ~raharper/cloud-init:fix/merge-how-docs into cloud-init:master
I'll look at the tool/ccfg-merge-debug; but it didn't look immediately helpful, so I ended up launching an lxd container with two files in /etc/cloud/cloud.cfg.d/ and using cloud-init clean --logs --reboot instead.
I'll take a second look at the tool.
Diff comments:
> diff --git a/doc/rtd/topics/merging.rst b/doc/rtd/topics/merging.rst
> index c75ca59..3761305 100644
> --- a/doc/rtd/topics/merging.rst
> +++ b/doc/rtd/topics/merging.rst
> @@ -201,4 +201,43 @@ Note, however, that merge algorithms are not used *across* types of
> configuration. As was the case before merging was implemented,
> user-data will overwrite conf.d configuration without merging.
>
> +Example cloud-config
> +====================
> +
> +A common request is to include multiple ``runcmd`` directives in different
> +files and merge all of the commands together. To achieve this, we must modify
> +the default merging to allow for dictionaries to join list values.
> +
> +
> +The first config
> +
> +.. code-block:: yaml
> +
> + #cloud-config
> + merge_how:
> + - name: list
> + settings: [append]
> + - name: dict
> + settings: [no_replace, recurse_list]
Yes and no. I can clarify though. If you are the *first* config to include the key you're interested in, and you're sure that no other config file will get read before you (in which case you'll clobber it) then no.
I found this troublesome and really wanted a *global* way to configure merging for *all* configs, but that's not available at this time. This is the only way to ensure that conflicting keys retain data (the default is to overwrite dictionaries and lists).
> +
> + runcmd:
> + - bash1
> + - bash2
> +
> +The second config
> +
> +.. code-block:: yaml
> +
> + #cloud-config
> + merge_how:
> + - name: list
> + settings: [append]
> + - name: dict
> + settings: [no_replace, recurse_list]
> +
> + runcmd:
> + - bash3
> + - bash4
> +
> +
> .. vi: textwidth=78
--
https://code.launchpad.net/~raharper/cloud-init/+git/cloud-init/+merge/362083
Your team cloud-init commiters is requested to review the proposed merge of ~raharper/cloud-init:fix/merge-how-docs into cloud-init:master.
References