commit | ca1cff0f214a1ed5ee967d421f5fe1fd5afa756d | [log] [tgz] |
---|---|---|
author | Lorenz Brun <lorenz@monogon.tech> | Mon Jun 26 17:52:44 2023 +0200 |
committer | Lorenz Brun <lorenz@monogon.tech> | Thu Jun 29 10:41:38 2023 +0000 |
tree | 7ea16e63681ad4695f7d7cd1115c0168fc553d4b | |
parent | 4599aa2dfa42a7b694ad295bc700db03de96d7f5 [diff] |
m/p/efivarfs: refactor This accomplishes three things: First, split out the variable access layer from the rest of the code. This cleans up the attribute handling, which is now done centrally as well as making the high-level functions very short and clean. They now also return better errors. Second this introduces proper types for LoadOption, which can now also be unmarshaled which was a requirement for A/B updates. This required implementation of EFI's DevicePath structure. While refactoring the higher-level functions for this, this also fixes a bug where the variable index (the 4 hex nibbles at the end) were improperly generated as lowercase hex. Third, this adds new high-level functions for interacting with more boot-related variables needed for the A/B effort. Change-Id: I53490fa4898a5e7a5498ecc05a9078bd2d66c26e Reviewed-on: https://review.monogon.dev/c/monogon/+/1855 Tested-by: Jenkins CI Reviewed-by: Serge Bazanski <serge@monogon.tech>
This is the main repository containing the source code for the Monogon Platform.
This is pre-release software - take a look, and check back later!
Our build environment is self-contained and requires only minimal host dependencies:
/dev/kvm
(if you want to run tests).Our docs assume that Bazelisk is available as bazel
on your PATH.
Refer to SETUP.md for detailed instructions.
Build CLI and node image:
bazel build //metropolis/cli/dbg //:launch -c dbg
Launch an ephemeral test node:
bazel test //:launch -c dbg --test_output=streamed
Run a kubectl command while the test is running:
bazel-bin/metropolis/cli/dbg/dbg_/dbg kubectl describe node
Run full test suite:
bazel test -c dbg //...