blob: ec57aca1a3c6a0f2127957018350034df6524059 [file] [log] [blame] [view]
# Onboarding NPIs to tlBMC
go/tlbmc-onboarding-npis
<!--*
# Document freshness: For more information, see go/fresh-source.
freshness: { owner: 'tlbmc-dev' reviewed: '2025-10-13' }
*-->
This document describes how to onboard an NPI to different modules of tlBMC.
Since tlBMC is divided into several modules(go/composable-tlbmc), each module
can be enabled and configured independently.
[TOC]
## Enable tlBMC with default modules
Developers can see the default config in "general config" section
[here](http://google3/third_party/milotic/external/cc/tlbmc/central_config/tlbmc_config_bundle.textproto)
For platform specific config, please refer to "platform_to_config" and find the
corresponding platform name key.
To build image with tlbmc enabled, add `DISTRO_FEATURES:append = " tlbmc"` to
`/path/to/your/machine.conf`.
After installing such image, developer can check if tlbmc if enabled by
grepping them in journal or by redfish call:
```
root@bmc:~# journalctl -u bmcweb | grep -i tlbmc
... tlbmc enabled: true
# OR
root@bmc:~# curl localhost/redfish/tlbmc
{
"@odata.id": "/redfish/tlbmc",
"AllChassis": {
"@odata.id": "/redfish/tlbmc/AllChassis"
},
"AllSensors": {
"@odata.id": "/redfish/tlbmc/AllSensors"
},
"Debug": {
"@odata.id": "/redfish/tlbmc/Debug"
},
"Metrics": {
"@odata.id": "/redfish/tlbmc/Metrics"
},
"Name": "tlBMC Root Service"
}
```
## Per-Module Onboarding Guides
- [Fru Collector Module](fru_collector_module.md)
- [Sensor Collector Module](sensor_collector_module.md)
- [Metric Collector Module](metric_collector_module.md)
- [Install Module](install_module.md)
- [Redfish Rate Limiter Module](redfish_rate_limiter_module.md)
## tlBMC Configuration
The tlBMC modules enabled for each platform are controlled by
`tlbmc_config_bundle.textproto`. Developers can see the default config in
"general config" section
[here](https://gbmc-private.git.corp.google.com/meta-google-private/+/refs/heads/master/recipes-google/tlbmc/files/tlbmc_config_bundle.textproto)
For platform specific config, please refer to "platform_to_config" and find the
corresponding platform name key. If a platform is not listed, it will use
the "general_config". Each module must be enabled in this file to function.