Commit Graph

6712 Commits

Author SHA1 Message Date
Olivier Gayot 7a5ff9e76a examples: add lsb-release for jammy and noble
Signed-off-by: Olivier Gayot <olivier.gayot@canonical.com>
2024-02-13 11:56:31 +01:00
Olivier Gayot 8e3751f647 lsb-release: split the function so it can be tested with more ease
Signed-off-by: Olivier Gayot <olivier.gayot@canonical.com>
2024-02-13 11:56:31 +01:00
Dan Bungert 2883cad416
Merge pull request #1880 from medicalwei/fixed-reset-partition-size
Accept a fixed partition size for reset partition in autoinstall.yaml
2024-02-12 20:21:10 -07:00
Dan Bungert d617ae0f1f
Merge pull request #1872 from kubiko/console-conf-use-snapd-socket
console_conf: identity: use snapd unix socket
2024-02-12 20:17:26 -07:00
Olivier Gayot 3f3bb29c2e ssh: call GitHub / Launchpad service, not ssh_import_id
Signed-off-by: Olivier Gayot <olivier.gayot@canonical.com>
2024-02-12 14:08:59 +01:00
Olivier Gayot 3ac1810b0c ssh: use view-helpers for detecting the confirmation key overlay
Signed-off-by: Olivier Gayot <olivier.gayot@canonical.com>
2024-02-12 14:08:59 +01:00
Olivier Gayot 5861968e80 view-helpers: add function waiting for an overlay to be displayed
Signed-off-by: Olivier Gayot <olivier.gayot@canonical.com>
2024-02-12 14:08:59 +01:00
Olivier Gayot 0f3c53c283 ssh: drop redundant use of context when importing key
Signed-off-by: Olivier Gayot <olivier.gayot@canonical.com>
2024-02-12 14:08:59 +01:00
Olivier Gayot f5ecece153 ssh: have a button to show a key
When selecting a SSH identity, the user can open a dialog showing the
contents of the key.

Signed-off-by: Olivier Gayot <olivier.gayot@canonical.com>
2024-02-12 14:08:59 +01:00
Olivier Gayot feaf0601d3 ssh: add identity table with ability to remove key
A new table shows all the SSH identities/keys that are currently
imported. The user can select one and delete it from the list if he
wants to.

Signed-off-by: Olivier Gayot <olivier.gayot@canonical.com>
2024-02-12 14:08:59 +01:00
Olivier Gayot 446bf3814d answers: move ssh-import-id directive to SSH section
When running answers-based automation, the SSH controller looks into
more than one section to find ssh-import-id directives.

If the "SSH" section exists, then it is where the ssh-import-id
directives must be placed. However, if the section does not exist, the
controller will also look for ssh-import-id directives in the "Identity"
section.

The answers.yaml file used this special mechanism. This is fine.
However, if one adds a SSH section to customize other settings (e.g.,
install_server, pwauth), then the ssh-import-id directives in the
Identity section suddently get ignored ; which is confusing and looks
as if there is a bug.

Let's move ssh-import-id directives to the SSH section.

Signed-off-by: Olivier Gayot <olivier.gayot@canonical.com>
2024-02-12 13:59:23 +01:00
Yao Wei (魏銘廷) 61d748d549 doc: add Reset Partition to `autoinstall-reference.rst` 2024-02-12 16:49:51 +08:00
Olivier Gayot 24f48f0d87 Merge pull request #1884 from ogayot/nvme-o-tcp-poc
NVMe over TCP with /home on remote storage
2024-02-09 11:38:59 +01:00
Dan Bungert ab31a3b206
Merge pull request #1907 from dbungert/use-cryptoswap
Use cryptoswap
2024-02-08 18:07:36 -07:00
Dan Bungert 08a91988fa snapcraft: rev curtin for dm_crypt config support 2024-02-08 16:19:08 -07:00
Dan Bungert 72ca35d06b filesystem: add ZFS_LUKS capability flag
Start the ZFS_LUKS work with adding the flag and connecting the parts
needed.  Enable cryptoswap as part of that.
2024-02-08 16:19:08 -07:00
Olivier Gayot c1105dffee filesystem: add integration test using nvme-o-tcp
Signed-off-by: Olivier Gayot <olivier.gayot@canonical.com>
2024-02-08 19:17:05 +01:00
Olivier Gayot 88b6dcb6c6 filesystem: add support for reformatting in run-answers
Signed-off-by: Olivier Gayot <olivier.gayot@canonical.com>
2024-02-08 19:17:05 +01:00
Olivier Gayot 76f0469705 filesystem: fix run-answers for deleting a partition
When trying to delete a partition using the answers-based mechanism,
subiquity tries to call .done() on the ConfirmDeletesStretchy overlay.
However, this method does not exist. The .confirm() method is what we
should use instead.

