fluent-plugin-google-cloud 0.6.18 → 0.6.19

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
2
  SHA1:
3
- metadata.gz: d57de12626e44569ef8632b11d8f9be32d21e6ec
4
- data.tar.gz: 7fdf443f3cf74396870514e283d41ed8d86c3426
3
+ metadata.gz: a6d301ee1e5098270379065a452a62e1764d322e
4
+ data.tar.gz: 973c4d138bd5ac58f44c21a49afc3146949446d4
5
5
  SHA512:
6
- metadata.gz: 7c057a1068429f5954105063eaf40f6425c64dc72394696d7ecc7476c0feeebaa995d01338cf8dd3bd0e14625aca48a9ef0261f46f72b49ae46ce63af47ffe05
7
- data.tar.gz: 48a2c5109b9719750e8216101a40d2e5b91bf4efbbad787b2d4d58c3e4954956de9187ed52366492586da193f7a6a52759fcbfaa22e9958a1098f74da8d9abd1
6
+ metadata.gz: 2d5120e4508b5d218241cdca371b878e64d2d8da6c1a97bc712f845363886e2a8cd96807bc2098ab55232bcf2c7f97b103766ae446b71adea874aa713af5e7db
7
+ data.tar.gz: b4a3e052be29fe201d6c7ca3a10893ad53a292fe09ad309e20a04cc7af979d12548b483a3ca72d51734125bc27a35fdefa123d8d315ad210b7b011408597f9d9
@@ -10,7 +10,7 @@ eos
10
10
  gem.homepage =
11
11
  'https://github.com/GoogleCloudPlatform/fluent-plugin-google-cloud'
12
12
  gem.license = 'Apache-2.0'
13
- gem.version = '0.6.18'
13
+ gem.version = '0.6.19'
14
14
  gem.authors = ['Ling Huang', 'Igor Peshansky']
15
15
  gem.email = ['stackdriver-agents@google.com']
16
16
  gem.required_ruby_version = Gem::Requirement.new('>= 2.2')
@@ -226,7 +226,7 @@ module Fluent
226
226
  Fluent::Plugin.register_output('google_cloud', self)
227
227
 
228
228
  PLUGIN_NAME = 'Fluentd Google Cloud Logging plugin'.freeze
229
- PLUGIN_VERSION = '0.6.18'.freeze
229
+ PLUGIN_VERSION = '0.6.19'.freeze
230
230
 
231
231
  # Name of the the Google cloud logging write scope.
232
232
  LOGGING_SCOPE = 'https://www.googleapis.com/auth/logging.write'.freeze
@@ -258,6 +258,11 @@ module Fluent
258
258
  config_param :zone, :string, :default => nil
259
259
  config_param :vm_id, :string, :default => nil
260
260
  config_param :vm_name, :string, :default => nil
261
+ # Kubernetes-specific parameters, only used to override these values in
262
+ # the fallback path when the metadata agent is temporarily unavailable.
263
+ # They have to match the configuration of the metadata agent.
264
+ config_param :k8s_cluster_name, :string, :default => nil
265
+ config_param :k8s_cluster_location, :string, :default => nil
261
266
 
262
267
  # Map keys from a JSON payload to corresponding LogEntry fields.
263
268
  config_param :http_request_key, :string, :default =>
@@ -2181,7 +2186,7 @@ module Fluent
2181
2186
  begin
2182
2187
  @k8s_cluster_name ||= fetch_gce_metadata(
2183
2188
  'instance/attributes/cluster-name')
2184
- @k8s_location ||= fetch_gce_metadata(
2189
+ @k8s_cluster_location ||= fetch_gce_metadata(
2185
2190
  'instance/attributes/cluster-location')
2186
2191
  rescue StandardError => e
2187
2192
  @log.error 'Failed to retrieve k8s cluster name and location.', \
@@ -2194,18 +2199,18 @@ module Fluent
2194
2199
  'pod_name' => pod_name,
2195
2200
  'container_name' => container_name,
2196
2201
  'cluster_name' => @k8s_cluster_name,
2197
- 'location' => @k8s_location
2202
+ 'location' => @k8s_cluster_location
2198
2203
  }
2199
2204
  fallback_resource = GKE_CONSTANTS[:resource_type]
2200
2205
  when K8S_NODE_CONSTANTS[:resource_type]
2201
2206
  labels = {
2202
2207
  'node_name' => node_name,
2203
2208
  'cluster_name' => @k8s_cluster_name,
2204
- 'location' => @k8s_location
2209
+ 'location' => @k8s_cluster_location
2205
2210
  }
2206
2211
  fallback_resource = COMPUTE_CONSTANTS[:resource_type]
2207
2212
  end
2208
- unless @k8s_cluster_name && @k8s_location
2213
+ unless @k8s_cluster_name && @k8s_cluster_location
2209
2214
  @log.error "Failed to construct #{resource_type} resource locally." \
2210
2215
  ' Falling back to writing logs against' \
2211
2216
  " #{fallback_resource} resource.", error: e
@@ -1310,28 +1310,28 @@ module BaseTest
1310
1310
  # k8s_container.
1311
1311
  # When enable_metadata_agent is false.
1312
1312
  {
1313
- enable_metadata_agent: false,
1313
+ config: APPLICATION_DEFAULT_CONFIG,
1314
1314
  setup_metadata_agent_stub: false,
1315
1315
  setup_k8s_stub: false,
1316
1316
  log_entry: k8s_container_log_entry(log_entry(0)),
1317
1317
  expected_params: COMPUTE_PARAMS
1318
1318
  },
1319
1319
  {
1320
- enable_metadata_agent: false,
1320
+ config: APPLICATION_DEFAULT_CONFIG,
1321
1321
  setup_metadata_agent_stub: true,
1322
1322
  setup_k8s_stub: false,
1323
1323
  log_entry: k8s_container_log_entry(log_entry(0)),
1324
1324
  expected_params: COMPUTE_PARAMS
1325
1325
  },
1326
1326
  {
1327
- enable_metadata_agent: false,
1327
+ config: APPLICATION_DEFAULT_CONFIG,
1328
1328
  setup_metadata_agent_stub: true,
1329
1329
  setup_k8s_stub: true,
1330
1330
  log_entry: k8s_container_log_entry(log_entry(0)),
1331
1331
  expected_params: COMPUTE_PARAMS
1332
1332
  },
1333
1333
  {
1334
- enable_metadata_agent: false,
1334
+ config: APPLICATION_DEFAULT_CONFIG,
1335
1335
  setup_metadata_agent_stub: false,
1336
1336
  setup_k8s_stub: true,
1337
1337
  log_entry: k8s_container_log_entry(log_entry(0)),
@@ -1339,28 +1339,35 @@ module BaseTest
1339
1339
  },
1340
1340
  # When enable_metadata_agent is true.
1341
1341
  {
1342
- enable_metadata_agent: true,
1342
+ config: ENABLE_METADATA_AGENT_CONFIG,
1343
1343
  setup_metadata_agent_stub: false,
1344
1344
  setup_k8s_stub: false,
1345
1345
  log_entry: k8s_container_log_entry(log_entry(0)),
1346
1346
  expected_params: COMPUTE_PARAMS
1347
1347
  },
1348
1348
  {
1349
- enable_metadata_agent: true,
1349
+ config: ENABLE_METADATA_AGENT_CONFIG,
1350
1350
  setup_metadata_agent_stub: false,
1351
1351
  setup_k8s_stub: true,
1352
1352
  log_entry: k8s_container_log_entry(log_entry(0)),
1353
1353
  expected_params: K8S_CONTAINER_PARAMS_FROM_LOCAL
1354
1354
  },
1355
1355
  {
1356
- enable_metadata_agent: true,
1356
+ config: CUSTOM_K8S_ENABLE_METADATA_AGENT_CONFIG,
1357
+ setup_metadata_agent_stub: false,
1358
+ setup_k8s_stub: false,
1359
+ log_entry: k8s_container_log_entry(log_entry(0)),
1360
+ expected_params: K8S_CONTAINER_PARAMS_CUSTOM
1361
+ },
1362
+ {
1363
+ config: ENABLE_METADATA_AGENT_CONFIG,
1357
1364
  setup_metadata_agent_stub: true,
1358
1365
  setup_k8s_stub: false,
1359
1366
  log_entry: k8s_container_log_entry(log_entry(0)),
1360
1367
  expected_params: K8S_CONTAINER_PARAMS
1361
1368
  },
1362
1369
  {
1363
- enable_metadata_agent: true,
1370
+ config: ENABLE_METADATA_AGENT_CONFIG,
1364
1371
  setup_metadata_agent_stub: true,
1365
1372
  setup_k8s_stub: true,
1366
1373
  log_entry: k8s_container_log_entry(log_entry(0)),
@@ -1368,7 +1375,7 @@ module BaseTest
1368
1375
  },
1369
1376
  # When local_resource_id is not present or does not match k8s regexes.
1370
1377
  {
1371
- enable_metadata_agent: true,
1378
+ config: ENABLE_METADATA_AGENT_CONFIG,
1372
1379
  setup_metadata_agent_stub: true,
1373
1380
  setup_k8s_stub: true,
1374
1381
  log_entry: k8s_container_log_entry(
@@ -1376,7 +1383,7 @@ module BaseTest
1376
1383
  expected_params: COMPUTE_PARAMS
1377
1384
  },
1378
1385
  {
1379
- enable_metadata_agent: true,
1386
+ config: ENABLE_METADATA_AGENT_CONFIG,
1380
1387
  setup_metadata_agent_stub: true,
1381
1388
  setup_k8s_stub: true,
1382
1389
  log_entry: k8s_container_log_entry(
@@ -1388,21 +1395,28 @@ module BaseTest
1388
1395
  },
1389
1396
  # Specific cases for k8s_node.
1390
1397
  {
1391
- enable_metadata_agent: false,
1398
+ config: APPLICATION_DEFAULT_CONFIG,
1392
1399
  setup_metadata_agent_stub: true,
1393
1400
  setup_k8s_stub: true,
1394
1401
  log_entry: k8s_node_log_entry(log_entry(0)),
1395
1402
  expected_params: COMPUTE_PARAMS
1396
1403
  },
1397
1404
  {
1398
- enable_metadata_agent: true,
1399
- setup_metadata_agent_stub: true,
1405
+ config: ENABLE_METADATA_AGENT_CONFIG,
1406
+ setup_metadata_agent_stub: false,
1400
1407
  setup_k8s_stub: true,
1401
1408
  log_entry: k8s_node_log_entry(log_entry(0)),
1402
- expected_params: K8S_NODE_PARAMS
1409
+ expected_params: K8S_NODE_PARAMS_FROM_LOCAL
1403
1410
  },
1404
1411
  {
1405
- enable_metadata_agent: true,
1412
+ config: CUSTOM_K8S_ENABLE_METADATA_AGENT_CONFIG,
1413
+ setup_metadata_agent_stub: false,
1414
+ setup_k8s_stub: false,
1415
+ log_entry: k8s_node_log_entry(log_entry(0)),
1416
+ expected_params: K8S_NODE_PARAMS_CUSTOM
1417
+ },
1418
+ {
1419
+ config: ENABLE_METADATA_AGENT_CONFIG,
1406
1420
  setup_metadata_agent_stub: true,
1407
1421
  setup_k8s_stub: true,
1408
1422
  log_entry: k8s_node_log_entry(log_entry(0)),
@@ -1422,12 +1436,7 @@ module BaseTest
1422
1436
  setup_no_k8s_metadata_stubs
1423
1437
  end
1424
1438
  setup_logging_stubs do
1425
- config = if test_params[:enable_metadata_agent]
1426
- ENABLE_METADATA_AGENT_CONFIG
1427
- else
1428
- APPLICATION_DEFAULT_CONFIG
1429
- end
1430
- d = create_driver(config)
1439
+ d = create_driver(test_params[:config])
1431
1440
  d.emit(test_params[:log_entry])
1432
1441
  d.run
1433
1442
  end
@@ -43,6 +43,9 @@ module Constants
43
43
  CUSTOM_FULLY_QUALIFIED_ZONE = "projects/#{PROJECT_ID}/zones/#{ZONE}".freeze
44
44
  CUSTOM_VM_ID = 'C9876543210'.freeze
45
45
  CUSTOM_HOSTNAME = 'custom.hostname.org'.freeze
46
+ # Kubernetes-specific attributes.
47
+ CUSTOM_K8S_CLUSTER_NAME = 'kubernetes-cluster'.freeze
48
+ CUSTOM_K8S_LOCATION = 'kubernetes-location'.freeze
46
49
 
47
50
  # Attributes used for the EC2 metadata service.
48
51
  EC2_PROJECT_ID = 'test-ec2-project-id'.freeze
@@ -257,6 +260,12 @@ module Constants
257
260
  CONFIG_MISSING_METADATA_ALL = %(
258
261
  ).freeze
259
262
 
263
+ CUSTOM_K8S_ENABLE_METADATA_AGENT_CONFIG = %(
264
+ enable_metadata_agent true
265
+ k8s_cluster_name #{CUSTOM_K8S_CLUSTER_NAME}
266
+ k8s_cluster_location #{CUSTOM_K8S_LOCATION}
267
+ ).freeze
268
+
260
269
  CONFIG_EC2_PROJECT_ID = %(
261
270
  project_id #{EC2_PROJECT_ID}
262
271
  ).freeze
@@ -441,6 +450,14 @@ module Constants
441
450
  )
442
451
  )
443
452
  ).freeze
453
+ K8S_CONTAINER_PARAMS_CUSTOM = K8S_CONTAINER_PARAMS.merge(
454
+ resource: K8S_CONTAINER_PARAMS[:resource].merge(
455
+ labels: K8S_CONTAINER_PARAMS[:resource][:labels].merge(
456
+ 'cluster_name' => CUSTOM_K8S_CLUSTER_NAME,
457
+ 'location' => CUSTOM_K8S_LOCATION
458
+ )
459
+ )
460
+ ).freeze
444
461
 
445
462
  # K8s Node.
446
463
  K8S_NODE_PARAMS = {
@@ -463,6 +480,14 @@ module Constants
463
480
  )
464
481
  )
465
482
  ).freeze
483
+ K8S_NODE_PARAMS_CUSTOM = K8S_NODE_PARAMS.merge(
484
+ resource: K8S_NODE_PARAMS[:resource].merge(
485
+ labels: K8S_NODE_PARAMS[:resource][:labels].merge(
486
+ 'cluster_name' => CUSTOM_K8S_CLUSTER_NAME,
487
+ 'location' => CUSTOM_K8S_LOCATION
488
+ )
489
+ )
490
+ ).freeze
466
491
 
467
492
  # Docker Container.
468
493
  DOCKER_CONTAINER_PARAMS = {
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fluent-plugin-google-cloud
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.18
4
+ version: 0.6.19
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ling Huang
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2018-04-03 00:00:00.000000000 Z
12
+ date: 2018-05-08 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: fluentd