Skip to content

feat(cli): install rawstor - #540

Draft
VasilyStepanov wants to merge 1 commit into
del/poolfrom
feat/rawstor
Draft

feat(cli): install rawstor#540
VasilyStepanov wants to merge 1 commit into
del/poolfrom
feat/rawstor

Conversation

@VasilyStepanov

@VasilyStepanov VasilyStepanov commented Jul 29, 2026

Copy link
Copy Markdown
Contributor

install rawstor packages in core VM when requested by bootstrap

Reads the with_rawstor flag from spec.json (set by exordos CLI's bootstrap --with-rawstor --pool-agent-placement=core) and installs librawstor + python3.12-rawstor during first-boot bootstrap, alongside the existing element installation steps.

Summary by Sourcery

New Features:

  • Support installing librawstor and python3.12-rawstor in the core VM when the spec.json sets the with_rawstor flag.

@VasilyStepanov VasilyStepanov self-assigned this Jul 29, 2026
@sourcery-ai

sourcery-ai Bot commented Jul 29, 2026

Copy link
Copy Markdown

Reviewer's Guide

This PR adds optional installation of Rawstor packages during first-boot bootstrap of the core VM, gated by a with_rawstor flag in spec.json, by introducing a helper that downloads .deb artifacts from GitHub releases and installs them alongside existing element bootstrap steps.

Sequence diagram for Rawstor package installation during core VM bootstrap

sequenceDiagram
    participant main
    participant rawstor_installer
    participant github_releases
    participant dpkg
    participant apt_get
    participant element_installer

    main->>main: read_spec_json
    alt [spec.with_rawstor]
        main->>rawstor_installer: _install_rawstor_packages
        loop for each package
            rawstor_installer->>github_releases: wget
        end
        rawstor_installer->>dpkg: dpkg
        rawstor_installer->>apt_get: apt_get
    end
    main->>element_installer: _install_element_from_bootstrap_repo(core)
    main->>element_installer: _install_element_from_bootstrap_repo(ecosystem_realm)
Loading

File-Level Changes

Change Details Files
Add helper to download and install Rawstor .deb packages during core VM bootstrap.
  • Define RAWSTOR_VERSION and RAWSTOR_RELEASES_URL constants for constructing Rawstor package URLs.
  • Implement _install_rawstor_packages to download .deb files to /tmp/rawstor-packages using wget, then install them via dpkg and resolve dependencies with apt-get install -f -y using noninteractive frontend.
  • Ensure the helper runs as root inside the core VM and uses a temporary directory for package artifacts.
exordos_core/cmd/bootstrap.py
Wire Rawstor installation into the bootstrap flow based on spec.json configuration.
  • Read with_rawstor from the spec dict in main() to determine whether to install Rawstor.
  • Invoke _install_rawstor_packages with librawstor and python3.12-rawstor when with_rawstor is truthy, before installing core and ecosystem_realm elements.
  • Keep existing bootstrap behavior unchanged when with_rawstor is absent or false.
exordos_core/cmd/bootstrap.py

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

…strap

Reads the with_rawstor flag from spec.json (set by exordos CLI's
`bootstrap --with-rawstor --pool-agent-placement=core`) and installs
librawstor + python3.12-rawstor during first-boot bootstrap, alongside
the existing element installation steps.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant