Description
When configuring an external_connector node, the provider normalizes device names
(e.g. bridge041) to a label format (e.g. Bridge 041) before sending to the CML API.
CML 2.10.x does not recognize the label format and the connector shows as "(non-existent)"
in the UI and fails to connect.
Environment
- CML version: 2.10.0+build.13
- Provider version: 0.9.1
Steps to reproduce
- Set
configuration = "bridge041" on an external_connector node
- Run
terraform apply
- Provider warns: "normalized to label 'Bridge 041'"
- CML stores
Bridge 041 but connector shows "(non-existent)" — bridge is non-functional
Root cause
The provider calls /api/v0/external_connectors to map device names to labels.
This endpoint returns 404 on CML 2.10.x. The provider falls back to string formatting
(bridge041 → Bridge 041), which CML does not accept.
Querying the node via API confirms CML stores Bridge 041 but requires bridge041.
Expected behavior
When /api/v0/external_connectors returns 404, fall back to using the device name
as-is rather than applying label formatting.
Workaround
Add lifecycle { ignore_changes = [configuration] } to external connector resources,
then manually set the correct bridge in the CML UI.
Description
When configuring an
external_connectornode, the provider normalizes device names(e.g.
bridge041) to a label format (e.g.Bridge 041) before sending to the CML API.CML 2.10.x does not recognize the label format and the connector shows as "(non-existent)"
in the UI and fails to connect.
Environment
Steps to reproduce
configuration = "bridge041"on anexternal_connectornodeterraform applyBridge 041but connector shows "(non-existent)" — bridge is non-functionalRoot cause
The provider calls
/api/v0/external_connectorsto map device names to labels.This endpoint returns 404 on CML 2.10.x. The provider falls back to string formatting
(
bridge041→Bridge 041), which CML does not accept.Querying the node via API confirms CML stores
Bridge 041but requiresbridge041.Expected behavior
When
/api/v0/external_connectorsreturns 404, fall back to using the device nameas-is rather than applying label formatting.
Workaround
Add
lifecycle { ignore_changes = [configuration] }to external connector resources,then manually set the correct bridge in the CML UI.