Skip to content

Adding support for new platforms

Nick Burgan edited this page May 7, 2026 · 9 revisions

openvox-agent and openbolt

  1. Add a new default platform to vanagon. Take a look at other similar platforms for reference and define the default as needed. It should include a list of packages similar to other platform defaults that are automatically installed, so we don't have to define those same packages in every project. Make sure there are provision_with and install_build_dependencies_with lines to define how to install those packages initially, and then any additional packages that would be specified in a project. Most importantly, make sure you have docker_image and docker_arch specified. You'll want to ensure that image exists on Docker Hub (or a different registry if you are specifying somewhere else, like this) and that you can successfully install the packages listed. If you want to proceed without having this PR merged, you can export VANAGON_LOCATION=https://github.com/<username or OpenVoxProject>/vanagon.git#<your branch> to use your changes for all of the below steps.

  2. Update the shared-actions default platforms list to add your new platform for the relevant branch (main for OpenVox 9 and 8.x for OpenVox 8) so it is built by default for all the pieces. Don't add platforms to 8.x without approval from OpenVox maintainers.

  3. Add the platform to puppet-runtime. Again, start with a similar platform and tweak as needed. You'll want plat.inherit_from_default to pull in those Vanagon defaults, and then you can override things in the specific platform file for puppet-runtime if you have to. Most likely, if the Vanagon defaults are well defined, you can simply have it look like this.

  4. Look in the various components to see if there are special code paths for similar platforms, and see if you need to add your platform in there. e.g. this.

  5. Make sure your new platform builds by running bundle exec rake vox:build['agent-runtime-main','<your new platform>']. Note for Windows and MacOS, this process is a little different. See How OpenVox Builds Work for details.

  6. Once your changes have been merged, run the Prepare Release GitHub action. This will open a PR for review. If everything is fine, merge it and run the Release GitHub action. If you find issues, re-run the "Prepare Release" action to update the PR.

  7. Run the Build puppet-runtime action, building the appropriate project (agent-runtime-main, agent-runtime-8.x, or openbolt-runtime), and ensure it finishes completely green. Verify the files were uploaded to https://artifacts.overlookinfratech.com/#puppet-runtime/.

  8. Promote the version of puppet-runtime you just built by running the promote action, making sure to target the appropriate branch (main for OpenVox 9 and 8.x for OpenVox 8). OpenBolt has a similar action.

  9. Unless the new platform is MacOS or Windows, run the Add New Repo Package Platform with both checkboxes checked to build and upload to both test and production S3 buckets. This will generate new openvox*-release packages for the repos. Note that actions in this repository can only be run by the OpenVox release team, so ping #sig-release if you don't have access.

Clone this wiki locally