- Kind: Projection
- Version: 1
- Fleet Manager owner: Fleet Manager squad, #fleet-manager-chat (individual claimant pending)
- Counterpart owner: Google via the Nscale account team; internal delivery owner Fleet Manager squad
- Last reviewed: 2026-09-09
What flows
Thegoogle-borneo-connector (src/fleet_manager/api/connectors/google/, ADR-0021 and ADR-0023) consumes
inventory device events over JetStream and delivers hardware asset register and refresh calls to Google’s
Partner Ops API. Two gates sit in front of that: the chart ships googleBorneoConnector.enabled: false, and
validate_only defaults to true, so an enabled connector on defaults asks Google to validate payloads without
persisting them; persisted registration needs validateOnly: false in the environment overlay. The Partner Ops calls
are (outpostHardwareAssets, PATCH outpostRacks, testConnectivity). A polling backstop reads
GetHardwareAsset for in-transition and delegated devices and maps Google-side state changes onto Fleet
Manager custody transitions, so this projection also carries inbound custody signals. It holds inventory:read.
What breaks if this changes
A Borneo API or auth change crash-loops every enabled connector, validate-only included, because startup runs_verify_connectivity_or_raise and the polling backstop unconditionally; that stops reclaim signals for assets
already in Borneo. Persisted registration of new hardware is additionally lost only where validateOnly: false. A Fleet Manager inventory shape change breaks the transform in
src/fleet_manager/api/connectors/google/transforms/inventory_to_borneo.py.
Enforcement
- Principal:
google-borneo-connector. - Mechanism: towards Fleet Manager, FM OAuth client (private-key JWT) in the hub chart roster; towards Borneo,
Google service-account impersonation on top of Workload Identity Federation credentials that the
product-vault-storeExternalSecret materialises from Vault key<env>/fm-google-borneo-connector/gcp/adc(deployment/charts/hub/templates/google-borneo/gcp-credentials.yaml); towards NATS, thefleet-google-connector-clientcertificate on the Fleet Manager-owned plane (see nats). Startup runs Borneo’stestConnectivityand crash-loops without the ADC file. Each registration also reads the device’s<name>-bmcitem from the hub 1Password vault (see onepassword); a missing item dead-letters that device, invalidate_onlymode too, because the read happens before the placeholder substitution (src/fleet_manager/api/connectors/google/reconcilers/outbound.py). - Hub roster client
google-borneo-connector; client insrc/fleet_manager/core/clients/google_borneo/. - Settings:
src/fleet_manager/settings/agents/google_borneo.py(site_slug, cluster scope).
Gaps
- Google has not delivered a webhook; polling is the complete inbound mechanism.
Change log
- 2026-09-09 v1: created; describes present behaviour.