fluent-plugin-kubernetes_metadata_filter 3.7.0 → 3.7.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.
Files changed (41) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +2 -1
  3. data/Rakefile +3 -4
  4. data/lib/fluent/plugin/filter_kubernetes_metadata.rb +307 -279
  5. data/lib/fluent/plugin/kubernetes_metadata_cache_strategy.rb +15 -11
  6. data/lib/fluent/plugin/kubernetes_metadata_common.rb +38 -40
  7. data/lib/fluent/plugin/kubernetes_metadata_stats.rb +4 -6
  8. data/lib/fluent/plugin/kubernetes_metadata_test_api_adapter.rb +39 -36
  9. data/lib/fluent/plugin/kubernetes_metadata_watch_namespaces.rb +15 -12
  10. data/lib/fluent/plugin/kubernetes_metadata_watch_pods.rb +18 -17
  11. metadata +2 -172
  12. data/.circleci/config.yml +0 -48
  13. data/.gitignore +0 -18
  14. data/.rubocop.yml +0 -57
  15. data/Gemfile +0 -9
  16. data/Gemfile.lock +0 -172
  17. data/fluent-plugin-kubernetes_metadata_filter.gemspec +0 -34
  18. data/lib/fluent/plugin/kubernetes_metadata_util.rb +0 -33
  19. data/test/cassettes/invalid_api_server_config.yml +0 -53
  20. data/test/cassettes/kubernetes_docker_metadata_annotations.yml +0 -205
  21. data/test/cassettes/kubernetes_docker_metadata_dotted_slashed_labels.yml +0 -197
  22. data/test/cassettes/kubernetes_get_api_v1.yml +0 -193
  23. data/test/cassettes/kubernetes_get_api_v1_using_token.yml +0 -195
  24. data/test/cassettes/kubernetes_get_namespace_default.yml +0 -72
  25. data/test/cassettes/kubernetes_get_namespace_default_using_token.yml +0 -71
  26. data/test/cassettes/kubernetes_get_pod.yml +0 -146
  27. data/test/cassettes/kubernetes_get_pod_container_init.yml +0 -145
  28. data/test/cassettes/kubernetes_get_pod_using_token.yml +0 -148
  29. data/test/cassettes/kubernetes_get_pod_with_ownerrefs.yml +0 -156
  30. data/test/cassettes/metadata_from_tag_and_journald_fields.yml +0 -153
  31. data/test/cassettes/metadata_from_tag_journald_and_kubernetes_fields.yml +0 -285
  32. data/test/cassettes/valid_kubernetes_api_server.yml +0 -55
  33. data/test/cassettes/valid_kubernetes_api_server_using_token.yml +0 -57
  34. data/test/helper.rb +0 -82
  35. data/test/plugin/test.token +0 -1
  36. data/test/plugin/test_cache_stats.rb +0 -33
  37. data/test/plugin/test_cache_strategy.rb +0 -194
  38. data/test/plugin/test_filter_kubernetes_metadata.rb +0 -851
  39. data/test/plugin/test_watch_namespaces.rb +0 -245
  40. data/test/plugin/test_watch_pods.rb +0 -344
  41. data/test/plugin/watch_test.rb +0 -76
