Skip to content

Commit 41b5c1f

Browse files
kvapsclaude
andcommitted
fix(controller): mark satellite ConnectionStatus=ONLINE on successful Hello
linstor-csi-node ships an init container `linstor-wait-node-online` that polls /v1/nodes/<name> for connection_status: "ONLINE" before letting the CSI driver register with kubelet. Hello round-tripping already proves the node is ONLINE — emit it in the prop bag so the piraeus DaemonSet stops looping on initContainer. Closes the path for piraeus-operator native flip: with externalController.url pointing at blockstor:3370, linstor-csi-node pods now make it past Init. Co-Authored-By: Claude <noreply@anthropic.com> Signed-off-by: Andrei Kvapil <kvapss@gmail.com>
1 parent 52b2f82 commit 41b5c1f

1 file changed

Lines changed: 9 additions & 3 deletions

File tree

pkg/satellitecontroller/server.go

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -76,10 +76,16 @@ func (s *Server) Hello(ctx context.Context, req *satellitepb.HelloRequest) (*sat
7676
"SatelliteEndpoint": req.GetSatelliteEndpoint(),
7777
}
7878

79+
// Hello completes only after the satellite has dialled in, so by
80+
// the time we're here the node is ONLINE in LINSTOR-speak. The
81+
// piraeus init-container `linstor-wait-node-online` checks this
82+
// exact field; without it linstor-csi-node DaemonSets stall on
83+
// satellites we know perfectly well are alive.
7984
node := apiv1.Node{
80-
Name: req.GetNodeName(),
81-
Type: apiv1.NodeTypeSatellite,
82-
Props: props,
85+
Name: req.GetNodeName(),
86+
Type: apiv1.NodeTypeSatellite,
87+
Props: props,
88+
ConnectionStatus: "ONLINE",
8389
}
8490

8591
err := s.st.Nodes().Create(ctx, &node)

0 commit comments

Comments
 (0)