mirror of
https://github.com/puppetlabs/vmpooler-provider-gce.git
synced 2026-01-25 19:18:40 -05:00
in the upstream vmpooler code, we use the global domain parameter, so naming that parameter the same in GCE. This parameter can be optionally set in the provider config, and overwrites the global parameter. It is used to infer the FQDN as .
160 lines
6 KiB
Text
160 lines
6 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)
|
|
# - dns_zone_resource_name
|
|
# The name given to the DNS zone ressource. This is not the domain, but the name identifier of a zone eg example-com
|
|
# (optional) when not set, the dns setup / teardown is skipped
|
|
# - domain
|
|
# Overwrites the global domain parameter. This should match the dns zone domain set for the dns_zone_resource_name.
|
|
# It is used to infer the domain part of the FQDN ie $vm_name.$domain
|
|
# When setting multiple providers at the same time, this value should be set for each GCE pools.
|
|
# (optional) If not explicitely set, the FQDN is inferred using the global 'domain' config parameter
|
|
# Example:
|
|
|
|
:gce:
|
|
project: 'myproject'
|
|
zone: 'us-central1-f'
|
|
machine_type: ''
|
|
network_name: ''
|
|
dns_zone_resource_name: 'subdomain-example-com'
|
|
domain: 'subdomain.example.com'
|
|
|
|
# :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'
|