patches and low-level development discussion
 help / color / mirror / code / Atom feed
blob 457491d58be3ce5356e56e9f92a70ac0ccf0aac0 1649 bytes (raw)
name: Documentation/decisions/009-vm-sources.adoc 	 # note: path name is non-authoritative(*)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
 
= 009 VM Sources
:page-parent: Architecture Decision Records
:page-grand_parent: About Spectrum

// SPDX-FileCopyrightText: 2022 Unikie
// SPDX-License-Identifier: GFDL-1.3-no-invariants-or-later OR CC-BY-SA-4.0

== Status

Proposed

== Context

It should be possible for Spectrum VMs to come from the root
filesystem (for built-in VMs), or one or more
xref:../appendices/user-partition.adoc[user partitions].  One part of
making this work will be to have the system search multiple sources of
VM definitions, to produce a single view of what VMs are available.

== Decision

The system will scan /usr/img/builtin, as well as the svc/data
partition on each user partition, for VM definitions.  A single s6-rc
service directory will contain generated services for VMs from all
sources, so that tools like vm-start don't have to be aware of where
VMs come from.  (This will continue to be distinct from the s6-rc
database used for host system services.)  When a new source of VMs is
discovered, an updated database will be generated and atomically
replace the old one using
xref:https://www.skarnet.org/software/s6-rc/s6-rc-update.html[s6-rc-update].

Changes to how user partitions will be discovered and mounted, to
support having multiple user partitions, will be determined later.

== Consequences

Built-in VMs can be moved into the root filesystem, allowing the
default user partition to be empty.  This will make it easier for
people making custom Spectrum images to add custom VMs without having
to build Spectrum itself themselves -- they can simply replace the
default, empty, partition with a custom one they can produce however
they like.

debug log:

solving 457491d ...
found 457491d in https://inbox.spectrum-os.org/spectrum-devel/20221129090812.974715-1-alyssa.ross@unikie.com/

applying [1/1] https://inbox.spectrum-os.org/spectrum-devel/20221129090812.974715-1-alyssa.ross@unikie.com/
diff --git a/Documentation/decisions/009-vm-sources.adoc b/Documentation/decisions/009-vm-sources.adoc
new file mode 100644
index 0000000..457491d

Checking patch Documentation/decisions/009-vm-sources.adoc...
Applied patch Documentation/decisions/009-vm-sources.adoc cleanly.

index at:
100644 457491d58be3ce5356e56e9f92a70ac0ccf0aac0	Documentation/decisions/009-vm-sources.adoc

(*) Git path names are given by the tree(s) the blob belongs to.
    Blobs themselves have no identifier aside from the hash of its contents.^

Code repositories for project(s) associated with this public inbox

	https://spectrum-os.org/git/crosvm
	https://spectrum-os.org/git/doc
	https://spectrum-os.org/git/mktuntap
	https://spectrum-os.org/git/nixpkgs
	https://spectrum-os.org/git/spectrum
	https://spectrum-os.org/git/ucspi-vsock
	https://spectrum-os.org/git/www

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).