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