Skip to content

Commit

Permalink
Update for confmap factories
Browse files Browse the repository at this point in the history
  • Loading branch information
evan-bradley committed Apr 19, 2024
1 parent d71642c commit 5d428fd
Show file tree
Hide file tree
Showing 7 changed files with 40 additions and 59 deletions.
4 changes: 2 additions & 2 deletions cmd/builder/internal/builder/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,8 @@ var ErrInvalidGoMod = errors.New("invalid gomod specification for module")

// Config holds the builder's configuration
type Config struct {
Logger *zap.Logger
SupportsConfigProviderSettings bool
Logger *zap.Logger
SupportsConfmapFactories bool

SkipGenerate bool `mapstructure:"-"`
SkipCompilation bool `mapstructure:"-"`
Expand Down
7 changes: 4 additions & 3 deletions cmd/builder/internal/builder/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ func Generate(cfg Config) error {
}
cfg.Logger.Info("You're building a distribution with non-aligned version of the builder. Compilation may fail due to API changes. Please upgrade your builder or API", zap.String("builder-version", defaultOtelColVersion))
}
cfg.SupportsConfigProviderSettings = supportsConfigProviderSettings(cfg)
cfg.SupportsConfmapFactories = supportsConfmapFactories(cfg)
// if the file does not exist, try to create it
if _, err := os.Stat(cfg.Distribution.OutputPath); os.IsNotExist(err) {
if err = os.Mkdir(cfg.Distribution.OutputPath, 0750); err != nil {
Expand Down Expand Up @@ -265,7 +265,7 @@ func (c *Config) readGoModFile() (string, map[string]string, error) {
return modPath, dependencies, nil
}

func supportsConfigProviderSettings(cfg Config) bool {
func supportsConfmapFactories(cfg Config) bool {
splitVersion := strings.Split(cfg.Distribution.OtelColVersion, ".")

if len(splitVersion) != 3 {
Expand All @@ -288,7 +288,8 @@ func supportsConfigProviderSettings(cfg Config) bool {
return true
}

if majorVer == 0 && minorVer >= 95 {
// confmap factories were introduced in v0.99.0.
if majorVer == 0 && minorVer >= 99 {
return true
}

Expand Down
12 changes: 6 additions & 6 deletions cmd/builder/internal/builder/main_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -322,7 +322,7 @@ func TestGenerateAndCompile(t *testing.T) {
}
}

func TestConfigProviderVersions(t *testing.T) {
func TestConfmapFactoryVersions(t *testing.T) {
testCases := []struct {
version string
supported bool
Expand Down Expand Up @@ -352,19 +352,19 @@ func TestConfigProviderVersions(t *testing.T) {
supported: false,
},
{
version: "0.95.0",
version: "0.99.0",
supported: true,
},
{
version: "0.95.7",
version: "0.99.7",
supported: true,
},
{
version: "0.96.0",
version: "0.100.0",
supported: true,
},
{
version: "0.100.0",
version: "0.100.1",
supported: true,
},
{
Expand All @@ -380,7 +380,7 @@ func TestConfigProviderVersions(t *testing.T) {
},
}

shouldSupport := supportsConfigProviderSettings(cfg)
shouldSupport := supportsConfmapFactories(cfg)
require.Equal(t, tt.supported, shouldSupport)
}
}
Expand Down
2 changes: 1 addition & 1 deletion cmd/builder/internal/builder/templates/go.mod.tmpl
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ module {{.Distribution.Module}}
go 1.21

require (
{{if .SupportsConfigProviderSettings -}}
{{if .SupportsConfmapFactories -}}
go.opentelemetry.io/collector/confmap/converter/expandconverter v{{.Distribution.OtelColVersion}}
{{- range .Providers}}
{{if .GoMod}}{{.GoMod}}{{end}}
Expand Down
32 changes: 10 additions & 22 deletions cmd/builder/internal/builder/templates/main.go.tmpl
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import (
"log"

"go.opentelemetry.io/collector/component"
{{- if .SupportsConfigProviderSettings}}
{{- if .SupportsConfmapFactories}}
"go.opentelemetry.io/collector/confmap"
"go.opentelemetry.io/collector/confmap/converter/expandconverter"
{{- range .Providers}}
Expand All @@ -23,22 +23,20 @@ func main() {
Description: "{{ .Distribution.Description }}",
Version: "{{ .Distribution.Version }}",
}
{{- if .SupportsConfigProviderSettings}}
providers := []confmap.Provider{
{{- range .Providers}}
{{.Name}}.NewWithSettings(confmap.ProviderSettings{}),
{{- end}}
}
{{- end}}

set := otelcol.CollectorSettings{
BuildInfo: info,
Factories: components,
{{- if .SupportsConfigProviderSettings}}
{{- if .SupportsConfmapFactories}}
ConfigProviderSettings: otelcol.ConfigProviderSettings{
ResolverSettings: confmap.ResolverSettings{
Providers: makeMapProvidersMap(providers...),
Converters: []confmap.Converter{
expandconverter.New(confmap.ConverterSettings{}),
ProviderFactories: []confmap.ProviderFactory{
{{- range .Providers}}
{{.Name}}.NewFactory(),
{{- end}}
},
ConverterFactories: []confmap.ConverterFactory{
expandconverter.NewFactory(),
},
},
},
Expand All @@ -58,13 +56,3 @@ func runInteractive(params otelcol.CollectorSettings) error {

return nil
}

{{if .SupportsConfigProviderSettings}}
func makeMapProvidersMap(providers ...confmap.Provider) map[string]confmap.Provider {
ret := make(map[string]confmap.Provider, len(providers))
for _, provider := range providers {
ret[provider.Scheme()] = provider
}
return ret
}
{{- end}}
14 changes: 7 additions & 7 deletions cmd/otelcorecol/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,13 @@ go 1.21

require (
go.opentelemetry.io/collector/component v0.98.0
go.opentelemetry.io/collector/confmap v0.98.0
go.opentelemetry.io/collector/confmap/converter/expandconverter v0.98.0
go.opentelemetry.io/collector/confmap/provider/envprovider v0.98.0
go.opentelemetry.io/collector/confmap/provider/fileprovider v0.98.0
go.opentelemetry.io/collector/confmap/provider/httpprovider v0.98.0
go.opentelemetry.io/collector/confmap/provider/httpsprovider v0.98.0
go.opentelemetry.io/collector/confmap/provider/yamlprovider v0.98.0
go.opentelemetry.io/collector/connector v0.98.0
go.opentelemetry.io/collector/connector/forwardconnector v0.98.0
go.opentelemetry.io/collector/exporter v0.98.0
Expand Down Expand Up @@ -82,13 +89,6 @@ require (
go.opentelemetry.io/collector/config/configtelemetry v0.98.0 // indirect
go.opentelemetry.io/collector/config/configtls v0.98.0 // indirect
go.opentelemetry.io/collector/config/internal v0.98.0 // indirect
go.opentelemetry.io/collector/confmap v0.98.0 // indirect
go.opentelemetry.io/collector/confmap/converter/expandconverter v0.98.0 // indirect
go.opentelemetry.io/collector/confmap/provider/envprovider v0.98.0 // indirect
go.opentelemetry.io/collector/confmap/provider/fileprovider v0.98.0 // indirect
go.opentelemetry.io/collector/confmap/provider/httpprovider v0.98.0 // indirect
go.opentelemetry.io/collector/confmap/provider/httpsprovider v0.98.0 // indirect
go.opentelemetry.io/collector/confmap/provider/yamlprovider v0.98.0 // indirect
go.opentelemetry.io/collector/consumer v0.98.0 // indirect
go.opentelemetry.io/collector/extension/auth v0.98.0 // indirect
go.opentelemetry.io/collector/featuregate v1.5.0 // indirect
Expand Down
28 changes: 10 additions & 18 deletions cmd/otelcorecol/main.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit 5d428fd

Please sign in to comment.