Skip to content

Commit 69eb190

Browse files
committed
[chore] simplify extension code
1 parent a36367b commit 69eb190

File tree

4 files changed

+34
-58
lines changed

4 files changed

+34
-58
lines changed

internal/components/extensions/healthcheckv1.go

+6-6
Original file line numberDiff line numberDiff line change
@@ -23,27 +23,27 @@ import (
2323
)
2424

2525
const (
26-
DefaultHealthcheckV1Path = "/"
27-
DefaultHealthcheckV1Port = 13133
26+
defaultHealthcheckV1Path = "/"
27+
defaultHealthcheckV1Port = 13133
2828
)
2929

3030
type healthcheckV1Config struct {
3131
components.SingleEndpointConfig `mapstructure:",squash"`
3232
Path string `mapstructure:"path"`
3333
}
3434

35-
// HealthCheckV1Probe returns the probe configuration for the healthcheck v1 extension.
35+
// healthCheckV1Probe returns the probe configuration for the healthcheck v1 extension.
3636
// Right now no TLS config is parsed.
37-
func HealthCheckV1Probe(logger logr.Logger, config healthcheckV1Config) (*corev1.Probe, error) {
37+
func healthCheckV1Probe(logger logr.Logger, config healthcheckV1Config) (*corev1.Probe, error) {
3838
path := config.Path
3939
if len(path) == 0 {
40-
path = DefaultHealthcheckV1Path
40+
path = defaultHealthcheckV1Path
4141
}
4242
return &corev1.Probe{
4343
ProbeHandler: corev1.ProbeHandler{
4444
HTTPGet: &corev1.HTTPGetAction{
4545
Path: path,
46-
Port: intstr.FromInt32(config.GetPortNumOrDefault(logger, DefaultHealthcheckV1Port)),
46+
Port: intstr.FromInt32(config.GetPortNumOrDefault(logger, defaultHealthcheckV1Port)),
4747
},
4848
},
4949
}, nil

internal/components/extensions/healthcheckv1_test.go

+6-8
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
// See the License for the specific language governing permissions and
1313
// limitations under the License.
1414

15-
package extensions_test
15+
package extensions
1616

1717
import (
1818
"fmt"
@@ -22,8 +22,6 @@ import (
2222
"github.com/stretchr/testify/assert"
2323
corev1 "k8s.io/api/core/v1"
2424
"k8s.io/apimachinery/pkg/util/intstr"
25-
26-
"github.com/open-telemetry/opentelemetry-operator/internal/components/extensions"
2725
)
2826

2927
func TestHealthCheckV1Probe(t *testing.T) {
@@ -66,7 +64,7 @@ func TestHealthCheckV1Probe(t *testing.T) {
6664
ProbeHandler: corev1.ProbeHandler{
6765
HTTPGet: &corev1.HTTPGetAction{
6866
Path: "/healthz",
69-
Port: intstr.FromInt32(extensions.DefaultHealthcheckV1Port),
67+
Port: intstr.FromInt32(defaultHealthcheckV1Port),
7068
},
7169
},
7270
},
@@ -102,7 +100,7 @@ func TestHealthCheckV1Probe(t *testing.T) {
102100
ProbeHandler: corev1.ProbeHandler{
103101
HTTPGet: &corev1.HTTPGetAction{
104102
Path: "/",
105-
Port: intstr.FromInt32(extensions.DefaultHealthcheckV1Port),
103+
Port: intstr.FromInt32(defaultHealthcheckV1Port),
106104
},
107105
},
108106
},
@@ -136,7 +134,7 @@ func TestHealthCheckV1Probe(t *testing.T) {
136134
ProbeHandler: corev1.ProbeHandler{
137135
HTTPGet: &corev1.HTTPGetAction{
138136
Path: "/",
139-
Port: intstr.FromInt32(extensions.DefaultHealthcheckV1Port),
137+
Port: intstr.FromInt32(defaultHealthcheckV1Port),
140138
},
141139
},
142140
},
@@ -165,7 +163,7 @@ func TestHealthCheckV1Probe(t *testing.T) {
165163
ProbeHandler: corev1.ProbeHandler{
166164
HTTPGet: &corev1.HTTPGetAction{
167165
Path: "/healthz",
168-
Port: intstr.FromInt32(extensions.DefaultHealthcheckV1Port),
166+
Port: intstr.FromInt32(defaultHealthcheckV1Port),
169167
},
170168
},
171169
},
@@ -175,7 +173,7 @@ func TestHealthCheckV1Probe(t *testing.T) {
175173

176174
for _, tt := range tests {
177175
t.Run(tt.name, func(t *testing.T) {
178-
parser := extensions.ParserFor("health_check")
176+
parser := ParserFor("health_check")
179177
got, err := parser.GetLivenessProbe(logr.Discard(), tt.args.config)
180178
if !tt.wantErr(t, err, fmt.Sprintf("GetLivenessProbe(%v)", tt.args.config)) {
181179
return

internal/components/extensions/helpers.go

+13-34
Original file line numberDiff line numberDiff line change
@@ -22,17 +22,19 @@ import (
2222
)
2323

2424
// registry holds a record of all known receiver parsers.
25-
var registry = make(map[string]components.Parser)
26-
27-
// Register adds a new parser builder to the list of known builders.
28-
func Register(name string, p components.Parser) {
29-
registry[name] = p
30-
}
31-
32-
// IsRegistered checks whether a parser is registered with the given name.
33-
func IsRegistered(name string) bool {
34-
_, ok := registry[name]
35-
return ok
25+
var registry = map[string]components.Parser{
26+
"health_check": components.NewBuilder[healthcheckV1Config]().
27+
WithName("health_check").
28+
WithPort(13133).
29+
WithReadinessGen(healthCheckV1Probe).
30+
WithLivenessGen(healthCheckV1Probe).
31+
WithPortParser(func(logger logr.Logger, name string, defaultPort *corev1.ServicePort, config healthcheckV1Config) ([]corev1.ServicePort, error) {
32+
return components.ParseSingleEndpointSilent(logger, name, defaultPort, &config.SingleEndpointConfig)
33+
}).
34+
MustBuild(),
35+
"jaeger_query": components.NewSinglePortParserBuilder("jaeger_query", 16686).
36+
WithTargetPort(16686).
37+
MustBuild(),
3638
}
3739

3840
// ParserFor returns a parser builder for the given exporter name.
@@ -43,26 +45,3 @@ func ParserFor(name string) components.Parser {
4345
// We want the default for exporters to fail silently.
4446
return components.NewBuilder[any]().WithName(name).MustBuild()
4547
}
46-
47-
var (
48-
componentParsers = []components.Parser{
49-
components.NewBuilder[healthcheckV1Config]().
50-
WithName("health_check").
51-
WithPort(13133).
52-
WithReadinessGen(HealthCheckV1Probe).
53-
WithLivenessGen(HealthCheckV1Probe).
54-
WithPortParser(func(logger logr.Logger, name string, defaultPort *corev1.ServicePort, config healthcheckV1Config) ([]corev1.ServicePort, error) {
55-
return components.ParseSingleEndpointSilent(logger, name, defaultPort, &config.SingleEndpointConfig)
56-
}).
57-
MustBuild(),
58-
components.NewSinglePortParserBuilder("jaeger_query", 16686).
59-
WithTargetPort(16686).
60-
MustBuild(),
61-
}
62-
)
63-
64-
func init() {
65-
for _, parser := range componentParsers {
66-
Register(parser.ParserType(), parser)
67-
}
68-
}

internal/components/extensions/helpers_test.go

+9-10
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
// See the License for the specific language governing permissions and
1313
// limitations under the License.
1414

15-
package extensions_test
15+
package extensions
1616

1717
import (
1818
"testing"
@@ -21,13 +21,12 @@ import (
2121
"github.com/stretchr/testify/assert"
2222

2323
"github.com/open-telemetry/opentelemetry-operator/internal/components"
24-
"github.com/open-telemetry/opentelemetry-operator/internal/components/extensions"
2524
"github.com/open-telemetry/opentelemetry-operator/internal/naming"
2625
)
2726

2827
func TestParserForReturns(t *testing.T) {
2928
const testComponentName = "test"
30-
parser := extensions.ParserFor(testComponentName)
29+
parser := ParserFor(testComponentName)
3130
assert.Equal(t, "test", parser.ParserType())
3231
assert.Equal(t, "__test", parser.ParserName())
3332
ports, err := parser.Ports(logr.Discard(), testComponentName, map[string]interface{}{
@@ -39,9 +38,8 @@ func TestParserForReturns(t *testing.T) {
3938

4039
func TestCanRegister(t *testing.T) {
4140
const testComponentName = "test"
42-
extensions.Register(testComponentName, components.NewSinglePortParserBuilder(testComponentName, 9000).MustBuild())
43-
assert.True(t, extensions.IsRegistered(testComponentName))
44-
parser := extensions.ParserFor(testComponentName)
41+
registry[testComponentName] = components.NewSinglePortParserBuilder(testComponentName, 9000).MustBuild()
42+
parser := ParserFor(testComponentName)
4543
assert.Equal(t, "test", parser.ParserType())
4644
assert.Equal(t, "__test", parser.ParserName())
4745
ports, err := parser.Ports(logr.Discard(), testComponentName, map[string]interface{}{})
@@ -60,11 +58,12 @@ func TestExtensionsComponentParsers(t *testing.T) {
6058
} {
6159
t.Run(tt.exporterName, func(t *testing.T) {
6260
t.Run("is registered", func(t *testing.T) {
63-
assert.True(t, extensions.IsRegistered(tt.exporterName))
61+
_, ok := registry[tt.exporterName]
62+
assert.True(t, ok)
6463
})
6564
t.Run("bad config errors", func(t *testing.T) {
6665
// prepare
67-
parser := extensions.ParserFor(tt.exporterName)
66+
parser := ParserFor(tt.exporterName)
6867

6968
// test throwing in pure junk
7069
_, err := parser.Ports(logr.Discard(), tt.exporterName, func() {})
@@ -75,7 +74,7 @@ func TestExtensionsComponentParsers(t *testing.T) {
7574

7675
t.Run("assigns the expected port", func(t *testing.T) {
7776
// prepare
78-
parser := extensions.ParserFor(tt.exporterName)
77+
parser := ParserFor(tt.exporterName)
7978

8079
// test
8180
ports, err := parser.Ports(logr.Discard(), tt.exporterName, map[string]interface{}{})
@@ -93,7 +92,7 @@ func TestExtensionsComponentParsers(t *testing.T) {
9392

9493
t.Run("allows port to be overridden", func(t *testing.T) {
9594
// prepare
96-
parser := extensions.ParserFor(tt.exporterName)
95+
parser := ParserFor(tt.exporterName)
9796

9897
// test
9998
ports, err := parser.Ports(logr.Discard(), tt.exporterName, map[string]interface{}{

0 commit comments

Comments
 (0)