From ec872cca11cbfe9d6cc9b97284ef2175bbc0390d Mon Sep 17 00:00:00 2001 From: Niladri Halder Date: Fri, 10 Nov 2023 17:29:53 +0530 Subject: [PATCH] feat(client): add function to gather node info (#17) Signed-off-by: Niladri Halder --- .gitignore | 3 +++ pkg/client/k8s/node.go | 18 ++++++++++++++++++ 2 files changed, 21 insertions(+) diff --git a/.gitignore b/.gitignore index 66fd13c..d2b9e35 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,6 @@ +# IDEs +**/.idea + # Binaries for programs and plugins *.exe *.exe~ diff --git a/pkg/client/k8s/node.go b/pkg/client/k8s/node.go index 14f34e1..6bb621c 100644 --- a/pkg/client/k8s/node.go +++ b/pkg/client/k8s/node.go @@ -101,3 +101,21 @@ func GetOSAndKernelVersion() (string, error) { nodedetails := firstNode.Items[0].Status.NodeInfo return nodedetails.OSImage + ", " + nodedetails.KernelVersion, nil } + +// GetNodeInfo gathers details from the first Kubernetes Node and returns -- OS, Kernel version and Arch. +func GetNodeInfo() (nodeOs, nodeKernelVersion, nodeArch string, err error) { + nodes := Node() + firstNode, err := nodes.List(metav1.ListOptions{Limit: 1}) + if err != nil { + return "unknown", + "unknown", + "unknown", + errors.Wrapf(err, "failed to get the os kernel/arch") + } + + nodeOs = firstNode.Items[0].Status.NodeInfo.OSImage + nodeKernelVersion = firstNode.Items[0].Status.NodeInfo.KernelVersion + nodeArch = firstNode.Items[0].Status.NodeInfo.Architecture + + return +}