From 959d5de0bb597eec3572ab6490dc5a9c9142dbcf Mon Sep 17 00:00:00 2001 From: Bin Wang Date: Mon, 16 Oct 2023 00:18:23 -0400 Subject: [PATCH] osd: print warning message if no matching node found for osd As seen in https://github.com/rook/rook/issues/1988, it's a common mistake to configure rook nodes with names that don't match Kubernetes's node label. This PR prints more detailed message to help debugging problem. Signed-off-by: Bin Wang Add break according to review comment Co-authored-by: Travis Nielsen Update log message according to review comment Co-authored-by: Travis Nielsen (cherry picked from commit 4a705b46b04cb2d6f56d94f1a7707f8adc5f1b9c) --- pkg/operator/k8sutil/node.go | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/pkg/operator/k8sutil/node.go b/pkg/operator/k8sutil/node.go index d9cb27a25..0962c2692 100644 --- a/pkg/operator/k8sutil/node.go +++ b/pkg/operator/k8sutil/node.go @@ -281,12 +281,18 @@ func GetKubernetesNodesMatchingRookNodes(ctx context.Context, rookNodes []cephv1 if err != nil { return nodes, fmt.Errorf("failed to list kubernetes nodes. %+v", err) } - for _, kn := range k8sNodes.Items { - for _, rn := range rookNodes { + for _, rn := range rookNodes { + nodeFound := false + for _, kn := range k8sNodes.Items { if rookNodeMatchesKubernetesNode(rn, kn) { nodes = append(nodes, kn) + nodeFound = true + break } } + if !nodeFound { + logger.Warningf("failed to find matching kubernetes node for %q. Check the CephCluster's config and confirm each 'name' field in spec.storage.nodes matches their 'kubernetes.io/hostname' label", rn.Name) + } } return nodes, nil }