chef-provisioning-vsphere 2.1.0 → 2.2.0
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 +4 -4
- data/CHANGELOG.md +10 -1
- data/README.md +4 -2
- data/chef-provisioning-vsphere.gemspec +2 -2
- data/lib/chef/provisioning/vsphere_driver/driver.rb +67 -51
- data/lib/chef/provisioning/vsphere_driver/version.rb +1 -1
- data/lib/chef/provisioning/vsphere_driver/vsphere_helpers.rb +57 -0
- data/lib/kitchen/driver/vsphere.rb +19 -10
- data/spec/integration_tests/vsphere_driver_spec.rb +2 -0
- metadata +2 -14
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2b059db41619a80c83fc1e3a397054aa706a40f9
|
4
|
+
data.tar.gz: f5231f61cf89c339da4140b10641bcb02c79c538
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 66bcd56de9e4a17cd2de6431b982228c19d6dea451b1d915f36d98f2dc7fa0dfa9d43d87e9893e4b945b629683b3d13ab60690fe063d08c3ced7db4f8a2d3e95
|
7
|
+
data.tar.gz: a261f68210ebfed783e07d82085e0d7b86cc4633f83ebe15566db79cab5d2b3c635d93f3bce36b5c5e5cf5f71242cac94dd7caa7968035d085002b1f68e44bbc
|
data/CHANGELOG.md
CHANGED
@@ -1,7 +1,16 @@
|
|
1
1
|
# Change Log
|
2
2
|
|
3
|
-
## [v2.
|
3
|
+
## [v2.2.0](https://github.com/chef-partners/chef-provisioning-vsphere/tree/v2.2.0)
|
4
4
|
|
5
|
+
[Full Changelog](https://github.com/chef-partners/chef-provisioning-vsphere/compare/v2.1.0...v2.2.0)
|
6
|
+
|
7
|
+
**Merged pull requests:**
|
8
|
+
|
9
|
+
- Save VM properties to kitchen state file after cloning [\#83](https://github.com/chef-partners/chef-provisioning-vsphere/pull/83) ([josh-barker](https://github.com/josh-barker))
|
10
|
+
- allow chef14 [\#82](https://github.com/chef-partners/chef-provisioning-vsphere/pull/82) ([jjlimepoint](https://github.com/jjlimepoint))
|
11
|
+
- Main disk size and rework of ip\_to\_bootstrap\(\) [\#72](https://github.com/chef-partners/chef-provisioning-vsphere/pull/72) ([algaut](https://github.com/algaut))
|
12
|
+
|
13
|
+
## [v2.1.0](https://github.com/chef-partners/chef-provisioning-vsphere/tree/v2.1.0) (2018-03-02)
|
5
14
|
[Full Changelog](https://github.com/chef-partners/chef-provisioning-vsphere/compare/v2.0.10...v2.1.0)
|
6
15
|
|
7
16
|
**Closed issues:**
|
data/README.md
CHANGED
@@ -7,7 +7,7 @@
|
|
7
7
|
|
8
8
|
This is a [chef-provisioning](https://github.com/chef/chef-provisioning) provisioner for [VMware vSphere](http://www.vmware.com/products/vsphere).
|
9
9
|
|
10
|
-
chef-provisioning-vsphere supports provisioning Unix/ssh and Windows/
|
10
|
+
chef-provisioning-vsphere supports provisioning Unix/ssh and Windows/WinRM guest VMs.
|
11
11
|
|
12
12
|
## Prerequisites
|
13
13
|
|
@@ -87,12 +87,14 @@ This will use chef-zero and needs no chef server (only works for ssh). Note that
|
|
87
87
|
- `[:network_name]` - array of network names to use. A NIC will be added for each
|
88
88
|
- `[:memory_mb]` - number of megabytes to allocate for machine
|
89
89
|
- `[:host]` - `{cluster}`/`{host}` to use during provisioning
|
90
|
-
- `[:resource_pool]` - `{cluster}`/`{resource pool}` to use during provisioning
|
90
|
+
- `[:resource_pool]` - `{cluster}`/`{resource pool}` to use during provisioning
|
91
91
|
(for single-host setups, use `{vsphere_ip / vsphere_hostname}`/`{resource pool}`)
|
92
92
|
- `[:additional_disk_size_gb]` - an array of numbers, each signifying the number of gigabytes to assign to an additional disk (*this requires a datastore to be specified*)
|
93
|
+
- `[:main_disk_size_gb]` - the desired size of the VM's main virtual disk in gigabytes. (*Will be ignored if lower than the template's main disk size*)
|
93
94
|
- `[:initial_iso_file]` - an iso file to mount at boot. This is useful for custom OS installations. In the format of `[datastore] filename.iso`
|
94
95
|
- `[:bootstrap_ipv4]` - `true` / `false`, set to `true` to wait for an IPv4 address to become available before bootstrapping.
|
95
96
|
- `[:ipv4_timeout]` - use with `[:bootstrap_ipv4]`, set the time in seconds to wait before an IPv4 address is received (defaults to 30)
|
97
|
+
- `[:ip_ready_timeout]` - set the time in seconds to wait before the machine IP is ready and connectable (defaults to 300)
|
96
98
|
- `[:ssh][:user]` user to use for ssh/winrm (defaults to root on linux/administrator on windows)
|
97
99
|
- `[:ssh][:password]` - password to use for ssh/winrm
|
98
100
|
- `[:ssh][:paranoid]` - specifies the strictness of the host key verification checking
|
@@ -21,9 +21,9 @@ Gem::Specification.new do |s|
|
|
21
21
|
s.files = `git ls-files -z`.split("\x0")
|
22
22
|
s.test_files = s.files.grep(%r{^(test|spec|features)/})
|
23
23
|
|
24
|
-
s.add_dependency 'chef', '>= 12.0'
|
24
|
+
s.add_dependency 'chef', '>= 12.0'
|
25
25
|
s.add_dependency 'chef-provisioning', '~> 2.0'
|
26
|
-
s.add_dependency 'cheffish', '>= 4.0'
|
26
|
+
s.add_dependency 'cheffish', '>= 4.0'
|
27
27
|
s.add_dependency 'rbvmomi', '~> 1.10'
|
28
28
|
|
29
29
|
s.add_development_dependency 'chefstyle'
|
@@ -224,7 +224,7 @@ module ChefProvisioningVsphere
|
|
224
224
|
vm = clone_vm(
|
225
225
|
action_handler,
|
226
226
|
bootstrap_options,
|
227
|
-
machine_spec
|
227
|
+
machine_spec
|
228
228
|
)
|
229
229
|
end
|
230
230
|
vm
|
@@ -587,7 +587,7 @@ module ChefProvisioningVsphere
|
|
587
587
|
|
588
588
|
# Ubuntu requires some...hacking to get DNS to work.
|
589
589
|
#
|
590
|
-
# @param [Object] bootstrap_options The
|
590
|
+
# @param [Object] bootstrap_options The bootstrap options required to start the VM.
|
591
591
|
# @param [Object] _machine_spec The machine spec required to start the VM.
|
592
592
|
# @param [Object] machine Machine object to connect to.
|
593
593
|
def setup_ubuntu_dns(machine, bootstrap_options, _machine_spec)
|
@@ -616,7 +616,7 @@ module ChefProvisioningVsphere
|
|
616
616
|
|
617
617
|
# Verify static IP.
|
618
618
|
#
|
619
|
-
# @param [Object] bootstrap_options The
|
619
|
+
# @param [Object] bootstrap_options The bootstrap options required to start the VM.
|
620
620
|
def has_static_ip(bootstrap_options)
|
621
621
|
if bootstrap_options.key?(:customization_spec)
|
622
622
|
bootstrap_options = bootstrap_options[:customization_spec]
|
@@ -662,7 +662,8 @@ module ChefProvisioningVsphere
|
|
662
662
|
end
|
663
663
|
end
|
664
664
|
|
665
|
-
def clone_vm(action_handler, bootstrap_options,
|
665
|
+
def clone_vm(action_handler, bootstrap_options, machine_spec)
|
666
|
+
machine_name = machine_spec.name
|
666
667
|
vm_template = vm_template_for(bootstrap_options)
|
667
668
|
|
668
669
|
spec_builder = CloneSpecBuilder.new(vsphere_helper, action_handler)
|
@@ -684,18 +685,20 @@ module ChefProvisioningVsphere
|
|
684
685
|
print "\n#{machine_name} done!"
|
685
686
|
|
686
687
|
vm = vsphere_helper.find_vm(vm_folder, machine_name)
|
688
|
+
add_machine_spec_location(vm, machine_spec)
|
689
|
+
|
690
|
+
additional_disk_size_gb = Array(bootstrap_options[:additional_disk_size_gb])
|
687
691
|
|
688
|
-
|
689
|
-
|
690
|
-
|
692
|
+
|
693
|
+
vsphere_helper.update_main_disk_size_for(vm, bootstrap_options[:main_disk_size_gb])
|
694
|
+
vsphere_helper.set_additional_disks_for(vm, bootstrap_options[:datastore], bootstrap_options[:additional_disk_size_gb])
|
695
|
+
if !additional_disk_size_gb.empty? && bootstrap_options[:datastore].to_s.empty?
|
696
|
+
raise ':datastore must be specified when adding a disk to a cloned vm'
|
691
697
|
end
|
692
698
|
|
693
699
|
additional_disk_size_gb.each do |size|
|
694
700
|
size = size.to_i
|
695
701
|
next if size == 0
|
696
|
-
if bootstrap_options[:datastore].to_s.empty?
|
697
|
-
raise ':datastore must be specified when adding a disk to a cloned vm'
|
698
|
-
end
|
699
702
|
task = vm.ReconfigVM_Task(
|
700
703
|
spec: RbVmomi::VIM.VirtualMachineConfigSpec(
|
701
704
|
deviceChange: [
|
@@ -710,6 +713,7 @@ module ChefProvisioningVsphere
|
|
710
713
|
task.wait_for_completion
|
711
714
|
end
|
712
715
|
|
716
|
+
|
713
717
|
if bootstrap_options[:initial_iso_image]
|
714
718
|
d_obj = vm.config.hardware.device.select {|hw| hw.class == RbVmomi::VIM::VirtualCdrom}.first
|
715
719
|
backing = RbVmomi::VIM::VirtualCdromIsoBackingInfo(fileName: bootstrap_options[:initial_iso_image])
|
@@ -724,12 +728,15 @@ module ChefProvisioningVsphere
|
|
724
728
|
connectable: RbVmomi::VIM::VirtualDeviceConnectInfo(
|
725
729
|
startConnected: true,
|
726
730
|
connected: true,
|
727
|
-
|
731
|
+
|
732
|
+
allowGuestControl: true
|
728
733
|
)
|
729
|
-
|
730
|
-
|
734
|
+
|
735
|
+
)
|
736
|
+
]
|
731
737
|
)
|
732
|
-
|
738
|
+
)
|
739
|
+
task.wait_for_completion
|
733
740
|
end
|
734
741
|
|
735
742
|
vm
|
@@ -885,7 +892,7 @@ module ChefProvisioningVsphere
|
|
885
892
|
)
|
886
893
|
end
|
887
894
|
|
888
|
-
#
|
895
|
+
# Return a SSH transport for the machine
|
889
896
|
#
|
890
897
|
# @param [String] host The host the VM is connecting to
|
891
898
|
# @param [Object] options Options that are required to connect to the host from Chef-Provisioning
|
@@ -907,12 +914,14 @@ module ChefProvisioningVsphere
|
|
907
914
|
# @param [Object] bootstrap_options The bootstrap options from Chef-Provisioning
|
908
915
|
# @param [Object] vm The VM object from Chef-Provisioning
|
909
916
|
def ip_to_bootstrap(bootstrap_options, vm)
|
917
|
+
start_time = Time.now.utc
|
918
|
+
timeout = bootstrap_ip_ready_timeout(bootstrap_options)
|
910
919
|
@vm_helper.find_port?(vm, bootstrap_options) unless vm_helper.port?
|
911
|
-
|
920
|
+
# First get the IP to be tested
|
912
921
|
if has_static_ip(bootstrap_options)
|
913
922
|
if bootstrap_options[:customization_spec].is_a?(String)
|
914
923
|
spec = vsphere_helper.find_customization_spec(bootstrap_options[:customization_spec])
|
915
|
-
vm_ip = spec.nicSettingMap[0].adapter.ip.ipAddress
|
924
|
+
vm_ip = spec.nicSettingMap[0].adapter.ip.ipAddress # Use a direct return here?
|
916
925
|
else
|
917
926
|
## Check if true available
|
918
927
|
vm_ip = bootstrap_options[:customization_spec][:ipsettings][:ip] unless vm_helper.ip?
|
@@ -922,63 +931,70 @@ module ChefProvisioningVsphere
|
|
922
931
|
nb_attempts += 1
|
923
932
|
end
|
924
933
|
end
|
934
|
+
elsif use_ipv4_during_bootstrap?(bootstrap_options)
|
935
|
+
vm_ip = wait_for_ipv4(bootstrap_ipv4_timeout(bootstrap_options), vm)
|
925
936
|
else
|
926
|
-
|
927
|
-
until @vm_helper.open_port?(vm_ip, @vm_helper.port, 1)
|
928
|
-
wait_for_ipv4(bootstrap_ip_timeout(bootstrap_options), vm)
|
929
|
-
end
|
930
|
-
end
|
931
|
-
vm_ip = vm.guest.ipAddress until vm_guest_ip?(vm) && @vm_helper.open_port?(vm_ip, @vm_helper.port, 1) # Don't set empty ip
|
937
|
+
vm_ip = vm.guest.ipAddress until vm_guest_ip?(vm) || Time.now.utc - start_time > timeout
|
932
938
|
end
|
933
|
-
|
939
|
+
# Then check that it is reachable
|
940
|
+
until Time.now.utc - start_time > timeout
|
941
|
+
print '.'
|
942
|
+
return vm_ip.to_s if @vm_helper.open_port?(vm_ip, @vm_helper.port, 1)
|
943
|
+
sleep 1
|
944
|
+
end
|
945
|
+
raise "Timed out (#{timeout}s) waiting for ip #{vm_ip} to be connectable"
|
934
946
|
end
|
935
947
|
|
936
948
|
# Force IPv4 a bootstrap, default: false
|
937
949
|
#
|
938
950
|
# @param [Object] bootstrap_options The bootstrap options from Chef-Provisioning
|
939
951
|
def use_ipv4_during_bootstrap?(bootstrap_options)
|
940
|
-
|
941
|
-
return bootstrap_options[:bootstrap_ipv4] == true
|
942
|
-
end
|
943
|
-
false
|
952
|
+
bootstrap_options.key?(:bootstrap_ipv4) && bootstrap_options[:bootstrap_ipv4] == true
|
944
953
|
end
|
945
954
|
|
946
|
-
# Setting a bootstrap
|
955
|
+
# Setting a bootstrap ipv4 timeout, default: 30
|
947
956
|
#
|
948
957
|
# @param [Object] bootstrap_options The bootstrap options from Chef-Provisioning
|
949
|
-
def
|
950
|
-
|
951
|
-
|
952
|
-
|
953
|
-
|
958
|
+
def bootstrap_ipv4_timeout(bootstrap_options)
|
959
|
+
bootstrap_options.key?(:ipv4_timeout) ? bootstrap_options[:ipv4_timeout].to_i : 30
|
960
|
+
end
|
961
|
+
|
962
|
+
# Setting a bootstrap ip timeout, default: 300
|
963
|
+
#
|
964
|
+
# @param [Object] bootstrap_options The bootstrap options from Chef-Provisioning
|
965
|
+
def bootstrap_ip_ready_timeout(bootstrap_options)
|
966
|
+
bootstrap_options.key?(:ip_ready_timeout) ? bootstrap_options[:ip_ready_timeout].to_i : 300
|
954
967
|
end
|
955
968
|
|
956
|
-
#
|
969
|
+
# Wait for IPv4 address
|
957
970
|
#
|
958
|
-
# @param [String] timeout
|
971
|
+
# @param [String] timeout_seconds A timeout in seconds, an error will be raised if it is reached
|
959
972
|
# @param [Object] vm The VM object from Chef-Provisioning
|
960
|
-
def wait_for_ipv4(
|
961
|
-
|
962
|
-
|
963
|
-
|
964
|
-
|
965
|
-
|
966
|
-
|
967
|
-
|
968
|
-
|
969
|
-
|
970
|
-
|
973
|
+
def wait_for_ipv4(timeout_seconds, vm)
|
974
|
+
Chef::Log.info("Waiting #{timeout_seconds}s for ipv4 address.")
|
975
|
+
|
976
|
+
start_time = Time.now.utc
|
977
|
+
while (Time.now.utc - start_time) <= timeout_seconds
|
978
|
+
# print '.'
|
979
|
+
sleep 5
|
980
|
+
vm_ips = all_ips_for(vm)
|
981
|
+
Chef::Log.info("Found IP address(es): #{vm_ips}")
|
982
|
+
next unless vm_guest_ip?(vm)
|
983
|
+
vm_ips.each do |vm_ip|
|
984
|
+
if IPAddr.new(vm_ip).ipv4?
|
985
|
+
Chef::Log.info("Found ipv4 address: #{vm_ip}")
|
986
|
+
return vm_ip
|
987
|
+
end
|
988
|
+
end
|
971
989
|
end
|
972
|
-
raise 'Timed out waiting for ipv4 address!'
|
973
|
-
puts 'Found ipv4 address!'
|
974
|
-
true
|
990
|
+
raise 'Timed out waiting for ipv4 address!'
|
975
991
|
end
|
976
992
|
|
977
993
|
# What is the VM guest IP
|
978
994
|
#
|
979
995
|
# @param [Object] vm The VM object from Chef-Provisioning
|
980
996
|
def vm_guest_ip?(vm)
|
981
|
-
vm.guest.guestState == 'running' && vm.guest.toolsRunningStatus == 'guestToolsRunning' && !vm.guest.ipAddress.nil?
|
997
|
+
vm.guest.guestState == 'running' && vm.guest.toolsRunningStatus == 'guestToolsRunning' && !vm.guest.ipAddress.nil?
|
982
998
|
end
|
983
999
|
end
|
984
1000
|
end
|
@@ -253,6 +253,62 @@ module ChefProvisioningVsphere
|
|
253
253
|
)
|
254
254
|
end
|
255
255
|
|
256
|
+
# Creates the additional virtual disk for the VM
|
257
|
+
#
|
258
|
+
# @param [Object] vm the VM object.
|
259
|
+
# @param [Subject] datastore the datastore the disk will be created on.
|
260
|
+
# @param [Subject] size_gb the size of the disk.
|
261
|
+
def set_additional_disks_for(vm, datastore, additional_disk_size_gb)
|
262
|
+
(additional_disk_size_gb.is_a?(Array) ? additional_disk_size_gb : [additional_disk_size_gb]).each do |size|
|
263
|
+
size = size.to_i
|
264
|
+
next if size.zero?
|
265
|
+
if datastore.to_s.empty?
|
266
|
+
raise ':datastore must be specified when adding a disk to a cloned vm'
|
267
|
+
end
|
268
|
+
task = vm.ReconfigVM_Task(
|
269
|
+
spec: RbVmomi::VIM.VirtualMachineConfigSpec(
|
270
|
+
deviceChange: [
|
271
|
+
virtual_disk_for(
|
272
|
+
vm,
|
273
|
+
datastore,
|
274
|
+
size
|
275
|
+
)
|
276
|
+
]
|
277
|
+
)
|
278
|
+
)
|
279
|
+
task.wait_for_completion
|
280
|
+
end
|
281
|
+
end
|
282
|
+
|
283
|
+
# Updates the main virtual disk for the VM
|
284
|
+
# This can only add capacity to the main disk, it is not possible to reduce the capacity.
|
285
|
+
#
|
286
|
+
# @param [Object] vm the VM object.
|
287
|
+
# @param [Subject] size_gb the final size of the disk.
|
288
|
+
def update_main_disk_size_for(vm, size_gb)
|
289
|
+
disk = vm.disks.first
|
290
|
+
size_kb = size_gb.to_i * 1024 * 1024
|
291
|
+
if disk.capacityInKB > size_kb
|
292
|
+
if size_gb.to_i > 0
|
293
|
+
msg = "Specified disk size #{size_gb}GB is inferior to the template's disk size (#{disk.capacityInKB / 1024**2}GB)."
|
294
|
+
msg += "\nThe VM disk size will remain the same."
|
295
|
+
Chef::Log.warn(msg)
|
296
|
+
end
|
297
|
+
return false
|
298
|
+
end
|
299
|
+
disk.capacityInKB = size_kb
|
300
|
+
vm.ReconfigVM_Task(
|
301
|
+
spec: RbVmomi::VIM.VirtualMachineConfigSpec(
|
302
|
+
deviceChange: [
|
303
|
+
{
|
304
|
+
operation: :edit,
|
305
|
+
device: disk
|
306
|
+
}
|
307
|
+
]
|
308
|
+
)
|
309
|
+
).wait_for_completion
|
310
|
+
end
|
311
|
+
|
256
312
|
# Add a new network card via the boot_options
|
257
313
|
#
|
258
314
|
# @param [Object] action_handler TODO
|
@@ -417,6 +473,7 @@ module ChefProvisioningVsphere
|
|
417
473
|
res = traverse_folders_for_network(child, item)
|
418
474
|
return res unless res.nil?
|
419
475
|
end
|
476
|
+
nil
|
420
477
|
when RbVmomi::VIM::VmwareDistributedVirtualSwitch
|
421
478
|
idx = base.summary.portgroupName.find_index(item)
|
422
479
|
idx.nil? ? nil : base.portgroup[idx]
|
@@ -23,12 +23,12 @@ module Kitchen
|
|
23
23
|
ssh: {
|
24
24
|
user: 'root',
|
25
25
|
paranoid: false,
|
26
|
-
port: 22
|
26
|
+
port: 22,
|
27
27
|
},
|
28
28
|
convergence_options: {},
|
29
29
|
customization_spec: {
|
30
|
-
domain: 'local'
|
31
|
-
}
|
30
|
+
domain: 'local',
|
31
|
+
},
|
32
32
|
}
|
33
33
|
|
34
34
|
default_config(:vsphere_name) do |driver|
|
@@ -39,17 +39,26 @@ module Kitchen
|
|
39
39
|
#
|
40
40
|
# @param [Object] state Uses state of the machine from Chef provisioning.
|
41
41
|
def create(state)
|
42
|
-
state[:vsphere_name]
|
42
|
+
state[:vsphere_name] ||= config[:vsphere_name]
|
43
43
|
state[:username] = config[:machine_options][:bootstrap_options][:ssh][:user]
|
44
44
|
state[:password] = config[:machine_options][:bootstrap_options][:ssh][:password]
|
45
45
|
config[:server_name] = state[:vsphere_name]
|
46
46
|
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
47
|
+
with_provisioning_driver(state) do |action_handler, driver, machine_spec|
|
48
|
+
begin
|
49
|
+
driver.allocate_machine(action_handler, machine_spec, config[:machine_options])
|
50
|
+
driver.ready_machine(action_handler, machine_spec, config[:machine_options])
|
51
|
+
rescue
|
52
|
+
raise
|
53
|
+
ensure
|
54
|
+
if machine_spec
|
55
|
+
if machine_spec.location
|
56
|
+
state[:server_id] = machine_spec.location['server_id']
|
57
|
+
state[:hostname] = machine_spec.location['ipaddress']
|
58
|
+
end
|
59
|
+
machine_spec.save(action_handler)
|
60
|
+
end
|
61
|
+
end
|
53
62
|
end
|
54
63
|
end
|
55
64
|
|
@@ -36,6 +36,8 @@ require 'chef/provisioning/machine_spec'
|
|
36
36
|
|
37
37
|
describe 'vsphere_driver' do
|
38
38
|
before :all do
|
39
|
+
skip("driver options do not exist") unless File.exist?(File.expand_path('../config.rb', __FILE__))
|
40
|
+
|
39
41
|
@vm_name = "cmvd-test-#{SecureRandom.hex}"
|
40
42
|
@metal_config = eval File.read(File.expand_path('../config.rb', __FILE__))
|
41
43
|
Cheffish.honor_local_mode do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: chef-provisioning-vsphere
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- CenturyLink Cloud
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2018-
|
12
|
+
date: 2018-06-01 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: chef
|
@@ -18,9 +18,6 @@ dependencies:
|
|
18
18
|
- - ">="
|
19
19
|
- !ruby/object:Gem::Version
|
20
20
|
version: '12.0'
|
21
|
-
- - "<"
|
22
|
-
- !ruby/object:Gem::Version
|
23
|
-
version: '14.0'
|
24
21
|
type: :runtime
|
25
22
|
prerelease: false
|
26
23
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -28,9 +25,6 @@ dependencies:
|
|
28
25
|
- - ">="
|
29
26
|
- !ruby/object:Gem::Version
|
30
27
|
version: '12.0'
|
31
|
-
- - "<"
|
32
|
-
- !ruby/object:Gem::Version
|
33
|
-
version: '14.0'
|
34
28
|
- !ruby/object:Gem::Dependency
|
35
29
|
name: chef-provisioning
|
36
30
|
requirement: !ruby/object:Gem::Requirement
|
@@ -52,9 +46,6 @@ dependencies:
|
|
52
46
|
- - ">="
|
53
47
|
- !ruby/object:Gem::Version
|
54
48
|
version: '4.0'
|
55
|
-
- - "<"
|
56
|
-
- !ruby/object:Gem::Version
|
57
|
-
version: '14.0'
|
58
49
|
type: :runtime
|
59
50
|
prerelease: false
|
60
51
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -62,9 +53,6 @@ dependencies:
|
|
62
53
|
- - ">="
|
63
54
|
- !ruby/object:Gem::Version
|
64
55
|
version: '4.0'
|
65
|
-
- - "<"
|
66
|
-
- !ruby/object:Gem::Version
|
67
|
-
version: '14.0'
|
68
56
|
- !ruby/object:Gem::Dependency
|
69
57
|
name: rbvmomi
|
70
58
|
requirement: !ruby/object:Gem::Requirement
|