Skip to content

Commit 59f9ac4

Browse files
authored
Add support for hints' based autodiscovery in kubernetes provider (#698)
1 parent eb3a698 commit 59f9ac4

40 files changed

+745
-96
lines changed

CHANGELOG.next.asciidoc

+1
Original file line numberDiff line numberDiff line change
@@ -201,3 +201,4 @@
201201
- Redact sensitive information on diagnostics collect command. {issue}[241] {pull}[566]
202202
- Fix incorrectly creating a filebeat redis input when a policy contains a packetbeat redis input. {issue}[427] {pull}[700]
203203
- Add `lumberjack` input type to the Filebeat spec. {pull}[959]
204+
- Add support for hints' based autodiscovery in kubernetes provider. {pull}[698]

NOTICE.txt

+2-2
Original file line numberDiff line numberDiff line change
@@ -617,11 +617,11 @@ you may not use this file except in compliance with the Elastic License.
617617

618618
--------------------------------------------------------------------------------
619619
Dependency : github.com/elastic/elastic-agent-autodiscover
620-
Version: v0.0.0-20220404145827-89887023c1ab
620+
Version: v0.2.1
621621
Licence type (autodetected): Apache-2.0
622622
--------------------------------------------------------------------------------
623623

624-
Contents of probable licence file $GOMODCACHE/github.com/elastic/elastic-agent-autodiscover@v0.0.0-20220404145827-89887023c1ab/LICENSE:
624+
Contents of probable licence file $GOMODCACHE/github.com/elastic/elastic-agent-autodiscover@v0.2.1/LICENSE:
625625

626626
Apache License
627627
Version 2.0, January 2004

go.mod