@@ -1,285 +0,0 @@
1
- #
2
- # Fluentd Kubernetes Metadata Filter Plugin - Enrich Fluentd events with
3
- # Kubernetes metadata
4
- #
5
- # Copyright 2015 Red Hat, Inc.
6
- #
7
- # Licensed under the Apache License, Version 2.0 (the "License");
8
- # you may not use this file except in compliance with the License.
9
- # You may obtain a copy of the License at
10
- #
11
- # http://www.apache.org/licenses/LICENSE-2.0
12
- #
13
- # Unless required by applicable law or agreed to in writing, software
14
- # distributed under the License is distributed on an "AS IS" BASIS,
15
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
- # See the License for the specific language governing permissions and
17
- # limitations under the License.
18
- #
19
- ---
20
- http_interactions:
21
- - request:
22
- method: get
23
- uri: https://localhost:8443/api/v1/namespaces/journald-namespace-name/pods/journald-pod-name
24
- body:
25
- encoding: US-ASCII
26
- string: ''
27
- headers:
28
- Accept:
29
- - "*/*; q=0.5, application/xml"
30
- Accept-Encoding:
31
- - gzip, deflate
32
- User-Agent:
33
- - Ruby
34
- response:
35
- status:
36
- code: 200
37
- message: OK
38
- headers:
39
- Content-Type:
40
- - application/json
41
- Date:
42
- - Fri, 08 May 2015 10:35:37 GMT
43
- Transfer-Encoding:
44
- - chunked
45
- body:
46
- encoding: UTF-8
47
- string: |-
48
- {
49
- "kind": "Pod",
50
- "apiVersion": "v1",
51
- "metadata": {
52
- "name": "journald-pod-name",
53
- "generateName": "journald-pod-name-",
54
- "namespace": "journald-namespace-name",
55
- "selfLink": "/api/v1/namespaces/journald-namespace-name/pods/journald-pod-name",
56
- "uid": "5e1c1e27-b637-4e81-80b6-6d8a8c404d3b",
57
- "resourceVersion": "122",
58
- "creationTimestamp": "2015-05-08T09:22:42Z",
59
- "labels": {
60
- "component": "journald-test"
61
- }
62
- },
63
- "spec": {
64
- "containers": [
65
- {
66
- "name": "journald-container-name",
67
- "image": "journald-container-image:latest",
68
- "terminationMessagePath": "/dev/termination-log",
69
- "imagePullPolicy": "IfNotPresent",
70
- "capabilities": {}
71
- }
72
- ],
73
- "nodeName": "jimmi-redhat.localnet"
74
- },
75
- "status": {
76
- "phase": "Running",
77
- "Condition": [
78
- {
79
- "type": "Ready",
80
- "status": "True"
81
- }
82
- ],
83
- "hostIP": "172.17.42.1",
84
- "podIP": "172.17.0.8",
85
- "containerStatuses": [
86
- {
87
- "name": "journald-container-name",
88
- "state": {
89
- "running": {
90
- "startedAt": "2015-05-08T09:22:44Z"
91
- }
92
- },
93
- "lastState": {},
94
- "ready": true,
95
- "restartCount": 0,
96
- "image": "journald-container-image:latest",
97
- "imageID": "docker://dda4c95705fb7050b701b10a7fe928ca5bc971a1dcb521ae3c339194cbf36b47",
98
- "containerID": "docker://838350c64bacba968d39a30a50789b2795291fceca6ccbff55298671d46b0e3b"
99
- }
100
- ]
101
- }
102
- }
103
- http_version:
104
- recorded_at: Fri, 08 May 2015 10:35:37 GMT
105
- - request:
106
- method: get
107
- uri: https://localhost:8443/api/v1/namespaces/journald-namespace-name
108
- body:
109
- encoding: US-ASCII
110
- string: ''
111
- headers:
112
- Accept:
113
- - "*/*; q=0.5, application/xml"
114
- Accept-Encoding:
115
- - gzip, deflate
116
- User-Agent:
117
- - Ruby
118
- response:
119
- status:
120
- code: 200
121
- message: OK
122
- headers:
123
- Content-Type:
124
- - application/json
125
- Date:
126
- - Fri, 08 May 2015 10:35:37 GMT
127
- Transfer-Encoding:
128
- - chunked
129
- body:
130
- encoding: UTF-8
131
- string: |-
132
- {
133
- "kind": "Namespace",
134
- "apiVersion": "v1",
135
- "metadata": {
136
- "name": "journald-namespace-name",
137
- "selfLink": "/api/v1/namespaces/journald-namespace-name",
138
- "uid": "8282888f-733f-4f23-a3d3-1fdfa3bdacf2",
139
- "resourceVersion": "6",
140
- "creationTimestamp": "2015-05-08T09:22:01Z"
141
- },
142
- "spec": {
143
- "finalizers": [
144
- "kubernetes"
145
- ]
146
- },
147
- "status": {
148
- "phase": "Active"
149
- }
150
- }
151
- http_version:
152
- recorded_at: Fri, 08 May 2015 10:35:37 GMT
153
- - request:
154
- method: get
155
- uri: https://localhost:8443/api/v1/namespaces/k8s-namespace-name/pods/k8s-pod-name
156
- body:
157
- encoding: US-ASCII
158
- string: ''
159
- headers:
160
- Accept:
161
- - "*/*; q=0.5, application/xml"
162
- Accept-Encoding:
163
- - gzip, deflate
164
- User-Agent:
165
- - Ruby
166
- response:
167
- status:
168
- code: 200
169
- message: OK
170
- headers:
171
- Content-Type:
172
- - application/json
173
- Date:
174
- - Fri, 08 May 2015 10:35:37 GMT
175
- Transfer-Encoding:
176
- - chunked
177
- body:
178
- encoding: UTF-8
179
- string: |-
180
- {
181
- "kind": "Pod",
182
- "apiVersion": "v1",
183
- "metadata": {
184
- "name": "k8s-pod-name",
185
- "generateName": "k8s-pod-name-",
186
- "namespace": "k8s-namespace-name",
187
- "selfLink": "/api/v1/namespaces/k8s-namespace-name/pods/k8s-pod-name",
188
- "uid": "ebabf749-5fcd-4750-a3f0-aedd89476da8",
189
- "resourceVersion": "122",
190
- "creationTimestamp": "2015-05-08T09:22:42Z",
191
- "labels": {
192
- "component": "k8s-test"
193
- }
194
- },
195
- "spec": {
196
- "containers": [
197
- {
198
- "name": "k8s-container-name",
199
- "image": "k8s-container-image:latest",
200
- "terminationMessagePath": "/dev/termination-log",
201
- "imagePullPolicy": "IfNotPresent",
202
- "capabilities": {}
203
- }
204
- ],
205
- "nodeName": "jimmi-redhat.localnet"
206
- },
207
- "status": {
208
- "phase": "Running",
209
- "Condition": [
210
- {
211
- "type": "Ready",
212
- "status": "True"
213
- }
214
- ],
215
- "hostIP": "172.17.42.1",
216
- "podIP": "172.17.0.8",
217
- "containerStatuses": [
218
- {
219
- "name": "k8s-container-name",
220
- "state": {
221
- "running": {
222
- "startedAt": "2015-05-08T09:22:44Z"
223
- }
224
- },
225
- "lastState": {},
226
- "ready": true,
227
- "restartCount": 0,
228
- "image": "k8s-container-image:latest",
229
- "imageID": "docker://d78c5217c41e9af08d37d9ae2cb070afa1fe3da6bc77bfb18879a8b4bfdf8a34",
230
- "containerID": "docker://e463bc0d3ae38f5c89d92dca49b30e049e899799920b79d4d5f705acbe82ba95"
231
- }
232
- ]
233
- }
234
- }
235
- http_version:
236
- recorded_at: Fri, 08 May 2015 10:35:37 GMT
237
- - request:
238
- method: get
239
- uri: https://localhost:8443/api/v1/namespaces/k8s-namespace-name
240
- body:
241
- encoding: US-ASCII
242
- string: ''
243
- headers:
244
- Accept:
245
- - "*/*; q=0.5, application/xml"
246
- Accept-Encoding:
247
- - gzip, deflate
248
- User-Agent:
249
- - Ruby
250
- response:
251
- status:
252
- code: 200
253
- message: OK
254
- headers:
255
- Content-Type:
256
- - application/json
257
- Date:
258
- - Fri, 08 May 2015 10:35:37 GMT
259
- Transfer-Encoding:
260
- - chunked
261
- body:
262
- encoding: UTF-8
263
- string: |-
264
- {
265
- "kind": "Namespace",
266
- "apiVersion": "v1",
267
- "metadata": {
268
- "name": "k8s-namespace-name",
269
- "selfLink": "/api/v1/namespaces/k8s-namespace-name",
270
- "uid": "8e0dc8fc-59f2-49f7-a3e2-ed0913e19d9f",
271
- "resourceVersion": "6",
272
- "creationTimestamp": "2015-05-08T09:22:01Z"
273
- },
274
- "spec": {
275
- "finalizers": [
276
- "kubernetes"
277
- ]
278
- },
279
- "status": {
280
- "phase": "Active"
281
- }
282
- }
283
- http_version:
284
- recorded_at: Fri, 08 May 2015 10:35:37 GMT
285
- recorded_with: VCR 2.9.3
@@ -1,55 +0,0 @@
1
- #
2
- # Fluentd Kubernetes Metadata Filter Plugin - Enrich Fluentd events with
3
- # Kubernetes metadata
4
- #
5
- # Copyright 2015 Red Hat, Inc.
6
- #
7
- # Licensed under the Apache License, Version 2.0 (the "License");
8
- # you may not use this file except in compliance with the License.
9
- # You may obtain a copy of the License at
10
- #
11
- # http://www.apache.org/licenses/LICENSE-2.0
12
- #
13
- # Unless required by applicable law or agreed to in writing, software
14
- # distributed under the License is distributed on an "AS IS" BASIS,
15
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
- # See the License for the specific language governing permissions and
17
- # limitations under the License.
18
- #
19
- ---
20
- http_interactions:
21
- - request:
22
- method: get
23
- uri: https://localhost:8443/api
24
- body:
25
- encoding: US-ASCII
26
- string: ''
27
- headers:
28
- Accept:
29
- - "*/*; q=0.5, application/xml"
30
- Accept-Encoding:
31
- - gzip, deflate
32
- User-Agent:
33
- - Ruby
34
- response:
35
- status:
36
- code: 200
37
- message: OK
38
- headers:
39
- Content-Type:
40
- - application/json
41
- Date:
42
- - Fri, 08 May 2015 10:13:54 GMT
43
- Content-Length:
44
- - '67'
45
- body:
46
- encoding: UTF-8
47
- string: |-
48
- {
49
- "versions": [
50
- "v1"
51
- ]
52
- }
53
- http_version:
54
- recorded_at: Fri, 08 May 2015 10:13:54 GMT
55
- recorded_with: VCR 2.9.3
@@ -1,57 +0,0 @@
1
- #
2
- # Fluentd Kubernetes Metadata Filter Plugin - Enrich Fluentd events with
3
- # Kubernetes metadata
4
- #
5
- # Copyright 2015 Red Hat, Inc.
6
- #
7
- # Licensed under the Apache License, Version 2.0 (the "License");
8
- # you may not use this file except in compliance with the License.
9
- # You may obtain a copy of the License at
10
- #
11
- # http://www.apache.org/licenses/LICENSE-2.0
12
- #
13
- # Unless required by applicable law or agreed to in writing, software
14
- # distributed under the License is distributed on an "AS IS" BASIS,
15
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
- # See the License for the specific language governing permissions and
17
- # limitations under the License.
18
- #
19
- ---
20
- http_interactions:
21
- - request:
22
- method: get
23
- uri: https://localhost:8443/api
24
- body:
25
- encoding: US-ASCII
26
- string: ''
27
- headers:
28
- Accept:
29
- - "*/*; q=0.5, application/xml"
30
- Accept-Encoding:
31
- - gzip, deflate
32
- User-Agent:
33
- - Ruby
34
- Authorization:
35
- - Bearer YzYyYzFlODMtODdhNS00ZTMyLWIzMmItNmY4NDc4OTI1ZWFh
36
- response:
37
- status:
38
- code: 200
39
- message: OK
40
- headers:
41
- Content-Type:
42
- - application/json
43
- Date:
44
- - Fri, 08 May 2015 10:13:54 GMT
45
- Content-Length:
46
- - '67'
47
- body:
48
- encoding: UTF-8
49
- string: |-
50
- {
51
- "versions": [
52
- "v1"
53
- ]
54
- }
55
- http_version:
56
- recorded_at: Fri, 08 May 2015 10:13:54 GMT
57
- recorded_with: VCR 2.9.3
data/test/helper.rb DELETED
@@ -1,82 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- #
4
- # Fluentd Kubernetes Metadata Filter Plugin - Enrich Fluentd events with
5
- # Kubernetes metadata
6
- #
7
- # Copyright 2015 Red Hat, Inc.
8
- #
9
- # Licensed under the Apache License, Version 2.0 (the "License");
10
- # you may not use this file except in compliance with the License.
11
- # You may obtain a copy of the License at
12
- #
13
- # http://www.apache.org/licenses/LICENSE-2.0
14
- #
15
- # Unless required by applicable law or agreed to in writing, software
16
- # distributed under the License is distributed on an "AS IS" BASIS,
17
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18
- # See the License for the specific language governing permissions and
19
- # limitations under the License.
20
- #
21
- require 'bundler/setup'
22
- require 'codeclimate-test-reporter'
23
- SimpleCov.start do
24
- formatter SimpleCov::Formatter::MultiFormatter.new [
25
- SimpleCov::Formatter::HTMLFormatter,
26
- CodeClimate::TestReporter::Formatter
27
- ]
28
- end
29
-
30
- require 'rr'
31
- require 'test/unit'
32
- require 'test/unit/rr'
33
- require 'fileutils'
34
- require 'fluent/log'
35
- require 'fluent/test'
36
- require 'minitest/autorun'
37
- require 'vcr'
38
- require 'ostruct'
39
- require 'fluent/plugin/filter_kubernetes_metadata'
40
- require 'fluent/test/driver/filter'
41
- require 'kubeclient'
42
-
43
- require 'webmock/test_unit'
44
- WebMock.disable_net_connect!
45
-
46
- VCR.configure do |config|
47
- config.cassette_library_dir = 'test/cassettes'
48
- config.hook_into :webmock # or :fakeweb
49
- config.ignore_hosts 'codeclimate.com'
50
- end
51
-
52
- unless defined?(Test::Unit::AssertionFailedError)
53
- class Test::Unit::AssertionFailedError < StandardError
54
- end
55
- end
56
-
57
- def unused_port
58
- s = TCPServer.open(0)
59
- port = s.addr[1]
60
- s.close
61
- port
62
- end
63
-
64
- def ipv6_enabled?
65
- require 'socket'
66
-
67
- begin
68
- TCPServer.open('::1', 0)
69
- true
70
- rescue StandardError
71
- false
72
- end
73
- end
74
-
75
- # TEST_NAME='foo' ruby test_file.rb to run a single test case
76
- if ENV['TEST_NAME']
77
- (class << Test::Unit::TestCase; self; end).prepend(Module.new do
78
- def test(name)
79
- super if name == ENV['TEST_NAME']
80
- end
81
- end)
82
- end
@@ -1 +0,0 @@
1
- 12345
@@ -1,33 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- #
4
- # Fluentd Kubernetes Metadata Filter Plugin - Enrich Fluentd events with
5
- # Kubernetes metadata
6
- #
7
- # Copyright 2015 Red Hat, Inc.
8
- #
9
- # Licensed under the Apache License, Version 2.0 (the "License");
10
- # you may not use this file except in compliance with the License.
11
- # You may obtain a copy of the License at
12
- #
13
- # http://www.apache.org/licenses/LICENSE-2.0
14
- #
15
- # Unless required by applicable law or agreed to in writing, software
16
- # distributed under the License is distributed on an "AS IS" BASIS,
17
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18
- # See the License for the specific language governing permissions and
19
- # limitations under the License.
20
- #
21
- require_relative '../helper'
22
-
23
- class KubernetesMetadataCacheStatsTest < Test::Unit::TestCase
24
- test 'watch stats' do
25
- require 'lru_redux'
26
- stats = KubernetesMetadata::Stats.new
27
- stats.bump(:missed)
28
- stats.bump(:deleted)
29
- stats.bump(:deleted)
30
-
31
- assert_equal('stats - deleted: 2, missed: 1', stats.to_s)
32
- end
33
- end