Skip to content

Commit 2087f7e

Browse files
committed
Set node_name to hostname if NODE_NAME envvar is not found
This enables node_name field in the standalone (non-k8s) mode. Signed-off-by: Anna Kapuscinska <anna@isovalent.com>
1 parent 18ecc57 commit 2087f7e

File tree

2 files changed

+16
-5
lines changed

2 files changed

+16
-5
lines changed

pkg/grpc/process_manager_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -221,7 +221,7 @@ func TestProcessManager_GetProcessExec(t *testing.T) {
221221
}
222222

223223
func Test_getNodeNameForExport(t *testing.T) {
224-
assert.Equal(t, "", node.GetNodeNameForExport())
224+
assert.NotEqual(t, "", node.GetNodeNameForExport()) // we should get the hostname here
225225
assert.NoError(t, os.Setenv("NODE_NAME", "from-node-name"))
226226
assert.Equal(t, "from-node-name", node.GetNodeNameForExport())
227227
assert.NoError(t, os.Setenv("HUBBLE_NODE_NAME", "from-hubble-node-name"))

pkg/reader/node/node.go

+15-4
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,11 @@
33

44
package node
55

6-
import "os"
6+
import (
7+
"os"
8+
9+
"github.com/cilium/tetragon/pkg/logger"
10+
)
711

812
// getNodeNameForExport returns node name string for JSON export. It uses NODE_NAME
913
// env variable by default, which is also used by k8s watcher to watch for local pods:
@@ -12,9 +16,16 @@ import "os"
1216
//
1317
// Set HUBBLE_NODE_NAME to override the node_name field for JSON export.
1418
func GetNodeNameForExport() string {
19+
var err error
1520
nodeName := os.Getenv("HUBBLE_NODE_NAME")
16-
if nodeName != "" {
17-
return nodeName
21+
if nodeName == "" {
22+
nodeName = os.Getenv("NODE_NAME")
23+
}
24+
if nodeName == "" {
25+
nodeName, err = os.Hostname()
26+
if err != nil {
27+
logger.GetLogger().WithError(err).Warn("failed to retrieve hostname")
28+
}
1829
}
19-
return os.Getenv("NODE_NAME")
30+
return nodeName
2031
}

0 commit comments

Comments
 (0)