+1-2
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ require (
1111
github.com/coreos/go-systemd/v22 v22.3.2
1212
github.com/docker/go-units v0.4.0
1313
github.com/elastic/e2e-testing v1.99.2-0.20220117192005-d3365c99b9c4
14-
github.com/elastic/elastic-agent-autodiscover v0.0.0-20220404145827-89887023c1ab
14+
github.com/elastic/elastic-agent-autodiscover v0.2.1
1515
github.com/elastic/elastic-agent-client/v7 v7.0.0-20210727140539-f0905d9377f6
1616
github.com/elastic/elastic-agent-libs v0.2.6
1717
github.com/elastic/elastic-agent-system-metrics v0.3.0
@@ -119,7 +119,6 @@ require (
119119
go.elastic.co/apm/v2 v2.0.0 // indirect
120120
go.elastic.co/fastjson v1.1.0 // indirect
121121
go.uber.org/atomic v1.9.0 // indirect
122-
go.uber.org/goleak v1.1.12 // indirect
123122
go.uber.org/multierr v1.8.0 // indirect
124123
golang.org/x/mod v0.5.1 // indirect
125124
golang.org/x/net v0.0.0-20220225172249-27dd8689420f // indirect

go.sum

+9-4
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,7 @@ github.com/Microsoft/hcsshim v0.8.14/go.mod h1:NtVKoYxQuTLx6gEq0L96c9Ju4JbRJ4nY2
9292
github.com/Microsoft/hcsshim v0.8.15/go.mod h1:x38A4YbHbdxJtc0sF6oIz+RG0npwSCAvn69iY6URG00=
9393
github.com/Microsoft/hcsshim v0.8.16/go.mod h1:o5/SZqmR7x9JNKsW3pu+nqHm0MF8vbA+VxGOoXdC600=
9494
github.com/Microsoft/hcsshim v0.8.21/go.mod h1:+w2gRZ5ReXQhFOrvSQeNfhrYB/dg3oDwTOcER2fw4I4=
95+
github.com/Microsoft/hcsshim v0.8.24/go.mod h1:4zegtUJth7lAvFyc6cH2gGQ5B3OFQim01nnU2M8jKDg=
9596
github.com/Microsoft/hcsshim/test v0.0.0-20201218223536-d3e5debf77da/go.mod h1:5hlzMzRKMLyo42nCZ9oml8AdTlq/0cvIaBv6tK1RehU=
9697
github.com/Microsoft/hcsshim/test v0.0.0-20210227013316-43a75bb4edd3/go.mod h1:mw7qgWloBUl75W/gVH3cQszUg1+gUITj7D6NY7ywVnY=
9798
github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ=
@@ -227,6 +228,7 @@ github.com/containerd/cgroups v0.0.0-20200710171044-318312a37340/go.mod h1:s5q4S
227228
github.com/containerd/cgroups v0.0.0-20200824123100-0b889c03f102/go.mod h1:s5q4SojHctfxANBDvMeIaIovkq29IP48TKAxnhYRxvo=
228229
github.com/containerd/cgroups v0.0.0-20210114181951-8a68de567b68/go.mod h1:ZJeTFisyysqgcCdecO57Dj79RfL0LNeGiFUqLYQRYLE=
229230
github.com/containerd/cgroups v1.0.1/go.mod h1:0SJrPIenamHDcZhEcJMNBB85rHcUsw4f25ZfBiPYRkU=
231+
github.com/containerd/cgroups v1.0.3/go.mod h1:/ofk34relqNjSGyqPrmEULrO4Sc8LJhvJmWbUCUKqj8=
230232
github.com/containerd/console v0.0.0-20180822173158-c12b1e7919c1/go.mod h1:Tj/on1eG8kiEhd0+fhSDzsPAFESxzBBvdyEgyryXffw=
231233
github.com/containerd/console v0.0.0-20181022165439-0650fd9eeb50/go.mod h1:Tj/on1eG8kiEhd0+fhSDzsPAFESxzBBvdyEgyryXffw=
232234
github.com/containerd/console v0.0.0-20191206165004-02ecf6a7291e/go.mod h1:8Pf4gM6VEbTNRIT26AyyU7hxdQU3MvAvxVI0sc00XBE=
@@ -240,6 +242,7 @@ github.com/containerd/containerd v1.3.2/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMX
240242
github.com/containerd/containerd v1.4.0-beta.2.0.20200729163537-40b22ef07410/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA=
241243
github.com/containerd/containerd v1.4.1/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA=
242244
github.com/containerd/containerd v1.4.3/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA=
245+
github.com/containerd/containerd v1.4.9/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA=
243246
github.com/containerd/containerd v1.5.0-beta.1/go.mod h1:5HfvG1V2FsKesEGQ17k5/T7V960Tmcumvqn8Mc+pCYQ=
244247
github.com/containerd/containerd v1.5.0-beta.3/go.mod h1:/wr9AVtEM7x9c+n0+stptlo/uBBoBORwEx6ardVcmKU=
245248
github.com/containerd/containerd v1.5.0-beta.4/go.mod h1:GmdgZd2zA2GYIBZ0w09ZvgqEq8EfBp/m3lcVZIvPHhI=
@@ -281,6 +284,7 @@ github.com/containerd/ttrpc v0.0.0-20190828172938-92c8520ef9f8/go.mod h1:PvCDdDG
281284
github.com/containerd/ttrpc v0.0.0-20191028202541-4f1b8fe65a5c/go.mod h1:LPm1u0xBw8r8NOKoOdNMeVHSawSsltak+Ihv+etqsE8=
282285
github.com/containerd/ttrpc v1.0.1/go.mod h1:UAxOpgT9ziI0gJrmKvgcZivgxOp8iFPSk8httJEt98Y=
283286
github.com/containerd/ttrpc v1.0.2/go.mod h1:UAxOpgT9ziI0gJrmKvgcZivgxOp8iFPSk8httJEt98Y=
287+
github.com/containerd/ttrpc v1.1.0/go.mod h1:XX4ZTnoOId4HklF4edwc4DcqskFZuvXB1Evzy5KFQpQ=
284288
github.com/containerd/typeurl v0.0.0-20180627222232-a93fcdb778cd/go.mod h1:Cm3kwCdlkCfMSHURc+r6fwoGH6/F1hH3S4sg0rLFWPc=
285289
github.com/containerd/typeurl v0.0.0-20190911142611-5eb25027c9fd/go.mod h1:GeKYzf2pQcqv7tJ0AoCuuhtnqhva5LNU3U+OyKxxJpk=
286290
github.com/containerd/typeurl v1.0.1/go.mod h1:TB1hUtrpaiO88KEK56ijojHS1+NeF0izUACaJW2mdXg=
@@ -375,11 +379,11 @@ github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:Htrtb
375379
github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk=
376380
github.com/elastic/e2e-testing v1.99.2-0.20220117192005-d3365c99b9c4 h1:uYT+Krd8dsvnhnLK9pe/JHZkYtXEGPfbV4Wt1JPPol0=
377381
github.com/elastic/e2e-testing v1.99.2-0.20220117192005-d3365c99b9c4/go.mod h1:UcNuf4pX/qDVNQr0zybm1NL2YoWik+jKBaINZqQCA40=
378-
github.com/elastic/elastic-agent-autodiscover v0.0.0-20220404145827-89887023c1ab h1:Jk6Mfk5BF8gtfE7X0bNCiDGBtwJVxRI79b4wLCAsP+A=
379-
github.com/elastic/elastic-agent-autodiscover v0.0.0-20220404145827-89887023c1ab/go.mod h1:Gg1fsQI+rVms9FJ2DefBSojfPIzgkV8xlyG8fPG0DE8=
382+
github.com/elastic/elastic-agent-autodiscover v0.2.1 h1:Nbeayh3vq2FNm6xaFo34mhUdOu0EVlpj53CqCsbU0E4=
383+
github.com/elastic/elastic-agent-autodiscover v0.2.1/go.mod h1:gPnzzfdYNdgznAb+iG9eyyXaQXBbAMHa+Y6Z8hXfcGY=
380384
github.com/elastic/elastic-agent-client/v7 v7.0.0-20210727140539-f0905d9377f6 h1:nFvXHBjYK3e9+xF0WKDeAKK4aOO51uC28s+L9rBmilo=
381385
github.com/elastic/elastic-agent-client/v7 v7.0.0-20210727140539-f0905d9377f6/go.mod h1:uh/Gj9a0XEbYoM4NYz4LvaBVARz3QXLmlNjsrKY9fTc=
382-
github.com/elastic/elastic-agent-libs v0.0.0-20220303160015-5b4e674da3dd/go.mod h1://82M1l73IHx0wDbS2Tzkq6Fx9fkmytS1KgkIyzvNTM=
386+
github.com/elastic/elastic-agent-libs v0.2.5/go.mod h1:chO3rtcLyGlKi9S0iGVZhYCzDfdDsAQYBc+ui588AFE=
383387
github.com/elastic/elastic-agent-libs v0.2.6 h1:DpcUcCVYZ7lNtHLUlyT1u/GtGAh49wpL15DTH7+8O5o=
384388
github.com/elastic/elastic-agent-libs v0.2.6/go.mod h1:chO3rtcLyGlKi9S0iGVZhYCzDfdDsAQYBc+ui588AFE=
385389
github.com/elastic/elastic-agent-system-metrics v0.3.0 h1:W8L0E8lWJmdguH+oIR7OzuFgopvw8ucZAE9w6iqVlpE=
@@ -390,6 +394,7 @@ github.com/elastic/go-elasticsearch/v8 v8.0.0-20210317102009-a9d74cec0186/go.mod
390394
github.com/elastic/go-licenser v0.3.1/go.mod h1:D8eNQk70FOCVBl3smCGQt/lv7meBeQno2eI1S5apiHQ=
391395
github.com/elastic/go-licenser v0.4.0 h1:jLq6A5SilDS/Iz1ABRkO6BHy91B9jBora8FwGRsDqUI=
392396
github.com/elastic/go-licenser v0.4.0/go.mod h1:V56wHMpmdURfibNBggaSBfqgPxyT1Tldns1i87iTEvU=
397+
github.com/elastic/go-structform v0.0.9/go.mod h1:CZWf9aIRYY5SuKSmOhtXScE5uQiLZNqAFnwKR4OrIM4=
393398
github.com/elastic/go-structform v0.0.10 h1:oy08o/Ih2hHTkNcRY/1HhaYvIp5z6t8si8gnCJPDo1w=
394399
github.com/elastic/go-structform v0.0.10/go.mod h1:CZWf9aIRYY5SuKSmOhtXScE5uQiLZNqAFnwKR4OrIM4=
395400
github.com/elastic/go-sysinfo v1.1.1/go.mod h1:i1ZYdU10oLNfRzq4vq62BEwD2fH8KaWh6eh0ikPT9F0=
@@ -946,7 +951,6 @@ github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8
946951
github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM=
947952
github.com/opencontainers/image-spec v1.0.0/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0=
948953
github.com/opencontainers/image-spec v1.0.1/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0=
949-
github.com/opencontainers/image-spec v1.0.2-0.20190823105129-775207bd45b6/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0=
950954
github.com/opencontainers/image-spec v1.0.2 h1:9yCKha/T5XdGtO0q9Q9a6T5NUCsTn/DrBg0D7ufOcFM=
951955
github.com/opencontainers/image-spec v1.0.2/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0=
952956
github.com/opencontainers/runc v0.0.0-20190115041553-12f6a991201f/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U=
@@ -1397,6 +1401,7 @@ golang.org/x/net v0.0.0-20210520170846-37e1c6afe023/go.mod h1:9nx3DQGgdP8bBQD5qx
13971401
golang.org/x/net v0.0.0-20210805182204-aaa1db679c0d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
13981402
golang.org/x/net v0.0.0-20210813160813-60bc85c4be6d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
13991403
golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
1404+
golang.org/x/net v0.0.0-20211020060615-d418f374d309/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
14001405
golang.org/x/net v0.0.0-20211209124913-491a49abca63/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
14011406
golang.org/x/net v0.0.0-20220225172249-27dd8689420f h1:oA4XRj0qtSt8Yo1Zms0CUlsT3KG69V2UGQWPBxujDmc=
14021407
golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk=

internal/pkg/agent/application/local_mode.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ func newLocal(
114114
}
115115
localApplication.router = router
116116

117-
composableCtrl, err := composable.New(log, rawConfig)
117+
composableCtrl, err := composable.New(log, rawConfig, false)
118118
if err != nil {
119119
return nil, errors.New(err, "failed to initialize composable controller")
120120
}

internal/pkg/agent/application/managed_mode.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ func newManaged(
135135
}
136136
managedApplication.router = router
137137

138-
composableCtrl, err := composable.New(log, rawConfig)
138+
composableCtrl, err := composable.New(log, rawConfig, true)
139139
if err != nil {
140140
return nil, errors.New(err, "failed to initialize composable controller")
141141
}

internal/pkg/agent/application/managed_mode_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ func TestManagedModeRouting(t *testing.T) {
4545
router, _ := router.New(log, streamFn)
4646
agentInfo, _ := info.NewAgentInfo(true)
4747
nullStore := &storage.NullStore{}
48-
composableCtrl, _ := composable.New(log, nil)
48+
composableCtrl, _ := composable.New(log, nil, true)
4949
emit, err := emitter.New(ctx, log, agentInfo, composableCtrl, router, &pipeline.ConfigModifiers{Decorators: []pipeline.DecoratorFunc{modifiers.InjectMonitoring}}, nil)
5050
require.NoError(t, err)
5151

internal/pkg/agent/cmd/inspect.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -258,7 +258,7 @@ func getProgramsFromConfig(log *logger.Logger, agentInfo *info.AgentInfo, cfg *c
258258
router := &inmemRouter{}
259259
ctx, cancel := context.WithCancel(context.Background())
260260
defer cancel()
261-
composableCtrl, err := composable.New(log, cfg)
261+
composableCtrl, err := composable.New(log, cfg, false)
262262
if err != nil {
263263
return nil, err
264264
}

internal/pkg/agent/install/uninstall.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -250,7 +250,7 @@ func applyDynamics(ctx context.Context, log *logger.Logger, cfg *config.Config)
250250
})
251251
}
252252

253-
ctrl, err := composable.New(log, cfg)
253+
ctrl, err := composable.New(log, cfg, false)
254254
if err != nil {
255255
return nil, err
256256
}

internal/pkg/composable/context.go

+5-1
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,9 @@ import (
1414
)
1515

1616
// ContextProviderBuilder creates a new context provider based on the given config and returns it.
17-
type ContextProviderBuilder func(log *logger.Logger, config *config.Config) (corecomp.ContextProvider, error)
17+
type ContextProviderBuilder func(log *logger.Logger, config *config.Config, managed bool) (corecomp.ContextProvider, error)
1818

19+
//nolint:dupl,goimports,nolintlint // false positive
1920
// AddContextProvider adds a new ContextProviderBuilder
2021
func (r *providerRegistry) AddContextProvider(name string, builder ContextProviderBuilder) error {
2122
r.lock.Lock()
@@ -24,11 +25,14 @@ func (r *providerRegistry) AddContextProvider(name string, builder ContextProvid
2425
if name == "" {
2526
return fmt.Errorf("provider name is required")
2627
}
28+
2729
if strings.ToLower(name) != name {
2830
return fmt.Errorf("provider name must be lowercase")
2931
}
32+
3033
_, contextExists := r.contextProviders[name]
3134
_, dynamicExists := r.dynamicProviders[name]
35+
3236
if contextExists || dynamicExists {
3337
return fmt.Errorf("provider '%s' is already registered", name)
3438
}

internal/pkg/composable/controller.go

+3-3
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ type controller struct {
4040
}
4141

4242
// New creates a new controller.
43-
func New(log *logger.Logger, c *config.Config) (Controller, error) {
43+
func New(log *logger.Logger, c *config.Config, managed bool) (Controller, error) {
4444
l := log.Named("composable")
4545

4646
var providersCfg Config
@@ -59,7 +59,7 @@ func New(log *logger.Logger, c *config.Config) (Controller, error) {
5959
// explicitly disabled; skipping
6060
continue
6161
}
62-
provider, err := builder(l, pCfg)
62+
provider, err := builder(l, pCfg, managed)
6363
if err != nil {
6464
return nil, errors.New(err, fmt.Sprintf("failed to build provider '%s'", name), errors.TypeConfig, errors.M("provider", name))
6565
}
@@ -76,7 +76,7 @@ func New(log *logger.Logger, c *config.Config) (Controller, error) {
7676
// explicitly disabled; skipping
7777
continue
7878
}
79-
provider, err := builder(l.Named(strings.Join([]string{"providers", name}, ".")), pCfg)
79+
provider, err := builder(l.Named(strings.Join([]string{"providers", name}, ".")), pCfg, managed)
8080
if err != nil {
8181
return nil, errors.New(err, fmt.Sprintf("failed to build provider '%s'", name), errors.TypeConfig, errors.M("provider", name))
8282
}

internal/pkg/composable/controller_test.go

+4-4
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ func TestController(t *testing.T) {
7777

7878
log, err := logger.New("", false)
7979
require.NoError(t, err)
80-
c, err := composable.New(log, cfg)
80+
c, err := composable.New(log, cfg, false)
8181
require.NoError(t, err)
8282

8383
var wg sync.WaitGroup
@@ -99,14 +99,14 @@ func TestController(t *testing.T) {
9999
_, envExists := setVars[0].Lookup("env")
100100
assert.False(t, envExists)
101101
local, _ := setVars[0].Lookup("local")
102-
localMap := local.(map[string]interface{})
102+
localMap, _ := local.(map[string]interface{})
103103
assert.Equal(t, "value1", localMap["key1"])
104104

105105
local, _ = setVars[1].Lookup("local_dynamic")
106-
localMap = local.(map[string]interface{})
106+
localMap, _ = local.(map[string]interface{})
107107
assert.Equal(t, "value1", localMap["key1"])
108108

109109
local, _ = setVars[2].Lookup("local_dynamic")
110-
localMap = local.(map[string]interface{})
110+
localMap, _ = local.(map[string]interface{})
111111
assert.Equal(t, "value2", localMap["key1"])
112112
}

internal/pkg/composable/dynamic.go

+13-12
Original file line numberDiff line numberDiff line change
@@ -34,30 +34,31 @@ type DynamicProvider interface {
3434
}
3535

3636
// DynamicProviderBuilder creates a new dynamic provider based on the given config and returns it.
37-
type DynamicProviderBuilder func(log *logger.Logger, config *config.Config) (DynamicProvider, error)
37+
type DynamicProviderBuilder func(log *logger.Logger, config *config.Config, managed bool) (DynamicProvider, error)
3838

39+
//nolint:dupl,goimports,nolintlint // false positive
3940
// AddDynamicProvider adds a new DynamicProviderBuilder
40-
func (r *providerRegistry) AddDynamicProvider(name string, builder DynamicProviderBuilder) error {
41+
func (r *providerRegistry) AddDynamicProvider(providerName string, builder DynamicProviderBuilder) error {
4142
r.lock.Lock()
4243
defer r.lock.Unlock()
4344

44-
if name == "" {
45-
return fmt.Errorf("provider name is required")
45+
if providerName == "" {
46+
return fmt.Errorf("provider providerName is required")
4647
}
47-
if strings.ToLower(name) != name {
48-
return fmt.Errorf("provider name must be lowercase")
48+
if strings.ToLower(providerName) != providerName {
49+
return fmt.Errorf("provider providerName must be lowercase")
4950
}
50-
_, contextExists := r.contextProviders[name]
51-
_, dynamicExists := r.dynamicProviders[name]
51+
_, contextExists := r.contextProviders[providerName]
52+
_, dynamicExists := r.dynamicProviders[providerName]
5253
if contextExists || dynamicExists {
53-
return fmt.Errorf("provider '%s' is already registered", name)
54+
return fmt.Errorf("provider '%s' is already registered", providerName)
5455
}
5556
if builder == nil {
56-
return fmt.Errorf("provider '%s' cannot be registered with a nil factory", name)
57+
return fmt.Errorf("provider '%s' cannot be registered with a nil factory", providerName)
5758
}
5859

59-
r.dynamicProviders[name] = builder
60-
r.logger.Debugf("Registered provider: %s", name)
60+
r.dynamicProviders[providerName] = builder
61+
r.logger.Debugf("Registered provider: %s", providerName)
6162
return nil
6263
}
6364

internal/pkg/composable/providers/agent/agent.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ import (
1515
)
1616

1717
func init() {
18-
composable.Providers.AddContextProvider("agent", ContextProviderBuilder)
18+
_ = composable.Providers.AddContextProvider("agent", ContextProviderBuilder)
1919
}
2020

2121
type contextProvider struct{}
@@ -42,6 +42,6 @@ func (*contextProvider) Run(comm corecomp.ContextProviderComm) error {
4242
}
4343

4444
// ContextProviderBuilder builds the context provider.
45-
func ContextProviderBuilder(_ *logger.Logger, _ *config.Config) (corecomp.ContextProvider, error) {
45+
func ContextProviderBuilder(_ *logger.Logger, _ *config.Config, managed bool) (corecomp.ContextProvider, error) {
4646
return &contextProvider{}, nil
4747
}

internal/pkg/composable/providers/agent/agent_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ func TestContextProvider(t *testing.T) {
2020
testutils.InitStorage(t)
2121

2222
builder, _ := composable.Providers.GetContextProvider("agent")
23-
provider, err := builder(nil, nil)
23+
provider, err := builder(nil, nil, true)
2424
require.NoError(t, err)
2525

2626
comm := ctesting.NewContextComm(context.Background())

internal/pkg/composable/providers/docker/docker.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ func (c *dynamicProvider) Run(comm composable.DynamicProviderComm) error {
105105
}
106106

107107
// DynamicProviderBuilder builds the dynamic provider.
108-
func DynamicProviderBuilder(logger *logger.Logger, c *config.Config) (composable.DynamicProvider, error) {
108+
func DynamicProviderBuilder(logger *logger.Logger, c *config.Config, managed bool) (composable.DynamicProvider, error) {
109109
var cfg Config
110110
if c == nil {
111111
c = config.New()

internal/pkg/composable/providers/env/env.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ import (
1616
)
1717

1818
func init() {
19-
composable.Providers.AddContextProvider("env", ContextProviderBuilder)
19+
_ = composable.Providers.AddContextProvider("env", ContextProviderBuilder)
2020
}
2121

2222
type contextProvider struct{}
@@ -31,7 +31,7 @@ func (*contextProvider) Run(comm corecomp.ContextProviderComm) error {
3131
}
3232

3333
// ContextProviderBuilder builds the context provider.
34-
func ContextProviderBuilder(_ *logger.Logger, _ *config.Config) (corecomp.ContextProvider, error) {
34+
func ContextProviderBuilder(_ *logger.Logger, _ *config.Config, managed bool) (corecomp.ContextProvider, error) {
3535
return &contextProvider{}, nil
3636
}
3737

internal/pkg/composable/providers/env/env_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ import (
1717

1818
func TestContextProvider(t *testing.T) {
1919
builder, _ := composable.Providers.GetContextProvider("env")
20-
provider, err := builder(nil, nil)
20+
provider, err := builder(nil, nil, true)
2121
require.NoError(t, err)
2222

2323
comm := ctesting.NewContextComm(context.Background())

internal/pkg/composable/providers/host/host.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ import (
2424
const DefaultCheckInterval = 5 * time.Minute
2525

2626
func init() {
27-
composable.Providers.AddContextProvider("host", ContextProviderBuilder)
27+
_ = composable.Providers.AddContextProvider("host", ContextProviderBuilder)
2828
}
2929

3030
type infoFetcher func() (map[string]interface{}, error)
@@ -81,7 +81,7 @@ func (c *contextProvider) Run(comm corecomp.ContextProviderComm) error {
8181
}
8282

8383
// ContextProviderBuilder builds the context provider.
84-
func ContextProviderBuilder(log *logger.Logger, c *config.Config) (corecomp.ContextProvider, error) {
84+
func ContextProviderBuilder(log *logger.Logger, c *config.Config, managed bool) (corecomp.ContextProvider, error) {
8585
p := &contextProvider{
8686
logger: log,
8787
fetcher: getHostInfo,

internal/pkg/composable/providers/host/host_test.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -33,10 +33,10 @@ func TestContextProvider(t *testing.T) {
3333
builder, _ := composable.Providers.GetContextProvider("host")
3434
log, err := logger.New("host_test", false)
3535
require.NoError(t, err)
36-
provider, err := builder(log, c)
36+
provider, err := builder(log, c, true)
3737
require.NoError(t, err)
3838

39-
hostProvider := provider.(*contextProvider)
39+
hostProvider, _ := provider.(*contextProvider)
4040
hostProvider.fetcher = returnHostMapping()
4141
require.Equal(t, 100*time.Millisecond, hostProvider.CheckInterval)
4242

0 commit comments

Comments
 (0)