fluent-plugin-kubernetes_metadata_filter 2.1.4 → 2.9.4

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 (40) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +57 -0
  3. data/.gitignore +0 -1
  4. data/.rubocop.yml +57 -0
  5. data/Gemfile +4 -2
  6. data/Gemfile.lock +158 -0
  7. data/README.md +48 -28
  8. data/Rakefile +15 -11
  9. data/fluent-plugin-kubernetes_metadata_filter.gemspec +25 -28
  10. data/lib/fluent/plugin/filter_kubernetes_metadata.rb +185 -131
  11. data/lib/fluent/plugin/kubernetes_metadata_cache_strategy.rb +27 -20
  12. data/lib/fluent/plugin/kubernetes_metadata_common.rb +59 -33
  13. data/lib/fluent/plugin/kubernetes_metadata_stats.rb +6 -6
  14. data/lib/fluent/plugin/kubernetes_metadata_test_api_adapter.rb +68 -0
  15. data/lib/fluent/plugin/kubernetes_metadata_util.rb +53 -0
  16. data/lib/fluent/plugin/kubernetes_metadata_watch_namespaces.rb +121 -27
  17. data/lib/fluent/plugin/kubernetes_metadata_watch_pods.rb +138 -29
  18. data/release_notes.md +42 -0
  19. data/test/cassettes/kubernetes_docker_metadata_annotations.yml +0 -34
  20. data/test/cassettes/{kubernetes_docker_metadata_dotted_labels.yml → kubernetes_docker_metadata_dotted_slashed_labels.yml} +0 -34
  21. data/test/cassettes/kubernetes_get_api_v1.yml +193 -0
  22. data/test/cassettes/kubernetes_get_api_v1_using_token.yml +195 -0
  23. data/test/cassettes/kubernetes_get_namespace_default.yml +69 -0
  24. data/test/cassettes/kubernetes_get_namespace_default_using_token.yml +71 -0
  25. data/test/cassettes/{kubernetes_docker_metadata.yml → kubernetes_get_pod.yml} +0 -82
  26. data/test/cassettes/{metadata_with_namespace_id.yml → kubernetes_get_pod_container_init.yml} +3 -134
  27. data/test/cassettes/{kubernetes_docker_metadata_using_bearer_token.yml → kubernetes_get_pod_using_token.yml} +5 -105
  28. data/test/cassettes/metadata_from_tag_and_journald_fields.yml +0 -255
  29. data/test/cassettes/metadata_from_tag_journald_and_kubernetes_fields.yml +0 -255
  30. data/test/cassettes/{non_kubernetes_docker_metadata.yml → valid_kubernetes_api_server_using_token.yml} +4 -44
  31. data/test/helper.rb +20 -2
  32. data/test/plugin/test_cache_stats.rb +10 -13
  33. data/test/plugin/test_cache_strategy.rb +158 -160
  34. data/test/plugin/test_filter_kubernetes_metadata.rb +480 -320
  35. data/test/plugin/test_utils.rb +56 -0
  36. data/test/plugin/test_watch_namespaces.rb +209 -55
  37. data/test/plugin/test_watch_pods.rb +302 -103
  38. data/test/plugin/watch_test.rb +52 -33
  39. metadata +69 -72
  40. data/circle.yml +0 -17
@@ -18,40 +18,6 @@
18
18
  #
19
19
  ---
20
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:35:37 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:35:37 GMT
55
21
  - request:
56
22
  method: get
57
23
  uri: https://localhost:8443/api/v1/namespaces/default/pods/fabric8-console-controller-98rqc
@@ -177,52 +143,4 @@ http_interactions:
177
143
  }
178
144
  http_version:
179
145
  recorded_at: Fri, 08 May 2015 10:35:37 GMT
