mirror of
https://github.com/puppetlabs/vmpooler-provider-gce.git
synced 2026-01-26 03:18:41 -05:00
before thhis change the allow list would only support checking the 'pool' label value we can now specify a different label name by using the format labename=value where the equal sign '=' is considered the separator
150 lines
5.3 KiB
Text
150 lines
5.3 KiB
Text
---
|
|
:providers:
|
|
# :providers:
|
|
#
|
|
# This section contains the VM providers for VMs and Pools
|
|
# The currently supported backing services are:
|
|
# - vsphere
|
|
# - dummy
|
|
# - gce
|
|
#
|
|
# - provider_class
|
|
# For multiple providers, specify one of the supported backing services (vsphere or dummy or gce)
|
|
# (optional: will default to it's parent :key: name eg. 'gce')
|
|
#
|
|
# - purge_unconfigured_resources
|
|
# Enable purging of VMs, disks and snapshots
|
|
# By default will purge resources in the project without a "pool" label, or a "pool" label with the value for an unconfigured pool
|
|
# An optional allowlist can be provided to ignore purging certain VMs based on pool labels
|
|
# Setting this on the provider will enable purging for the provider
|
|
# Expects a boolean value
|
|
# (optional; default: false)
|
|
#
|
|
# - resources_allowlist
|
|
# For GCE: Specify labels that should be ignored when purging VMs. For example if a VM's label is
|
|
# set to 'pool' with value 'donotdelete' and there is no pool with that name configured, it would normally be purged,
|
|
# unless you add a resources_allowlist "donotdelete" in which case it is ignored and not purged.
|
|
# Additionally the "" (empty string) has a special meaning whereas VMs that do not have the "pool" label are not purged.
|
|
# Additionally if you want to ignore VM's with an arbitrary label, include it in the allow list as a string with the separator "="
|
|
# between the label name and value eg user=bob would ignore VMs that include the label "user" with the value "bob"
|
|
# If any one of the above condition is met, the resource is ignored and not purged
|
|
# This option is only evaluated when 'purge_unconfigured_resources' is enabled
|
|
# Expects an array of strings specifying the allowlisted labels by name. The strings should be all lower case, since
|
|
# no uppercase char is allowed in a label
|
|
# (optional; default: nil)
|
|
#
|
|
# If you want to support more than one provider with different parameters you have to specify the
|
|
# backing service in the provider_class configuration parameter for example 'vsphere' or 'dummy'. Each pool can specify
|
|
# the provider to use.
|
|
#
|
|
# Multiple providers example:
|
|
|
|
:gce1:
|
|
provider_class: 'gce'
|
|
project: 'myproject'
|
|
zone: 'us-central1-f'
|
|
:gce2:
|
|
provider_class: 'gce'
|
|
project: 'myproject-foo'
|
|
zone: 'us-central1-f'
|
|
resources_allowlist:
|
|
- "user=bob"
|
|
- ""
|
|
- "custom-pool"
|
|
|
|
# :gce:
|
|
#
|
|
# This section contains the global variables for the gce provider
|
|
# some of them can be overwritten at the pool level
|
|
#
|
|
# Available configuration parameters:
|
|
#
|
|
# - project
|
|
# The GCE project name to use when creating/deleting resources
|
|
# (required)
|
|
# - zone
|
|
# The GCE zone name to use when creating/deleting resources (vms, disks etc)
|
|
# Can be overwritten at the pool level
|
|
# (required)
|
|
# - machine_type
|
|
# Full or partial URL of the machine type resource to use for this instance, in the format: zones/zone/machineTypes/machine-type
|
|
# (required)
|
|
# - network_name
|
|
# The GCE network_name to use
|
|
# (required)
|
|
# Example:
|
|
|
|
:gce:
|
|
project: 'myproject'
|
|
zone: 'us-central1-f'
|
|
machine_type: ''
|
|
network_name: ''
|
|
|
|
# :pools:
|
|
#
|
|
# This section contains a list of virtual machine 'pools' for vmpooler to
|
|
# create and maintain.
|
|
#
|
|
# Available configuration parameters (per-pool):
|
|
#
|
|
# - name
|
|
# The name of the pool.
|
|
# (required)
|
|
#
|
|
# - alias
|
|
# Other names this pool can be requested as.
|
|
# (optional)
|
|
#
|
|
# - template
|
|
# The template or virtual machine target to spawn clones from. eg projects/debian-cloud/global/images/family/debian-9
|
|
# (required)
|
|
#
|
|
# - size
|
|
# The number of waiting VMs to keep in a pool.
|
|
# (required)
|
|
#
|
|
# - provider
|
|
# The name of the VM provider which manage this pool. This should match
|
|
# a name in the :providers: section above e.g. vsphere
|
|
# (required; will default to vsphere for backwards compatibility)
|
|
# If you have more than one provider, this is where you would choose which
|
|
# one to use for this pool
|
|
#
|
|
# - clone_target
|
|
# Per-pool option to override the global 'clone_target' cluster.
|
|
# (optional)
|
|
#
|
|
# - timeout
|
|
# How long (in minutes) before marking a clone in 'pending' queues as 'failed' and retrying.
|
|
# This setting overrides any globally-configured timeout setting.
|
|
# (optional; default: '15')
|
|
#
|
|
# - ready_ttl
|
|
# How long (in minutes) to keep VMs in 'ready' queues before destroying.
|
|
# (optional; default: no limit)
|
|
#
|
|
# - check_loop_delay_min (optional; default: 5) seconds
|
|
# - check_loop_delay_max (optional; default: same as check_loop_delay_min) seconds
|
|
# - check_loop_delay_decay (optional; default: 2.0) Must be greater than 1.0
|
|
# See the :config: section for information about these settings
|
|
#
|
|
# Provider specific pool settings
|
|
#
|
|
# Gce provider
|
|
# - zone
|
|
# The zone to create the VMs in
|
|
# (optional: default is global provider zone value)
|
|
# - machine_type
|
|
# Full or partial URL of the machine type resource to use for this instance, in the format: zones/zone/machineTypes/machine-type
|
|
# Example:
|
|
|
|
:pools:
|
|
- name: 'debian-8-x86_64'
|
|
alias: [ 'debian-8-64', 'debian-8-amd64' ]
|
|
template: 'global/images/my-custom-image'
|
|
size: 5
|
|
timeout: 15
|
|
ready_ttl: 1440
|
|
provider: gce
|
|
zone: 'us-new-zone'
|
|
machine_type: 'zones/us-central1-f/machineTypes/n1-standard-1'
|