@@ -321,6 +321,146 @@ func TestMonitoringService(t *testing.T) {
321
321
})
322
322
}
323
323
324
+ func TestExtensionService (t * testing.T ) {
325
+ t .Run ("when the extension has http endpoint" , func (t * testing.T ) {
326
+ params := manifests.Params {
327
+ Config : config.Config {},
328
+ Log : logger ,
329
+ OtelCol : v1beta1.OpenTelemetryCollector {
330
+ Spec : v1beta1.OpenTelemetryCollectorSpec {
331
+ Config : v1beta1.Config {
332
+ Service : v1beta1.Service {
333
+ Extensions : []string {"jaeger_query" },
334
+ },
335
+ Extensions : & v1beta1.AnyConfig {
336
+ Object : map [string ]interface {}{
337
+ "jaeger_query" : map [string ]interface {}{
338
+ "http" : map [string ]interface {}{
339
+ "endpoint" : "0.0.0.0:16686" ,
340
+ },
341
+ },
342
+ },
343
+ },
344
+ },
345
+ },
346
+ },
347
+ }
348
+
349
+ actual , err := ExtensionService (params )
350
+ assert .NotNil (t , actual )
351
+ assert .NoError (t , err )
352
+ })
353
+
354
+ t .Run ("when the extension has grpc endpoint" , func (t * testing.T ) {
355
+ params := manifests.Params {
356
+ Config : config.Config {},
357
+ Log : logger ,
358
+ OtelCol : v1beta1.OpenTelemetryCollector {
359
+ Spec : v1beta1.OpenTelemetryCollectorSpec {
360
+ Config : v1beta1.Config {
361
+ Service : v1beta1.Service {
362
+ Extensions : []string {"jaeger_query" },
363
+ },
364
+ Extensions : & v1beta1.AnyConfig {
365
+ Object : map [string ]interface {}{
366
+ "jaeger_query" : map [string ]interface {}{
367
+ "grpc" : map [string ]interface {}{
368
+ "endpoint" : "0.0.0.0:16686" ,
369
+ },
370
+ },
371
+ },
372
+ },
373
+ },
374
+ },
375
+ },
376
+ }
377
+
378
+ actual , err := ExtensionService (params )
379
+ assert .NotNil (t , actual )
380
+ assert .NoError (t , err )
381
+ })
382
+
383
+ t .Run ("when the extension has both http and grpc endpoint" , func (t * testing.T ) {
384
+ params := manifests.Params {
385
+ Config : config.Config {},
386
+ Log : logger ,
387
+ OtelCol : v1beta1.OpenTelemetryCollector {
388
+ Spec : v1beta1.OpenTelemetryCollectorSpec {
389
+ Config : v1beta1.Config {
390
+ Service : v1beta1.Service {
391
+ Extensions : []string {"jaeger_query" },
392
+ },
393
+ Extensions : & v1beta1.AnyConfig {
394
+ Object : map [string ]interface {}{
395
+ "jaeger_query" : map [string ]interface {}{
396
+ "http" : map [string ]interface {}{
397
+ "endpoint" : "0.0.0.0:16686" ,
398
+ },
399
+ "grpc" : map [string ]interface {}{
400
+ "endpoint" : "0.0.0.0:16686" ,
401
+ },
402
+ },
403
+ },
404
+ },
405
+ },
406
+ },
407
+ },
408
+ }
409
+
410
+ actual , err := ExtensionService (params )
411
+ assert .NotNil (t , actual )
412
+ assert .NoError (t , err )
413
+ })
414
+
415
+ t .Run ("when the extension has no extensions defined" , func (t * testing.T ) {
416
+ params := manifests.Params {
417
+ Config : config.Config {},
418
+ Log : logger ,
419
+ OtelCol : v1beta1.OpenTelemetryCollector {
420
+ Spec : v1beta1.OpenTelemetryCollectorSpec {
421
+ Config : v1beta1.Config {
422
+ Service : v1beta1.Service {
423
+ Extensions : []string {"jaeger_query" },
424
+ },
425
+ Extensions : & v1beta1.AnyConfig {
426
+ Object : map [string ]interface {}{},
427
+ },
428
+ },
429
+ },
430
+ },
431
+ }
432
+
433
+ actual , err := ExtensionService (params )
434
+ assert .Nil (t , actual )
435
+ assert .NoError (t , err )
436
+ })
437
+
438
+ t .Run ("when the extension has no endpoint defined" , func (t * testing.T ) {
439
+ params := manifests.Params {
440
+ Config : config.Config {},
441
+ Log : logger ,
442
+ OtelCol : v1beta1.OpenTelemetryCollector {
443
+ Spec : v1beta1.OpenTelemetryCollectorSpec {
444
+ Config : v1beta1.Config {
445
+ Service : v1beta1.Service {
446
+ Extensions : []string {"jaeger_query" },
447
+ },
448
+ Extensions : & v1beta1.AnyConfig {
449
+ Object : map [string ]interface {}{
450
+ "jaeger_query" : map [string ]interface {}{},
451
+ },
452
+ },
453
+ },
454
+ },
455
+ },
456
+ }
457
+
458
+ actual , err := ExtensionService (params )
459
+ assert .NotNil (t , actual )
460
+ assert .NoError (t , err )
461
+ })
462
+ }
463
+
324
464
func service (name string , ports []v1beta1.PortsSpec ) v1.Service {
325
465
return serviceWithInternalTrafficPolicy (name , ports , v1 .ServiceInternalTrafficPolicyCluster )
326
466
}
0 commit comments