180
- - request:
181
- method: get
182
- uri: https://localhost:8443/api/v1/namespaces/default
183
- body:
184
- encoding: US-ASCII
185
- string: ''
186
- headers:
187
- Accept:
188
- - "*/*; q=0.5, application/xml"
189
- Accept-Encoding:
190
- - gzip, deflate
191
- User-Agent:
192
- - Ruby
193
- response:
194
- status:
195
- code: 200
196
- message: OK
197
- headers:
198
- Content-Type:
199
- - application/json
200
- Date:
201
- - Fri, 08 May 2015 10:35:37 GMT
202
- Transfer-Encoding:
203
- - chunked
204
- body:
205
- encoding: UTF-8
206
- string: |-
207
- {
208
- "kind": "Namespace",
209
- "apiVersion": "v1",
210
- "metadata": {
211
- "name": "default",
212
- "selfLink": "/api/v1/namespaces/default",
213
- "uid": "898268c8-4a36-11e5-9d81-42010af0194c",
214
- "resourceVersion": "6",
215
- "creationTimestamp": "2015-05-08T09:22:01Z"
216
- },
217
- "spec": {
218
- "finalizers": [
219
- "kubernetes"
220
- ]
221
- },
222
- "status": {
223
- "phase": "Active"
224
- }
225
- }
226
- http_version:
227
- recorded_at: Fri, 08 May 2015 10:35:37 GMT
228
146
  recorded_with: VCR 2.9.3
@@ -18,40 +18,6 @@
18
18
  #
19
19
  ---
20
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:35:37 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:35:37 GMT
55
21
  - request:
56
22
  method: get
57
23
  uri: https://localhost:8443/api/v1/namespaces/default/pods/fabric8-console-controller-98rqc
@@ -161,116 +127,19 @@ http_interactions:
161
127
  {
162
128
  "name": "fabric8-console-container",
163
129
  "state": {
164
- "running": {
165
- "startedAt": "2015-05-08T09:22:44Z"
130
+ "waiting": {
131
+ "reason": "ContainerCreating"
166
132
  }
167
133
  },
168
134
  "lastState": {},
169
135
  "ready": true,
170
136
  "restartCount": 0,
171
137
  "image": "fabric8/hawtio-kubernetes:latest",
172
- "imageID": "docker://b2bd1a24a68356b2f30128e6e28e672c1ef92df0d9ec01ec0c7faea5d77d2303",
173
- "containerID": "docker://49095a2894da899d3b327c5fde1e056a81376cc9a8f8b09a195f2a92bceed459"
138
+ "imageID": ""
174
139
  }
175
140
  ]
176
141
  }
177
142
  }
178
143
  http_version:
179
144
  recorded_at: Fri, 08 May 2015 10:35:37 GMT
180
- - request:
181
- method: get
182
- uri: https://localhost:8443/api/v1/namespaces/default
183
- body:
184
- encoding: US-ASCII
185
- string: ''
186
- headers:
187
- Accept:
188
- - "*/*; q=0.5, application/xml"
189
- Accept-Encoding:
190
- - gzip, deflate
191
- User-Agent:
192
- - Ruby
193
- response:
194
- status:
195
- code: 200
196
- message: OK
197
- headers:
198
- Content-Type:
199
- - application/json
200
- Date:
201
- - Fri, 08 May 2015 10:35:37 GMT
202
- Transfer-Encoding:
203
- - chunked
204
- body:
205
- encoding: UTF-8
206
- string: |-
207
- {
208
- "kind": "Namespace",
209
- "apiVersion": "v1",
210
- "metadata": {
211
- "name": "default",
212
- "selfLink": "/api/v1/namespaces/default",
213
- "uid": "898268c8-4a36-11e5-9d81-42010af0194c",
214
- "resourceVersion": "6",
215
- "creationTimestamp": "2015-05-08T09:22:01Z"
216
- },
217
- "spec": {
218
- "finalizers": [
219
- "kubernetes"
220
- ]
221
- },
222
- "status": {
223
- "phase": "Active"
224
- }
225
- }
226
- http_version:
227
- recorded_at: Fri, 08 May 2015 10:35:37 GMT
228
- - request:
229
- method: get
230
- uri: https://localhost:8443/api/v1/namespaces/default
231
- body:
232
- encoding: US-ASCII
233
- string: ''
234
- headers:
235
- Accept:
236
- - "*/*; q=0.5, application/xml"
237
- Accept-Encoding:
238
- - gzip, deflate
239
- User-Agent:
240
- - Ruby
241
- response:
242
- status:
243
- code: 200
244
- message: OK
245
- headers:
246
- Content-Type:
247
- - application/json
248
- Date:
249
- - Fri, 08 May 2015 10:35:37 GMT
250
- Transfer-Encoding:
251
- - chunked
252
- body:
253
- encoding: UTF-8
254
- string: |-
255
- {
256
- "kind": "Namespace",
257
- "apiVersion": "v1",
258
- "metadata": {
259
- "name": "default",
260
- "selfLink": "/api/v1/namespaces/default",
261
- "uid": "898268c8-4a36-11e5-9d81-42010af0194c",
262
- "resourceVersion": "6",
263
- "creationTimestamp": "2015-05-08T09:22:01Z"
264
- },
265
- "spec": {
266
- "finalizers": [
267
- "kubernetes"
268
- ]
269
- },
270
- "status": {
271
- "phase": "Active"
272
- }
273
- }
274
- http_version:
275
- recorded_at: Fri, 08 May 2015 10:35:37 GMT
276
145
  recorded_with: VCR 2.9.3
@@ -18,42 +18,6 @@
18
18
  #
19
19
  ---
20
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
- - Sat, 09 May 2015 13:51:07 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: Sat, 09 May 2015 13:51:07 GMT
57
21
  - request:
58
22
  method: get
59
23
  uri: https://localhost:8443/api/v1/namespaces/default/pods/fabric8-console-controller-98rqc
@@ -77,7 +41,7 @@ http_interactions:
77
41
  Content-Type:
78
42
  - application/json
79
43
  Date:
80
- - Sat, 09 May 2015 13:51:07 GMT
44
+ - Fri, 08 May 2015 10:35:37 GMT
81
45
  Transfer-Encoding:
82
46
  - chunked
83
47
  body:
@@ -92,7 +56,7 @@ http_interactions:
92
56
  "namespace": "default",
93
57
  "selfLink": "/api/v1/namespaces/default/pods/fabric8-console-controller-98rqc",
94
58
  "uid": "c76927af-f563-11e4-b32d-54ee7527188d",
95
- "resourceVersion": "3556",
59
+ "resourceVersion": "122",
96
60
  "creationTimestamp": "2015-05-08T09:22:42Z",
97
61
  "labels": {
98
62
  "component": "fabric8Console"
@@ -160,89 +124,25 @@ http_interactions:
160
124
  }
161
125
  ],
162
126
  "hostIP": "172.17.42.1",
163
- "podIP": "172.17.0.4",
127
+ "podIP": "172.17.0.8",
164
128
  "containerStatuses": [
165
129
  {
166
130
  "name": "fabric8-console-container",
167
131
  "state": {
168
132
  "running": {
169
- "startedAt": "2015-05-09T13:33:38Z"
133
+ "startedAt": "2015-05-08T09:22:44Z"
170
134
  }
171
135
  },
172
136
  "lastState": {},
173
137
  "ready": true,
174
- "restartCount": 2,
138
+ "restartCount": 0,
175
139
  "image": "fabric8/hawtio-kubernetes:latest",
176
140
  "imageID": "docker://b2bd1a24a68356b2f30128e6e28e672c1ef92df0d9ec01ec0c7faea5d77d2303",
177
141
  "containerID": "docker://49095a2894da899d3b327c5fde1e056a81376cc9a8f8b09a195f2a92bceed459"
178
- },
179
- {
180
- "name": "POD",
181
- "state": {
182
- "termination": {
183
- "exitCode": 0,
184
- "startedAt": "2015-05-09T09:45:08Z",
185
- "finishedAt": "2015-05-09T09:47:00Z"
186
- }
187
- },
188
- "lastState": {},
189
- "ready": false,
190
- "restartCount": 1,
191
- "image": "openshift/origin-pod:v0.4.4",
192
- "imageID": "docker://81fa37a83ec46fed9dddf30a9c3c43f54bfe4b65dea74a4c152fd515a0bf92a8",
193
- "containerID": "docker://9c8ed1a9bbb6d9804b12379654461dcd3b447438c02c52ca7f7d2504e14ae96b"
194
142
  }
195
143
  ]
196
144
  }
197
145
  }
198
146
  http_version:
199
- recorded_at: Sat, 09 May 2015 13:51:07 GMT
200
- - request:
201
- method: get
202
- uri: https://localhost:8443/api/v1/namespaces/default
203
- body:
204
- encoding: US-ASCII
205
- string: ''
206
- headers:
207
- Accept:
208
- - "*/*; q=0.5, application/xml"
209
- Accept-Encoding:
210
- - gzip, deflate
211
- User-Agent:
212
- - Ruby
213
- response:
214
- status:
215
- code: 200
216
- message: OK
217
- headers:
218
- Content-Type:
219
- - application/json
220
- Date:
221
- - Fri, 08 May 2015 10:35:37 GMT
222
- Transfer-Encoding:
223
- - chunked
224
- body:
225
- encoding: UTF-8
226
- string: |-
227
- {
228
- "kind": "Namespace",
229
- "apiVersion": "v1",
230
- "metadata": {
231
- "name": "default",
232
- "selfLink": "/api/v1/namespaces/default",
233
- "uid": "898268c8-4a36-11e5-9d81-42010af0194c",
234
- "resourceVersion": "6",
235
- "creationTimestamp": "2015-05-08T09:22:01Z"
236
- },
237
- "spec": {
238
- "finalizers": [
239
- "kubernetes"
240
- ]
241
- },
242
- "status": {
243
- "phase": "Active"
244
- }
245
- }
246
- http_version:
247
147
  recorded_at: Fri, 08 May 2015 10:35:37 GMT
248
148
  recorded_with: VCR 2.9.3
@@ -18,261 +18,6 @@
18
18
  #
19
19
  ---
20
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:35:37 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:35:37 GMT
55
- - request:
56
- method: get
57
- uri: https://localhost:8443/api/v1/namespaces/default/pods/fabric8-console-controller-98rqc
58
- body:
59
- encoding: US-ASCII
60
- string: ''
61
- headers:
62
- Accept:
63
- - "*/*; q=0.5, application/xml"
64
- Accept-Encoding:
65
- - gzip, deflate
66
- User-Agent:
67
- - Ruby
68
- response:
69
- status:
70
- code: 200
71
- message: OK
72
- headers:
73
- Content-Type:
74
- - application/json
75
- Date:
76
- - Fri, 08 May 2015 10:35:37 GMT
77
- Transfer-Encoding:
78
- - chunked
79
- body:
80
- encoding: UTF-8
81
- string: |-
82
- {
83
- "kind": "Pod",
84
- "apiVersion": "v1",
85
- "metadata": {
86
- "name": "fabric8-console-controller-98rqc",
87
- "generateName": "fabric8-console-controller-",
88
- "namespace": "default",
89
- "selfLink": "/api/v1/namespaces/default/pods/fabric8-console-controller-98rqc",
90
- "uid": "c76927af-f563-11e4-b32d-54ee7527188d",
91
- "resourceVersion": "122",
92
- "creationTimestamp": "2015-05-08T09:22:42Z",
93
- "labels": {
94
- "component": "fabric8Console"
95
- }
96
- },
97
- "spec": {
98
- "volumes": [
99
- {
100
- "name": "openshift-cert-secrets",
101
- "hostPath": null,
102
- "emptyDir": null,
103
- "gcePersistentDisk": null,
104
- "gitRepo": null,
105
- "secret": {
106
- "secretName": "openshift-cert-secrets"
107
- },
108
- "nfs": null,
109
- "iscsi": null,
110
- "glusterfs": null
111
- }
112
- ],
113
- "containers": [
114
- {
115
- "name": "fabric8-console-container",
116
- "image": "fabric8/hawtio-kubernetes:latest",
117
- "ports": [
118
- {
119
- "containerPort": 9090,
120
- "protocol": "TCP"
121
- }
122
- ],
123
- "env": [
124
- {
125
- "name": "OAUTH_CLIENT_ID",
126
- "value": "fabric8-console"
127
- },
128
- {
129
- "name": "OAUTH_AUTHORIZE_URI",
130
- "value": "https://localhost:8443/oauth/authorize"
131
- }
132
- ],
133
- "resources": {},
134
- "volumeMounts": [
135
- {
136
- "name": "openshift-cert-secrets",
137
- "readOnly": true,
138
- "mountPath": "/etc/secret-volume"
139
- }
140
- ],
141
- "terminationMessagePath": "/dev/termination-log",
142
- "imagePullPolicy": "IfNotPresent",
143
- "capabilities": {}
144
- }
145
- ],
146
- "restartPolicy": "Always",
147
- "dnsPolicy": "ClusterFirst",
148
- "nodeName": "jimmi-redhat.localnet"
149
- },
150
- "status": {
151
- "phase": "Running",
152
- "Condition": [
153
- {
154
- "type": "Ready",
155
- "status": "True"
156
- }
157
- ],
158
- "hostIP": "172.17.42.1",
159
- "podIP": "172.17.0.8",
160
- "containerStatuses": [
161
- {
162
- "name": "fabric8-console-container",
163
- "state": {
164
- "running": {
165
- "startedAt": "2015-05-08T09:22:44Z"
166
- }
167
- },
168
- "lastState": {},
169
- "ready": true,
170
- "restartCount": 0,
171
- "image": "fabric8/hawtio-kubernetes:latest",
172
- "imageID": "docker://b2bd1a24a68356b2f30128e6e28e672c1ef92df0d9ec01ec0c7faea5d77d2303",
173
- "containerID": "docker://49095a2894da899d3b327c5fde1e056a81376cc9a8f8b09a195f2a92bceed459"
174
- }
175
- ]
176
- }
177
- }
178
- http_version:
179
- recorded_at: Fri, 08 May 2015 10:35:37 GMT
180
- - request:
181
- method: get
182
- uri: https://localhost:8443/api/v1/namespaces/default
183
- body:
184
- encoding: US-ASCII
185
- string: ''
186
- headers:
187
- Accept:
188
- - "*/*; q=0.5, application/xml"
189
- Accept-Encoding:
190
- - gzip, deflate
191
- User-Agent:
192
- - Ruby
193
- response:
194
- status:
195
- code: 200
196
- message: OK
197
- headers:
198
- Content-Type:
199
- - application/json
200
- Date:
201
- - Fri, 08 May 2015 10:35:37 GMT
202
- Transfer-Encoding:
203
- - chunked
204
- body:
205
- encoding: UTF-8
206
- string: |-
207
- {
208
- "kind": "Namespace",
209
- "apiVersion": "v1",
210
- "metadata": {
211
- "name": "default",
212
- "selfLink": "/api/v1/namespaces/default",
213
- "uid": "898268c8-4a36-11e5-9d81-42010af0194c",
214
- "resourceVersion": "6",
215
- "creationTimestamp": "2015-05-08T09:22:01Z"
216
- },
217
- "spec": {
218
- "finalizers": [
219
- "kubernetes"
220
- ]
221
- },
222
- "status": {
223
- "phase": "Active"
224
- }
225
- }
226
- http_version:
227
- recorded_at: Fri, 08 May 2015 10:35:37 GMT
228
- - request:
229
- method: get
230
- uri: https://localhost:8443/api/v1/namespaces/default
231
- body:
232
- encoding: US-ASCII
233
- string: ''
234
- headers:
235
- Accept:
236
- - "*/*; q=0.5, application/xml"
237
- Accept-Encoding:
238
- - gzip, deflate
239
- User-Agent:
240
- - Ruby
241
- response:
242
- status:
243
- code: 200
244
- message: OK
245
- headers:
246
- Content-Type:
247
- - application/json
248
- Date:
249
- - Fri, 08 May 2015 10:35:37 GMT
250
- Transfer-Encoding:
251
- - chunked
252
- body:
253
- encoding: UTF-8
254
- string: |-
255
- {
256
- "kind": "Namespace",
257
- "apiVersion": "v1",
258
- "metadata": {
259
- "name": "default",
260
- "selfLink": "/api/v1/namespaces/default",
261
- "uid": "898268c8-4a36-11e5-9d81-42010af0194c",
262
- "resourceVersion": "6",
263
- "creationTimestamp": "2015-05-08T09:22:01Z"
264
- },
265
- "spec": {
266
- "finalizers": [
267
- "kubernetes"
268
- ]
269
- },
270
- "status": {
271
- "phase": "Active"
272
- }
273
- }
274
- http_version:
275
- recorded_at: Fri, 08 May 2015 10:35:37 GMT
276
21
  - request:
277
22
  method: get
278
23
  uri: https://localhost:8443/api/v1/namespaces/journald-namespace-name/pods/journald-pod-name