Skip to content

Commit 24d336a

Browse files
committed
Add Source named type (string)
Signed-off-by: Giuseppe Ognibene <[email protected]>
1 parent 958f841 commit 24d336a

File tree

4 files changed

+29
-17
lines changed

4 files changed

+29
-17
lines changed

pkg/obi/config.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ var DefaultConfig = Config{
119119
MaxTransactionTime: 5 * time.Minute,
120120
},
121121
NameResolver: &transform.NameResolverConfig{
122-
Sources: []string{"k8s"},
122+
Sources: []transform.Source{transform.SourceK8s},
123123
CacheLen: 1024,
124124
CacheTTL: 5 * time.Minute,
125125
},

pkg/obi/config_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -236,7 +236,7 @@ discovery:
236236
MaxPathSegmentCardinality: 10,
237237
},
238238
NameResolver: &transform.NameResolverConfig{
239-
Sources: []string{"k8s", "dns"},
239+
Sources: []transform.Source{transform.SourceK8s, transform.SourceDns},
240240
CacheLen: 1024,
241241
CacheTTL: 5 * time.Minute,
242242
},

pkg/transform/name_resolver.go

Lines changed: 22 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -29,25 +29,37 @@ func nrlog() *slog.Logger {
2929
return slog.With("component", "transform.NameResolver")
3030
}
3131

32+
type Source string
33+
34+
const (
35+
SourceDns Source = "dns"
36+
SourceK8s Source = "k8s"
37+
SourceKube Source = "kube"
38+
SourceKubernetes Source = "kubernetes"
39+
SourceRDns Source = "rdns"
40+
)
41+
3242
const (
3343
ResolverDNS = maps.Bits(1 << iota)
3444
ResolverK8s
3545
ResolverRDNS
3646
)
3747

38-
func resolverSources(str []string) maps.Bits {
39-
return maps.MappedBits(str, map[string]maps.Bits{
40-
"dns": ResolverDNS,
41-
"k8s": ResolverK8s,
42-
"kube": ResolverK8s,
43-
"kubernetes": ResolverK8s,
44-
"rdns": ResolverRDNS,
45-
}, maps.WithTransform(strings.ToLower))
48+
func resolverSources(src []Source) maps.Bits {
49+
return maps.MappedBits(src, map[Source]maps.Bits{
50+
SourceDns: ResolverDNS,
51+
SourceK8s: ResolverK8s,
52+
SourceKube: ResolverK8s,
53+
SourceKubernetes: ResolverK8s,
54+
SourceRDns: ResolverRDNS,
55+
}, maps.WithTransform(func(s Source) Source {
56+
return Source(strings.ToLower(string(s)))
57+
}))
4658
}
4759

4860
type NameResolverConfig struct {
49-
// Sources for name resolving. Accepted values: dns, k8s
50-
Sources []string `yaml:"sources" env:"OTEL_EBPF_NAME_RESOLVER_SOURCES" envSeparator:"," envDefault:"k8s"`
61+
// Sources for name resolving. Accepted values: dns, k8s, rdns
62+
Sources []Source `yaml:"sources" env:"OTEL_EBPF_NAME_RESOLVER_SOURCES" envSeparator:"," envDefault:"k8s"`
5163
// CacheLen specifies the max size of the LRU cache that is checked before
5264
// performing the name lookup. Default: 256
5365
CacheLen int `yaml:"cache_len" env:"OTEL_EBPF_NAME_RESOLVER_CACHE_LEN"`

pkg/transform/name_resolver_test.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ func TestResolvePodsFromK8s(t *testing.T) {
5656
nr := NameResolver{
5757
db: db,
5858
cache: expirable.NewLRU[string, string](10, nil, 5*time.Hour),
59-
sources: resolverSources([]string{"dns", "k8s"}),
59+
sources: resolverSources([]Source{SourceDns, SourceK8s}),
6060
}
6161

6262
name, namespace := nr.resolveFromK8s("10.0.0.1")
@@ -127,7 +127,7 @@ func TestResolveServiceFromK8s(t *testing.T) {
127127
nr := NameResolver{
128128
db: db,
129129
cache: expirable.NewLRU[string, string](10, nil, 5*time.Hour),
130-
sources: resolverSources([]string{"dns", "k8s"}),
130+
sources: resolverSources([]Source{SourceDns, SourceK8s}),
131131
}
132132

133133
name, namespace := nr.resolveFromK8s("10.0.0.1")
@@ -279,7 +279,7 @@ func TestResolveNodesFromK8s(t *testing.T) {
279279
nr := NameResolver{
280280
db: db,
281281
cache: expirable.NewLRU[string, string](10, nil, 5*time.Hour),
282-
sources: resolverSources([]string{"dns", "k8s"}),
282+
sources: resolverSources([]Source{SourceDns, SourceK8s}),
283283
}
284284

285285
name, namespace := nr.resolveFromK8s("10.0.0.1")
@@ -350,7 +350,7 @@ func TestResolveClientFromHost(t *testing.T) {
350350
nr := NameResolver{
351351
db: db,
352352
cache: expirable.NewLRU[string, string](10, nil, 5*time.Hour),
353-
sources: resolverSources([]string{"k8s"}),
353+
sources: resolverSources([]Source{SourceK8s}),
354354
}
355355

356356
name, namespace := nr.resolveFromK8s("10.0.0.1")
@@ -430,7 +430,7 @@ func TestResolveClientFromHost_K8sFQDN(t *testing.T) {
430430
nr := NameResolver{
431431
db: db,
432432
cache: expirable.NewLRU[string, string](10, nil, 5*time.Hour),
433-
sources: resolverSources([]string{"k8s"}),
433+
sources: resolverSources([]Source{SourceK8s}),
434434
}
435435

436436
// Create a client span representing an HTTP call to a K8s Service

0 commit comments

Comments
 (0)