chef-config 14.15.6 → 15.0.293

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: 55079f92dd68138b4f81be9aa07dc08a05cb3259764e0ec6f273a6e48f275455
4
- data.tar.gz: efb9197f2c66bf77a2461c150f611dedc72ccc38425e1479fcf5093044926d95
3
+ metadata.gz: a8d538e27a6a2e8c690ba80f45698f51387b0d26147b08b3f644bb8c00955f8a
4
+ data.tar.gz: b2c243f7dbf98a707ccab6aaa21b3a1344ed20e5b339e1d1854de173c303511e
5
5
  SHA512:
6
- metadata.gz: 99cc071aa5cccc809a3a31f99b982b4aaf3c75283b5a6d0bc7cdbe1cf053fa1b7cfddcd5fc7f6c1c3d6855089e1ba3617c0f967d159df2ca3d341e66e2aaa2e4
7
- data.tar.gz: 44aa4d5a7a2ca40189378229214b84bb56c78dd13eca8c0ee3a7ad2869db868c6608078bc9b7531d4e7424996b9aa9eccbe48bb5573a49a9d6c3af911397cf50
6
+ metadata.gz: 7b354e76b5774426d3cf185dd567e196b43d8553f742e690ad936fb2fd6f487d5130516f724f091d43f556d553cd40680781998fa1da4758a5a411652ca1f3a1
7
+ data.tar.gz: 9b5d22a239f07db27e9bbc6ca569fffe83ed55ccdfc2eee1394b1d6ca6f7a55c09613eaf47bc88c4ecc17cf512cbb6fe109a005ec3fd900cd8bd0ec93b7087bc
data/LICENSE CHANGED
File without changes
data/Rakefile CHANGED
File without changes
File without changes
File without changes
@@ -4,7 +4,7 @@
4
4
  # Author:: AJ Christensen (<aj@chef.io>)
5
5
  # Author:: Mark Mzyk (<mmzyk@chef.io>)
6
6
  # Author:: Kyle Goodwin (<kgoodwin@primerevenue.com>)
7
- # Copyright:: Copyright 2008-2018, Chef Software Inc.
7
+ # Copyright:: Copyright 2008-2019, Chef Software Inc.
8
8
  # License:: Apache License, Version 2.0
9
9
  #
10
10
  # Licensed under the Apache License, Version 2.0 (the "License");
@@ -85,10 +85,13 @@ module ChefConfig
85
85
  end
86
86
  end
87
87
 
88
+ # @param name [String]
89
+ # @param file_path [String]
88
90
  def self.add_formatter(name, file_path = nil)
89
91
  formatters << [name, file_path]
90
92
  end
91
93
 
94
+ # @param logger [String]
92
95
  def self.add_event_logger(logger)
93
96
  event_handlers << logger
94
97
  end
@@ -125,18 +128,21 @@ module ChefConfig
125
128
 
126
129
  default :formatters, []
127
130
 
131
+ # @param uri [String] the URI to validate
132
+ #
133
+ # @return [Boolean] is the URL valid
128
134
  def self.is_valid_url?(uri)
129
135
  url = uri.to_s.strip
130
136
  /^http:\/\// =~ url || /^https:\/\// =~ url || /^chefzero:/ =~ url
131
137
  end
138
+
132
139
  # Override the config dispatch to set the value of multiple server options simultaneously
133
140
  #
134
- # === Parameters
135
- # url<String>:: String to be set for all of the chef-server-api URL's
141
+ # @param [String] url String to be set for all of the chef-server-api URL's
136
142
  #
137
143
  configurable(:chef_server_url).writes_value do |uri|
138
144
  unless is_valid_url? uri
139
- raise ConfigurationError, "#{uri} is an invalid chef_server_url."
145
+ raise ConfigurationError, "#{uri} is an invalid chef_server_url. The URL must start with http://, https://, or chefzero://."
140
146
  end
141
147
  uri.to_s.strip
142
148
  end
@@ -184,6 +190,7 @@ module ChefConfig
184
190
  path
185
191
  end
186
192
 
193
+ # @param child_path [String]
187
194
  def self.derive_path_from_chef_repo_path(child_path)
188
195
  if chef_repo_path.kind_of?(String)
189
196
  PathHelper.join(chef_repo_path, child_path)
