Skip to content

Commit 70b75c7

Browse files
Refactor config sources into provider wrapper and support all service providers (#2893)
* refactor config source and its provider * forward wrapped providers to config source resolver * support raw confmap.Provider retrieved values * remove unnecessary previous value merging * update configsource.Provider for clarity * exercise both env provider types in vault test
1 parent 534371e commit 70b75c7

File tree

75 files changed

+1203
-1245
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

75 files changed

+1203
-1245
lines changed

cmd/otelcol/main.go

+8-20
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,7 @@ import (
3232

3333
"github.com/signalfx/splunk-otel-collector/internal/components"
3434
"github.com/signalfx/splunk-otel-collector/internal/configconverter"
35-
"github.com/signalfx/splunk-otel-collector/internal/configprovider"
36-
"github.com/signalfx/splunk-otel-collector/internal/configsources"
35+
"github.com/signalfx/splunk-otel-collector/internal/confmapprovider/configsource"
3736
"github.com/signalfx/splunk-otel-collector/internal/confmapprovider/discovery"
3837
"github.com/signalfx/splunk-otel-collector/internal/settings"
3938
"github.com/signalfx/splunk-otel-collector/internal/version"
@@ -72,31 +71,20 @@ func main() {
7271
log.Fatalf("failed to create discovery provider: %v", err)
7372
}
7473

75-
hooks := []configprovider.Hook{configServer, dryRun}
74+
hooks := []configsource.Hook{configServer, dryRun}
7675
envProvider := envprovider.New()
7776
fileProvider := fileprovider.New()
77+
configSourceProvider := configsource.New(zap.NewNop(), hooks)
7878
serviceConfigProvider, err := otelcol.NewConfigProvider(
7979
otelcol.ConfigProviderSettings{
8080
ResolverSettings: confmap.ResolverSettings{
8181
URIs: collectorSettings.ResolverURIs(),
8282
Providers: map[string]confmap.Provider{
83-
discovery.PropertyScheme(): configprovider.NewConfigSourceConfigMapProvider(
84-
discovery.PropertyProvider(), zap.NewNop(), info, hooks, configsources.Get()...,
85-
),
86-
discovery.ConfigDScheme(): configprovider.NewConfigSourceConfigMapProvider(
87-
discovery.ConfigDProvider(),
88-
zap.NewNop(), // The service logger is not available yet, setting it to Nop.
89-
info, hooks, configsources.Get()...,
90-
),
91-
discovery.DiscoveryModeScheme(): configprovider.NewConfigSourceConfigMapProvider(
92-
discovery.DiscoveryModeProvider(), zap.NewNop(), info, hooks, configsources.Get()...,
93-
),
94-
envProvider.Scheme(): configprovider.NewConfigSourceConfigMapProvider(
95-
envProvider, zap.NewNop(), info, hooks, configsources.Get()...,
96-
),
97-
fileProvider.Scheme(): configprovider.NewConfigSourceConfigMapProvider(
98-
fileProvider, zap.NewNop(), info, hooks, configsources.Get()...,
99-
),
83+
discovery.PropertyScheme(): configSourceProvider.Wrap(discovery.PropertyProvider()),
84+
discovery.ConfigDScheme(): configSourceProvider.Wrap(discovery.ConfigDProvider()),
85+
discovery.DiscoveryModeScheme(): configSourceProvider.Wrap(discovery.DiscoveryModeProvider()),
86+
envProvider.Scheme(): configSourceProvider.Wrap(envProvider),
87+
fileProvider.Scheme(): configSourceProvider.Wrap(fileProvider),
10088
}, Converters: confMapConverters,
10189
},
10290
})

internal/configconverter/config_server.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ import (
3232
"go.opentelemetry.io/collector/confmap"
3333
"gopkg.in/yaml.v2"
3434

35-
"github.com/signalfx/splunk-otel-collector/internal/configprovider"
35+
"github.com/signalfx/splunk-otel-collector/internal/confmapprovider/configsource"
3636
)
3737

3838
const (
@@ -51,7 +51,7 @@ const (
5151
)
5252

5353
var _ confmap.Converter = (*ConfigServer)(nil)
54-
var _ configprovider.Hook = (*ConfigServer)(nil)
54+
var _ configsource.Hook = (*ConfigServer)(nil)
5555

5656
type ConfigServer struct {
5757
// Use get/set methods instead of direct usage

internal/configconverter/dry_run.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,11 @@ import (
2323
"go.opentelemetry.io/collector/confmap"
2424
"gopkg.in/yaml.v2"
2525

26-
"github.com/signalfx/splunk-otel-collector/internal/configprovider"
26+
"github.com/signalfx/splunk-otel-collector/internal/confmapprovider/configsource"
2727
)
2828

2929
var _ confmap.Converter = (*DryRun)(nil)
30-
var _ configprovider.Hook = (*DryRun)(nil)
30+
var _ configsource.Hook = (*DryRun)(nil)
3131

3232
type DryRun struct {
3333
*sync.Mutex

internal/configprovider/builder.go

-49
This file was deleted.

internal/configprovider/builder_test.go

-138
This file was deleted.

internal/configprovider/component.go

-51
This file was deleted.

internal/configprovider/config.go

-62
This file was deleted.

0 commit comments

Comments
 (0)