Skip to content

Add aaos-sdv-dev-env module and buildx bake support - #70

Open
tudormot wants to merge 2 commits into
GoogleCloudPlatform:develfrom
tudormot:contrib/aaos-sdv-dev-env-mod
Open

tudormot wants to merge 2 commits into
GoogleCloudPlatform:develfrom
tudormot:contrib/aaos-sdv-dev-env-mod

Conversation

@tudormot

Copy link
Copy Markdown

Description

This pull request introduces the aaos-sdv-dev-env module to Horizon SDV and enhances the shared common-docker-image-build cluster workflow template to support Docker Buildx Bake definitions.

Summary of Changes

  1. Docker Buildx Bake Support in common-docker-image-build:

    • Adds an optional bakeFile input parameter to the common-docker-image-build ClusterWorkflowTemplate.
    • When specified, configures docker buildx against the existing buildkitd Unix socket driver, injects build arguments / environment variables (IMAGE, GCP_REGION, etc.), and executes docker buildx bake.
    • Preserves complete backwards compatibility for existing single Dockerfile workflows when bakeFile is not provided.
  2. New Module: aaos-sdv-dev-env (gitops/modules/aaos-sdv-dev-env):

    • Implements a self-contained module following the Horizon module architecture and App-of-Apps pattern.
    • Dual Argo Workflows:
      • aaos-sdv-dev-env-init: Fast preflight check validating connectivity and branch/tag resolution against the public repository (github.com/google/aaos-sdv-demos).
      • aaos-sdv-dev-env-execute: End-to-end pipeline that builds the container image via Docker Buildx Bake, provisions a builder workstation, generates a disk snapshot, provisions a test workstation instance to run BATS acceptance tests, and promotes the final snapshot to an aaos-sdv-dev-env-latest workstation configuration.
    • Registers the module with Module Manager in gitops/apps/module-manager/templates/module-catalog.yaml.
    • Includes Developer Portal documentation and overview service.

Checklist

  • I have deployed Horizon SDV on my own GCP project and tested the changes on a live instance.
  • Target branch is devel.
  • Code and manifests follow the repository licensing standards (Apache 2.0).
  • Module placed under gitops/modules/.
Tudor Mot added 2 commits September 30, 2026 13:15
Allow callers to execute multi-target Docker Buildx Bake definitions against
the buildkitd sidecar by setting the optional bakeFile parameter.

When bakeFile is set, the build container attaches docker buildx to the
existing unix:///run/buildkit/buildkitd.sock socket via the remote driver,
exports IMAGE, GCP_REGION and any KEY=VALUE lines supplied in buildArgs as
HCL variables, and runs docker buildx bake. When bakeFile is empty (the
default), the existing buildctl path runs unchanged.
…ent image

Introduce a Horizon SDV module that builds, tests and publishes the AAOS SDV
development environment workstation image, replacing a manual runbook with a
pipeline that can be run from the Developer Portal.

The module registers two workflows. aaos-sdv-dev-env-init is a seconds-long
preflight that checks the public aaos-sdv-demos repository is reachable at the
expected revision, so a misconfiguration surfaces immediately rather than after
a multi-gigabyte build. aaos-sdv-dev-env-execute runs the pipeline proper:
build the container image via aaos-sdv-demos/docker/docker-bake.hcl, provision
a builder workstation and snapshot its disk, launch a GPU-backed test
workstation from that snapshot and run a BATS acceptance suite on it, then on
success promote the snapshot and publish a ready-to-use
aaos-sdv-dev-env-latest workstation configuration.

Nothing is vendored. The Dockerfile, docker/docker-bake.hcl and image assets
are cloned at run time from github.com/google/aaos-sdv-demos, which is public,
so no credentials are involved. The image build delegates to the shared
common-docker-image-build ClusterWorkflowTemplate, which runs docker buildx
bake against its buildkitd sidecar to wire the cicd-foundation base layers
(preflight, common, remote-desktop with INSTALL_GUACAMOLE=false, and
android-studio-for-platform) and the demo layer in a single BuildKit graph.
@tudormot
tudormot force-pushed the contrib/aaos-sdv-dev-env-mod branch from 89e15f5 to 9ae677b Compare October 1, 2026 09:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

1 participant