cloud-mu 3.3.0 → 3.5.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (114) hide show
  1. checksums.yaml +4 -4
  2. data/ansible/roles/mu-nat/tasks/main.yml +3 -0
  3. data/bin/mu-aws-setup +41 -7
  4. data/bin/mu-azure-setup +36 -2
  5. data/bin/mu-configure +214 -119
  6. data/bin/mu-gcp-setup +37 -2
  7. data/bin/mu-node-manage +3 -0
  8. data/bin/mu-refresh-ssl +67 -0
  9. data/bin/mu-run-tests +14 -4
  10. data/bin/mu-self-update +30 -10
  11. data/bin/mu-upload-chef-artifacts +30 -26
  12. data/cloud-mu.gemspec +9 -7
  13. data/cookbooks/mu-master/attributes/default.rb +5 -1
  14. data/cookbooks/mu-master/metadata.rb +2 -2
  15. data/cookbooks/mu-master/recipes/default.rb +81 -26
  16. data/cookbooks/mu-master/recipes/init.rb +197 -62
  17. data/cookbooks/mu-master/recipes/update_nagios_only.rb +1 -1
  18. data/cookbooks/mu-master/recipes/vault.rb +78 -77
  19. data/cookbooks/mu-master/templates/default/mods/rewrite.conf.erb +1 -0
  20. data/cookbooks/mu-master/templates/default/nagios.conf.erb +103 -0
  21. data/cookbooks/mu-master/templates/default/web_app.conf.erb +14 -30
  22. data/cookbooks/mu-tools/attributes/default.rb +12 -0
  23. data/cookbooks/mu-tools/files/centos-6/CentOS-Base.repo +47 -0
  24. data/cookbooks/mu-tools/libraries/helper.rb +98 -4
  25. data/cookbooks/mu-tools/libraries/monkey.rb +1 -1
  26. data/cookbooks/mu-tools/recipes/apply_security.rb +31 -9
  27. data/cookbooks/mu-tools/recipes/aws_api.rb +8 -2
  28. data/cookbooks/mu-tools/recipes/base_repositories.rb +1 -1
  29. data/cookbooks/mu-tools/recipes/gcloud.rb +2 -9
  30. data/cookbooks/mu-tools/recipes/google_api.rb +7 -0
  31. data/cookbooks/mu-tools/recipes/rsyslog.rb +8 -1
  32. data/cookbooks/mu-tools/resources/disk.rb +113 -42
  33. data/cookbooks/mu-tools/resources/mommacat_request.rb +1 -2
  34. data/cookbooks/mu-tools/templates/centos-8/sshd_config.erb +215 -0
  35. data/extras/Gemfile.lock.bootstrap +394 -0
  36. data/extras/bucketstubs/error.html +0 -0
  37. data/extras/bucketstubs/index.html +0 -0
  38. data/extras/clean-stock-amis +11 -3
  39. data/extras/generate-stock-images +6 -3
  40. data/extras/git_rpm/build.sh +20 -0
  41. data/extras/git_rpm/mugit.spec +53 -0
  42. data/extras/image-generators/AWS/centos7.yaml +19 -16
  43. data/extras/image-generators/AWS/{rhel7.yaml → rhel71.yaml} +0 -0
  44. data/extras/image-generators/AWS/{win2k12.yaml → win2k12r2.yaml} +0 -0
  45. data/extras/image-generators/VMWare/centos8.yaml +15 -0
  46. data/extras/openssl_rpm/build.sh +19 -0
  47. data/extras/openssl_rpm/mussl.spec +46 -0
  48. data/extras/python_rpm/muthon.spec +14 -4
  49. data/extras/ruby_rpm/muby.spec +9 -5
  50. data/extras/sqlite_rpm/build.sh +19 -0
  51. data/extras/sqlite_rpm/muqlite.spec +47 -0
  52. data/install/installer +7 -5
  53. data/modules/mommacat.ru +2 -2
  54. data/modules/mu.rb +12 -5
  55. data/modules/mu/cloud/machine_images.rb +1 -1
  56. data/modules/mu/cloud/providers.rb +6 -1
  57. data/modules/mu/cloud/resource_base.rb +7 -4
  58. data/modules/mu/cloud/ssh_sessions.rb +5 -1
  59. data/modules/mu/cloud/wrappers.rb +16 -7
  60. data/modules/mu/config.rb +28 -12
  61. data/modules/mu/config/database.rb +2 -2
  62. data/modules/mu/config/firewall_rule.rb +1 -1
  63. data/modules/mu/config/ref.rb +3 -3
  64. data/modules/mu/config/schema_helpers.rb +12 -3
  65. data/modules/mu/config/server.rb +10 -4
  66. data/modules/mu/config/server_pool.rb +2 -2
  67. data/modules/mu/config/vpc.rb +10 -10
  68. data/modules/mu/defaults/AWS.yaml +96 -96
  69. data/modules/mu/deploy.rb +27 -14
  70. data/modules/mu/groomers/chef.rb +2 -2
  71. data/modules/mu/master.rb +49 -3
  72. data/modules/mu/mommacat.rb +27 -9
  73. data/modules/mu/mommacat/naming.rb +2 -2
  74. data/modules/mu/mommacat/search.rb +16 -5
  75. data/modules/mu/mommacat/storage.rb +67 -32
  76. data/modules/mu/providers/aws.rb +185 -71
  77. data/modules/mu/providers/aws/alarm.rb +3 -3
  78. data/modules/mu/providers/aws/bucket.rb +19 -19
  79. data/modules/mu/providers/aws/cache_cluster.rb +22 -22
  80. data/modules/mu/providers/aws/cdn.rb +2 -2
  81. data/modules/mu/providers/aws/collection.rb +14 -14
  82. data/modules/mu/providers/aws/container_cluster.rb +27 -27
  83. data/modules/mu/providers/aws/database.rb +49 -45
  84. data/modules/mu/providers/aws/dnszone.rb +5 -5
  85. data/modules/mu/providers/aws/endpoint.rb +35 -35
  86. data/modules/mu/providers/aws/firewall_rule.rb +26 -23
  87. data/modules/mu/providers/aws/function.rb +35 -32
  88. data/modules/mu/providers/aws/group.rb +7 -7
  89. data/modules/mu/providers/aws/habitat.rb +2 -2
  90. data/modules/mu/providers/aws/job.rb +35 -32
  91. data/modules/mu/providers/aws/loadbalancer.rb +58 -37
  92. data/modules/mu/providers/aws/log.rb +14 -14
  93. data/modules/mu/providers/aws/msg_queue.rb +10 -10
  94. data/modules/mu/providers/aws/nosqldb.rb +8 -8
  95. data/modules/mu/providers/aws/notifier.rb +7 -7
  96. data/modules/mu/providers/aws/role.rb +69 -47
  97. data/modules/mu/providers/aws/search_domain.rb +10 -10
  98. data/modules/mu/providers/aws/server.rb +198 -110
  99. data/modules/mu/providers/aws/server_pool.rb +71 -119
  100. data/modules/mu/providers/aws/storage_pool.rb +17 -9
  101. data/modules/mu/providers/aws/user.rb +1 -1
  102. data/modules/mu/providers/aws/vpc.rb +106 -51
  103. data/modules/mu/providers/aws/vpc_subnet.rb +43 -39
  104. data/modules/mu/providers/azure.rb +82 -16
  105. data/modules/mu/providers/azure/server.rb +18 -3
  106. data/modules/mu/providers/cloudformation/server.rb +1 -1
  107. data/modules/mu/providers/google.rb +20 -5
  108. data/modules/mu/providers/google/folder.rb +6 -2
  109. data/modules/mu/providers/google/function.rb +65 -30
  110. data/modules/mu/providers/google/role.rb +2 -1
  111. data/modules/mu/providers/google/vpc.rb +27 -2
  112. data/modules/tests/aws-servers-with-handrolled-iam.yaml +37 -0
  113. data/modules/tests/k8s.yaml +1 -1
  114. metadata +32 -15
@@ -265,8 +265,12 @@ module MU
265
265
 
266
266
  if args[:cloud_id]
267
267
  raw_id = args[:cloud_id].sub(/^folders\//, "")
268
- resp = MU::Cloud::Google.folder(credentials: args[:credentials]).get_folder("folders/"+raw_id)
269
- found[resp.name] = resp if resp
268
+ begin
269
+ resp = MU::Cloud::Google.folder(credentials: args[:credentials]).get_folder("folders/"+raw_id)
270
+ found[resp.name] = resp if resp
271
+ rescue ::Google::Apis::ClientError => e
272
+ raise e if e.message !~ /forbidden: /
273
+ end
270
274
 
271
275
  elsif args[:flags] and args[:flags]['display_name']
272
276
 
@@ -119,6 +119,9 @@ module example.com/cloudfunction
119
119
  # Called automatically by {MU::Deploy#createResources}
120
120
  def groom
121
121
  desc = {}
122
+
123
+ func_obj = buildDesc
124
+
122
125
  labels = Hash[@tags.keys.map { |k|
123
126
  [k.downcase, @tags[k].downcase.gsub(/[^-_a-z0-9]/, '-')] }
124
127
  ]
@@ -140,6 +143,10 @@ module example.com/cloudfunction
140
143
  if cloud_desc.available_memory_mb != @config['memory']
141
144
  need_update = true
142
145
  end
146
+ if cloud_desc.service_account_email != func_obj.service_account_email
147
+ need_update = true
148
+ end
149
+
143
150
  if @config['environment_variable']
144
151
  @config['environment_variable'].each { |var|
145
152
  if !cloud_desc.environment_variables or
@@ -161,7 +168,17 @@ module example.com/cloudfunction
161
168
  File.read("#{dir}/current.zip")
162
169
  }
163
170
 
164
- new = if @config['code']['zip_file']
171
+ tempfile = nil
172
+ new = if @config['code']['zip_file'] or @config['code']['path']
173
+ if @config['code']['path']
174
+ tempfile = Tempfile.new(["function", ".zip"])
175
+ MU.log "#{@mu_name} using code at #{@config['code']['path']}"
176
+ MU::Master.zipDir(@config['code']['path'], tempfile.path)
177
+ @config['code']['zip_file'] = tempfile.path
178
+ else
179
+ MU.log "#{@mu_name} using code packaged at #{@config['code']['zip_file']}"
180
+ end
181
+ # @code_sha256 = Base64.encode64(Digest::SHA256.digest(zip)).chomp
165
182
  File.read(@config['code']['zip_file'])
166
183
  elsif @config['code']['gs_url']
167
184
  @config['code']['gs_url'].match(/^gs:\/\/([^\/]+)\/(.*)/)
@@ -172,25 +189,31 @@ module example.com/cloudfunction
172
189
  File.read(dir+"/new.zip")
173
190
  }
174
191
  end
192
+
175
193
  if @config['code']['gs_url'] and
176
194
  (@config['code']['gs_url'] != cloud_desc.source_archive_url or
177
195
  current != new)
178
196
  need_update = true
179
- elsif @config['code']['zip_file'] and current != new
197
+ elsif (@config['code']['zip_file'] or @config['code']['path']) and current != new
180
198
  need_update = true
181
- desc[:source_archive_url] = MU::Cloud::Google::Function.uploadPackage(@config['code']['zip_file'], @mu_name+"-cloudfunction.zip", credentials: @credentials)
199
+ end
200
+
201
+ if @config['vpc_connector']
202
+ if cloud_desc.vpc_connector != @config['vpc_connector'] or
203
+ cloud_desc.vpc_connector_egress_settings != (@config['vpc_connector_allow_all_egress'] ? "ALL_TRAFFIC" : "PRIVATE_RANGES_ONLY")
204
+ need_update = true
205
+ end
182
206
  end
183
207
 
184
208
  if need_update
185
- func_obj = buildDesc
186
- MU.log "Updating Cloud Function #{@mu_name}", MU::NOTICE, details: func_obj
209
+ MU.log "Updating Cloud Function #{@cloud_id}", MU::NOTICE, details: func_obj
187
210
  begin
