Skip to content

Adding support for new platforms

Romain Tartière edited this page Aug 10, 2025 · 6 revisions

openvox-agent

  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 build_vanagon shared action to add your new platform so it is built by default for all the pieces.
  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, and ensure it finishes completely green. Verify the files were uploaded to https://artifacts.overlookinfratech.com/#puppet-runtime/. Again, Windows and MacOS are different. They will soon be included here, but are not yet and must be built and uploaded manually. Talk to @nmburgan if you need to do this.
  8. Promote the version of puppet-runtime you just built by running bundle exec rake vox:promote['puppet-runtime','<platform>']
  9. Follow steps 3 and 4 above for openvox-agent.
  10. Promote both puppet-runtime and pxp-agent by running bundle exec rake vox:promote['puppet-runtime','<version>'] and bundle exec rake vox:promote['pxp-agent','<version>'].
  11. Update the CHANGELOG.md file to note you are adding the platform in the Unreleased section. NOTE: This procedure is being changed. Talk to @smortex for details.
  12. Follow steps 5-7 above for openvox-agent.
Clone this wiki locally