Skip to content

ADR 0009: Flexible Distribution and Reporting

Date: 2025-07-25

Status

Accepted

Context

See 6. New Test Framework to enable In-Place, Self-Contained Test Execution for additional context on this decision.

The Garden Linux test framework must support a wide variety of environments, including cloud providers, VMs, containers, chroots, and bare metal. The current approach relies heavily on SSH and manual deployment, which is slow, error-prone, and not always feasible. Additionally, previous frameworks lacked robust mechanisms for exporting and reporting test results in a standardized, machine-readable format.

Key limitations:

  • Deployment Constraints: Reliance on SSH and manual copying (e.g., scp) is slow and fragile, especially for large test suites.
  • Cloud Provider Diversity: Different cloud platforms require different image formats and deployment strategies.
  • Reporting Weaknesses: Lack of standardized, exportable reporting formats makes it difficult to integrate test results with external systems or dashboards.

Decision

We will support multiple mechanisms for distributing the test suite and collecting results, tailored to the needs of each environment:

  • Distribution Mechanisms: The test suite may be delivered via scp, cloud-init/user_data, OCI registry/artifact, image attach, or other platform-specific methods. The suite will be packaged as a relocatable tarball or directory, and may be built on demand or pulled as a build artifact.
  • Cloud Provider Support: Image formats and deployment workflows will be adapted for each provider (e.g., raw, vhd, qcow2), with research into automation and API integration for disk/image attachment.
  • Reporting: Test output will be flexible and allow custom formats in a plugin-based system, so that new formats are easy to add. The default output will be a human-readable text format, machine readable outputs such as a diki-compatible format or JUnit xml output may be added later.
  • Backchannel for Logs: Mechanisms will be explored for retrieving logs and results from the system under test.

Consequences

  • Portability: The test framework can be deployed and executed in diverse environments, including public clouds, on-premises, and edge systems.
  • Scalability: Automated distribution and reporting enable large-scale, repeatable testing across many systems and platforms.
  • Integration: Standardized reporting formats facilitate integration with CI/CD pipelines, dashboards, and external tools.
  • Maintainability: Flexible distribution mechanisms reduce operational overhead and make it easier to adapt to new platforms or requirements.
  • Implementation Effort: Initial implementation will likely use scp and S3 uploads, with further research into image attach and OCI artifact strategies.