mirror of
https://github.com/puppetlabs/vmpooler-provider-gce.git
synced 2026-01-25 19:18:40 -05:00
(DIO-3162) vmpooler gce provider to support disk type (to use ssd)
Added a new pool config named disk_type, which can be set to pd-ssd to use a SSD disk attahed to the instance. When not set, or set to empty, the google default of pd-standard is used
This commit is contained in:
parent
c6533af9ed
commit
e06917dd92
3 changed files with 12 additions and 4 deletions
|
|
@ -181,15 +181,18 @@ module Vmpooler
|
||||||
network: network_name
|
network: network_name
|
||||||
)
|
)
|
||||||
network_interfaces.subnetwork = subnetwork_name(pool_name) if subnetwork_name(pool_name)
|
network_interfaces.subnetwork = subnetwork_name(pool_name) if subnetwork_name(pool_name)
|
||||||
init_params = {
|
init_params = Google::Apis::ComputeV1::AttachedDiskInitializeParams.new(
|
||||||
source_image: pool['template'], # The source image to create this disk.
|
source_image: pool['template'], # The source image to create this disk.
|
||||||
labels: { 'vm' => new_vmname, 'pool' => pool_name },
|
labels: { 'vm' => new_vmname, 'pool' => pool_name },
|
||||||
disk_name: "#{new_vmname}-disk0"
|
disk_name: "#{new_vmname}-disk0"
|
||||||
}
|
)
|
||||||
|
if pool['disk_type'] && !pool['disk_type'].empty?
|
||||||
|
init_params.disk_type = "https://www.googleapis.com/compute/v1/projects/#{project}/zones/#{zone(pool_name)}/diskTypes/#{pool['disk_type']}"
|
||||||
|
end
|
||||||
disk = Google::Apis::ComputeV1::AttachedDisk.new(
|
disk = Google::Apis::ComputeV1::AttachedDisk.new(
|
||||||
auto_delete: true,
|
auto_delete: true,
|
||||||
boot: true,
|
boot: true,
|
||||||
initialize_params: Google::Apis::ComputeV1::AttachedDiskInitializeParams.new(init_params)
|
initialize_params: init_params
|
||||||
)
|
)
|
||||||
append_domain = domain || global_config[:config]['domain']
|
append_domain = domain || global_config[:config]['domain']
|
||||||
fqdn = "#{new_vmname}.#{append_domain}" if append_domain
|
fqdn = "#{new_vmname}.#{append_domain}" if append_domain
|
||||||
|
|
|
||||||
|
|
@ -62,7 +62,7 @@ EOT
|
||||||
describe '#manual tests live' do
|
describe '#manual tests live' do
|
||||||
context 'in itsysops' do
|
context 'in itsysops' do
|
||||||
before(:each) { allow(subject).to receive(:dns).and_call_original }
|
before(:each) { allow(subject).to receive(:dns).and_call_original }
|
||||||
let(:vmname) { "instance-24" }
|
let(:vmname) { "instance-27" }
|
||||||
let(:project) { 'vmpooler-test' }
|
let(:project) { 'vmpooler-test' }
|
||||||
let(:config) { YAML.load(<<~EOT
|
let(:config) { YAML.load(<<~EOT
|
||||||
---
|
---
|
||||||
|
|
@ -87,6 +87,7 @@ EOT
|
||||||
provider: 'gce'
|
provider: 'gce'
|
||||||
subnetwork_name: 'projects/itsysopsnetworking/regions/us-west1/subnetworks/vmpooler-test'
|
subnetwork_name: 'projects/itsysopsnetworking/regions/us-west1/subnetworks/vmpooler-test'
|
||||||
machine_type: 'zones/#{zone}/machineTypes/e2-micro'
|
machine_type: 'zones/#{zone}/machineTypes/e2-micro'
|
||||||
|
disk_type: 'pd-ssd'
|
||||||
EOT
|
EOT
|
||||||
) }
|
) }
|
||||||
skip 'gets a vm' do
|
skip 'gets a vm' do
|
||||||
|
|
|
||||||
|
|
@ -146,6 +146,10 @@
|
||||||
# (optional: default is global provider zone value)
|
# (optional: default is global provider zone value)
|
||||||
# - machine_type
|
# - machine_type
|
||||||
# Full or partial URL of the machine type resource to use for this instance, in the format: zones/zone/machineTypes/machine-type
|
# Full or partial URL of the machine type resource to use for this instance, in the format: zones/zone/machineTypes/machine-type
|
||||||
|
# - disk_type
|
||||||
|
# the disk type to use, see https://cloud.google.com/compute/docs/disks one of
|
||||||
|
# pd-standard, pd-balanced, pd-ssd or pd-extreme
|
||||||
|
# (optional, when nil or empty defaults to pd-standard)
|
||||||
# Example:
|
# Example:
|
||||||
|
|
||||||
:pools:
|
:pools:
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue