canonical / canonical/multipass

Add merge how

Open
#3,165 2 comments 0 reactions 0 assignees View on GitHub
Dominant language
C++
Stars
9.2k
Forks
829
Avg merge
3d 2h
Merged PRs (30d)
45

Description

Currently, when a template with cloud init is used the latter overrides commands in the template.
For example `multipass launch docker --name dckr --cloud-init cloud-config.yaml` where cloud-config.yaml is defined as:
```yaml
#cloud-config
# vim: syntax=yaml

packages:
- acl
```

```sh
multipass shell dckr
systemctl status docker
# no docker installed
```

In order for [cloud config merge](https://cloudinit.readthedocs.io/en/19.3/topics/merging.html) works the header should be specified in both configs.
Please add `merge_how` to the blueprints.

```yaml
merge_how:
- name: list
settings: [append]
- name: dict
settings: [no_replace, recurse_list]
```

Contributor guide

Open the contributing guide

Research direction

The issue names no files or tests. Start by tracing how blueprint cloud-init data is assembled, then compare the generated configuration with the linked cloud-init merge behavior; done when the shown launch command retains the blueprint's Docker setup while also applying cloud-config.yaml.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
cloud
Issue type
Feature
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.