fluent-plugin-kubernetes_metadata_filter 2.4.6 → 2.7.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 674303b83893faf1b8188fba478414257e85e78ef3ea92945849950ea56381bf
4
- data.tar.gz: db56e05f338366b9204f4e94b19062edf230c7357b21ff385da0c3575ad91953
3
+ metadata.gz: 3815fdb2ea8a0bbe7c2bccdb63edc62c92edd96f8c7b31a5bade805b738a5b09
4
+ data.tar.gz: bb92cd1dad2eedb6e7e45013e7089a2a321ba0e64817a5b67b40a9e2bb2e7f3c
5
5
  SHA512:
6
- metadata.gz: f8c9d1ae8db09db5fe19f7f53aaff882dbad2c7f88a0da88a31f999fb396d642c8315d6f3ca7de6f7df0c88efdf68b615610d6fed629edaa7eb9ce121c1150b4
7
- data.tar.gz: a0a7e76ad0ad6230c5913d394378a7df7c51ea790f20bbbaa8d507247b5cb0f70d4a6a3d778421c12f501ba2189f0b96f5792bd64376c715d9084c5d77638160
6
+ metadata.gz: be02a0549e1b0bc829bb737e88926c77e74e3b416bf1f5b826df8947bad65001e2fc6f199f7da216e75fc7287fd653ba344cebf1ab652ffd7185806ed61c93bc
7
+ data.tar.gz: e0d470d9ed7d97b518958d2b9999a179079c77a1ddc680c07e2c201a83790de5bc73b7abda17946a3a17652d6eff97fe6b904007470d78b209b36823b952853f
data/.circleci/config.yml CHANGED
@@ -14,21 +14,21 @@ missingdeps: &missingdeps
14
14
  sudo cp /tmp/sources.list /etc/apt/sources.list
15
15
  sudo apt-get update
16
16
  sudo apt-get install cmake libicu-dev libssl-dev
17
-
17
+
18
18
  test: &test
19
19
  name: Test bundle
20
- command: bundle exec rake test
20
+ command: bundle exec rake test --trace
21
21
 
22
22
  executors:
23
- ruby-2-4:
24
- docker:
25
- - image: circleci/ruby:2.4.6
26
23
  ruby-2-5:
27
24
  docker:
28
25
  - image: circleci/ruby:2.5.5
29
26
  ruby-2-6:
30
27
  docker:
31
28
  - image: circleci/ruby:2.6.3
29
+ ruby-2-7:
30
+ docker:
31
+ - image: circleci/ruby:2.7.1
32
32
  jobs:
33
33
  "ruby-test":
34
34
  parameters:
@@ -49,9 +49,9 @@ jobs:
49
49
  workflows:
50
50
  "test_multiple_ruby_versions":
51
51
  jobs:
52
- - ruby-test:
53
- ruby-version: ruby-2-4
54
52
  - ruby-test:
55
53
  ruby-version: ruby-2-5
56
54
  - ruby-test:
57
55
  ruby-version: ruby-2-6
56
+ - ruby-test:
57
+ ruby-version: ruby-2-7
data/.rubocop.yml ADDED
@@ -0,0 +1,57 @@
1
+ AllCops:
2
+ TargetRubyVersion: 2.5 # keep in sync with .circleci/config.yml and gemspec
3
+ NewCops: enable
4
+
5
+ Style/EmptyMethod:
6
+ Enabled: false
7
+
8
+ Metrics:
9
+ Enabled: false
10
+
11
+ # not safe ... needs require 'English'
12
+ Style/SpecialGlobalVars:
13
+ Enabled: false
14
+
15
+ Layout/LineLength:
16
+ Max: 205 # TODO: lower
17
+
18
+ Style/Documentation:
19
+ Enabled: false
20
+
21
+ Naming/AccessorMethodName:
22
+ Enabled: false
23
+
24
+ Naming/MethodParameterName:
25
+ Enabled: false
26
+
27
+ Style/IfInsideElse:
28
+ Enabled: false
29
+
30
+ Style/GuardClause:
31
+ Enabled: false
32
+
33
+ Lint/NestedMethodDefinition:
34
+ Enabled: false
35
+
36
+ # TODO: fix
37
+ Style/StringConcatenation:
38
+ Enabled: false
39
+
40
+ Style/NumericPredicate:
41
+ EnforcedStyle: comparison
42
+
43
+ Style/IfUnlessModifier:
44
+ Enabled: false
45
+
46
+ Style/ClassAndModuleChildren:
47
+ Enabled: false
48
+
49
+ # TODO: enable ... somehow breaks tests
50
+ Style/HashEachMethods:
51
+ Enabled: false
52
+
53
+ Style/WordArray:
54
+ EnforcedStyle: brackets
55
+
56
+ Style/SymbolArray:
57
+ EnforcedStyle: brackets
data/Gemfile CHANGED
@@ -1,7 +1,9 @@
1
+ # frozen_string_literal: true
2
+
1
3
  source 'https://rubygems.org'
