Skip to content

Instantly share code, notes, and snippets.

View ancorgs's full-sized avatar

Ancor Gonzalez Sosa ancorgs

  • Suse Linux Gmbh
  • Las Palmas de Gran Canaria
View GitHub Profile
@ancorgs
ancorgs / storage-profile.md
Last active May 24, 2024 11:15
Agama storage profile

Storage Section of the Agama Profile

Supporting a Legacy AutoYaST Specification

The Agama profile should contain a storage section. If it's omitted, an alternative section called legacy_autoyast_storage can be specified instead.

That legacy_autoyast_storage is a 1:1 representation of the XML specification of AutoYaST. No json validation will be performed for it.

Basic Structure of the Storage Section

@ancorgs
ancorgs / 00-autoinst_proposal-summary.rb
Last active May 21, 2024 08:31
Considering Agama storage autoinstallation
# Class to calculate a storage proposal for autoinstallation
#
# @example Creating a proposal from the current AutoYaST profile
# partitioning = Yast::Profile.current["partitioning"]
# proposal = Y2Storage::AutoinstProposal.new(partitioning: partitioning)
# proposal.proposed? # => false
# proposal.devices # => nil
# proposal.planned_devices # => nil
#
# proposal.propose # Performs the calculation
@ancorgs
ancorgs / deleteme.md
Last active January 17, 2024 12:56
delete-me

abbr

<Checkbox
  label={_("Use the TPM to decrypt automatically on each boot")}
  description={
    _(The password will not be needed to boot or to access de data in the <abbr title=\"Trusted Platform Module\">TPM</abbr>..."
  }
/&gt;
@ancorgs
ancorgs / zones.md
Last active December 19, 2023 08:57
Timezones known by Agama but not known by zone.tab

The file zone.tab allow us to map timezones to a representative country. Basically, the country in which the city mentioned in the name of the timezone is located.

Good news - that mapping actually works for 434 of the timezones Agama offers.

Not so good, there are 39 missmatches. So there are timezones for which we cannot inferre the country.

Let's group them

A. No country, indeed

@ancorgs
ancorgs / roles.md
Last active November 21, 2023 09:23
Roles in use in the YaST installer

Tumbleweed and Leap roles

  • kde
  • gnome
  • xfce
  • generic_desktop
  • server
  • serverro

Some fun ideas for using Agama from the installation media

Agama can be controlled with two interfaces:

  • A CLI (command-line interface) written in Rust
  • A web interface offering a more graphical and user-frienly way of doing things

Of course, to connect to the latter a browser is needed. Currently Agama-Live (the demo image for Agama) uses a full screen Firefox. We are not sure if that will be the solution in the definitive installation-media for future (open)SUSE distributions. It obviously has its drawbacks.

@ancorgs
ancorgs / agama_proposal.md
Last active July 19, 2023 16:01
Settings for the Agama proposal

This is a draft for a possible OOP solution for https://trello.com/c/drW2FI0q/165-agama-storage-proposal-settings, but certainly not the only one. The chosen solution must be discussed before progressing with the implementation.

Representing the desired Agama behavior on Agama's storage backend

This shows how the classes at the storage backend of Agama could be organized. These classes may be exposed in the D-Bus interface as some kind of direct translation (having interfaces like Settings, EncryptionSettings, Volume, VolumeTemplate and so on) or with a more conservative interface similar to the current one that is based only on the interface Storage1.Proposal, which contains only a few properties and an array of volumes described as plain hashes.

This classes represent how the configuration of the Agama proposal could be represented in the Agama backend, to be consistent with the behavior described at the Trello card.

class Settings
@ancorgs
ancorgs / dasd-signals.md
Last active March 14, 2023 13:46
dasd-signals.md

I'm designing the D-Bus signals for DASD formatting.

They are based on the information provided by a Y2S390::FormatProcess object which provides:

  • Y2S390::FormatProcess#status exit code of the format process if it finished, nil otherwise
  • Y2S390::FormatProcess#running? Obvious
  • Y2S390::FormatProcess#summary Status of all the DASDs requested to format
  • Y2S390::FormatProcess#update_summary Triggers an update of #summary and also updates #updated (see below)
  • Y2S390::FormatProcess#updated Subset of #summary with the entries that were modified by the latest call to #update_summary
@ancorgs
ancorgs / report20221201.md
Last active December 1, 2022 10:31
report20221201.md
  • Storage proposal tweaks - openSUSE/agama#340
  • ALP meeting
    • ALP products
    • Adjust name: ALP ContainerHost
    • No air-gap installer for December
    • Help with Live ISO and USB -> bootable images WG Friday
  • Release of D-Installer agreed with Imo
    • Main features: FDE, LVM and aarch64 bootloader fix
    • Opportunity to ask for help with live ISO (and/or alternatives)
  • Blog post draft
@ancorgs
ancorgs / fde-alp-d-installer.md
Last active December 5, 2022 14:49
ALP FDE and D-Installer, a love story

0. About the term FDE:

Full-Disk Encryption simply means that all the OS components are encrypted, with the unavoidable exception of the bootloader (and of the content of /boot/EFI if we are in a UEFI system). That is, a system is FDE as long as directories like /, /boot, /var, etcetera are stored within LUKS volume(s).

Then there are several approaches to do that and, as a consequence, several possible ways to unlock the volumes during boot.

1. Our current solution for image-based ALP:

Our image is an FDE system in which everything is contained in a LUKS2 volume. During first boot, an interactive wizard runs and, apart from re-encrypting the LUKS2 volume to make it secure, it configures it to be unlocked during subsequent boots using: