fluent-plugin-aws-elasticsearch-service 2.0.0 → 2.4.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: ab2396d060281d507a79949daf28faf5e36a5493
4
- data.tar.gz: d1cddae22131889c0a120ec93c63f53589eecb3e
2
+ SHA256:
3
+ metadata.gz: 5b43f023ea0c787dc6b18db57b47050078babc38c33d45bccd172e30c2f0b2a0
4
+ data.tar.gz: a2310d3e8fb5a710edca64ec72b656a5cc0517bac9151976e5ad23b16acfe12c
5
5
  SHA512:
6
- metadata.gz: 4618e4b0146d64fbaa5f0ea0254be286883c6836d2a0c5d73073040501bbc3a08f9de3bde86ad58ee46ce1613ff1a48ffe1f337ff5227ca21300018a1b03b4d0
7
- data.tar.gz: c11262a0903d40523d6dad7ecd852a1d31f22a59b3254502c4a2dd9d6ccf914745c8f6b123706223ed37443e4491589821b26ede96803b669fd4650121041a1f
6
+ metadata.gz: 6563475cc1717bc69c6c1d417dcef797e4418f172cdab5d0d767efd8f2aedd3beeb38e405ca162f6c1bee2b1a505004e59a50ce8c5ae625fd01b1ab7e291918f
7
+ data.tar.gz: f270b332238a0e438de2062a72e5e53e5689e4130bf422b0f092423dad625b4a156a62862f5f7c452f4f6855d2f7ee5c61b0eca3473a58cbc692f8ce81b8acd8
data/Gemfile CHANGED
@@ -3,6 +3,6 @@ source 'https://rubygems.org'
3
3
  # Specify your gem's dependencies in fluent-plugin-aws-elasticsearch-service.gemspec
4
4
  gemspec
5
5
 
6
- gem 'fluent-plugin-elasticsearch', [">= 2.4.0", "< 4"], require: false
6
+ gem 'fluent-plugin-elasticsearch', [">= 2.4.0", "< 5"], require: false
7
7
  gem 'aws-sdk-core', '~> 3', require: false
8
- gem 'faraday_middleware-aws-sigv4', '>= 0.2.4', '< 0.3.0', require: false
8
+ gem 'faraday_middleware-aws-sigv4', '~> 0.3.0', require: false
@@ -0,0 +1,22 @@
1
+ #### Problem
2
+
3
+ ...
4
+
5
+ #### Steps to replicate
6
+
7
+ Provide example config and message
8
+
9
+ #### Expected Behavior or What you need to ask
10
+
11
+ ...
12
+
13
+ #### Using Fluentd and ES plugin versions
14
+
15
+ * OS version
16
+ * Fluentd v0.12 or v0.14/v1.0
17
+ * paste result of ``fluentd --version`` or ``td-agent --version``
18
+ * AWS ES Service plugin version
19
+ * paste boot log of fluentd or td-agent
20
+ * paste result of ``fluent-gem list``, ``td-agent-gem list`` or your Gemfile.lock
21
+ * IAM policies for AWS ES Service (optional)
22
+ * ES version (optional)
data/README.md CHANGED
@@ -92,6 +92,7 @@ Additionally, you can use an STS assumed role as the authenticating factor and i
92
92
  region eu-west-1
93
93
  assume_role_arn arn:aws:sts::ACCOUNT:role/ROLE
94
94
  assume_role_session_name SESSION_ID # Defaults to fluentd if omitted
95
+ sts_credentials_region us-west-2 # Defaults to region if omitted
95
96
  </endpoint>
96
97
  ```
97
98
 
@@ -126,6 +127,20 @@ You'll need to ensure that the environment in which the fluentd plugin runs has
126
127
  }
127
128
  ```
128
129
 
130
+ ### EKS
131
+ If you want to use IAM roles for service accounts on Amazon EKS clusters, please refer to the official documentation and specify a Service Account for your fluentd Pod.
132
+
133
+ Then, the endpoint configuration looks like:
134
+
135
+ ```ruby
136
+ <endpoint>
137
+ url https://CLUSTER_ENDPOINT_URL
138
+ region eu-west-1
139
+ assume_role_arn "#{ENV['AWS_ROLE_ARN']}"
140
+ assume_role_web_identity_token_file "#{ENV['AWS_WEB_IDENTITY_TOKEN_FILE']}"
141
+ </endpoint>
142
+ ```
143
+
129
144
  ## Troubleshooting
130
145
 
131
146
  * "Elasticsearch::Transport::Transport::Errors::Forbidden" error="[403]" even after verifying the access keys/roles/policies.
@@ -5,7 +5,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
5
5
 
6
6
  Gem::Specification.new do |spec|
7
7
  spec.name = "fluent-plugin-aws-elasticsearch-service"
8
- spec.version = "2.0.0"
8
+ spec.version = "2.4.0"
9
9
  spec.authors = ["atomita"]
10
10
  spec.email = ["sleeping.cait.sith+gh@gmail.com"]
11
11
 
@@ -20,12 +20,12 @@ Gem::Specification.new do |spec|
20
20
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
21
21
  spec.require_paths = ["lib"]
22
22
 
23
- spec.add_development_dependency "bundler", "~> 1.10"
24
- spec.add_development_dependency "rake", "~> 10.0"
23
+ spec.add_development_dependency "bundler", [">= 1.10", "< 3"]
24
+ spec.add_development_dependency "rake", "~> 13.0"
25
25
  spec.add_development_dependency "rspec", "~> 3.0"
26
26
  spec.add_development_dependency "test-unit", "~> 3.0"
27
27
  spec.add_runtime_dependency "fluentd", [">= 0.14.15", "< 2"]
28
- spec.add_runtime_dependency "fluent-plugin-elasticsearch", [">= 2.4.0", "< 4"]
28
+ spec.add_runtime_dependency "fluent-plugin-elasticsearch", [">= 3.3.0", "< 5"]
29
29
  spec.add_runtime_dependency "aws-sdk-core", "~> 3"
30
- spec.add_runtime_dependency "faraday_middleware-aws-sigv4", ">= 0.2.4", "< 0.3.0"
30
+ spec.add_runtime_dependency "faraday_middleware-aws-sigv4", "~> 0.3.0"
31
31
  end
@@ -15,10 +15,12 @@ module Fluent::Plugin
15
15
  config_param :region, :string
16
16
  config_param :url, :string
17
17
  config_param :access_key_id, :string, :default => ""
18
- config_param :secret_access_key, :string, :default => ""
18
+ config_param :secret_access_key, :string, :default => "", secret: true
19
19
  config_param :assume_role_arn, :string, :default => nil
20
20
  config_param :ecs_container_credentials_relative_uri, :string, :default => nil #Set with AWS_CONTAINER_CREDENTIALS_RELATIVE_URI environment variable value
21
21
  config_param :assume_role_session_name, :string, :default => "fluentd"
22
+ config_param :assume_role_web_identity_token_file, :string, :default => nil
23
+ config_param :sts_credentials_region, :string, :default => nil
22
24
  end
23
25
 
24
26
  # here overrides default value of reload_connections to false because
@@ -31,9 +33,13 @@ module Fluent::Plugin
31
33
  #
32
34
  # @override
33
35
  #
34
- def get_connection_options
36
+ def get_connection_options(con_host=nil)
35
37
  raise "`endpoint` require." if @endpoint.empty?
36
38
 
39
+ @endpoint.map do |ep|
40
+ raise Fluent::ConfigError, "Ensure you don't have a trailing slash on the endpoint URL in your fluentd configuration." if ep[:url].end_with?("/")
41
+ end
42
+
37
43
  hosts =
38
44
  begin
39
45
  @endpoint.map do |ep|
@@ -74,21 +80,31 @@ module Fluent::Plugin
74
80
  credentials = Aws::Credentials.new opts[:access_key_id], opts[:secret_access_key]
75
81
  else
76
82
  if opts[:assume_role_arn].nil?
77
- if opts[:ecs_container_credentials_relative_uri].nil?
83
+ aws_container_credentials_relative_uri = opts[:ecs_container_credentials_relative_uri] || ENV["AWS_CONTAINER_CREDENTIALS_RELATIVE_URI"]
84
+ if aws_container_credentials_relative_uri.nil?
78
85
  credentials = Aws::SharedCredentials.new({retries: 2}).credentials
79
86
  credentials ||= Aws::InstanceProfileCredentials.new.credentials
80
87
  credentials ||= Aws::ECSCredentials.new.credentials
81
88
  else
82
89
  credentials = Aws::ECSCredentials.new({
83
- credential_path: opts[:ecs_container_credentials_relative_uri]
90
+ credential_path: aws_container_credentials_relative_uri
84
91
  }).credentials
85
92
  end
86
93
  else
87
- credentials = sts_credential_provider({
88
- role_arn: opts[:assume_role_arn],
89
- role_session_name: opts[:assume_role_session_name],
90
- region: opts[:region]
91
- }).credentials
94
+
95
+ if opts[:assume_role_web_identity_token_file].nil?
96
+ credentials = sts_credential_provider({
97
+ role_arn: opts[:assume_role_arn],
98
+ role_session_name: opts[:assume_role_session_name],
99
+ region: sts_credentials_region(opts)
100
+ }).credentials
101
+ else
102
+ credentials = sts_web_identity_credential_provider({
103
+ role_arn: opts[:assume_role_arn],
104
+ web_identity_token_file: opts[:assume_role_web_identity_token_file],
105
+ region: sts_credentials_region(opts)
106
+ }).credentials
107
+ end
92
108
  end
93
109
  end
94
110
  raise "No valid AWS credentials found." unless credentials.set?
@@ -101,11 +117,20 @@ module Fluent::Plugin
101
117
  calback
102
118
  end
103
119
 
120
+ def sts_credentials_region(opts)
121
+ opts[:sts_credentials_region] || opts[:region]
122
+ end
123
+
104
124
  def sts_credential_provider(opts)
105
125
  # AssumeRoleCredentials is an auto-refreshing credential provider
106
126
  @sts ||= Aws::AssumeRoleCredentials.new(opts)
107
127
  end
108
128
 
129
+ def sts_web_identity_credential_provider(opts)
130
+ # AssumeRoleWebIdentityCredentials is an auto-refreshing credential provider
131
+ @sts ||= Aws::AssumeRoleWebIdentityCredentials.new(opts)
132
+ end
133
+
109
134
  end
110
135
 
111
136
 
metadata CHANGED
@@ -1,43 +1,49 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fluent-plugin-aws-elasticsearch-service
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0
4
+ version: 2.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - atomita
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-02-04 00:00:00.000000000 Z
11
+ date: 2020-07-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: '1.10'
20
+ - - "<"
21
+ - !ruby/object:Gem::Version
22
+ version: '3'
20
23
  type: :development
21
24
  prerelease: false
22
25
  version_requirements: !ruby/object:Gem::Requirement
23
26
  requirements:
24
- - - "~>"
27
+ - - ">="
25
28
  - !ruby/object:Gem::Version
26
29
  version: '1.10'
30
+ - - "<"
31
+ - !ruby/object:Gem::Version
32
+ version: '3'
27
33
  - !ruby/object:Gem::Dependency
28
34
  name: rake
29
35
  requirement: !ruby/object:Gem::Requirement
30
36
  requirements:
31
37
  - - "~>"
32
38
  - !ruby/object:Gem::Version
33
- version: '10.0'
39
+ version: '13.0'
34
40
  type: :development
35
41
  prerelease: false
36
42
  version_requirements: !ruby/object:Gem::Requirement
37
43
  requirements:
38
44
  - - "~>"
39
45
  - !ruby/object:Gem::Version
40
- version: '10.0'
46
+ version: '13.0'
41
47
  - !ruby/object:Gem::Dependency
42
48
  name: rspec
43
49
  requirement: !ruby/object:Gem::Requirement
@@ -92,20 +98,20 @@ dependencies:
92
98
  requirements:
93
99
  - - ">="
94
100
  - !ruby/object:Gem::Version
95
- version: 2.4.0
101
+ version: 3.3.0
96
102
  - - "<"
97
103
  - !ruby/object:Gem::Version
98
- version: '4'
104
+ version: '5'
99
105
  type: :runtime
100
106
  prerelease: false
101
107
  version_requirements: !ruby/object:Gem::Requirement
102
108
  requirements:
103
109
  - - ">="
104
110
  - !ruby/object:Gem::Version
105
- version: 2.4.0
111
+ version: 3.3.0
106
112
  - - "<"
107
113
  - !ruby/object:Gem::Version
108
- version: '4'
114
+ version: '5'
109
115
  - !ruby/object:Gem::Dependency
110
116
  name: aws-sdk-core
111
117
  requirement: !ruby/object:Gem::Requirement
@@ -124,20 +130,14 @@ dependencies:
124
130
  name: faraday_middleware-aws-sigv4
125
131
  requirement: !ruby/object:Gem::Requirement
126
132
  requirements:
127
- - - ">="
128
- - !ruby/object:Gem::Version
129
- version: 0.2.4
130
- - - "<"
133
+ - - "~>"
131
134
  - !ruby/object:Gem::Version
132
135
  version: 0.3.0
133
136
  type: :runtime
134
137
  prerelease: false
135
138
  version_requirements: !ruby/object:Gem::Requirement
136
139
  requirements:
137
- - - ">="
138
- - !ruby/object:Gem::Version
139
- version: 0.2.4
140
- - - "<"
140
+ - - "~>"
141
141
  - !ruby/object:Gem::Version
142
142
  version: 0.3.0
143
143
  description: this is a Output plugin. Post to "Amazon Elasticsearch Service".
@@ -149,6 +149,7 @@ extra_rdoc_files: []
149
149
  files:
150
150
  - ".gitignore"
151
151
  - Gemfile
152
+ - ISSUE_TEMPLATE.md
152
153
  - LICENSE
153
154
  - README.md
154
155
  - Rakefile
@@ -158,7 +159,7 @@ homepage: https://github.com/atomita/fluent-plugin-aws-elasticsearch-service
158
159
  licenses:
159
160
  - MIT
160
161
  metadata: {}
161
- post_install_message:
162
+ post_install_message:
162
163
  rdoc_options: []
163
164
  require_paths:
164
165
  - lib
@@ -173,9 +174,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
173
174
  - !ruby/object:Gem::Version
174
175
  version: '0'
175
176
  requirements: []
176
- rubyforge_project:
177
- rubygems_version: 2.5.2.1
178
- signing_key:
177
+ rubygems_version: 3.0.1
178
+ signing_key:
179
179
  specification_version: 4
180
180
  summary: Output plugin to post to "Amazon Elasticsearch Service".
181
181
  test_files: []