Skip to content

Conversation

@alexlovelltroy
Copy link
Contributor

@alexlovelltroy alexlovelltroy commented Dec 11, 2025

Summary and Scope

This pull request adds support for exporting hardware inventory data from both CSM and HPCM providers to the OpenCHAMI nodes.yaml format, enabling migration to OpenCHAMI deployments. It introduces a new export format option, updates the CLI and documentation, and improves test handling for external services. The most important changes are grouped below.

OpenCHAMI Export Support

  • Added a new export format (openchami) for both CSM and HPCM providers, allowing inventory data to be exported in a format compatible with OpenCHAMI's nodes.yaml. This includes node and BMC metadata, such as xname, IP, MAC, NID, and hostname. (internal/provider/csm/export.go, internal/provider/hpcm/export.go, internal/provider/csm/init.go, internal/provider/hpcm/init.go) [1] [2] [3] [4] [5] [6]

CLI and Documentation Updates

  • Updated the CLI to include the new --format openchami option for export commands in both providers. (internal/provider/csm/init.go, internal/provider/hpcm/init.go) [1] [2]
  • Enhanced the README.md with clear instructions and details about exporting to OpenCHAMI, including example usage and format description.

Test Improvements

  • Modified Makefile targets and shell test scripts to support skipping tests that require external services, controlled by the SKIP_EXTERNAL_TESTS environment variable. This makes CI and local testing more flexible. (Makefile, spec/functional/cani_session_spec.sh, spec/spec_helper.sh) [1] [2] [3] [4]

These changes enable seamless migration of hardware inventory to OpenCHAMI and improve the usability and reliability of the export and test processes.

Risks and Mitigations

The risk is low. No existing functionality is changed.

- Implemented export to OpenCHAMI nodes.yaml format in both CSM and HPCM providers.
- Updated Makefile to include SKIP_EXTERNAL_TESTS for functional tests.
- Enhanced README.md with usage instructions for OpenCHAMI export.
- Modified test scripts to conditionally skip tests requiring external services.

Signed-off-by: Alex Lovell-Troy <alovelltroy@lanl.gov>
@jacobsalmela
Copy link
Collaborator

Cool. I will test it out internally and see how it works, but it looks like it will. It is just adding a new export format.

A few things to note:

  • there is a lot of CSM-specific things scattered in layers of the app, which should be self-contained inside the csm package
  • OpenCHAMI could be added as a "provider" for full compatibility if we want going forward
  • the development branch has/will have all the csm stuff removed from the upper layers of the app and it is a significant change, but opens the door for easier contributions and portability of inventory between systems

@alexlovelltroy
Copy link
Contributor Author

Can we merge this now and then deal with the merge of the dev branch and cleanup later? At this point, I don't know if making it a full provider is valuable. Not sure how we would use that in the OpenCHAMI community.

Signed-off-by: Jacob Salmela <jacob.salmela@hpe.com>
@jacobsalmela jacobsalmela merged commit 63d10e1 into Cray-HPE:main Dec 15, 2025
4 of 6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants