fluent-plugin-kubernetes_metadata_filter 2.1.1 → 2.1.2
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/fluent-plugin-kubernetes_metadata_filter.gemspec +1 -1
- data/lib/fluent/plugin/filter_kubernetes_metadata.rb +15 -5
- data/lib/fluent/plugin/kubernetes_metadata_cache_strategy.rb +1 -0
- data/lib/fluent/plugin/kubernetes_metadata_common.rb +18 -0
- data/test/cassettes/kubernetes_docker_metadata_using_bearer_token.yml +1 -1
- data/test/plugin/test_filter_kubernetes_metadata.rb +146 -104
- data/test/plugin/test_watch_pods.rb +35 -3
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fe17406dc7a359a7bb8b52271680b041397bf567
|
4
|
+
data.tar.gz: 449541c91baaa0a96ee27adf6a74464941c96916
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7f8d366a2eb39f8c43ce9d240817cc251524ec58c2cde4186d85824b7d1e861b8396443d2c4a148ffc84892632f3ff4c87f4ca8396ddfb2c46d4f5bf55ee5caa
|
7
|
+
data.tar.gz: fdc11df9a3d428929e2aa986b48848cc7204273a83b212f77277a295990afd6fd968d24105c4ebb30be4abdbd629e899478a76f6a03be6582492324b6f26cb28
|
@@ -4,7 +4,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
4
4
|
|
5
5
|
Gem::Specification.new do |gem|
|
6
6
|
gem.name = "fluent-plugin-kubernetes_metadata_filter"
|
7
|
-
gem.version = "2.1.
|
7
|
+
gem.version = "2.1.2"
|
8
8
|
gem.authors = ["Jimmi Dyson"]
|
9
9
|
gem.email = ["jimmidyson@gmail.com"]
|
10
10
|
gem.description = %q{Filter plugin to add Kubernetes metadata}
|
@@ -262,17 +262,25 @@ module Fluent::Plugin
|
|
262
262
|
|
263
263
|
end
|
264
264
|
|
265
|
-
def get_metadata_for_record(match_data,
|
265
|
+
def get_metadata_for_record(match_data, container_id, create_time, batch_miss_cache)
|
266
266
|
namespace_name = match_data['namespace']
|
267
267
|
pod_name = match_data['pod_name']
|
268
|
+
container_name = match_data['container_name']
|
268
269
|
metadata = {
|
269
|
-
'container_name'
|
270
|
-
'namespace_name'
|
271
|
-
'pod_name'
|
270
|
+
'container_name' => container_name,
|
271
|
+
'namespace_name' => namespace_name,
|
272
|
+
'pod_name' => pod_name
|
272
273
|
}
|
273
274
|
if @kubernetes_url.present?
|
274
|
-
pod_metadata = get_pod_metadata(
|
275
|
+
pod_metadata = get_pod_metadata(container_id, namespace_name, pod_name, create_time, batch_miss_cache)
|
276
|
+
|
277
|
+
if (pod_metadata.include? 'containers') && (pod_metadata['containers'].include? container_id)
|
278
|
+
metadata['container_image'] = pod_metadata['containers'][container_id]['image']
|
279
|
+
metadata['container_image_id'] = pod_metadata['containers'][container_id]['image_id']
|
280
|
+
end
|
281
|
+
|
275
282
|
metadata.merge!(pod_metadata) if pod_metadata
|
283
|
+
metadata.delete('containers')
|
276
284
|
end
|
277
285
|
metadata
|
278
286
|
end
|
@@ -291,6 +299,7 @@ module Fluent::Plugin
|
|
291
299
|
end
|
292
300
|
|
293
301
|
def filter_stream_from_files(tag, es)
|
302
|
+
return es if es.nil? || es.empty?
|
294
303
|
new_es = Fluent::MultiEventStream.new
|
295
304
|
|
296
305
|
match_data = tag.match(@tag_to_kubernetes_name_regexp_compiled)
|
@@ -314,6 +323,7 @@ module Fluent::Plugin
|
|
314
323
|
end
|
315
324
|
|
316
325
|
def filter_stream_from_journal(tag, es)
|
326
|
+
return es if es.nil? || es.empty?
|
317
327
|
new_es = Fluent::MultiEventStream.new
|
318
328
|
batch_miss_cache = {}
|
319
329
|
es.each do |time, record|
|
@@ -83,6 +83,7 @@ module KubernetesMetadata
|
|
83
83
|
end
|
84
84
|
@id_cache[key] = ids unless batch_miss_cache.key?("#{namespace_name}_#{pod_name}")
|
85
85
|
end
|
86
|
+
|
86
87
|
# remove namespace info that is only used for comparison
|
87
88
|
metadata.delete('creation_timestamp')
|
88
89
|
metadata.delete_if{|k,v| v.nil?}
|
@@ -54,10 +54,28 @@ module KubernetesMetadata
|
|
54
54
|
self.de_dot!(labels)
|
55
55
|
self.de_dot!(annotations)
|
56
56
|
end
|
57
|
+
|
58
|
+
# collect container informations
|
59
|
+
container_meta = {}
|
60
|
+
begin
|
61
|
+
pod_object['status']['containerStatuses'].each do|container_status|
|
62
|
+
# get plain container id (eg. docker://hash -> hash)
|
63
|
+
container_id = container_status['containerID'].sub /^[-_a-zA-Z0-9]+:\/\//, ''
|
64
|
+
container_meta[container_id] = {
|
65
|
+
'name' => container_status['name'],
|
66
|
+
'image' => container_status['image'],
|
67
|
+
'image_id' => container_status['imageID']
|
68
|
+
}
|
69
|
+
end
|
70
|
+
rescue
|
71
|
+
log.debug("parsing container meta information failed for: #{pod_object['metadata']['namespace']}/#{pod_object['metadata']['name']} ")
|
72
|
+
end
|
73
|
+
|
57
74
|
kubernetes_metadata = {
|
58
75
|
'namespace_name' => pod_object['metadata']['namespace'],
|
59
76
|
'pod_id' => pod_object['metadata']['uid'],
|
60
77
|
'pod_name' => pod_object['metadata']['name'],
|
78
|
+
'containers' => syms_to_strs(container_meta),
|
61
79
|
'labels' => labels,
|
62
80
|
'host' => pod_object['spec']['nodeName'],
|
63
81
|
'master_url' => @kubernetes_url
|
@@ -174,7 +174,7 @@ http_interactions:
|
|
174
174
|
"restartCount": 2,
|
175
175
|
"image": "fabric8/hawtio-kubernetes:latest",
|
176
176
|
"imageID": "docker://b2bd1a24a68356b2f30128e6e28e672c1ef92df0d9ec01ec0c7faea5d77d2303",
|
177
|
-
"containerID": "docker://
|
177
|
+
"containerID": "docker://49095a2894da899d3b327c5fde1e056a81376cc9a8f8b09a195f2a92bceed459"
|
178
178
|
},
|
179
179
|
{
|
180
180
|
"name": "POD",
|
@@ -158,6 +158,24 @@ class KubernetesMetadataFilterTest < Test::Unit::TestCase
|
|
158
158
|
d.filtered.map{|e| e.last}
|
159
159
|
end
|
160
160
|
|
161
|
+
test 'nil event stream from journal' do
|
162
|
+
#not certain how this is possible but adding test to properly
|
163
|
+
#guard against this condition we have seen
|
164
|
+
|
165
|
+
plugin = create_driver.instance
|
166
|
+
plugin.filter_stream_from_journal('tag', nil)
|
167
|
+
plugin.filter_stream_from_journal('tag', Fluent::MultiEventStream.new)
|
168
|
+
end
|
169
|
+
|
170
|
+
test 'nil event stream from files' do
|
171
|
+
#not certain how this is possible but adding test to properly
|
172
|
+
#guard against this condition we have seen
|
173
|
+
|
174
|
+
plugin = create_driver.instance
|
175
|
+
plugin.filter_stream_from_files('tag', nil)
|
176
|
+
plugin.filter_stream_from_files('tag', Fluent::MultiEventStream.new)
|
177
|
+
end
|
178
|
+
|
161
179
|
test 'inability to connect to the api server handles exception and doensnt block pipeline' do
|
162
180
|
VCR.use_cassette('kubernetes_docker_metadata') do
|
163
181
|
driver = create_driver('
|
@@ -206,11 +224,11 @@ class KubernetesMetadataFilterTest < Test::Unit::TestCase
|
|
206
224
|
'container_id' => '49095a2894da899d3b327c5fde1e056a81376cc9a8f8b09a195f2a92bceed459'
|
207
225
|
},
|
208
226
|
'kubernetes' => {
|
209
|
-
'pod_name'
|
210
|
-
'container_name'
|
211
|
-
'namespace_name'
|
212
|
-
'namespace_id'
|
213
|
-
'pod_id'
|
227
|
+
'pod_name' => 'fabric8-console-controller-98rqc',
|
228
|
+
'container_name' => 'fabric8-console-container',
|
229
|
+
'namespace_name' => 'default',
|
230
|
+
'namespace_id' => '898268c8-4a36-11e5-9d81-42010af0194c',
|
231
|
+
'pod_id' => 'c76927af-f563-11e4-b32d-54ee7527188d',
|
214
232
|
}
|
215
233
|
}
|
216
234
|
|
@@ -237,13 +255,15 @@ class KubernetesMetadataFilterTest < Test::Unit::TestCase
|
|
237
255
|
'container_id' => '49095a2894da899d3b327c5fde1e056a81376cc9a8f8b09a195f2a92bceed459'
|
238
256
|
},
|
239
257
|
'kubernetes' => {
|
240
|
-
'host'
|
241
|
-
'pod_name'
|
242
|
-
'container_name'
|
243
|
-
'
|
244
|
-
'
|
245
|
-
'
|
246
|
-
'
|
258
|
+
'host' => 'jimmi-redhat.localnet',
|
259
|
+
'pod_name' => 'fabric8-console-controller-98rqc',
|
260
|
+
'container_name' => 'fabric8-console-container',
|
261
|
+
'container_image' => 'fabric8/hawtio-kubernetes:latest',
|
262
|
+
'container_image_id' => 'docker://b2bd1a24a68356b2f30128e6e28e672c1ef92df0d9ec01ec0c7faea5d77d2303',
|
263
|
+
'namespace_name' => 'default',
|
264
|
+
'namespace_id' => '898268c8-4a36-11e5-9d81-42010af0194c',
|
265
|
+
'pod_id' => 'c76927af-f563-11e4-b32d-54ee7527188d',
|
266
|
+
'master_url' => 'https://localhost:8443',
|
247
267
|
'labels' => {
|
248
268
|
'component' => 'fabric8Console'
|
249
269
|
}
|
@@ -263,13 +283,15 @@ class KubernetesMetadataFilterTest < Test::Unit::TestCase
|
|
263
283
|
'container_id' => '49095a2894da899d3b327c5fde1e056a81376cc9a8f8b09a195f2a92bceed459'
|
264
284
|
},
|
265
285
|
'kubernetes' => {
|
266
|
-
'host'
|
267
|
-
'pod_name'
|
268
|
-
'container_name'
|
269
|
-
'
|
270
|
-
'
|
271
|
-
'
|
272
|
-
'
|
286
|
+
'host' => 'jimmi-redhat.localnet',
|
287
|
+
'pod_name' => 'fabric8-console-controller-98rqc',
|
288
|
+
'container_name' => 'fabric8-console-container',
|
289
|
+
'container_image' => 'fabric8/hawtio-kubernetes:latest',
|
290
|
+
'container_image_id' => 'docker://b2bd1a24a68356b2f30128e6e28e672c1ef92df0d9ec01ec0c7faea5d77d2303',
|
291
|
+
'namespace_name' => 'default',
|
292
|
+
'namespace_id' => '898268c8-4a36-11e5-9d81-42010af0194c',
|
293
|
+
'pod_id' => 'c76927af-f563-11e4-b32d-54ee7527188d',
|
294
|
+
'master_url' => 'https://localhost:8443',
|
273
295
|
'labels' => {
|
274
296
|
'component' => 'fabric8Console'
|
275
297
|
}
|
@@ -292,13 +314,15 @@ class KubernetesMetadataFilterTest < Test::Unit::TestCase
|
|
292
314
|
'container_id' => '49095a2894da899d3b327c5fde1e056a81376cc9a8f8b09a195f2a92bceed459'
|
293
315
|
},
|
294
316
|
'kubernetes' => {
|
295
|
-
'host'
|
296
|
-
'pod_name'
|
297
|
-
'container_name'
|
298
|
-
'
|
299
|
-
'
|
300
|
-
'
|
301
|
-
'
|
317
|
+
'host' => 'jimmi-redhat.localnet',
|
318
|
+
'pod_name' => 'fabric8-console-controller-98rqc',
|
319
|
+
'container_name' => 'fabric8-console-container',
|
320
|
+
'container_image' => 'fabric8/hawtio-kubernetes:latest',
|
321
|
+
'container_image_id' => 'docker://b2bd1a24a68356b2f30128e6e28e672c1ef92df0d9ec01ec0c7faea5d77d2303',
|
322
|
+
'namespace_name' => 'default',
|
323
|
+
'namespace_id' => '898268c8-4a36-11e5-9d81-42010af0194c',
|
324
|
+
'pod_id' => 'c76927af-f563-11e4-b32d-54ee7527188d',
|
325
|
+
'master_url' => 'https://localhost:8443',
|
302
326
|
'labels' => {
|
303
327
|
'component' => 'fabric8Console'
|
304
328
|
}
|
@@ -321,13 +345,15 @@ class KubernetesMetadataFilterTest < Test::Unit::TestCase
|
|
321
345
|
'container_id' => '49095a2894da899d3b327c5fde1e056a81376cc9a8f8b09a195f2a92bceed459'
|
322
346
|
},
|
323
347
|
'kubernetes' => {
|
324
|
-
'host'
|
325
|
-
'pod_name'
|
326
|
-
'container_name'
|
327
|
-
'
|
328
|
-
'
|
329
|
-
'
|
330
|
-
'
|
348
|
+
'host' => 'jimmi-redhat.localnet',
|
349
|
+
'pod_name' => 'fabric8-console-controller-98rqc',
|
350
|
+
'container_name' => 'fabric8-console-container',
|
351
|
+
'container_image' => 'fabric8/hawtio-kubernetes:latest',
|
352
|
+
'container_image_id' => 'docker://b2bd1a24a68356b2f30128e6e28e672c1ef92df0d9ec01ec0c7faea5d77d2303',
|
353
|
+
'namespace_name' => 'default',
|
354
|
+
'namespace_id' => '898268c8-4a36-11e5-9d81-42010af0194c',
|
355
|
+
'pod_id' => 'c76927af-f563-11e4-b32d-54ee7527188d',
|
356
|
+
'master_url' => 'https://localhost:8443',
|
331
357
|
'labels' => {
|
332
358
|
'component' => 'fabric8Console'
|
333
359
|
}
|
@@ -344,9 +370,9 @@ class KubernetesMetadataFilterTest < Test::Unit::TestCase
|
|
344
370
|
'container_id' => '49095a2894da899d3b327c5fde1e056a81376cc9a8f8b09a195f2a92bceed459'
|
345
371
|
},
|
346
372
|
'kubernetes' => {
|
347
|
-
'pod_name'
|
348
|
-
'container_name'
|
349
|
-
'namespace_name'
|
373
|
+
'pod_name' => 'fabric8-console-controller-98rqc',
|
374
|
+
'container_name' => 'fabric8-console-container',
|
375
|
+
'namespace_name' => 'default',
|
350
376
|
}
|
351
377
|
}
|
352
378
|
assert_equal(expected_kube_metadata, filtered[0])
|
@@ -366,11 +392,11 @@ class KubernetesMetadataFilterTest < Test::Unit::TestCase
|
|
366
392
|
'container_id' => '49095a2894da899d3b327c5fde1e056a81376cc9a8f8b09a195f2a92bceed459'
|
367
393
|
},
|
368
394
|
'kubernetes' => {
|
369
|
-
'pod_name'
|
370
|
-
'container_name'
|
371
|
-
'namespace_name'
|
395
|
+
'pod_name' => 'fabric8-console-controller-98rqc',
|
396
|
+
'container_name' => 'fabric8-console-container',
|
397
|
+
'namespace_name' => '.orphaned',
|
372
398
|
'orphaned_namespace' => 'default',
|
373
|
-
'namespace_id'
|
399
|
+
'namespace_id' => 'orphaned'
|
374
400
|
}
|
375
401
|
}
|
376
402
|
assert_equal(expected_kube_metadata, filtered[0])
|
@@ -389,9 +415,9 @@ class KubernetesMetadataFilterTest < Test::Unit::TestCase
|
|
389
415
|
'container_id' => '49095a2894da899d3b327c5fde1e056a81376cc9a8f8b09a195f2a92bceed459'
|
390
416
|
},
|
391
417
|
'kubernetes' => {
|
392
|
-
'pod_name'
|
393
|
-
'container_name'
|
394
|
-
'namespace_name'
|
418
|
+
'pod_name' => 'fabric8-console-controller.98rqc',
|
419
|
+
'container_name' => 'fabric8-console-container',
|
420
|
+
'namespace_name' => 'default'
|
395
421
|
}
|
396
422
|
}
|
397
423
|
assert_equal(expected_kube_metadata, filtered[0])
|
@@ -423,16 +449,18 @@ class KubernetesMetadataFilterTest < Test::Unit::TestCase
|
|
423
449
|
'container_id' => '49095a2894da899d3b327c5fde1e056a81376cc9a8f8b09a195f2a92bceed459'
|
424
450
|
},
|
425
451
|
'kubernetes' => {
|
426
|
-
'host'
|
427
|
-
'pod_name'
|
428
|
-
'container_name'
|
429
|
-
'
|
430
|
-
'
|
452
|
+
'host' => 'jimmi-redhat.localnet',
|
453
|
+
'pod_name' => 'fabric8-console-controller-98rqc',
|
454
|
+
'container_name' => 'fabric8-console-container',
|
455
|
+
'container_image' => 'fabric8/hawtio-kubernetes:latest',
|
456
|
+
'container_image_id' => 'docker://b2bd1a24a68356b2f30128e6e28e672c1ef92df0d9ec01ec0c7faea5d77d2303',
|
457
|
+
'namespace_id' => '898268c8-4a36-11e5-9d81-42010af0194c',
|
458
|
+
'namespace_labels' => {
|
431
459
|
'kubernetes_io/namespacetest' => 'somevalue'
|
432
460
|
},
|
433
|
-
'namespace_name'
|
434
|
-
'pod_id'
|
435
|
-
'master_url'
|
461
|
+
'namespace_name' => 'default',
|
462
|
+
'pod_id' => 'c76927af-f563-11e4-b32d-54ee7527188d',
|
463
|
+
'master_url' => 'https://localhost:8443',
|
436
464
|
'labels' => {
|
437
465
|
'kubernetes_io/test' => 'somevalue'
|
438
466
|
}
|
@@ -455,16 +483,18 @@ class KubernetesMetadataFilterTest < Test::Unit::TestCase
|
|
455
483
|
'container_id' => '49095a2894da899d3b327c5fde1e056a81376cc9a8f8b09a195f2a92bceed459'
|
456
484
|
},
|
457
485
|
'kubernetes' => {
|
458
|
-
'host'
|
459
|
-
'pod_name'
|
460
|
-
'container_name'
|
461
|
-
'
|
462
|
-
'
|
486
|
+
'host' => 'jimmi-redhat.localnet',
|
487
|
+
'pod_name' => 'fabric8-console-controller-98rqc',
|
488
|
+
'container_name' => 'fabric8-console-container',
|
489
|
+
'container_image' => 'fabric8/hawtio-kubernetes:latest',
|
490
|
+
'container_image_id' => 'docker://b2bd1a24a68356b2f30128e6e28e672c1ef92df0d9ec01ec0c7faea5d77d2303',
|
491
|
+
'namespace_id' => '898268c8-4a36-11e5-9d81-42010af0194c',
|
492
|
+
'namespace_labels' => {
|
463
493
|
'kubernetes.io/namespacetest' => 'somevalue'
|
464
494
|
},
|
465
|
-
'namespace_name'
|
466
|
-
'pod_id'
|
467
|
-
'master_url'
|
495
|
+
'namespace_name' => 'default',
|
496
|
+
'pod_id' => 'c76927af-f563-11e4-b32d-54ee7527188d',
|
497
|
+
'master_url' => 'https://localhost:8443',
|
468
498
|
'labels' => {
|
469
499
|
'kubernetes.io/test' => 'somevalue'
|
470
500
|
}
|
@@ -502,13 +532,15 @@ class KubernetesMetadataFilterTest < Test::Unit::TestCase
|
|
502
532
|
'container_id' => '49095a2894da899d3b327c5fde1e056a81376cc9a8f8b09a195f2a92bceed459'
|
503
533
|
},
|
504
534
|
'kubernetes' => {
|
505
|
-
'host'
|
506
|
-
'pod_name'
|
507
|
-
'container_name'
|
508
|
-
'
|
509
|
-
'
|
510
|
-
'
|
511
|
-
'
|
535
|
+
'host' => 'jimmi-redhat.localnet',
|
536
|
+
'pod_name' => 'fabric8-console-controller-98rqc',
|
537
|
+
'container_name' => 'fabric8-console-container',
|
538
|
+
'container_image' => 'fabric8/hawtio-kubernetes:latest',
|
539
|
+
'container_image_id' => 'docker://b2bd1a24a68356b2f30128e6e28e672c1ef92df0d9ec01ec0c7faea5d77d2303',
|
540
|
+
'namespace_name' => 'default',
|
541
|
+
'namespace_id' => '898268c8-4a36-11e5-9d81-42010af0194c',
|
542
|
+
'pod_id' => 'c76927af-f563-11e4-b32d-54ee7527188d',
|
543
|
+
'master_url' => 'https://localhost:8443',
|
512
544
|
'labels' => {
|
513
545
|
'component' => 'fabric8Console'
|
514
546
|
}
|
@@ -538,13 +570,15 @@ class KubernetesMetadataFilterTest < Test::Unit::TestCase
|
|
538
570
|
'container_id' => '49095a2894da899d3b327c5fde1e056a81376cc9a8f8b09a195f2a92bceed459'
|
539
571
|
},
|
540
572
|
'kubernetes' => {
|
541
|
-
'host'
|
542
|
-
'pod_name'
|
543
|
-
'container_name'
|
544
|
-
'
|
545
|
-
'
|
546
|
-
'
|
547
|
-
'
|
573
|
+
'host' => 'jimmi-redhat.localnet',
|
574
|
+
'pod_name' => 'fabric8-console-controller-98rqc',
|
575
|
+
'container_name' => 'fabric8-console-container',
|
576
|
+
'container_image' => 'fabric8/hawtio-kubernetes:latest',
|
577
|
+
'container_image_id' => 'docker://b2bd1a24a68356b2f30128e6e28e672c1ef92df0d9ec01ec0c7faea5d77d2303',
|
578
|
+
'namespace_name' => 'default',
|
579
|
+
'namespace_id' => '898268c8-4a36-11e5-9d81-42010af0194c',
|
580
|
+
'pod_id' => 'c76927af-f563-11e4-b32d-54ee7527188d',
|
581
|
+
'master_url' => 'https://localhost:8443',
|
548
582
|
'labels' => {
|
549
583
|
'component' => 'fabric8Console'
|
550
584
|
}
|
@@ -567,14 +601,16 @@ class KubernetesMetadataFilterTest < Test::Unit::TestCase
|
|
567
601
|
'container_id' => '49095a2894da899d3b327c5fde1e056a81376cc9a8f8b09a195f2a92bceed459'
|
568
602
|
},
|
569
603
|
'kubernetes' => {
|
570
|
-
'host'
|
571
|
-
'pod_name'
|
572
|
-
'container_name'
|
573
|
-
'
|
574
|
-
'
|
575
|
-
'
|
576
|
-
'
|
577
|
-
'
|
604
|
+
'host' => 'jimmi-redhat.localnet',
|
605
|
+
'pod_name' => 'fabric8-console-controller-98rqc',
|
606
|
+
'container_name' => 'fabric8-console-container',
|
607
|
+
'container_image' => 'fabric8/hawtio-kubernetes:latest',
|
608
|
+
'container_image_id' => 'docker://b2bd1a24a68356b2f30128e6e28e672c1ef92df0d9ec01ec0c7faea5d77d2303',
|
609
|
+
'namespace_name' => 'default',
|
610
|
+
'namespace_id' => '898268c8-4a36-11e5-9d81-42010af0194c',
|
611
|
+
'pod_id' => 'c76927af-f563-11e4-b32d-54ee7527188d',
|
612
|
+
'master_url' => 'https://localhost:8443',
|
613
|
+
'labels' => {
|
578
614
|
'component' => 'fabric8Console'
|
579
615
|
},
|
580
616
|
'annotations' => {
|
@@ -607,13 +643,15 @@ class KubernetesMetadataFilterTest < Test::Unit::TestCase
|
|
607
643
|
'container_id' => '49095a2894da899d3b327c5fde1e056a81376cc9a8f8b09a195f2a92bceed459'
|
608
644
|
},
|
609
645
|
'kubernetes' => {
|
610
|
-
'host'
|
611
|
-
'pod_name'
|
612
|
-
'container_name'
|
613
|
-
'
|
614
|
-
'
|
615
|
-
'
|
616
|
-
'
|
646
|
+
'host' => 'jimmi-redhat.localnet',
|
647
|
+
'pod_name' => 'fabric8-console-controller-98rqc',
|
648
|
+
'container_name' => 'fabric8-console-container',
|
649
|
+
'container_image' => 'fabric8/hawtio-kubernetes:latest',
|
650
|
+
'container_image_id' => 'docker://b2bd1a24a68356b2f30128e6e28e672c1ef92df0d9ec01ec0c7faea5d77d2303',
|
651
|
+
'namespace_name' => 'default',
|
652
|
+
'namespace_id' => '898268c8-4a36-11e5-9d81-42010af0194c',
|
653
|
+
'pod_id' => 'c76927af-f563-11e4-b32d-54ee7527188d',
|
654
|
+
'master_url' => 'https://localhost:8443',
|
617
655
|
'labels' => {
|
618
656
|
'component' => 'fabric8Console'
|
619
657
|
}
|
@@ -636,14 +674,16 @@ class KubernetesMetadataFilterTest < Test::Unit::TestCase
|
|
636
674
|
'container_id' => '49095a2894da899d3b327c5fde1e056a81376cc9a8f8b09a195f2a92bceed459'
|
637
675
|
},
|
638
676
|
'kubernetes' => {
|
639
|
-
'host'
|
640
|
-
'pod_name'
|
641
|
-
'container_name'
|
642
|
-
'namespace_id'
|
643
|
-
'namespace_name'
|
644
|
-
'
|
645
|
-
'
|
646
|
-
'
|
677
|
+
'host' => 'jimmi-redhat.localnet',
|
678
|
+
'pod_name' => 'fabric8-console-controller-98rqc',
|
679
|
+
'container_name' => 'fabric8-console-container',
|
680
|
+
'namespace_id' => '898268c8-4a36-11e5-9d81-42010af0194c',
|
681
|
+
'namespace_name' => 'default',
|
682
|
+
'container_image' => 'fabric8/hawtio-kubernetes:latest',
|
683
|
+
'container_image_id' => 'docker://b2bd1a24a68356b2f30128e6e28e672c1ef92df0d9ec01ec0c7faea5d77d2303',
|
684
|
+
'pod_id' => 'c76927af-f563-11e4-b32d-54ee7527188d',
|
685
|
+
'master_url' => 'https://localhost:8443',
|
686
|
+
'labels' => {
|
647
687
|
'component' => 'fabric8Console'
|
648
688
|
},
|
649
689
|
'annotations' => {
|
@@ -672,14 +712,16 @@ class KubernetesMetadataFilterTest < Test::Unit::TestCase
|
|
672
712
|
'container_id' => '49095a2894da899d3b327c5fde1e056a81376cc9a8f8b09a195f2a92bceed459'
|
673
713
|
},
|
674
714
|
'kubernetes' => {
|
675
|
-
'host'
|
676
|
-
'pod_name'
|
677
|
-
'container_name'
|
678
|
-
'
|
679
|
-
'
|
680
|
-
'
|
681
|
-
'
|
682
|
-
'
|
715
|
+
'host' => 'jimmi-redhat.localnet',
|
716
|
+
'pod_name' => 'fabric8-console-controller-98rqc',
|
717
|
+
'container_name' => 'fabric8-console-container',
|
718
|
+
'container_image' => 'fabric8/hawtio-kubernetes:latest',
|
719
|
+
'container_image_id' => 'docker://b2bd1a24a68356b2f30128e6e28e672c1ef92df0d9ec01ec0c7faea5d77d2303',
|
720
|
+
'namespace_id' => '898268c8-4a36-11e5-9d81-42010af0194c',
|
721
|
+
'namespace_name' => 'default',
|
722
|
+
'pod_id' => 'c76927af-f563-11e4-b32d-54ee7527188d',
|
723
|
+
'master_url' => 'https://localhost:8443',
|
724
|
+
'labels' => {
|
683
725
|
'component' => 'fabric8Console'
|
684
726
|
}
|
685
727
|
}
|
@@ -35,7 +35,14 @@ class DefaultPodWatchStrategyTest < WatchTest
|
|
35
35
|
'labels' => {},
|
36
36
|
},
|
37
37
|
'spec' => {
|
38
|
-
'nodeName' => 'aNodeName'
|
38
|
+
'nodeName' => 'aNodeName',
|
39
|
+
'containers' => [{
|
40
|
+
'name' => 'foo',
|
41
|
+
'image' => 'bar',
|
42
|
+
}, {
|
43
|
+
'name' => 'bar',
|
44
|
+
'image' => 'foo',
|
45
|
+
}]
|
39
46
|
}
|
40
47
|
}
|
41
48
|
)
|
@@ -49,8 +56,33 @@ class DefaultPodWatchStrategyTest < WatchTest
|
|
49
56
|
'labels' => {},
|
50
57
|
},
|
51
58
|
'spec' => {
|
52
|
-
'nodeName' => 'aNodeName'
|
53
|
-
|
59
|
+
'nodeName' => 'aNodeName',
|
60
|
+
'containers' => [{
|
61
|
+
'name' => 'foo',
|
62
|
+
'image' => 'bar',
|
63
|
+
}, {
|
64
|
+
'name' => 'bar',
|
65
|
+
'image' => 'foo',
|
66
|
+
}]
|
67
|
+
},
|
68
|
+
'status' => {
|
69
|
+
'containerStatuses' => [
|
70
|
+
{
|
71
|
+
'name' => 'fabric8-console-container',
|
72
|
+
'state' => {
|
73
|
+
'running' => {
|
74
|
+
'startedAt' => '2015-05-08T09:22:44Z'
|
75
|
+
}
|
76
|
+
},
|
77
|
+
'lastState' => {},
|
78
|
+
'ready' => true,
|
79
|
+
'restartCount' => 0,
|
80
|
+
'image' => 'fabric8/hawtio-kubernetes:latest',
|
81
|
+
'imageID' => 'docker://b2bd1a24a68356b2f30128e6e28e672c1ef92df0d9ec01ec0c7faea5d77d2303',
|
82
|
+
'containerID' => 'docker://49095a2894da899d3b327c5fde1e056a81376cc9a8f8b09a195f2a92bceed459'
|
83
|
+
}
|
84
|
+
]
|
85
|
+
}
|
54
86
|
}
|
55
87
|
)
|
56
88
|
@deleted = OpenStruct.new(
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fluent-plugin-kubernetes_metadata_filter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.1.
|
4
|
+
version: 2.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jimmi Dyson
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-05-
|
11
|
+
date: 2018-05-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: fluentd
|