developer-cloud

RISE Board Farm: Project Proposal for Board Farm Management SW

Status: Draft Authors: puneetha@google.com, Ludovic Henry

Names and ssh public keys of the project leads

Ideally 2-3 people, to provide backup in the event of vacation time Tech leads:

Contractors: TBD

Brief description

This project develops the management software stack for the RISE board farm hosted at OSU-OSL. This software must be developed in a way that other members of the RVI Labs Ecosystem Partners WG can use it as well.

The work is structured in two macro phases.

Macro Phase 1 delivers a Labgrid-only setup. The goal is to get boards accessible quickly to a small group of trusted contributors - no OpenStack, no Redfish, no Ironic. Authentication is minimal and intentionally so: this phase is about validating the physical setup, getting people onto hardware, and learning what we actually need before committing to a production architecture. It is not intended for widespread use.

Macro Phase 2 turns this into a scalable, multi-tenant service. Two paths are under consideration: (A) building OpenStack Ironic on top of the Labgrid layer via a Redfish-over-Labgrid translation service, or (B) replacing Redfish-over-Labgrid+Labgrid with OpenBMC. The right path depends on a technical feasibility assessment at the start of Macro Phase 2; both options may prove applicable independently or complementarily depending on the hardware in the farm.

In both phases, the board farm must support three primary usage models:

RISE workgroup(s)

Developer Infrastructure

Existing resources

The technical path leverages well-understood tooling and aligns with current RISC-V platform specifications:

A Raspberry Pi or similar controller will serve as the initial board-farm controller.

How will the output of this project be presented to the public?

The output will be presented through:

For Macro Phase 2, depending on the chosen path:

System Overview

Software stack

Macro Phase 1

Macro Phase 2

mermaid link

Hardware setup

Macro Phase 1

mermaid link

Macro Phase 2

mermaid link

Project roadmap

Macro Phase 1: Labgrid-Only MVP

Goal: Get boards accessible to a small group of trusted contributors using Labgrid directly. No OpenStack, no Redfish, no Ironic. Authentication is minimal. This phase is not intended for widespread use.

Phase 1: Requirements and Architecture

Define the setup for Labgrid-only board access.

Work items:

Resource requirements:

Phase 2: Labgrid Setup and Core Board Control

Stand up Labgrid and validate physical board control.

Work items:

Resource requirements:

Phase 3: Basic User Access and Workflows

Give the select group access to boards with minimal ceremony.

Work items:

Resource requirements:

Macro Phase 2: Scalable Muti-Tenant Stack

Goal: Build a production-ready, multi-tenant service on top of the Macro Phase 1 foundation. Begin with a feasibility assessment to determine the architecture, then implement.

Phase 4: Technical Feasibility Assessment

Determine the right architecture before committing to implementation.

Work items:

Resource requirements:

Phase 5: Architecture and Core Stack

Implement the chosen architecture.

Work items (path A - Redfish-over-Labgrid + OpenStack):

Work items (path B - OpenBMC):

Work items (common to both paths):

Resource requirements:

Phase 6: OS Image Management

Develop the OS image-management workflow supporting modern RISC-V distributions.

Supported image set:

Work items:

Resource requirements:

Phase 7: CI, Kernel Testing, and SSH Workflows

Turn the control stack into a production-ready service fulfilling the primary use cases.

Work items:

Resource requirements:

Phase 8: Scaling and Operations

Prepare the board farm for multi-tenant, continuous operation.

Work items:

Resource requirements:

What Linux distribution (with version) is desired?

Should be something natively supported by Google Cloud

What parts of this project would be considered “critical” vs “nice to have”?

Critical

Macro Phase 1:

Macro Phase 2:

Nice to Have

Can the build agents be preempted?

SLAs have to be established depending on the users (1st party vs 3rd party)

Do the systems need to run 24x7, or can they be started and stopped based on load?

Macro Phase 1: The Labgrid controller and boards remain powered on, but there is no complex control plane to manage. Availability requirements are proportional to the small initial user group.

Macro Phase 2: Based on load, with the following constraints:

The core board-farm control plane must remain highly available. Long-running CI workloads and ad-hoc SSH access necessitate that allocated boards and their required management services operate 24x7 during reservations. Peripheral services, such as reporting or artifact processing, may be scaled on demand depending on the final architecture.

Any other requirements?

Questions