2
4
 
3
- gem 'codeclimate-test-reporter', '<1.0.0', :group => :test, :require => nil
4
- gem 'rubocop', require: false
5
+ gem 'codeclimate-test-reporter', '<1.0.0', group: :test, require: nil
6
+ gem 'rubocop'
5
7
 
6
8
  # Specify your gem's dependencies in fluent-plugin-add.gemspec
7
9
  gemspec
data/Gemfile.lock CHANGED
@@ -1,47 +1,49 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- fluent-plugin-kubernetes_metadata_filter (2.4.6)
5
- fluentd (>= 0.14.0, < 1.10)
4
+ fluent-plugin-kubernetes_metadata_filter (2.7.2)
5
+ fluentd (>= 0.14.0, < 1.14)
6
6
  kubeclient (< 5)
7
7
  lru_redux
8
8
 
9
9
  GEM
10
10
  remote: https://rubygems.org/
11
11
  specs:
12
- addressable (2.7.0)
12
+ addressable (2.8.0)
13
13
  public_suffix (>= 2.0.2, < 5.0)
14
- ast (2.4.0)
15
- bump (0.9.0)
14
+ ast (2.4.1)
15
+ bump (0.10.0)
16
16
  charlock_holmes (0.7.7)
17
17
  codeclimate-test-reporter (0.6.0)
18
18
  simplecov (>= 0.7.1, < 1.0.0)
19
- concurrent-ruby (1.1.6)
20
- cool.io (1.6.0)
19
+ concurrent-ruby (1.1.9)
20
+ cool.io (1.7.1)
21
21
  copyright-header (1.0.22)
22
22
  github-linguist
23
- crack (0.4.3)
24
- safe_yaml (~> 1.0.0)
25
- docile (1.3.2)
23
+ crack (0.4.5)
24
+ rexml
25
+ docile (1.3.5)
26
26
  domain_name (0.5.20190701)
27
27
  unf (>= 0.0.5, < 1.0.0)
28
28
  escape_utils (1.2.1)
29
- ffi (1.12.2)
29
+ ffi (1.15.3)
30
30
  ffi-compiler (1.0.1)
31
31
  ffi (>= 1.0.0)
32
32
  rake
33
- fluentd (1.9.3)
33
+ fluentd (1.13.2)
34
+ bundler
34
35
  cool.io (>= 1.4.5, < 2.0.0)
35
- http_parser.rb (>= 0.5.1, < 0.7.0)
36
+ http_parser.rb (>= 0.5.1, < 0.8.0)
36
37
  msgpack (>= 1.3.1, < 2.0.0)
37
- serverengine (>= 2.0.4, < 3.0.0)
38
+ serverengine (>= 2.2.2, < 3.0.0)
38
39
  sigdump (~> 0.2.2)
39
40
  strptime (>= 0.2.2, < 1.0.0)
40
41
  tzinfo (>= 1.0, < 3.0)
41
42
  tzinfo-data (~> 1.0)
43
+ webrick (>= 1.4.2, < 1.8.0)
42
44
  yajl-ruby (~> 1.0)
43
- github-linguist (7.8.0)
44
- charlock_holmes (~> 0.7.6)
45
+ github-linguist (7.12.2)
46
+ charlock_holmes (~> 0.7.7)
45
47
  escape_utils (~> 1.2.0)
