-
Notifications
You must be signed in to change notification settings - Fork 0
Adding support for new platforms
Romain Tartière edited this page Aug 10, 2025
·
6 revisions
- 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
andinstall_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 havedocker_image
anddocker_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 canexport VANAGON_LOCATION=https://github.com/<username or OpenVoxProject>/vanagon.git#<your branch>
to use your changes for all of the below steps. - Update the build_vanagon shared action to add your new platform so it is built by default for all the pieces.
- 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. - 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.
- 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. - 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.
- 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.
- Promote the version of puppet-runtime you just built by running
bundle exec rake vox:promote['puppet-runtime','<platform>']
- Follow steps 3 and 4 above for openvox-agent.
- Promote both puppet-runtime and pxp-agent by running
bundle exec rake vox:promote['puppet-runtime','<version>']
andbundle exec rake vox:promote['pxp-agent','<version>']
. - 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. - Follow steps 5-7 above for openvox-agent.