Signed-off-by: Olivier Gayot <olivier.gayot@canonical.com>
2024-02-08 19:17:05 +01:00
Olivier Gayot 376131b04d filesystem: pass _netdev option for mounts on remote storage
Signed-off-by: Olivier Gayot <olivier.gayot@canonical.com>
2024-02-08 19:17:05 +01:00
Olivier Gayot c3de13d10c filesystem: only allow /home on remote storage
Signed-off-by: Olivier Gayot <olivier.gayot@canonical.com>
2024-02-08 19:17:05 +01:00
Olivier Gayot 802e9ef8db storage: add property to tell if FS objects are "on" remote storage
Signed-off-by: Olivier Gayot <olivier.gayot@canonical.com>
2024-02-08 19:17:05 +01:00
Olivier Gayot e83343c02c filesystem: LVM_VolGroup has a list of devices, not a set
Signed-off-by: Olivier Gayot <olivier.gayot@canonical.com>
2024-02-08 19:17:05 +01:00
Olivier Gayot c95716669c storage: expect optional NVMe controllers in the storage config
Signed-off-by: Olivier Gayot <olivier.gayot@canonical.com>
2024-02-08 19:17:05 +01:00
Olivier Gayot 81ed199e17 ssh: dissociate key import from form submission
Previously, on the SSH screen, the ability to enable/disable the SSH
server and the ability to import a SSH identity were both covered by a
single form. Therefore, there was no way to import multiple identities.

This change adds a button "Import SSH key" which opens a new form to
import an identity. The button can be pressed multiple times and the
resulting identities are all submitted when the user clicks on Done.

Furthermore, navigating back to the SSH screen does not "forget" already
imported identities.

Signed-off-by: Olivier Gayot <olivier.gayot@canonical.com>
2024-02-08 17:53:14 +01:00
Olivier Gayot 39640140ca
Merge pull request #1892 from ogayot/noble+pro
ubuntu-pro: enable on noble, although it's not yet marked LTS
2024-02-08 09:56:46 +01:00
Olivier Gayot fc5adf2946 ubuntu-pro: actually show the screen with warning for future LTSes
Signed-off-by: Olivier Gayot <olivier.gayot@canonical.com>
2024-02-08 09:56:11 +01:00
Olivier Gayot d9fa0a0c44
Merge pull request #1891 from ogayot/apt-mounter-pathlib
Mounter / APT use pathlib instead of os
2024-02-08 09:04:15 +01:00
Maciej Borzecki 9e081f4fd8 console_conf/controllers/identity: extend unit tests
Signed-off-by: Maciej Borzecki <maciej.borzecki@canonical.com>
2024-02-08 07:51:58 +01:00
Maciej Borzecki ea86499691 subiquitycore/snapd: add response set serving objects from memory
Signed-off-by: Maciej Borzecki <maciej.borzecki@canonical.com>
2024-02-08 07:34:48 +01:00
Maciej Borzecki de12383725 console_conf/controllers/identity: update unit tests to fake snapd socket connection
Signed-off-by: Maciej Borzecki <maciej.borzecki@canonical.com>
2024-02-08 07:34:48 +01:00
Maciej Borzecki 7144a65d22 console_conf/controllers/identity: use app level snapd connection
Signed-off-by: Maciej Borzecki <maciej.borzecki@canonical.com>
2024-02-08 07:34:48 +01:00
Maciej Borzecki 8cfb2406b0 subiquitycore: allow to register callbacks for POST for fake snapd connections
Allow registration of handlers for POST.