188
- # MU::Cloud::Google.function(credentials: @credentials).patch_project_location_function(
189
- # @cloud_id,
190
- # func_obj
191
- # )
192
- rescue ::Google::Apis::ClientError
193
- MU.log "Error updating Cloud Function #{@mu_name}.", MU::ERR
211
+ MU::Cloud::Google.function(credentials: @credentials).patch_project_location_function(
212
+ @cloud_id,
213
+ func_obj
214
+ )
215
+ rescue ::Google::Apis::ClientError => e
216
+ MU.log "Error updating Cloud Function #{@mu_name}.", MU::ERR, e.message
194
217
  if desc[:source_archive_url]
195
218
  main_file = nil
196
219
  HELLO_WORLDS.each_pair { |runtime, code|
@@ -207,6 +230,11 @@ module example.com/cloudfunction
207
230
  # service_account_email: sa.kitten.cloud_desc.email,
208
231
  # labels: labels,
209
232
 
233
+ if tempfile
234
+ tempfile.close
235
+ tempfile.unlink
236
+ end
237
+
210
238
  end
211
239
 
212
240
  # Return the metadata for this project's configuration
@@ -354,6 +382,7 @@ module example.com/cloudfunction
354
382
  def self.schema(config)
355
383
  toplevel_required = ["runtime"]
356
384
  schema = {
385
+ "roles" => MU::Cloud.resourceClass("Google", "User").schema(config)[1]["roles"],
357
386
  "triggers" => {
358
387
  "type" => "array",
359
388
  "items" => {
@@ -448,6 +477,7 @@ module example.com/cloudfunction
448
477
  content_type: "application/zip",
449
478
  name: filename
450
479
  )
480
+
451
481
  MU::Cloud::Google.storage(credentials: credentials).insert_object(
452
482
  bucket,
453
483
  obj_obj,
@@ -487,7 +517,7 @@ module example.com/cloudfunction
487
517
  end
488
518
  # XXX list_project_locations
489
519
 
490
- if !function['code'] or (!function['code']['zip_file'] and !function['code']['gs_url'])
520
+ if !function['code'] or (!function['code']['zip_file'] and !function['code']['gs_url'] and !function['code']['path'])
491
521
  MU.log "Must specify a code source in Cloud Function #{function['name']}", MU::ERR
492
522
  ok = false
493
523
  elsif function['code']['zip_file']
@@ -557,22 +587,14 @@ module example.com/cloudfunction
557
587
 
558
588
  location = "projects/"+@config['project']+"/locations/"+@config['region']
559
589
  sa = nil
560
- retries = 0
561
- begin
562
- sa_ref = MU::Config::Ref.get(@config['service_account'])
563
- sa = @deploy.findLitterMate(name: sa_ref.name, type: "users")
564
- if !sa or !sa.cloud_desc
565
- sleep 10
566
- end
567
- rescue ::Google::Apis::ClientError => e
568
- if e.message.match(/notFound:/)
569
- sleep 10
570
- retries += 1
571
- retry
572
- end
573
- end while !sa or !sa.cloud_desc and retries < 5
590
+ need_sa = Proc.new {
591
+ !sa or !sa.kitten or !sa.kitten.cloud_desc
592
+ }
593
+ MU.retrier(loop_if: need_sa, wait: 10, max: 6) { |retries, _wait|
594
+ sa = MU::Config::Ref.get(@config['service_account'])
595
+ }
574
596
 
575
- if !sa or !sa.cloud_desc
597
+ if need_sa.call()
576
598
  raise MuError, "Failed to get service account cloud id from #{@config['service_account'].to_s}"
577
599
  end
578
600
 
@@ -583,7 +605,7 @@ module example.com/cloudfunction
583
605
  # entry_point: "hello_world",
584
606
  entry_point: @config['handler'],
585
607
  description: @deploy.deploy_id,
586
- service_account_email: sa.cloud_desc.email,
608
+ service_account_email: sa.kitten.cloud_desc.email,
587
609
  labels: labels,
588
610
  available_memory_mb: @config['memory']
589
611
  }
@@ -596,7 +618,6 @@ module example.com/cloudfunction
596
618
  if @config['vpc_connector']
597
619
  desc[:vpc_connector] = @config['vpc_connector']
598
620
  desc[:vpc_connector_egress_settings] = @config['vpc_connector_allow_all_egress'] ? "ALL_TRAFFIC" : "PRIVATE_RANGES_ONLY"
599
- pp desc
600
621
  elsif @vpc
601
622
  desc[:network] = @vpc.url.sub(/^.*?\/projects\//, 'projects/')
602
623
  end
@@ -627,8 +648,22 @@ module example.com/cloudfunction
627
648
  # }
628
649
  if @config['code']['gs_url']
629
650
  desc[:source_archive_url] = @config['code']['gs_url']
630
- elsif @config['code']['zip_file']
651
+ elsif @config['code']['zip_file'] or @config['code']['path']
652
+ tempfile = nil
653
+ if @config['code']['path']
654
+ tempfile = Tempfile.new(["function", ".zip"])
655
+ MU.log "#{@mu_name} using code at #{@config['code']['path']}"
656
+ MU::Master.zipDir(@config['code']['path'], tempfile.path)
657
+ @config['code']['zip_file'] = tempfile.path
658
+ else
659
+ MU.log "#{@mu_name} using code packaged at #{@config['code']['zip_file']}"
660
+ end
631
661
  desc[:source_archive_url] = MU::Cloud::Google::Function.uploadPackage(@config['code']['zip_file'], @mu_name+"-cloudfunction.zip", credentials: @credentials)
662
+
663
+ if tempfile
664
+ tempfile.close
665
+ tempfile.unlink
666
+ end
632
667
  end
633
668
 
634
669
  # Dir.mktmpdir(@mu_name) { |dir|
@@ -581,7 +581,7 @@ module MU
581
581
  }
582
582
  end
583
583
  if args[:cloud_id]
584
- found.reject! { |k, _v| k != role.name }
584
+ found.reject! { |k, _v| k != args[:cloud_id] }
585
585
  end
586
586
 
587
587
  # Now go get everything that's bound here
@@ -745,6 +745,7 @@ module MU
745
745
  end
746
746
 
747
747
  entity_types.each_pair { |entity_type, entities|
748
+ next if entity_type == "deleted"
748
749
  mu_entitytype = (entity_type == "serviceAccount" ? "user" : entity_type)+"s"
749
750
  entities.each { |entity|
750
751
  next if entity.nil?
@@ -364,6 +364,12 @@ end
364
364
  }
365
365
  end
366
366
 
367
+
368
+ # The API is filled with lies
369
+ @subnets.reject! { |s|
370
+ !MU::Cloud::Google.listRegions(credentials: @credentials).include?(s.az)
371
+ }
372
+
367
373
  return @subnets
368
374
  end
369
375
 
@@ -442,14 +448,19 @@ end
442
448
 
443
449
  # Check for a subnet in this VPC matching one or more of the specified
444
450
  # criteria, and return it if found.
445
- def getSubnet(cloud_id: nil, name: nil, tag_key: nil, tag_value: nil, ip_block: nil, region: nil)
451
+ def getSubnet(cloud_id: nil, name: nil, tag_key: nil, tag_value: nil, ip_block: nil, region: nil, subnet_mu_name: nil)
446
452
  if !cloud_id.nil? and cloud_id.match(/^https:\/\//)
447
453
  cloud_id.match(/\/regions\/([^\/]+)\/subnetworks\/([^\/]+)$/)
448
454
  region = Regexp.last_match[1]
449
455
  cloud_id = Regexp.last_match[2]
450
456
  cloud_id.gsub!(/.*?\//, "")
451
457
  end
452
- MU.log "getSubnet(cloud_id: #{cloud_id}, name: #{name}, tag_key: #{tag_key}, tag_value: #{tag_value}, ip_block: #{ip_block}, region: #{region})", MU::DEBUG, details: caller[0]
458
+
459
+ if name
460
+ subnet_mu_name ||= @config['scrub_mu_isms'] ? @cloud_id+name.downcase : MU::Cloud::Google.nameStr(@deploy.getResourceName(name, max_length: 61))
461
+ end
462
+
463
+ MU.log "getSubnet(cloud_id: #{cloud_id}, name: #{name}, tag_key: #{tag_key}, tag_value: #{tag_value}, ip_block: #{ip_block}, region: #{region}, subnet_mu_name: #{subnet_mu_name})", MU::DEBUG, details: caller[0]
453
464
  subnets.each { |subnet|
454
465
  next if region and subnet.az != region
455
466
  if !cloud_id.nil? and !subnet.cloud_id.nil? and subnet.cloud_id.to_s == cloud_id.to_s
@@ -457,6 +468,9 @@ end
457
468
  elsif !name.nil? and !subnet.name.nil? and
458
469
  subnet.name.downcase.to_s == name.downcase.to_s
459
470
  return subnet
471
+ elsif !subnet_mu_name.nil? and !subnet.name.nil? and
472
+ subnet.name.downcase.to_s == subnet_mu_name.downcase.to_s
473
+ return subnet
460
474
  end
461
475
  }
462
476
  return nil
@@ -931,6 +945,14 @@ MU.log "ROUTES TO #{target_instance.name}", MU::WARN, details: resp
931
945
  else
932
946
  route['nat_host_name'] = nat['name']
933
947
  route['priority'] = 100
948
+ MU::Config.addDependency(vpc, nat['name'], "server", their_phase: "groom", my_phase: "groom")
949
+ vpc["bastion"] = MU::Config::Ref.get(
950
+ name: nat['name'],
951
+ cloud: vpc['cloud'],
952
+ credentials: vpc['credentials'],
953
+ type: "servers"
954
+ )
955
+
934
956
  end
935
957
  end
936
958
  }
@@ -1172,6 +1194,9 @@ MU.log "ROUTES TO #{target_instance.name}", MU::WARN, details: resp
1172
1194
  if e.message.match(/notFound: /)
1173
1195
  MU.log "Failed to fetch cloud description for Google subnet #{@cloud_id}", MU::WARN, details: { "project" => @parent.habitat_id, "region" => @az, "name" => @cloud_id }
1174
1196
  return nil
1197
+ elsif e.message.match(/Unknown region\. /)
1198
+ MU.log "Google subnet #{@cloud_id} seems like it should live in #{@az}, but that's not a valid region", MU::WARN, details: { "project" => @parent.habitat_id, "region" => @az, "name" => @cloud_id }
1199
+ return nil
1175
1200
  else
1176
1201
  raise e
1177
1202
  end
@@ -0,0 +1,37 @@
1
+ # clouds: AWS
2
+ # groomers: Chef
3
+ ---
4
+ appname: smoketest
5
+ vpcs:
6
+ - name: svrtest
7
+ roles:
8
+ - name: handrolled
9
+ scrub_mu_isms: true
10
+ can_assume:
11
+ - entity_id: ec2.amazonaws.com
12
+ entity_type: service
13
+ import:
14
+ - arn:aws:iam::aws:policy/AmazonRDSFullAccess
15
+ servers:
16
+ - name: iamtest1
17
+ size: t3.medium
18
+ iam_role: handrolled
19
+ platform: centos6
20
+ generate_iam_role: false
21
+ vpc:
22
+ name: svrtest
23
+ server_pools:
24
+ - name: iamtest2
25
+ scrub_mu_isms: true
26
+ min_size: 1
27
+ max_size: 1
28
+ wait_for_nodes: 1
29
+ platform: centos6
30
+ vpc:
31
+ name: svrtest
32
+ basis:
33
+ launch-config:
34
+ name: iamtest2
35
+ size: t3.medium
36
+ iam_role: handrolled
37
+ generate_iam_role: false
@@ -27,7 +27,7 @@ container_clusters:
27
27
  comment: meep
28
28
  vpc:
29
29
  vpc_name: k8s
30
- subnet_pref: all_private
30
+ subnet_pref: all_public
31
31
  kubernetes_resources:
32
32
  - apiVersion: v1
33
33
  kind: Service
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cloud-mu
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.3.0
4
+ version: 3.5.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - John Stange
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2020-09-22 00:00:00.000000000 Z
14
+ date: 2021-02-25 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: addressable
@@ -28,47 +28,47 @@ dependencies:
28
28
  - !ruby/object:Gem::Version
29
29
  version: '2.5'
30
30
  - !ruby/object:Gem::Dependency
31
- name: aws-sdk-core
31
+ name: aws-sdk
32
32
  requirement: !ruby/object:Gem::Requirement
33
33
  requirements:
34
- - - "<"
34
+ - - "~>"
35
35
  - !ruby/object:Gem::Version
36
- version: '3'
36
+ version: '3.0'
37
37
  type: :runtime
38
38
  prerelease: false
39
39
  version_requirements: !ruby/object:Gem::Requirement
40
40
  requirements:
41
- - - "<"
41
+ - - "~>"
42
42
  - !ruby/object:Gem::Version
43
- version: '3'
43
+ version: '3.0'
44
44
  - !ruby/object:Gem::Dependency
45
45
  name: azure_sdk
46
46
  requirement: !ruby/object:Gem::Requirement
47
47
  requirements:
48
48
  - - "~>"
49
49
  - !ruby/object:Gem::Version
50
- version: '0.52'
50
+ version: '0.65'
51
51
  type: :runtime
52
52
  prerelease: false
53
53
  version_requirements: !ruby/object:Gem::Requirement
54
54
  requirements:
55
55
  - - "~>"
56
56
  - !ruby/object:Gem::Version
57
- version: '0.52'
57
+ version: '0.65'
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: bundler
60
60
  requirement: !ruby/object:Gem::Requirement
61
61
  requirements:
62
62
  - - "~>"
63
63
  - !ruby/object:Gem::Version
64
- version: '1.17'
64
+ version: 2.1.4
65
65
  type: :runtime
66
66
  prerelease: false
67
67
  version_requirements: !ruby/object:Gem::Requirement
68
68
  requirements:
69
69
  - - "~>"
70
70
  - !ruby/object:Gem::Version
71
- version: '1.17'
71
+ version: 2.1.4
72
72
  - !ruby/object:Gem::Dependency
73
73
  name: chronic_duration
74
74
  requirement: !ruby/object:Gem::Requirement
@@ -131,14 +131,14 @@ dependencies:
131
131
  requirements:
132
132
  - - "~>"
133
133
  - !ruby/object:Gem::Version
134
- version: 0.36.4
134
+ version: 0.50.0
135
135
  type: :runtime
136
136
  prerelease: false
137
137
  version_requirements: !ruby/object:Gem::Requirement
138
138
  requirements:
139
139
  - - "~>"
140
140
  - !ruby/object:Gem::Version
141
- version: 0.36.4
141
+ version: 0.50.0
142
142
  - !ruby/object:Gem::Dependency
143
143
  name: googleauth
144
144
  requirement: !ruby/object:Gem::Requirement
@@ -448,6 +448,7 @@ executables:
448
448
  - mu-gen-docs
449
449
  - mu-tunnel-nagios
450
450
  - mu-ssh
451
+ - mu-refresh-ssl
451
452
  - mu-gen-env
452
453
  - mu-configure
453
454
  - mu-momma-cat
@@ -524,6 +525,7 @@ files:
524
525
  - bin/mu-load-config.rb
525
526
  - bin/mu-momma-cat
526
527
  - bin/mu-node-manage
528
+ - bin/mu-refresh-ssl
527
529
  - bin/mu-run-tests
528
530
  - bin/mu-self-update
529
531
  - bin/mu-ssh
@@ -663,8 +665,10 @@ files:
663
665
  - cookbooks/mu-master/templates/default/389-directory-setup.inf.erb
664
666
  - cookbooks/mu-master/templates/default/chef-server.rb.erb
665
667
  - cookbooks/mu-master/templates/default/dhclient-eth0.conf.erb
668
+ - cookbooks/mu-master/templates/default/mods/rewrite.conf.erb
666
669
  - cookbooks/mu-master/templates/default/mu-momma-cat.erb
667
670
  - cookbooks/mu-master/templates/default/mu.rc.erb
671
+ - cookbooks/mu-master/templates/default/nagios.conf.erb
668
672
  - cookbooks/mu-master/templates/default/openssl.cnf.erb
669
673
  - cookbooks/mu-master/templates/default/sssd.conf.erb
670
674
  - cookbooks/mu-master/templates/default/web_app.conf.erb
@@ -736,6 +740,7 @@ files:
736
740
  - cookbooks/mu-tools/attributes/default.rb
737
741
  - cookbooks/mu-tools/attributes/ebs_rolling_snapshots.rb
738
742
  - cookbooks/mu-tools/files/amazon/etc/freshclam.conf
743
+ - cookbooks/mu-tools/files/centos-6/CentOS-Base.repo
739
744
  - cookbooks/mu-tools/files/centos-6/README_MU
740
745
  - cookbooks/mu-tools/files/centos-6/etc/audit/stig.rules
741
746
  - cookbooks/mu-tools/files/centos-6/etc/bashrc
@@ -841,6 +846,7 @@ files:
841
846
  - cookbooks/mu-tools/templates/amazon/sshd_config.erb
842
847
  - cookbooks/mu-tools/templates/centos-6/sshd_config.erb
843
848
  - cookbooks/mu-tools/templates/centos-7/sshd_config.erb
849
+ - cookbooks/mu-tools/templates/centos-8/sshd_config.erb
844
850
  - cookbooks/mu-tools/templates/default/0-mu-log-client.conf.erb
845
851
  - cookbooks/mu-tools/templates/default/conf.maldet.erb
846
852
  - cookbooks/mu-tools/templates/default/etc_hosts.erb
@@ -907,34 +913,44 @@ files:
907
913
  - environments/dev.json
908
914
  - environments/development.json
909
915
  - environments/prod.json
916
+ - extras/Gemfile.lock.bootstrap
910
917
  - extras/README.md
911
918
  - extras/admin-role-binding.yaml
912
919
  - extras/admin-user.yaml
913
920
  - extras/alpha.png
914
921
  - extras/aws-auth-cm.yaml.erb
915
922
  - extras/beta.png
923
+ - extras/bucketstubs/error.html
924
+ - extras/bucketstubs/index.html
916
925
  - extras/clean-stock-amis
917
926
  - extras/generate-stock-images
918
927
  - extras/git-fix-permissions-hook
928
+ - extras/git_rpm/build.sh
929
+ - extras/git_rpm/mugit.spec
919
930
  - extras/gitlab-eks-helper.sh.erb
920
931
  - extras/image-generators/AWS/centos6.yaml
921
932
  - extras/image-generators/AWS/centos7-govcloud.yaml
922
933
  - extras/image-generators/AWS/centos7.yaml
923
- - extras/image-generators/AWS/rhel7.yaml
924
- - extras/image-generators/AWS/win2k12.yaml
934
+ - extras/image-generators/AWS/rhel71.yaml
935
+ - extras/image-generators/AWS/win2k12r2.yaml
925
936
  - extras/image-generators/AWS/win2k16.yaml
926
937
  - extras/image-generators/AWS/win2k19.yaml
927
938
  - extras/image-generators/Google/centos6.yaml
928
939
  - extras/image-generators/Google/centos7.yaml
929
940
  - extras/image-generators/README.md
941
+ - extras/image-generators/VMWare/centos8.yaml
930
942
  - extras/lambda_waf_domain_blacklist.py
931
943
  - extras/list-stock-amis
944
+ - extras/openssl_rpm/build.sh
945
+ - extras/openssl_rpm/mussl.spec
932
946
  - extras/platform_berksfile_base
933
947
  - extras/python_rpm/build.sh
934
948
  - extras/python_rpm/muthon.spec
935
949
  - extras/release.png
936
950
  - extras/ruby_rpm/build.sh
937
951
  - extras/ruby_rpm/muby.spec
952
+ - extras/sqlite_rpm/build.sh
953
+ - extras/sqlite_rpm/muqlite.spec
938
954
  - extras/vault_tools/README.md
939
955
  - extras/vault_tools/export_vaults.sh
940
956
  - extras/vault_tools/recreate_vaults.sh
@@ -1114,6 +1130,7 @@ files:
1114
1130
  - modules/tests/auto_scaling.inc
1115
1131
  - modules/tests/aws-iam.yaml
1116
1132
  - modules/tests/aws-jobs-functions.yaml
1133
+ - modules/tests/aws-servers-with-handrolled-iam.yaml
1117
1134
  - modules/tests/aws-sgs.yaml
1118
1135
  - modules/tests/bucket.yml
1119
1136
  - modules/tests/centos6.yaml