build providers: support injection for LXD
Metadata
Current evaluation
Merged as d59622a81, adding LXD snap injection through snapd's file API, replacing mount-based injection with file pushes, and refactoring provider concerns.
Resolution: closed resolved
Reason: PR #2621 was approved and merged as commit d59622a81, delivering the requested LXD injection implementation.
Evaluated by: mr-cal-bot
No scores available.
Issue body
By use of snapd's new snaps/<snap-name>/file API.
This also removes the use of mounts and leverages file
pushing.
Refactoring has been done for a better separation of concerns.
Signed-off-by: Sergio Schvezov <sergio.schvezov@canonical.com>
- [ ] Have you followed the [guidelines for contributing](https://github.com/snapcore/snapcraft/blob/master/CONTRIBUTING.md)?
- [ ] Have you signed the [CLA](http://www.ubuntu.com/legal/contributors/)?
- [ ] Have you successfully run `./runtests.sh static`?
- [ ] Have you successfully run `./runtests.sh tests/unit`?
-----
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| stealth/space-bunny-alpha | — | closed resolved | Merged as d59622a81, adding LXD snap injection through snapd's file API, replacing mount-based injection with file pushes, and refactoring provider concerns. | |
| stealth/space-bunny-alpha | — | closed resolved | Merged into main as d59622a81, adding LXD snap injection through snapd's file API, replacing mounts with file pushes, and refactoring provider responsibilities. | |
| stealth/space-bunny-alpha | — | closed resolved | Merged PR #2621 (commit d59622a81): LXD build provider now supports snap injection via snapd's /v2/snaps/<name>/file API, replacing mount-based injection with file pushing and refactoring provider code for separation of concerns. | |
| stealth/space-bunny-alpha | — | closed resolved | Merged PR #2621 (d59622a81): added LXD injection via snapd's file API, replaced mount-based injection with file pushing, and refactored 12 files. | |
| stealth/space-bunny-alpha | — | closed resolved | Merged PR #2621 added LXD injection through snapd's file API, replaced mounts with file pushing, and refactored provider code in commit d59622a8. | |
| stealth/space-bunny-alpha | — | closed resolved | Merged PR #2621 (commit d59622a8), adding LXD provider injection through snapd’s file API, removing mount-based injection, and refactoring 12 files. | |
| qwen/qwen3.6-35b-a3b | — | — | Merged after approval and passing CI. Implements LXD injection support via snapd's new file API, removes legacy mounts, and refactors code for better separation of concerns across 12 files. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Merged. Implements LXD injection support using snapd's file API, replacing mount usage with file pushing and refactoring for improved separation of concerns. |
Update history
No update history recorded yet.
Related work
-
Related To:
snapcraft#2222
(confidence 85%)
Earlier merged LXD snap-injection work that provided the foundation refactored by #2621.
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #2222 lxd: support new style snap injection | snapcraft | merged | Merged in #2222 via commit 8acd203, adding new-style LXD snap handling, removing sudo-based injection, and consolidating duplicated tests. | |
| #2509 build providers: initial support for LXD | snapcraft | merged | Merged PR #2509 (commit 067024732) adding initial LXD build-provider support: `snapcraft --use-lxd` runs all lifecycle steps and clean inside an LXD container. Released via beta/lxd channel; LP bug #1805221 closed. | |
| #1779137 build provider support to inject snaps on the host | snapcraft (launchpad) | closed | Build providers gained host-snap injection when Snapcraft runs from a snap; fixed by merged snapcore/snapcraft#2174 (commit 283ab0bb8). | |
| #1364 lxd: Inject snapcraft and core snaps into the container | snapcraft | merged | Merged PR #1364 as 99f5598ac, injecting the host's Snapcraft and core snaps into LXD containers so builds no longer use a mismatched Xenial archive version. | |
| #2249 build providers: provide support to shell in | snapcraft | merged | Merged PR #2249 (commit 9f5640b17) adding a shell() method to snapcraft build providers, enabling interactive 'shell into' the Multipass/LXD build instance. | |
| #473 snap: add configure hook with support for provider (CRAFT-363) | charmcraft | merged | Merged as bf350c68, adding a snap configure hook that reads the provider setting and rejects values other than lxd or multipass. | |
| #1788667 changes in snapd break lxd snap injection for cleanbuild | snapcraft (launchpad) | closed | snapd's 0600 perms on injected snaps broke LXD cleanbuild injection. Fixed by merged PR snapcore/snapcraft#2222 (commit b2bd6b776), adding new-style LXD snap injection; bug closed. | |
| #3141 build providers: use LXD-provided DNS by default | snapcraft | merged | Merged in canonical/snapcraft#3141 via commit 0a9fe51ad, making build providers use LXD-provided DNS through systemd-resolved and restart networkd without restarting containers. | |
| #2966 build providers: move to buildd images | snapcraft | merged | Merged as commit 916097e6d, moving LXD build providers to Ubuntu buildd images to support all architectures and core20. | |
| #2773 build providers: inject snapd snap for latest feature availability | snapcraft | merged | Merged PR #2773 in commit 3740c61bc, replacing injected core snaps with the smaller snapd snap for current build features without requiring core18. |