46
48
  mini_mime (~> 1.0)
47
49
  rugged (>= 0.25.1)
@@ -52,77 +54,86 @@ GEM
52
54
  http-form_data (~> 2.2)
53
55
  http-parser (~> 1.2.0)
54
56
  http-accept (1.7.0)
55
- http-cookie (1.0.3)
57
+ http-cookie (1.0.4)
56
58
  domain_name (~> 0.5)
57
59
  http-form_data (2.3.0)
58
- http-parser (1.2.1)
60
+ http-parser (1.2.3)
59
61
  ffi-compiler (>= 1.0, < 2.0)
60
- http_parser.rb (0.6.0)
61
- jaro_winkler (1.5.4)
62
- kubeclient (4.6.0)
62
+ http_parser.rb (0.7.0)
63
+ jsonpath (1.1.0)
64
+ multi_json
65
+ kubeclient (4.9.2)
63
66
  http (>= 3.0, < 5.0)
64
- recursive-open-struct (~> 1.0, >= 1.0.4)
67
+ jsonpath (~> 1.0)
68
+ recursive-open-struct (~> 1.1, >= 1.1.1)
65
69
  rest-client (~> 2.0)
66
70
  lru_redux (1.1.0)
67
71
  mime-types (3.3.1)
68
72
  mime-types-data (~> 3.2015)
69
- mime-types-data (3.2020.0425)
73
+ mime-types-data (3.2021.0704)
70
74
  mini_mime (1.0.2)
71
75
  minitest (4.7.5)
72
- msgpack (1.3.3)
76
+ msgpack (1.4.2)
77
+ multi_json (1.15.0)
73
78
  netrc (0.11.0)
74
- parallel (1.19.1)
75
- parser (2.7.0.4)
76
- ast (~> 2.4.0)
77
- power_assert (1.1.6)
78
- public_suffix (4.0.3)
79
+ parallel (1.20.1)
80
+ parser (3.0.0.0)
81
+ ast (~> 2.4.1)
82
+ power_assert (1.2.0)
83
+ public_suffix (4.0.6)
79
84
  rainbow (3.0.0)
80
- rake (13.0.1)
81
- recursive-open-struct (1.1.1)
85
+ rake (13.0.3)
86
+ recursive-open-struct (1.1.3)
87
+ regexp_parser (2.0.3)
82
88
  rest-client (2.1.0)
83
89
  http-accept (>= 1.7.0, < 2.0)
84
90
  http-cookie (>= 1.0.2, < 2.0)
85
91
  mime-types (>= 1.16, < 4.0)
86
92
  netrc (~> 0.8)
87
- rexml (3.2.4)
93
+ rexml (3.2.5)
88
94
  rr (1.2.1)
89
- rubocop (0.80.1)
90
- jaro_winkler (~> 1.5.1)
95
+ rubocop (1.8.1)
91
96
  parallel (~> 1.10)
92
- parser (>= 2.7.0.1)
97
+ parser (>= 3.0.0.0)
93
98
  rainbow (>= 2.2.2, < 4.0)
99
+ regexp_parser (>= 1.8, < 3.0)
94
100
  rexml
101
+ rubocop-ast (>= 1.2.0, < 2.0)
95
102
  ruby-progressbar (~> 1.7)
96
- unicode-display_width (>= 1.4.0, < 1.7)
97
- ruby-progressbar (1.10.1)
98
- rugged (0.99.0)
99
- safe_yaml (1.0.5)
100
- serverengine (2.2.1)
103
+ unicode-display_width (>= 1.4.0, < 3.0)
104
+ rubocop-ast (1.4.0)
105
+ parser (>= 2.7.1.5)
106
+ ruby-progressbar (1.11.0)
107
+ rugged (1.1.0)
108
+ serverengine (2.2.4)
101
109
  sigdump (~> 0.2.2)
102
110
  sigdump (0.2.4)
103
- simplecov (0.18.5)
111
+ simplecov (0.21.2)
104
112
  docile (~> 1.1)
105
113
  simplecov-html (~> 0.11)