Signed-off-by: Maciej Borzecki <maciej.borzecki@canonical.com>
2024-02-08 07:34:48 +01:00
Maciej Borzecki f0183d1cee console_conf: set application level snapd connection
Signed-off-by: Maciej Borzecki <maciej.borzecki@canonical.com>
2024-02-08 07:34:48 +01:00
Dan Bungert 3035098d22
Merge pull request #1908 from dbungert/fix-cc-state-dir
tests: fix state_dir failure
2024-02-07 23:31:14 -07:00
Ondrej Kubik 55a1bff166 console_conf: identity: use snapd unix socket
When running in strict snap confinement snap client binary is not
accessible. Additionally output format of snap client binary is
not guaranteed not to change. snapd REST API should be used instead.

Signed-off-by: Ondrej Kubik <ondrej.kubik@canonical.com>
2024-02-08 07:29:16 +01:00
Dan Bungert 17a0a198ef tests: fix state_dir failure 2024-02-07 23:05:56 -07:00
Dan Bungert f03d5b5c5a
Merge pull request #1873 from kubiko/console-conf-use-ready-fingerprints
console_conf: identity: use prepared fingerprints
2024-02-07 22:57:43 -07:00
Dan Bungert cd1fc53126
Merge pull request #1904 from bboozzoo/bboozzoo/console-conf-use-one-run-dir
console-conf: set project name, consistently use as state directory
2024-02-07 22:50:47 -07:00
Dan Bungert 47256905a4 ssh: fix unclosed file 2024-02-07 22:45:06 -07:00
Maciej Borzecki b6f8cf334f console_conf/controllers/identity: use state directory when querying host key info
When obtaining host key fingerprints, use the state directory.

Signed-off-by: Maciej Borzecki <maciej.borzecki@canonical.com>
2024-02-07 11:44:05 +01:00
Maciej Borzecki 66e8222a09 subiquitycore: use a premade host key fingerprints info if present
It is possible that the platform integration glue may have already prepared a
summary of host key fingerprints at the state directory. If so, use it
otherwise, try to build the summary directly.

Signed-off-by: Maciej Borzecki <maciej.borzecki@canonical.com>
2024-02-07 11:44:05 +01:00
Ondrej Kubik 082c59a9a9 console_conf: identity: move strict confinement handling to ssh
Signed-off-by: Ondrej Kubik <ondrej.kubik@canonical.com>
2024-02-07 11:30:39 +01:00
Ondrej Kubik e6aa7e1dcc console_conf: identity: allow use of prepared host keys fingerprints
In strict snap confinement, sshd config or host keys are not accessible.
If strict confinement is detected, instead allow reuse of
the host keys fingerprints already prepared by invoking process.
Prepared fingerprints are stored in: /run/console-conf/host-fingerprints.txt

Signed-off-by: Ondrej Kubik <ondrej.kubik@canonical.com>
2024-02-07 11:30:39 +01:00
Maciej Borzecki 87efd8aa18 console_conf: use snap helper for obtaining project name
Signed-off-by: Maciej Borzecki <maciej.borzecki@canonical.com>
2024-02-07 11:20:44 +01:00
Maciej Borzecki 0764bb50b9 console_conf/controllers: add unit test for identity controller
Signed-off-by: Maciej Borzecki <maciej.borzecki@canonical.com>
2024-02-07 11:20:44 +01:00
Maciej Borzecki 592887b540 console_conf/controllers/identity: store login details in project state directory
Since we set a project name centrally, it implies a specific path to the state
directory. Instead of hardcoding the same value directly again in the controller
code, use the application level state directory.

Signed-off-by: Maciej Borzecki <maciej.borzecki@canonical.com>
2024-02-07 11:17:20 +01:00
Maciej Borzecki f3043cde88 console_conf/core: use a common project for console-conf related apps
Make sure that console-conf related apps use the same value for project, which
results in using the same shared state directory.

Signed-off-by: Maciej Borzecki <maciej.borzecki@canonical.com>
2024-02-07 11:17:20 +01:00
Ondrej Kubik 3295691e6b console_conf: use 'console-conf' as project name
'project' value is used to construct /run/<project> path
Other parts are already using 'console-conf', prefer this syntax.
In the future we might consider using SNAP_NAME, and this '_' are
not permitted as part of the snap name.

Signed-off-by: Ondrej Kubik <ondrej.kubik@canonical.com>
2024-02-07 11:17:20 +01:00
Dan Bungert 5a1a2b0faa
Merge pull request #1875 from kubiko/console-conf-wrapper
console_conf: modify wrapper helper to consider consol-conf as snap
2024-02-06 20:44:31 -07:00