@@ -286,15 +293,18 @@ module ChefConfig
286
293
  # the cache path.
287
294
  unless path_accessible?(primary_cache_path) || path_accessible?(primary_cache_root)
288
295
  secondary_cache_path = PathHelper.join(user_home, ".chef")
296
+ secondary_cache_path = target_mode? ? "#{secondary_cache_path}/#{target_mode.host}" : secondary_cache_path
289
297
  ChefConfig.logger.trace("Unable to access cache at #{primary_cache_path}. Switching cache to #{secondary_cache_path}")
290
298
  secondary_cache_path
291
299
  else
292
- primary_cache_path
300
+ target_mode? ? "#{primary_cache_path}/#{target_mode.host}" : primary_cache_path
293
301
  end
294
302
  end
295
303
  end
296
304
 
297
305
  # Returns true only if the path exists and is readable and writeable for the user.
306
+ #
307
+ # @param path [String]
298
308
  def self.path_accessible?(path)
299
309
  File.exists?(path) && File.readable?(path) && File.writable?(path)
300
310
  end
@@ -358,7 +368,7 @@ module ChefConfig
358
368
  # Whether or not to send the Authorization header again on http redirects.
359
369
  # As per the plan in https://github.com/chef/chef/pull/7006, this will be
360
370
  # False in Chef 14, True in Chef 15, and will be removed entirely in Chef 16.
361
- default :http_disable_auth_on_redirect, false
371
+ default :http_disable_auth_on_redirect, true
362
372
 
363
373
  default :interval, nil
364
374
  default :once, nil
@@ -369,6 +379,11 @@ module ChefConfig
369
379
  default :diff_disabled, false
370
380
  default :diff_filesize_threshold, 10000000
371
381
  default :diff_output_threshold, 1000000
382
+
383
+ # This is true for "local mode" which uses a chef-zero server listening on
384
+ # localhost one way or another. This is true for both `chef-solo` (without
385
+ # the --legacy-mode flag) or `chef-client -z` methods of starting a client run.
386
+ #
372
387
  default :local_mode, false
373
388
 
374
389
  # Configures the mode of operation for ChefFS, which is applied to the
@@ -421,6 +436,22 @@ module ChefConfig
421
436
  # * Chef 11 mode doesn't expose RBAC objects
422
437
  default :osc_compat, false
423
438
  end
439
+
440
+ # RFCxxx Target Mode support, value is the name of a remote device to Chef against
441
+ # --target exists as a shortcut to enabling target_mode and setting the host
442
+ configurable(:target)
443
+
444
+ config_context :target_mode do
445
+ config_strict_mode false # we don't want to have to add all train configuration keys here
446
+ default :enabled, false
447
+ default :protocol, "ssh"
448
+ # typical additional keys: host, user, password
449
+ end
450
+
451
+ def self.target_mode?
452
+ target_mode.enabled
453
+ end
454
+
424
455
  default :chef_server_url, "https://localhost:443"
425
456
 
426
457
  default(:chef_server_root) do
@@ -436,11 +467,29 @@ module ChefConfig
436
467
  end
437
468
 
438
469
  default :rest_timeout, 300
439
- default :yum_timeout, 900
440
- default :yum_lock_timeout, 30
470
+
471
+ # This solo setting is now almost entirely useless. It is set to true if chef-solo was
472
+ # invoked that way from the command-line (i.e. from Application::Solo as opposed to
473
+ # Application::Client). The more useful information is contained in the :solo_legacy_mode
474
+ # vs the :local_mode flags which will be set to true or false depending on how solo was
475
+ # invoked and actually change more of the behavior. There might be slight differences in
476
+ # the behavior of :local_mode due to the behavioral differences in Application::Solo vs.
477
+ # Application::Client and `chef-solo` vs `chef-client -z`, but checking this value and
478
+ # switching based on it is almost certainly doing the wrong thing and papering over
479
+ # bugs that should be fixed in one or the other class, and will be brittle and destined
480
+ # to break in the future (and not necessarily on a major version bump). Checking this value
481
+ # is also not sufficent to determine if we are not running against a server since this can
482
+ # be unset but :local_mode may be set. It would be accurate to check both :solo and :local_mode
483
+ # to determine if we're not running against a server, but the more semantically accurate test
484
+ # is going to be combining :solo_legacy_mode and :local_mode.
485
+ #
486
+ # TL;DR: `if Chef::Config[:solo]` is almost certainly buggy code, you should use:
487
+ # `if Chef::Config[:local_mode] || Chef::Config[:solo_legacy_mode]`
488
+ #
489
+ # @api private
441
490
  default :solo, false
442
491
 
443
- # Are we running in old Chef Solo legacy mode?
492
+ # This is true for old chef-solo legacy mode without any chef-zero server (chef-solo --legacy-mode)
444
493
  default :solo_legacy_mode, false
445
494
 
446
495
  default :splay, nil
@@ -450,14 +499,6 @@ module ChefConfig
450
499
  default :ez, false
451
500
  default :enable_reporting, true
452
501
  default :enable_reporting_url_fatals, false
453
- # Possible values for :audit_mode
454
- # :enabled, :disabled, :audit_only,
455
- #
456
- # TODO: 11 Dec 2014: Currently audit-mode is an experimental feature
457
- # and is disabled by default. When users choose to enable audit-mode,
458
- # a warning is issued in application/client#reconfigure.
459
- # This can be removed when audit-mode is enabled by default.
460
- default :audit_mode, :disabled
461
502
 
462
503
  # Chef only needs ohai to run the hostname plugin for the most basic
463
504
  # functionality. If the rest of the ohai plugins are not needed (like in
@@ -491,12 +532,6 @@ module ChefConfig
491
532
 
492
533
  default :named_run_list, nil
493
534
 
494
- # During initial development, users were required to set `use_policyfile true`
495
- # in `client.rb` to opt-in to policyfile use. Chef Client now examines
496
- # configuration, node json, and the stored node to determine if policyfile
497
- # usage is desired. This flag is still honored if set, but is unnecessary.
498
- default :use_policyfile, false
499
-
500
535
  # Policyfiles can be used in a native mode (default) or compatibility mode.
501
536
  # Native mode requires Chef Server 12.1 (it can be enabled via feature flag
502
537
  # on some prior versions). In native mode, policies and associated
@@ -607,7 +642,15 @@ module ChefConfig
607
642
  # `node_name` of the client.
608
643
  #
609
644
  # If chef-zero is enabled, this defaults to nil (no authentication).
610
- default(:client_key) { chef_zero.enabled ? nil : platform_specific_path("/etc/chef/client.pem") }
645
+ default(:client_key) do
646
+ if chef_zero.enabled
647
+ nil
648
+ elsif target_mode?
649
+ platform_specific_path("/etc/chef/#{target_mode.host}/client.pem")
650
+ else
651
+ platform_specific_path("/etc/chef/client.pem")
652
+ end
653
+ end
611
654
 
612
655
  # A credentials file may contain a complete client key, rather than the path
613
656
  # to one.
@@ -627,7 +670,9 @@ module ChefConfig
627
670
 
628
671
  # This secret is used to decrypt encrypted data bag items.
629
672
  default(:encrypted_data_bag_secret) do
630
- if File.exist?(platform_specific_path("/etc/chef/encrypted_data_bag_secret"))
673
+ if target_mode? && File.exist?(platform_specific_path("/etc/chef/#{target_mode.host}/encrypted_data_bag_secret"))
674
+ platform_specific_path("/etc/chef/#{target_mode.host}/encrypted_data_bag_secret")
675
+ elsif File.exist?(platform_specific_path("/etc/chef/encrypted_data_bag_secret"))
631
676
  platform_specific_path("/etc/chef/encrypted_data_bag_secret")
632
677
  else
633
678
  nil
@@ -767,7 +812,6 @@ module ChefConfig
767
812
  default :bootstrap_template, nil
768
813
  default :secret, nil
769
814
  default :secret_file, nil
770
- default :identity_file, nil
771
815
  default :host_key_verify, nil
772
816
  default :forward_agent, nil
773
817
  default :sort_status_reverse, nil
@@ -829,7 +873,6 @@ module ChefConfig
829
873
  #
830
874
  # NOTE: CHANGING THIS SETTING MAY CAUSE CORRUPTION, DATA LOSS AND
831
875
  # INSTABILITY.
832
- #
833
876
  default :file_atomic_update, true
834
877
 
835
878
  # There are 3 possible values for this configuration setting.
@@ -837,28 +880,19 @@ module ChefConfig
837
880
  # false => file staging is done via tempfiles under ENV['TMP']
838
881
  # :auto => file staging will try using destination directory if possible and
839
882
  # will fall back to ENV['TMP'] if destination directory is not usable.
840
- #
841
883
  default :file_staging_uses_destdir, :auto
842
884
 
843
885
  # Exit if another run is in progress and the chef-client is unable to
844
886
  # get the lock before time expires. If nil, no timeout is enforced. (Exits
845
887
  # immediately if 0.)
846
- #
847
888
  default :run_lock_timeout, nil
848
889
 
849
890
  # Number of worker threads for syncing cookbooks in parallel. Increasing
850
891
  # this number can result in gateway errors from the server (namely 503 and 504).
851
892
  # If you are seeing this behavior while using the default setting, reducing
852
893
  # the number of threads will help.
853
- #
854
894
  default :cookbook_sync_threads, 10
855
895
 
856
- # True if all resources by default default to unified mode, with all resources
857
- # applying in "compile" mode, with no "converge" mode. False is backwards compatible
858
- # setting for Chef 11-15 behavior. This will break forward notifications.
859
- #
860
- default :resource_unified_mode_default, false
861
-
862
896
  # At the beginning of the Chef Client run, the cookbook manifests are downloaded which
863
897
  # contain URLs for every file in every relevant cookbook. Most of the files
864
898
  # (recipes, resources, providers, libraries, etc) are immediately synchronized
@@ -884,9 +918,9 @@ module ChefConfig
884
918
  default :no_lazy_load, true
885
919
 
886
920
  # A whitelisted array of attributes you want sent over the wire when node
887
- # data is saved. The default setting is nil, which collects all data. Setting
888
- # to [] will not collect any data for save.
889
- #
921
+ # data is saved.
922
+ # The default setting is nil, which collects all data. Setting to [] will not
923
+ # collect any data for save.
890
924
  default :automatic_attribute_whitelist, nil
891
925
  default :default_attribute_whitelist, nil
892
926
  default :normal_attribute_whitelist, nil
@@ -929,7 +963,7 @@ module ChefConfig
929
963
  # data collector will not run.
930
964
  # Ex: http://my-data-collector.mycompany.com/ingest
931
965
  default(:server_url) do
932
- if config_parent.solo || config_parent.local_mode
966
+ if config_parent.solo_legacy_mode || config_parent.local_mode
933
967
  nil
934
968
  else
935
969
  File.join(config_parent.chef_server_url, "/data-collector")
@@ -960,7 +994,7 @@ module ChefConfig
960
994
  # generated by the DataCollector when Chef is run in Solo mode. This
961
995
  # allows users to associate their Solo nodes with faux organizations
962
996
  # without the nodes being connected to an actual Chef Server.
963
- default :organization, nil
997
+ default :organization, "chef_solo"
964
998
  end
965
999
 
966
1000
  configurable(:http_proxy)
File without changes
File without changes
File without changes
@@ -89,8 +89,7 @@ module ChefConfig
89
89
  # Unknown profile name. For "default" just silently ignore, otherwise
90
90
  # raise an error.
91
91
  return if profile == "default"
92
-
93
- raise ChefConfig::ConfigurationError, "Profile #{profile} doesn't exist. Please add it to #{credentials_file_path}."
92
+ raise ChefConfig::ConfigurationError, "Profile #{profile} doesn't exist. Please add it to #{credentials_file}."
94
93
  end
95
94
  apply_credentials(config[profile], profile)
96
95
  end
File without changes
File without changes
@@ -21,7 +21,7 @@
21
21
 
22
22
  module ChefConfig
23
23
  CHEFCONFIG_ROOT = File.expand_path("../..", __FILE__)
24
- VERSION = "14.15.6".freeze
24
+ VERSION = "15.0.293".freeze
25
25
  end
26
26
 
27
27
  #
File without changes
File without changes
@@ -1,7 +1,7 @@
1
1
  #
2
2
  # Author:: Adam Jacob (<adam@chef.io>)
3
3
  # Author:: Kyle Goodwin (<kgoodwin@primerevenue.com>)
4
- # Copyright:: Copyright 2008-2016, Chef Software Inc.
4
+ # Copyright:: Copyright 2008-2019, Chef Software Inc.
5
5
  # License:: Apache License, Version 2.0
6
6
  #
7
7
  # Licensed under the Apache License, Version 2.0 (the "License");
@@ -248,9 +248,10 @@ RSpec.describe ChefConfig::Config do
248
248
  end
249
249
 
250
250
  describe "default values" do
251
+ let(:system_drive) { ChefConfig::Config.env["SYSTEMDRIVE"] } if is_windows
251
252
  let :primary_cache_path do
252
253
  if is_windows
253
- "#{ChefConfig::Config.env['SYSTEMDRIVE']}\\chef"
254
+ "#{system_drive}\\chef"
254
255
  else
255
256
  "/var/chef"
256
257
  end
@@ -275,6 +276,35 @@ RSpec.describe ChefConfig::Config do
275
276
  allow(ChefConfig::Config).to receive(:path_accessible?).and_return(false)
276
277
  end
277
278
 
279
+ describe "ChefConfig::Config[:client_key]" do
280
+ let(:path_to_client_key) { to_platform("/etc/chef") + ChefConfig::PathHelper.path_separator }
281
+
282
+ it "sets the default path to the client key" do
283
+ expect(ChefConfig::Config.client_key).to eq(path_to_client_key + "client.pem")
284
+ end
285
+
286
+ context "when target mode is enabled" do
287
+ let(:target_mode_host) { "fluffy.kittens.org" }
288
+
289
+ before do
290
+ ChefConfig::Config.target_mode.enabled = true
291
+ ChefConfig::Config.target_mode.host = target_mode_host
292
+ end
293
+
294
+ it "sets the default path to the client key with the target host name" do
295
+ expect(ChefConfig::Config.client_key).to eq(path_to_client_key + target_mode_host + ChefConfig::PathHelper.path_separator + "client.pem")
296
+ end
297
+ end
298
+
299
+ context "when local mode is enabled" do
300
+ before { ChefConfig::Config[:local_mode] = true }
301
+
302
+ it "returns nil" do
303
+ expect(ChefConfig::Config.client_key).to be_nil
304
+ end
305
+ end
306
+ end
307
+
278
308
  describe "ChefConfig::Config[:fips]" do
279
309
  let(:fips_enabled) { false }
280
310
 
@@ -370,16 +400,32 @@ RSpec.describe ChefConfig::Config do
370
400
  end
371
401
 
372
402
  describe "ChefConfig::Config[:cache_path]" do
403
+ let(:target_mode_host) { "fluffy.kittens.org" }
404
+ let(:target_mode_primary_cache_path) { "#{primary_cache_path}/#{target_mode_host}" }
405
+ let(:target_mode_secondary_cache_path) { "#{secondary_cache_path}/#{target_mode_host}" }
406
+
373
407
  before do
374
408
  if is_windows
375
- allow(File).to receive(:expand_path).and_return("#{ChefConfig::Config.env["SYSTEMDRIVE"]}/Path/To/Executable")
409
+ allow(File).to receive(:expand_path).and_return("#{system_drive}/Path/To/Executable")
376
410
  end
377
411
  end
412
+
378
413
  context "when /var/chef exists and is accessible" do
379
- it "defaults to /var/chef" do
414
+ before do
380
415
  allow(ChefConfig::Config).to receive(:path_accessible?).with(to_platform("/var/chef")).and_return(true)
416
+ end
417
+
418
+ it "defaults to /var/chef" do
381
419
  expect(ChefConfig::Config[:cache_path]).to eq(primary_cache_path)
382
420
  end
421
+
422
+ context "and target mode is enabled" do
423
+ it "cache path includes the target host name" do
424
+ ChefConfig::Config.target_mode.enabled = true
425
+ ChefConfig::Config.target_mode.host = target_mode_host
426
+ expect(ChefConfig::Config[:cache_path]).to eq(target_mode_primary_cache_path)
427
+ end
428
+ end
383
429
  end
384
430
 
385
431
  context "when /var/chef does not exist and /var is accessible" do
@@ -399,13 +445,23 @@ RSpec.describe ChefConfig::Config do
399
445
  end
400
446
 
401
447
  context "when /var/chef exists and is not accessible" do
402
- it "defaults to $HOME/.chef" do
448
+ before do
403
449
  allow(File).to receive(:exists?).with(to_platform("/var/chef")).and_return(true)
404
450
  allow(File).to receive(:readable?).with(to_platform("/var/chef")).and_return(true)
405
451
  allow(File).to receive(:writable?).with(to_platform("/var/chef")).and_return(false)
452
+ end
406
453
 
454
+ it "defaults to $HOME/.chef" do
407
455
  expect(ChefConfig::Config[:cache_path]).to eq(secondary_cache_path)
408
456
  end
457
+
458
+ context "and target mode is enabled" do
459
+ it "cache path defaults to $HOME/.chef with the target host name" do
460
+ ChefConfig::Config.target_mode.enabled = true
461
+ ChefConfig::Config.target_mode.host = target_mode_host
462
+ expect(ChefConfig::Config[:cache_path]).to eq(target_mode_secondary_cache_path)
463
+ end
464
+ end
409
465
  end
410
466
 
411
467
  context "when chef is running in local mode" do
@@ -1197,10 +1253,23 @@ RSpec.describe ChefConfig::Config do
1197
1253
 
1198
1254
  end
1199
1255
 
1200
- context "for Chef Solo" do
1256
+ context "for Chef Solo legacy mode" do
1257
+
1258
+ before do
1259
+ ChefConfig::Config[:solo_legacy_mode] = true
1260
+ end
1261
+
1262
+ it "sets the data collector server URL to nil" do
1263
+ ChefConfig::Config[:chef_server_url] = "https://chef.example/organizations/myorg"
1264
+ expect(ChefConfig::Config[:data_collector][:server_url]).to be_nil
1265
+ end
1266
+
1267
+ end
1268
+
1269
+ context "for local mode" do
1201
1270
 
1202
1271
  before do
1203
- ChefConfig::Config[:solo] = true
1272
+ ChefConfig::Config[:local_mode] = true
1204
1273
  end
1205
1274
 
1206
1275
  it "sets the data collector server URL to nil" do
File without changes
File without changes
@@ -459,7 +459,7 @@ RSpec.describe ChefConfig::WorkstationConfigLoader do
459
459
  client_key = "barney_rubble.pem"
460
460
  chef_server_url = "https://api.chef.io/organizations/bedrock"
461
461
  invalid_config_option1234 = "foobar"
462
- EOH
462
+ EOH
463
463
  content
464
464
  end
465
465
 
@@ -484,7 +484,7 @@ EOH
484
484
  }
485
485
  [default.knife]
486
486
  ssh_user = "knife_ssh_user"
487
- EOH
487
+ EOH
488
488
  content
489
489
  end
490
490
 
@@ -506,7 +506,7 @@ EOH
506
506
  -----BEGIN RSA PRIVATE KEY-----
507
507
  foo
508
508
  """
509
- EOH
509
+ EOH
510
510
  content
511
511
  end
512
512
 
@@ -515,7 +515,7 @@ EOH
515
515
  expect(ChefConfig::Config.client_key_contents).to eq(<<~EOH
516
516
  -----BEGIN RSA PRIVATE KEY-----
517
517
  foo
518
- EOH
518
+ EOH
519
519
  )
520
520
  end
521
521
  end
@@ -531,7 +531,7 @@ EOH
531
531
  client_name = "explicit"
532
532
  [context]
533
533
  client_name = "context"
534
- EOH
534
+ EOH
535
535
  content
536
536
  end
537
537
 
@@ -573,7 +573,7 @@ EOH
573
573
  [default]
574
574
  node_name = 'barney'
575
575
  client_name = 'barney'
576
- EOH
576
+ EOH
577
577
  content
578
578
  end
579
579
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: chef-config
3
3
  version: !ruby/object:Gem::Version
4
- version: 14.15.6
4
+ version: 15.0.293
5
5
  platform: ruby
6
6
  authors:
7
7
  - Adam Jacob
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-04-07 00:00:00.000000000 Z
11
+ date: 2019-05-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: mixlib-shellout
@@ -194,8 +194,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
194
194
  - !ruby/object:Gem::Version
195
195
  version: '0'
196
196
  requirements: []
197
- rubyforge_project:
198
- rubygems_version: 2.7.9
197
+ rubygems_version: 3.0.3
199
198
  signing_key:
200
199
  specification_version: 4
201
200
  summary: Chef's default configuration and config loading