fluent-plugin-kubernetes_metadata_filter 1.2.0 → 1.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +13 -1
- data/fluent-plugin-kubernetes_metadata_filter.gemspec +1 -1
- data/lib/fluent/plugin/filter_kubernetes_metadata.rb +71 -72
- data/lib/fluent/plugin/kubernetes_metadata_cache_strategy.rb +1 -0
- data/lib/fluent/plugin/kubernetes_metadata_common.rb +20 -0
- data/test/cassettes/kubernetes_docker_metadata_using_bearer_token.yml +1 -1
- data/test/cassettes/metadata_from_tag_and_journald_fields.yml +408 -0
- data/test/cassettes/metadata_from_tag_journald_and_kubernetes_fields.yml +540 -0
- data/test/plugin/test_filter_kubernetes_metadata.rb +266 -139
- data/test/plugin/test_watch_pods.rb +35 -3
- metadata +6 -2
@@ -153,42 +153,13 @@ class KubernetesMetadataFilterTest < Test::Unit::TestCase
|
|
153
153
|
}.filtered
|
154
154
|
end
|
155
155
|
|
156
|
-
test 'nil event stream
|
156
|
+
test 'nil event stream' do
|
157
157
|
#not certain how this is possible but adding test to properly
|
158
158
|
#guard against this condition we have seen - test for nil,
|
159
159
|
#empty, no empty method, not an event stream
|
160
160
|
plugin = create_driver.instance
|
161
|
-
|
162
|
-
|
163
|
-
end
|
164
|
-
# and make sure OneEventStream works
|
165
|
-
ts = Time.now()
|
166
|
-
rec = {"message"=>"hello"}
|
167
|
-
es = Fluent::OneEventStream.new(ts, rec)
|
168
|
-
newes = plugin.filter_stream_from_journal('tag', es)
|
169
|
-
newes.each do |newts, newrec|
|
170
|
-
assert_equal ts, newts
|
171
|
-
assert_equal rec, newrec
|
172
|
-
end
|
173
|
-
end
|
174
|
-
|
175
|
-
test 'nil event stream from files' do
|
176
|
-
#not certain how this is possible but adding test to properly
|
177
|
-
#guard against this condition we have seen
|
178
|
-
|
179
|
-
plugin = create_driver.instance
|
180
|
-
[nil, Fluent::MultiEventStream.new, 1, [1]].each do |es|
|
181
|
-
assert_equal es, plugin.filter_stream_from_files('tag', es)
|
182
|
-
end
|
183
|
-
# and make sure OneEventStream works
|
184
|
-
ts = Time.now()
|
185
|
-
rec = {"message"=>"hello"}
|
186
|
-
es = Fluent::OneEventStream.new(ts, rec)
|
187
|
-
newes = plugin.filter_stream_from_journal('tag', es)
|
188
|
-
newes.each do |newts, newrec|
|
189
|
-
assert_equal ts, newts
|
190
|
-
assert_equal rec, newrec
|
191
|
-
end
|
161
|
+
plugin.filter_stream('tag', nil)
|
162
|
+
plugin.filter_stream('tag', Fluent::MultiEventStream.new)
|
192
163
|
end
|
193
164
|
|
194
165
|
test 'inability to connect to the api server handles exception and doensnt block pipeline' do
|
@@ -239,14 +210,14 @@ class KubernetesMetadataFilterTest < Test::Unit::TestCase
|
|
239
210
|
'container_id' => '49095a2894da899d3b327c5fde1e056a81376cc9a8f8b09a195f2a92bceed459'
|
240
211
|
},
|
241
212
|
'kubernetes' => {
|
242
|
-
'pod_name'
|
243
|
-
'container_name'
|
244
|
-
'namespace_name'
|
245
|
-
'namespace_id'
|
246
|
-
'pod_id'
|
213
|
+
'pod_name' => 'fabric8-console-controller-98rqc',
|
214
|
+
'container_name' => 'fabric8-console-container',
|
215
|
+
'namespace_name' => 'default',
|
216
|
+
'namespace_id' => '898268c8-4a36-11e5-9d81-42010af0194c',
|
217
|
+
'pod_id' => 'c76927af-f563-11e4-b32d-54ee7527188d',
|
247
218
|
}
|
248
219
|
}
|
249
|
-
|
220
|
+
|
250
221
|
assert_equal(expected_kube_metadata, es.instance_variable_get(:@record_array)[0])
|
251
222
|
end
|
252
223
|
end
|
@@ -270,19 +241,21 @@ class KubernetesMetadataFilterTest < Test::Unit::TestCase
|
|
270
241
|
'container_id' => '49095a2894da899d3b327c5fde1e056a81376cc9a8f8b09a195f2a92bceed459'
|
271
242
|
},
|
272
243
|
'kubernetes' => {
|
273
|
-
'host'
|
274
|
-
'pod_name'
|
275
|
-
'container_name'
|
276
|
-
'
|
277
|
-
'
|
278
|
-
'
|
279
|
-
'
|
244
|
+
'host' => 'jimmi-redhat.localnet',
|
245
|
+
'pod_name' => 'fabric8-console-controller-98rqc',
|
246
|
+
'container_name' => 'fabric8-console-container',
|
247
|
+
'container_image' => 'fabric8/hawtio-kubernetes:latest',
|
248
|
+
'container_image_id' => 'docker://b2bd1a24a68356b2f30128e6e28e672c1ef92df0d9ec01ec0c7faea5d77d2303',
|
249
|
+
'namespace_name' => 'default',
|
250
|
+
'namespace_id' => '898268c8-4a36-11e5-9d81-42010af0194c',
|
251
|
+
'pod_id' => 'c76927af-f563-11e4-b32d-54ee7527188d',
|
252
|
+
'master_url' => 'https://localhost:8443',
|
280
253
|
'labels' => {
|
281
254
|
'component' => 'fabric8Console'
|
282
255
|
}
|
283
256
|
}
|
284
257
|
}
|
285
|
-
|
258
|
+
|
286
259
|
assert_equal(expected_kube_metadata, es.instance_variable_get(:@record_array)[0])
|
287
260
|
end
|
288
261
|
end
|
@@ -296,19 +269,21 @@ class KubernetesMetadataFilterTest < Test::Unit::TestCase
|
|
296
269
|
'container_id' => '49095a2894da899d3b327c5fde1e056a81376cc9a8f8b09a195f2a92bceed459'
|
297
270
|
},
|
298
271
|
'kubernetes' => {
|
299
|
-
'host'
|
300
|
-
'pod_name'
|
301
|
-
'container_name'
|
302
|
-
'
|
303
|
-
'
|
304
|
-
'
|
305
|
-
'
|
272
|
+
'host' => 'jimmi-redhat.localnet',
|
273
|
+
'pod_name' => 'fabric8-console-controller-98rqc',
|
274
|
+
'container_name' => 'fabric8-console-container',
|
275
|
+
'container_image' => 'fabric8/hawtio-kubernetes:latest',
|
276
|
+
'container_image_id' => 'docker://b2bd1a24a68356b2f30128e6e28e672c1ef92df0d9ec01ec0c7faea5d77d2303',
|
277
|
+
'namespace_name' => 'default',
|
278
|
+
'namespace_id' => '898268c8-4a36-11e5-9d81-42010af0194c',
|
279
|
+
'pod_id' => 'c76927af-f563-11e4-b32d-54ee7527188d',
|
280
|
+
'master_url' => 'https://localhost:8443',
|
306
281
|
'labels' => {
|
307
282
|
'component' => 'fabric8Console'
|
308
283
|
}
|
309
284
|
}
|
310
285
|
}
|
311
|
-
|
286
|
+
|
312
287
|
assert_equal(expected_kube_metadata, es.instance_variable_get(:@record_array)[0])
|
313
288
|
end
|
314
289
|
end
|
@@ -325,13 +300,15 @@ class KubernetesMetadataFilterTest < Test::Unit::TestCase
|
|
325
300
|
'container_id' => '49095a2894da899d3b327c5fde1e056a81376cc9a8f8b09a195f2a92bceed459'
|
326
301
|
},
|
327
302
|
'kubernetes' => {
|
328
|
-
'host'
|
329
|
-
'pod_name'
|
330
|
-
'container_name'
|
331
|
-
'
|
332
|
-
'
|
333
|
-
'
|
334
|
-
'
|
303
|
+
'host' => 'jimmi-redhat.localnet',
|
304
|
+
'pod_name' => 'fabric8-console-controller-98rqc',
|
305
|
+
'container_name' => 'fabric8-console-container',
|
306
|
+
'container_image' => 'fabric8/hawtio-kubernetes:latest',
|
307
|
+
'container_image_id' => 'docker://b2bd1a24a68356b2f30128e6e28e672c1ef92df0d9ec01ec0c7faea5d77d2303',
|
308
|
+
'namespace_name' => 'default',
|
309
|
+
'namespace_id' => '898268c8-4a36-11e5-9d81-42010af0194c',
|
310
|
+
'pod_id' => 'c76927af-f563-11e4-b32d-54ee7527188d',
|
311
|
+
'master_url' => 'https://localhost:8443',
|
335
312
|
'labels' => {
|
336
313
|
'component' => 'fabric8Console'
|
337
314
|
}
|
@@ -354,13 +331,15 @@ class KubernetesMetadataFilterTest < Test::Unit::TestCase
|
|
354
331
|
'container_id' => '49095a2894da899d3b327c5fde1e056a81376cc9a8f8b09a195f2a92bceed459'
|
355
332
|
},
|
356
333
|
'kubernetes' => {
|
357
|
-
'host'
|
358
|
-
'pod_name'
|
359
|
-
'container_name'
|
360
|
-
'
|
361
|
-
'
|
362
|
-
'
|
363
|
-
'
|
334
|
+
'host' => 'jimmi-redhat.localnet',
|
335
|
+
'pod_name' => 'fabric8-console-controller-98rqc',
|
336
|
+
'container_name' => 'fabric8-console-container',
|
337
|
+
'container_image' => 'fabric8/hawtio-kubernetes:latest',
|
338
|
+
'container_image_id' => 'docker://b2bd1a24a68356b2f30128e6e28e672c1ef92df0d9ec01ec0c7faea5d77d2303',
|
339
|
+
'namespace_name' => 'default',
|
340
|
+
'namespace_id' => '898268c8-4a36-11e5-9d81-42010af0194c',
|
341
|
+
'pod_id' => 'c76927af-f563-11e4-b32d-54ee7527188d',
|
342
|
+
'master_url' => 'https://localhost:8443',
|
364
343
|
'labels' => {
|
365
344
|
'component' => 'fabric8Console'
|
366
345
|
}
|
@@ -377,9 +356,9 @@ class KubernetesMetadataFilterTest < Test::Unit::TestCase
|
|
377
356
|
'container_id' => '49095a2894da899d3b327c5fde1e056a81376cc9a8f8b09a195f2a92bceed459'
|
378
357
|
},
|
379
358
|
'kubernetes' => {
|
380
|
-
'pod_name'
|
381
|
-
'container_name'
|
382
|
-
'namespace_name'
|
359
|
+
'pod_name' => 'fabric8-console-controller-98rqc',
|
360
|
+
'container_name' => 'fabric8-console-container',
|
361
|
+
'namespace_name' => 'default',
|
383
362
|
}
|
384
363
|
}
|
385
364
|
assert_equal(expected_kube_metadata, es.instance_variable_get(:@record_array)[0])
|
@@ -399,11 +378,11 @@ class KubernetesMetadataFilterTest < Test::Unit::TestCase
|
|
399
378
|
'container_id' => '49095a2894da899d3b327c5fde1e056a81376cc9a8f8b09a195f2a92bceed459'
|
400
379
|
},
|
401
380
|
'kubernetes' => {
|
402
|
-
'pod_name'
|
403
|
-
'container_name'
|
404
|
-
'namespace_name'
|
381
|
+
'pod_name' => 'fabric8-console-controller-98rqc',
|
382
|
+
'container_name' => 'fabric8-console-container',
|
383
|
+
'namespace_name' => '.orphaned',
|
405
384
|
'orphaned_namespace' => 'default',
|
406
|
-
'namespace_id'
|
385
|
+
'namespace_id' => 'orphaned'
|
407
386
|
}
|
408
387
|
}
|
409
388
|
assert_equal(expected_kube_metadata, es.instance_variable_get(:@record_array)[0])
|
@@ -422,9 +401,9 @@ class KubernetesMetadataFilterTest < Test::Unit::TestCase
|
|
422
401
|
'container_id' => '49095a2894da899d3b327c5fde1e056a81376cc9a8f8b09a195f2a92bceed459'
|
423
402
|
},
|
424
403
|
'kubernetes' => {
|
425
|
-
'pod_name'
|
426
|
-
'container_name'
|
427
|
-
'namespace_name'
|
404
|
+
'pod_name' => 'fabric8-console-controller.98rqc',
|
405
|
+
'container_name' => 'fabric8-console-container',
|
406
|
+
'namespace_name' => 'default'
|
428
407
|
}
|
429
408
|
}
|
430
409
|
assert_equal(expected_kube_metadata, es.instance_variable_get(:@record_array)[0])
|
@@ -456,16 +435,18 @@ class KubernetesMetadataFilterTest < Test::Unit::TestCase
|
|
456
435
|
'container_id' => '49095a2894da899d3b327c5fde1e056a81376cc9a8f8b09a195f2a92bceed459'
|
457
436
|
},
|
458
437
|
'kubernetes' => {
|
459
|
-
'host'
|
460
|
-
'pod_name'
|
461
|
-
'container_name'
|
462
|
-
'
|
463
|
-
'
|
438
|
+
'host' => 'jimmi-redhat.localnet',
|
439
|
+
'pod_name' => 'fabric8-console-controller-98rqc',
|
440
|
+
'container_name' => 'fabric8-console-container',
|
441
|
+
'container_image' => 'fabric8/hawtio-kubernetes:latest',
|
442
|
+
'container_image_id' => 'docker://b2bd1a24a68356b2f30128e6e28e672c1ef92df0d9ec01ec0c7faea5d77d2303',
|
443
|
+
'namespace_id' => '898268c8-4a36-11e5-9d81-42010af0194c',
|
444
|
+
'namespace_labels' => {
|
464
445
|
'kubernetes_io/namespacetest' => 'somevalue'
|
465
446
|
},
|
466
|
-
'namespace_name'
|
467
|
-
'pod_id'
|
468
|
-
'master_url'
|
447
|
+
'namespace_name' => 'default',
|
448
|
+
'pod_id' => 'c76927af-f563-11e4-b32d-54ee7527188d',
|
449
|
+
'master_url' => 'https://localhost:8443',
|
469
450
|
'labels' => {
|
470
451
|
'kubernetes_io/test' => 'somevalue'
|
471
452
|
}
|
@@ -488,16 +469,18 @@ class KubernetesMetadataFilterTest < Test::Unit::TestCase
|
|
488
469
|
'container_id' => '49095a2894da899d3b327c5fde1e056a81376cc9a8f8b09a195f2a92bceed459'
|
489
470
|
},
|
490
471
|
'kubernetes' => {
|
491
|
-
'host'
|
492
|
-
'pod_name'
|
493
|
-
'container_name'
|
494
|
-
'
|
495
|
-
'
|
472
|
+
'host' => 'jimmi-redhat.localnet',
|
473
|
+
'pod_name' => 'fabric8-console-controller-98rqc',
|
474
|
+
'container_name' => 'fabric8-console-container',
|
475
|
+
'container_image' => 'fabric8/hawtio-kubernetes:latest',
|
476
|
+
'container_image_id' => 'docker://b2bd1a24a68356b2f30128e6e28e672c1ef92df0d9ec01ec0c7faea5d77d2303',
|
477
|
+
'namespace_id' => '898268c8-4a36-11e5-9d81-42010af0194c',
|
478
|
+
'namespace_labels' => {
|
496
479
|
'kubernetes.io/namespacetest' => 'somevalue'
|
497
480
|
},
|
498
|
-
'namespace_name'
|
499
|
-
'pod_id'
|
500
|
-
'master_url'
|
481
|
+
'namespace_name' => 'default',
|
482
|
+
'pod_id' => 'c76927af-f563-11e4-b32d-54ee7527188d',
|
483
|
+
'master_url' => 'https://localhost:8443',
|
501
484
|
'labels' => {
|
502
485
|
'kubernetes.io/test' => 'somevalue'
|
503
486
|
}
|
@@ -535,13 +518,15 @@ class KubernetesMetadataFilterTest < Test::Unit::TestCase
|
|
535
518
|
'container_id' => '49095a2894da899d3b327c5fde1e056a81376cc9a8f8b09a195f2a92bceed459'
|
536
519
|
},
|
537
520
|
'kubernetes' => {
|
538
|
-
'host'
|
539
|
-
'pod_name'
|
540
|
-
'container_name'
|
541
|
-
'
|
542
|
-
'
|
543
|
-
'
|
544
|
-
'
|
521
|
+
'host' => 'jimmi-redhat.localnet',
|
522
|
+
'pod_name' => 'fabric8-console-controller-98rqc',
|
523
|
+
'container_name' => 'fabric8-console-container',
|
524
|
+
'container_image' => 'fabric8/hawtio-kubernetes:latest',
|
525
|
+
'container_image_id' => 'docker://b2bd1a24a68356b2f30128e6e28e672c1ef92df0d9ec01ec0c7faea5d77d2303',
|
526
|
+
'namespace_name' => 'default',
|
527
|
+
'namespace_id' => '898268c8-4a36-11e5-9d81-42010af0194c',
|
528
|
+
'pod_id' => 'c76927af-f563-11e4-b32d-54ee7527188d',
|
529
|
+
'master_url' => 'https://localhost:8443',
|
545
530
|
'labels' => {
|
546
531
|
'component' => 'fabric8Console'
|
547
532
|
}
|
@@ -571,13 +556,15 @@ class KubernetesMetadataFilterTest < Test::Unit::TestCase
|
|
571
556
|
'container_id' => '49095a2894da899d3b327c5fde1e056a81376cc9a8f8b09a195f2a92bceed459'
|
572
557
|
},
|
573
558
|
'kubernetes' => {
|
574
|
-
'host'
|
575
|
-
'pod_name'
|
576
|
-
'container_name'
|
577
|
-
'
|
578
|
-
'
|
579
|
-
'
|
580
|
-
'
|
559
|
+
'host' => 'jimmi-redhat.localnet',
|
560
|
+
'pod_name' => 'fabric8-console-controller-98rqc',
|
561
|
+
'container_name' => 'fabric8-console-container',
|
562
|
+
'container_image' => 'fabric8/hawtio-kubernetes:latest',
|
563
|
+
'container_image_id' => 'docker://b2bd1a24a68356b2f30128e6e28e672c1ef92df0d9ec01ec0c7faea5d77d2303',
|
564
|
+
'namespace_name' => 'default',
|
565
|
+
'namespace_id' => '898268c8-4a36-11e5-9d81-42010af0194c',
|
566
|
+
'pod_id' => 'c76927af-f563-11e4-b32d-54ee7527188d',
|
567
|
+
'master_url' => 'https://localhost:8443',
|
581
568
|
'labels' => {
|
582
569
|
'component' => 'fabric8Console'
|
583
570
|
}
|
@@ -587,6 +574,138 @@ class KubernetesMetadataFilterTest < Test::Unit::TestCase
|
|
587
574
|
end
|
588
575
|
end
|
589
576
|
|
577
|
+
test 'with records from journald and docker & kubernetes metadata with use_journal unset' do
|
578
|
+
# with use_journal unset, should still use the journal fields instead of tag fields
|
579
|
+
tag = 'var.log.containers.fabric8-console-controller-98rqc_default_fabric8-console-container-49095a2894da899d3b327c5fde1e056a81376cc9a8f8b09a195f2a92bceed459.log'
|
580
|
+
msg = {
|
581
|
+
'CONTAINER_NAME' => 'k8s_journald-container-name.db89db89_journald-pod-name_journald-namespace-name_c76927af-f563-11e4-b32d-54ee7527188d_89db89db',
|
582
|
+
'CONTAINER_ID_FULL' => '838350c64bacba968d39a30a50789b2795291fceca6ccbff55298671d46b0e3b',
|
583
|
+
'kubernetes' => {
|
584
|
+
'namespace_name' => 'k8s-namespace-name',
|
585
|
+
'pod_name' => 'k8s-pod-name',
|
586
|
+
'container_name' => 'k8s-container-name'
|
587
|
+
},
|
588
|
+
'docker' => {'container_id' => 'e463bc0d3ae38f5c89d92dca49b30e049e899799920b79d4d5f705acbe82ba95'},
|
589
|
+
'randomfield' => 'randomvalue'
|
590
|
+
}
|
591
|
+
VCR.use_cassette('metadata_from_tag_journald_and_kubernetes_fields') do
|
592
|
+
es = emit_with_tag(tag, msg, '
|
593
|
+
kubernetes_url https://localhost:8443
|
594
|
+
watch false
|
595
|
+
cache_size 1
|
596
|
+
')
|
597
|
+
expected_kube_metadata = {
|
598
|
+
'docker' => {
|
599
|
+
'container_id' => 'e463bc0d3ae38f5c89d92dca49b30e049e899799920b79d4d5f705acbe82ba95'
|
600
|
+
},
|
601
|
+
'kubernetes' => {
|
602
|
+
'host' => 'jimmi-redhat.localnet',
|
603
|
+
'pod_name' => 'k8s-pod-name',
|
604
|
+
'container_name' => 'k8s-container-name',
|
605
|
+
'container_image' => 'k8s-container-image:latest',
|
606
|
+
'container_image_id' => 'docker://d78c5217c41e9af08d37d9ae2cb070afa1fe3da6bc77bfb18879a8b4bfdf8a34',
|
607
|
+
'namespace_name' => 'k8s-namespace-name',
|
608
|
+
'namespace_id' => '8e0dc8fc-59f2-49f7-a3e2-ed0913e19d9f',
|
609
|
+
'pod_id' => 'ebabf749-5fcd-4750-a3f0-aedd89476da8',
|
610
|
+
'master_url' => 'https://localhost:8443',
|
611
|
+
'labels' => {
|
612
|
+
'component' => 'k8s-test'
|
613
|
+
}
|
614
|
+
}
|
615
|
+
}.merge(msg) {|key,oldval,newval| ((key == 'kubernetes') || (key == 'docker')) ? oldval : newval}
|
616
|
+
assert_equal(expected_kube_metadata, es.instance_variable_get(:@record_array)[0])
|
617
|
+
end
|
618
|
+
end
|
619
|
+
|
620
|
+
test 'with records from journald and docker & kubernetes metadata with lookup_from_k8s_field false' do
|
621
|
+
# with use_journal unset, should still use the journal fields instead of tag fields
|
622
|
+
tag = 'var.log.containers.fabric8-console-controller-98rqc_default_fabric8-console-container-49095a2894da899d3b327c5fde1e056a81376cc9a8f8b09a195f2a92bceed459.log'
|
623
|
+
msg = {
|
624
|
+
'CONTAINER_NAME' => 'k8s_journald-container-name.db89db89_journald-pod-name_journald-namespace-name_c76927af-f563-11e4-b32d-54ee7527188d_89db89db',
|
625
|
+
'CONTAINER_ID_FULL' => '838350c64bacba968d39a30a50789b2795291fceca6ccbff55298671d46b0e3b',
|
626
|
+
'kubernetes' => {
|
627
|
+
'namespace_name' => 'k8s-namespace-name',
|
628
|
+
'pod_name' => 'k8s-pod-name',
|
629
|
+
'container_name' => 'k8s-container-name'
|
630
|
+
},
|
631
|
+
'docker' => {'container_id' => 'e463bc0d3ae38f5c89d92dca49b30e049e899799920b79d4d5f705acbe82ba95'},
|
632
|
+
'randomfield' => 'randomvalue'
|
633
|
+
}
|
634
|
+
VCR.use_cassette('metadata_from_tag_and_journald_fields') do
|
635
|
+
es = emit_with_tag(tag, msg, '
|
636
|
+
kubernetes_url https://localhost:8443
|
637
|
+
watch false
|
638
|
+
cache_size 1
|
639
|
+
lookup_from_k8s_field false
|
640
|
+
')
|
641
|
+
expected_kube_metadata = {
|
642
|
+
'docker' => {
|
643
|
+
'container_id' => '838350c64bacba968d39a30a50789b2795291fceca6ccbff55298671d46b0e3b'
|
644
|
+
},
|
645
|
+
'kubernetes' => {
|
646
|
+
'host' => 'jimmi-redhat.localnet',
|
647
|
+
'pod_name' => 'journald-pod-name',
|
648
|
+
'container_name' => 'journald-container-name',
|
649
|
+
'container_image' => 'journald-container-image:latest',
|
650
|
+
'container_image_id' => 'docker://dda4c95705fb7050b701b10a7fe928ca5bc971a1dcb521ae3c339194cbf36b47',
|
651
|
+
'namespace_name' => 'journald-namespace-name',
|
652
|
+
'namespace_id' => '8282888f-733f-4f23-a3d3-1fdfa3bdacf2',
|
653
|
+
'pod_id' => '5e1c1e27-b637-4e81-80b6-6d8a8c404d3b',
|
654
|
+
'master_url' => 'https://localhost:8443',
|
655
|
+
'labels' => {
|
656
|
+
'component' => 'journald-test'
|
657
|
+
}
|
658
|
+
}
|
659
|
+
}.merge(msg) {|key,oldval,newval| ((key == 'kubernetes') || (key == 'docker')) ? oldval : newval}
|
660
|
+
assert_equal(expected_kube_metadata, es.instance_variable_get(:@record_array)[0])
|
661
|
+
end
|
662
|
+
end
|
663
|
+
|
664
|
+
test 'uses metadata from tag if use_journal false and lookup_from_k8s_field false' do
|
665
|
+
# with use_journal unset, should still use the journal fields instead of tag fields
|
666
|
+
tag = 'var.log.containers.fabric8-console-controller-98rqc_default_fabric8-console-container-49095a2894da899d3b327c5fde1e056a81376cc9a8f8b09a195f2a92bceed459.log'
|
667
|
+
msg = {
|
668
|
+
'CONTAINER_NAME' => 'k8s_journald-container-name.db89db89_journald-pod-name_journald-namespace-name_c76927af-f563-11e4-b32d-54ee7527188d_89db89db',
|
669
|
+
'CONTAINER_ID_FULL' => '838350c64bacba968d39a30a50789b2795291fceca6ccbff55298671d46b0e3b',
|
670
|
+
'kubernetes' => {
|
671
|
+
'namespace_name' => 'k8s-namespace-name',
|
672
|
+
'pod_name' => 'k8s-pod-name',
|
673
|
+
'container_name' => 'k8s-container-name'
|
674
|
+
},
|
675
|
+
'docker' => {'container_id' => 'e463bc0d3ae38f5c89d92dca49b30e049e899799920b79d4d5f705acbe82ba95'},
|
676
|
+
'randomfield' => 'randomvalue'
|
677
|
+
}
|
678
|
+
VCR.use_cassette('metadata_from_tag_and_journald_fields') do
|
679
|
+
es = emit_with_tag(tag, msg, '
|
680
|
+
kubernetes_url https://localhost:8443
|
681
|
+
watch false
|
682
|
+
cache_size 1
|
683
|
+
lookup_from_k8s_field false
|
684
|
+
use_journal false
|
685
|
+
')
|
686
|
+
expected_kube_metadata = {
|
687
|
+
'docker' => {
|
688
|
+
'container_id' => '49095a2894da899d3b327c5fde1e056a81376cc9a8f8b09a195f2a92bceed459'
|
689
|
+
},
|
690
|
+
'kubernetes' => {
|
691
|
+
'host' => 'jimmi-redhat.localnet',
|
692
|
+
'pod_name' => 'fabric8-console-controller-98rqc',
|
693
|
+
'container_name' => 'fabric8-console-container',
|
694
|
+
'container_image' => 'fabric8/hawtio-kubernetes:latest',
|
695
|
+
'container_image_id' => 'docker://b2bd1a24a68356b2f30128e6e28e672c1ef92df0d9ec01ec0c7faea5d77d2303',
|
696
|
+
'namespace_name' => 'default',
|
697
|
+
'namespace_id' => '898268c8-4a36-11e5-9d81-42010af0194c',
|
698
|
+
'pod_id' => 'c76927af-f563-11e4-b32d-54ee7527188d',
|
699
|
+
'master_url' => 'https://localhost:8443',
|
700
|
+
'labels' => {
|
701
|
+
'component' => 'fabric8Console'
|
702
|
+
}
|
703
|
+
}
|
704
|
+
}.merge(msg) {|key,oldval,newval| ((key == 'kubernetes') || (key == 'docker')) ? oldval : newval}
|
705
|
+
assert_equal(expected_kube_metadata, es.instance_variable_get(:@record_array)[0])
|
706
|
+
end
|
707
|
+
end
|
708
|
+
|
590
709
|
test 'with kubernetes annotations' do
|
591
710
|
VCR.use_cassette('kubernetes_docker_metadata_annotations') do
|
592
711
|
es = emit({},'
|
@@ -600,14 +719,16 @@ class KubernetesMetadataFilterTest < Test::Unit::TestCase
|
|
600
719
|
'container_id' => '49095a2894da899d3b327c5fde1e056a81376cc9a8f8b09a195f2a92bceed459'
|
601
720
|
},
|
602
721
|
'kubernetes' => {
|
603
|
-
'host'
|
604
|
-
'pod_name'
|
605
|
-
'container_name'
|
606
|
-
'
|
607
|
-
'
|
608
|
-
'
|
609
|
-
'
|
610
|
-
'
|
722
|
+
'host' => 'jimmi-redhat.localnet',
|
723
|
+
'pod_name' => 'fabric8-console-controller-98rqc',
|
724
|
+
'container_name' => 'fabric8-console-container',
|
725
|
+
'container_image' => 'fabric8/hawtio-kubernetes:latest',
|
726
|
+
'container_image_id' => 'docker://b2bd1a24a68356b2f30128e6e28e672c1ef92df0d9ec01ec0c7faea5d77d2303',
|
727
|
+
'namespace_name' => 'default',
|
728
|
+
'namespace_id' => '898268c8-4a36-11e5-9d81-42010af0194c',
|
729
|
+
'pod_id' => 'c76927af-f563-11e4-b32d-54ee7527188d',
|
730
|
+
'master_url' => 'https://localhost:8443',
|
731
|
+
'labels' => {
|
611
732
|
'component' => 'fabric8Console'
|
612
733
|
},
|
613
734
|
'annotations' => {
|
@@ -640,13 +761,15 @@ class KubernetesMetadataFilterTest < Test::Unit::TestCase
|
|
640
761
|
'container_id' => '49095a2894da899d3b327c5fde1e056a81376cc9a8f8b09a195f2a92bceed459'
|
641
762
|
},
|
642
763
|
'kubernetes' => {
|
643
|
-
'host'
|
644
|
-
'pod_name'
|
645
|
-
'container_name'
|
646
|
-
'
|
647
|
-
'
|
648
|
-
'
|
649
|
-
'
|
764
|
+
'host' => 'jimmi-redhat.localnet',
|
765
|
+
'pod_name' => 'fabric8-console-controller-98rqc',
|
766
|
+
'container_name' => 'fabric8-console-container',
|
767
|
+
'container_image' => 'fabric8/hawtio-kubernetes:latest',
|
768
|
+
'container_image_id' => 'docker://b2bd1a24a68356b2f30128e6e28e672c1ef92df0d9ec01ec0c7faea5d77d2303',
|
769
|
+
'namespace_name' => 'default',
|
770
|
+
'namespace_id' => '898268c8-4a36-11e5-9d81-42010af0194c',
|
771
|
+
'pod_id' => 'c76927af-f563-11e4-b32d-54ee7527188d',
|
772
|
+
'master_url' => 'https://localhost:8443',
|
650
773
|
'labels' => {
|
651
774
|
'component' => 'fabric8Console'
|
652
775
|
}
|
@@ -669,14 +792,16 @@ class KubernetesMetadataFilterTest < Test::Unit::TestCase
|
|
669
792
|
'container_id' => '49095a2894da899d3b327c5fde1e056a81376cc9a8f8b09a195f2a92bceed459'
|
670
793
|
},
|
671
794
|
'kubernetes' => {
|
672
|
-
'host'
|
673
|
-
'pod_name'
|
674
|
-
'container_name'
|
675
|
-
'namespace_id'
|
676
|
-
'namespace_name'
|
677
|
-
'
|
678
|
-
'
|
679
|
-
'
|
795
|
+
'host' => 'jimmi-redhat.localnet',
|
796
|
+
'pod_name' => 'fabric8-console-controller-98rqc',
|
797
|
+
'container_name' => 'fabric8-console-container',
|
798
|
+
'namespace_id' => '898268c8-4a36-11e5-9d81-42010af0194c',
|
799
|
+
'namespace_name' => 'default',
|
800
|
+
'container_image' => 'fabric8/hawtio-kubernetes:latest',
|
801
|
+
'container_image_id' => 'docker://b2bd1a24a68356b2f30128e6e28e672c1ef92df0d9ec01ec0c7faea5d77d2303',
|
802
|
+
'pod_id' => 'c76927af-f563-11e4-b32d-54ee7527188d',
|
803
|
+
'master_url' => 'https://localhost:8443',
|
804
|
+
'labels' => {
|
680
805
|
'component' => 'fabric8Console'
|
681
806
|
},
|
682
807
|
'annotations' => {
|
@@ -705,14 +830,16 @@ class KubernetesMetadataFilterTest < Test::Unit::TestCase
|
|
705
830
|
'container_id' => '49095a2894da899d3b327c5fde1e056a81376cc9a8f8b09a195f2a92bceed459'
|
706
831
|
},
|
707
832
|
'kubernetes' => {
|
708
|
-
'host'
|
709
|
-
'pod_name'
|
710
|
-
'container_name'
|
711
|
-
'
|
712
|
-
'
|
713
|
-
'
|
714
|
-
'
|
715
|
-
'
|
833
|
+
'host' => 'jimmi-redhat.localnet',
|
834
|
+
'pod_name' => 'fabric8-console-controller-98rqc',
|
835
|
+
'container_name' => 'fabric8-console-container',
|
836
|
+
'container_image' => 'fabric8/hawtio-kubernetes:latest',
|
837
|
+
'container_image_id' => 'docker://b2bd1a24a68356b2f30128e6e28e672c1ef92df0d9ec01ec0c7faea5d77d2303',
|
838
|
+
'namespace_id' => '898268c8-4a36-11e5-9d81-42010af0194c',
|
839
|
+
'namespace_name' => 'default',
|
840
|
+
'pod_id' => 'c76927af-f563-11e4-b32d-54ee7527188d',
|
841
|
+
'master_url' => 'https://localhost:8443',
|
842
|
+
'labels' => {
|
716
843
|
'component' => 'fabric8Console'
|
717
844
|
}
|
718
845
|
}
|