106
- simplecov-html (0.12.2)
107
- strptime (0.2.3)
114
+ simplecov_json_formatter (~> 0.1)
115
+ simplecov-html (0.12.3)
116
+ simplecov_json_formatter (0.1.2)
117
+ strptime (0.2.5)
108
118
  test-unit (3.0.9)
109
119
  power_assert
110
120
  test-unit-rr (1.0.5)
111
121
  rr (>= 1.1.1)
112
122
  test-unit (>= 2.5.2)
113
- tzinfo (2.0.2)
123
+ tzinfo (2.0.4)
114
124
  concurrent-ruby (~> 1.0)
115
- tzinfo-data (1.2020.1)
125
+ tzinfo-data (1.2021.1)
116
126
  tzinfo (>= 1.0.0)
117
127
  unf (0.1.4)
118
128
  unf_ext
119
129
  unf_ext (0.0.7.7)
120
- unicode-display_width (1.6.1)
121
- vcr (5.1.0)
122
- webmock (3.8.3)
130
+ unicode-display_width (2.0.0)
131
+ vcr (6.0.0)
132
+ webmock (3.11.1)
123
133
  addressable (>= 2.3.6)
124
134
  crack (>= 0.3.2)
125
135
  hashdiff (>= 0.4.0, < 2.0.0)
136
+ webrick (1.7.0)
126
137
  yajl-ruby (1.4.1)
127
138
 
128
139
  PLATFORMS
@@ -144,4 +155,4 @@ DEPENDENCIES
144
155
  yajl-ruby
145
156
 
146
157
  BUNDLED WITH
147
- 2.1.4
158
+ 2.2.19
data/README.md CHANGED
@@ -2,6 +2,8 @@
2
2
  [![Circle CI](https://circleci.com/gh/fabric8io/fluent-plugin-kubernetes_metadata_filter.svg?style=svg)](https://circleci.com/gh/fabric8io/fluent-plugin-kubernetes_metadata_filter)
3
3
  [![Code Climate](https://codeclimate.com/github/fabric8io/fluent-plugin-kubernetes_metadata_filter/badges/gpa.svg)](https://codeclimate.com/github/fabric8io/fluent-plugin-kubernetes_metadata_filter)
4
4
  [![Test Coverage](https://codeclimate.com/github/fabric8io/fluent-plugin-kubernetes_metadata_filter/badges/coverage.svg)](https://codeclimate.com/github/fabric8io/fluent-plugin-kubernetes_metadata_filter)
5
+ [![Ruby Style Guide](https://img.shields.io/badge/code_style-rubocop-brightgreen.svg)](https://github.com/rubocop-hq/rubocop)
6
+ [![Ruby Style Guide](https://img.shields.io/badge/code_style-community-brightgreen.svg)](https://rubystyle.guide)
5
7
 
6
8
  The Kubernetes metadata plugin filter enriches container log records with pod and namespace metadata.
7
9
 
@@ -15,6 +17,7 @@ that rely on the authenticity of the namespace for proper log isolation.
15
17
 
16
18
  | fluent-plugin-kubernetes_metadata_filter | fluentd | ruby |
17
19
  |-------------------|---------|------|
20
+ | >= 2.5.0 | >= v1.10.0 | >= 2.5 |
18
21
  | >= 2.0.0 | >= v0.14.20 | >= 2.1 |
19
22
  | < 2.0.0 | >= v0.12.0 | >= 1.9 |
20
23
 
@@ -38,7 +41,7 @@ Configuration options for fluent.conf are:
38
41
  * `client_key` - path to a client key file to authenticate to the API server
39
42
  * `bearer_token_file` - path to a file containing the bearer token to use for authentication
40
43
  * `tag_to_kubernetes_name_regexp` - the regular expression used to extract kubernetes metadata (pod name, container name, namespace) from the current fluentd tag.
41
- This must used named capture groups for `container_name`, `pod_name` & `namespace` (default: `\.(?<pod_name>[^\._]+)_(?<namespace>[^_]+)_(?<container_name>.+)-(?<docker_id>[a-z0-9]{64})\.log$</pod>)`)
44
+ This must used named capture groups for `container_name`, `pod_name` & `namespace` default: See [code](https://github.com/fabric8io/fluent-plugin-kubernetes_metadata_filter/blob/master/lib/fluent/plugin/filter_kubernetes_metadata.rb#L52)
42
45
  * `cache_size` - size of the cache of Kubernetes metadata to reduce requests to the API server (default: `1000`)
43
46
  * `cache_ttl` - TTL in seconds of each cached element. Set to negative value to disable TTL eviction (default: `3600` - 1 hour)
44
47
  * `watch` - set up a watch on pods on the API server for updates to metadata (default: `true`)
@@ -46,7 +49,7 @@ This must used named capture groups for `container_name`, `pod_name` & `namespac
46
49
  * `de_dot_separator` - separator to use if `de_dot` is enabled (default: `_`)
47
50
  * *DEPRECATED* `use_journal` - If false, messages are expected to be formatted and tagged as if read by the fluentd in\_tail plugin with wildcard filename. If true, messages are expected to be formatted as if read from the systemd journal. The `MESSAGE` field has the full message. The `CONTAINER_NAME` field has the encoded k8s metadata (see below). The `CONTAINER_ID_FULL` field has the full container uuid. This requires docker to use the `--log-driver=journald` log driver. If unset (the default), the plugin will use the `CONTAINER_NAME` and `CONTAINER_ID_FULL` fields
48
51
  if available, otherwise, will use the tag in the `tag_to_kubernetes_name_regexp` format.
49
- * `container_name_to_kubernetes_regexp` - The regular expression used to extract the k8s metadata encoded in the journal `CONTAINER_NAME` field (default: `'^(?<name_prefix>[^_]+)_(?<container_name>[^\._]+)(\.(?<container_hash>[^_]+))?_(?<pod_name>[^_]+)_(?<namespace>[^_]+)_[^_]+_[^_]+$'`
52
+ * `container_name_to_kubernetes_regexp` - The regular expression used to extract the k8s metadata encoded in the journal `CONTAINER_NAME` field default: See [code](https://github.com/fabric8io/fluent-plugin-kubernetes_metadata_filter/blob/master/lib/fluent/plugin/filter_kubernetes_metadata.rb#L68)
50
53
  * This corresponds to the definition [in the source](https://github.com/kubernetes/kubernetes/blob/release-1.6/pkg/kubelet/dockertools/docker.go#L317)
51
54
  * `annotation_match` - Array of regular expressions matching annotation field names. Matched annotations are added to a log record.
52
55
  * `allow_orphans` - Modify the namespace and namespace id to the values of `orphaned_namespace_name` and `orphaned_namespace_id`
data/Rakefile CHANGED
@@ -1,10 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'bundler/setup'
1
4
  require 'bundler/gem_tasks'
2
5
  require 'rake/testtask'
3
6
  require 'bump/tasks'
7
+ require 'rubocop/rake_task'
4
8
 
5
- task :test => [:base_test]
9
+ task test: [:base_test]
10
+ task default: [:test, :build, :rubocop]
6
11
 
7
- task :default => [:test, :build]
12
+ RuboCop::RakeTask.new
8
13
 
9
14
  desc 'Run test_unit based test'
10
15
  Rake::TestTask.new(:base_test) do |t|
@@ -13,7 +18,6 @@ Rake::TestTask.new(:base_test) do |t|
13
18
  # $ bundle exec rake base_test TEST=test/test_*.rb
14
19
  t.libs << 'test'
15
20
  t.test_files = Dir['test/**/test_*.rb'].sort
16
- #t.verbose = true
17
21
  t.warning = false
18
22
  end
19
23
 
@@ -23,15 +27,15 @@ task :headers do
23
27
  require 'copyright_header'
24
28
 
25
29
  args = {
26
- :license => 'Apache-2.0',
27
- :copyright_software => 'Fluentd Kubernetes Metadata Filter Plugin',
28
- :copyright_software_description => 'Enrich Fluentd events with Kubernetes metadata',
29
- :copyright_holders => ['Red Hat, Inc.'],
30
- :copyright_years => ['2015-2017'],
31
- :add_path => 'lib:test',
32
- :output_dir => '.'
30
+ license: 'Apache-2.0',
31
+ copyright_software: 'Fluentd Kubernetes Metadata Filter Plugin',
32
+ copyright_software_description: 'Enrich Fluentd events with Kubernetes metadata',
33
+ copyright_holders: ['Red Hat, Inc.'],
34
+ copyright_years: ['2015-2021'],
35
+ add_path: 'lib:test',
36
+ output_dir: '.'
33
37
  }
34
38
 
35
- command_line = CopyrightHeader::CommandLine.new( args )
39
+ command_line = CopyrightHeader::CommandLine.new(args)
36
40
  command_line.execute
37
41
  end
@@ -1,36 +1,34 @@
1
- # coding: utf-8
2
- lib = File.expand_path('../lib', __FILE__)
1
+ # frozen_string_literal: true
2
+
3
+ lib = File.expand_path('lib', __dir__)
3
4
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
5
 
5
6
  Gem::Specification.new do |gem|
6
- gem.name = "fluent-plugin-kubernetes_metadata_filter"
7
- gem.version = "2.4.6"
8
- gem.authors = ["Jimmi Dyson"]
9
- gem.email = ["jimmidyson@gmail.com"]
10
- gem.description = %q{Filter plugin to add Kubernetes metadata}
11
- gem.summary = %q{Fluentd filter plugin to add Kubernetes metadata}
12
- gem.homepage = "https://github.com/fabric8io/fluent-plugin-kubernetes_metadata_filter"
13
- gem.license = "Apache-2.0"
7
+ gem.name = 'fluent-plugin-kubernetes_metadata_filter'
8
+ gem.version = '2.7.2'
9
+ gem.authors = ['Jimmi Dyson']
10
+ gem.email = ['jimmidyson@gmail.com']
11
+ gem.description = 'Filter plugin to add Kubernetes metadata'
12
+ gem.summary = 'Fluentd filter plugin to add Kubernetes metadata'
13
+ gem.homepage = 'https://github.com/fabric8io/fluent-plugin-kubernetes_metadata_filter'
14
+ gem.license = 'Apache-2.0'
14
15
 
15
16
  gem.files = `git ls-files`.split($/)
16
- gem.executables = gem.files.grep(%r{^bin/}) { |f| File.basename(f) }
17
- gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
18
- gem.require_paths = ["lib"]
19
17
 
20
- gem.required_ruby_version = '>= 2.1.0'
18
+ gem.required_ruby_version = '>= 2.5.0'
21
19
 
22
- gem.add_runtime_dependency 'fluentd', ['>= 0.14.0', '< 1.10']
23
- gem.add_runtime_dependency "lru_redux"
24
- gem.add_runtime_dependency "kubeclient", '< 5'
20
+ gem.add_runtime_dependency 'fluentd', ['>= 0.14.0', '< 1.14']
21
+ gem.add_runtime_dependency 'kubeclient', '< 5'
22
+ gem.add_runtime_dependency 'lru_redux'
25
23
 
26
- gem.add_development_dependency "bundler", "~> 2.0"
27
- gem.add_development_dependency "rake"
28
- gem.add_development_dependency "minitest", "~> 4.0"
29
- gem.add_development_dependency "test-unit", "~> 3.0.2"
30
- gem.add_development_dependency "test-unit-rr", "~> 1.0.3"
31
- gem.add_development_dependency "copyright-header"
32
- gem.add_development_dependency "webmock"
33
- gem.add_development_dependency "vcr"
34
- gem.add_development_dependency "bump"
35
- gem.add_development_dependency "yajl-ruby"
24
+ gem.add_development_dependency 'bump'
25
+ gem.add_development_dependency 'bundler', '~> 2.0'
26
+ gem.add_development_dependency 'copyright-header'
27
+ gem.add_development_dependency 'minitest', '~> 4.0'
28
+ gem.add_development_dependency 'rake'
29
+ gem.add_development_dependency 'test-unit', '~> 3.0.2'
30
+ gem.add_development_dependency 'test-unit-rr', '~> 1.0.3'
31
+ gem.add_development_dependency 'vcr'
32
+ gem.add_development_dependency 'webmock'
33
+ gem.add_development_dependency 'yajl-ruby'
36
34
  end