Usage
This topic describes cloud properties for different resources created by the Google CPI.
AZs¶
Schema for cloud_properties
section:
- zone [String, required]: Zone to use for creating VMs. Example:
us-central1-f
. - node_group [String, optional]: Name of the Sole Tenant Group in which VMs will be created.
Example:
azs: - name: z1 cloud_properties: zone: us-central1-f
Networks¶
Schema for cloud_properties
section used by dynamic network or manual network subnet:
- network_name (String, optional) - The name of the Google Compute Engine Network the CPI will use when creating the instance (if not set, by default it will use the
default
network). Example:cf
. - xpn_host_project_id (String, optional) - The project id that owns the network resource to support Shared VPC Networks (XPN) (if not set, it will default to the project hosting the compute resources). Example:
my-other-project
. - subnetwork_name (String, optional) - The name of the Google Compute Engine Subnet Network the CPI will use when creating the instance. If the network is in legacy mode, do not provide this property. If the network is in auto subnet mode, providing the subnetwork is optional. If the network is in custom subnet mode, then this field is required. Example:
cf-east
. - ephemeral_external_ip (Boolean, optional) - If instances must have an ephemeral external IP (
false
by default). Can be overridden in resource_pools. Example:false
. - ip_forwarding (Boolean, optional) - If instances must have IP forwarding enabled (
false
by default). Can be overridden in resource_pools. Example:false
. - tags (Array<String>, optional) - A list of tags to apply to the instances, useful if you want to apply firewall or routes rules based on tags. Will be merged with tags in resource_pools. Example:
["foo","bar"]
.
Example of manual network:
networks: - name: default type: manual subnets: - range: 10.10.0.0/24 gateway: 10.10.0.1 dns: [8.8.8.8, 8.8.4.4] azs: [z1, z2] cloud_properties: network_name: cf ephemeral_external_ip: true tags: [internal, concourse]
Example of dynamic network spanning two zones:
networks: - name: default type: dynamic subnets: - azs: [z1, z2] dns: [8.8.8.8, 8.8.4.4] cloud_properties: network_name: cf ephemeral_external_ip: true tags: [internal, concourse]
Example of vip network:
networks: - name: default type: vip
VM Types / VM Extensions¶
Schema for cloud_properties
section:
- machine_type (String, required) - The name of the Google Compute Engine Machine Type the CPI will use when creating the instance (required if not using
cpu
andram
). Example:n1-standard-1
. - machine_series (String, optional) - The name of the Google Compute Engine Machine Series the CPI will use when creating the instance with
cpu
andram
(n1
by default). Example:n2
. - cpu (Integer, required) - Number of vCPUs (Google Compute Engine Custom Machine Types) the CPI will use when creating the instance (required if not using
machine_type
). Example:2
. - ram (Integer, required) - Amount of memory (Google Compute Engine Custom Machine Types) the CPI will use when creating the instance (required if not using
machine_type
). Example:2048
. - zone (String, optional) - The name of the Google Compute Engine Zone where the instance must be created. Example:
us-west1-a
. - root_disk_size_gb (Integer, optional) - The size (in Gb) of the instance root disk (default is
10Gb
). Example:10
. - root_disk_type (String, optional) - The name of the Google Compute Engine Disk Type the CPI will use when creating the instance root disk. Example:
pd-standard
. - ephemeral_disk_type (String, optional) - The name of the Google Compute Engine Disk Type the CPI will use when creating the instance ephemeral disk. Currently only
local-ssd
is supported. - automatic_restart (Boolean, optional) - If the instances should be restarted automatically if they are terminated for non-user-initiated reasons (
false
by default). Example:false
. - on_host_maintenance (String, optional) - Instance behavior on infrastructure maintenance that may temporarily impact instance performance (supported values are
MIGRATE
(default) orTERMINATE
). Example:MIGRATE
. - preemptible (Boolean, optional) - If the instances should be preemptible (
false
by default). Example:false
. - service_account (String, optional) - The full service account address of the service account to launch the VM with. If a value is provided,
service_scopes
will default tohttps://www.googleapis.com/auth/cloud-platform
unless it is explicitly set. See service account permissions for more details. To use the default service account, leave this field empty and specifyservice_scopes
. Example:[email protected]
. - service_scopes (Array<String>, optional) - If this value is specified and
service_account
is empty,default
will be used forservice_account
. This value supports both short (e.g.,cloud-platform
) and fully-qualified (e.g.,https://www.googleapis.com/auth/cloud-platform
formats. See Authorization scope names for more details. Example:cloud-platform
. - accelerators (Array<String>, optional) - The name of accelerators that will be attached to instance. You can find them by running
gcloud compute accelerator-types list
. Example:nvidia-tesla-t4
. - target_pool (String, optional) - The name of the Google Compute Engine Target Pool the instances should be added to. Example:
cf-router
. - backend_service (String OR Map<String,String>, optional) - The name of the Google Compute Engine Backend Service the instances should be added to. The backend service must already be configured with an Instance Group in the same zone as this instance. To set up Internal Load Balancing use a map and set
scheme
toINTERNAL
andname
to the name of the backend service. Example:cf-router
(external),{name: "cf-internal", scheme: "INTERNAL"} (internal)
. - ephemeral_external_ip (Boolean, optional) - Overrides the equivalent option in the networks section. Example:
false
. - ip_forwarding (Boolean, optional) - Overrides the equivalent option in the networks section. Example:
false
. - tags (Array<String>, optional) - Merged with tags from the networks section. Example:
["foo","bar"]
. - labels (Map<String,String>, optional) - A dictionary of (key,value) labels applied to the VM. Example:
{"foo":"bar"}
.
Example of an n1-standard-2
VM:
vm_types: - name: default cloud_properties: instance_type: n1-standard-2 root_disk_size_gb: 20 root_disk_type: pd-ssd service_scopes: - compute.readonly - devstorage.read_write
Example of an INTERNAL
backend service:
vm_extensions: - name: backend-pool cloud_properties: ephemeral_external_ip: true backend_service: name: name-of-backend-service scheme: INTERNAL
Example of an EXTERNAL
backend service:
vm_extensions: - name: backend-pool cloud_properties: backend_service: name: name-of-backend-service
instance_groups: - name: proxy instances: 2 azs: [z1, z2] networks: [{name: default}] vm_type: default stemcell: default jobs: - name: proxy release: default vm_extensions: [backend-pool]
Disk Types¶
Schema for cloud_properties
section:
- type [String, optional]: Type of the disk:
pd-standard
,pd-ssd
. Defaults topd-standard
.
Persistent disks are created in the zone of a VM that disk will be attached.
Example of 10GB disk:
disk_types: - name: default disk_size: 10_240
Global Configuration¶
The CPI can only talk to a single Google Compute Engine region.
See all configuration options.
Example Cloud Config¶
azs: - name: z1 cloud_properties: {zone: us-central1-f} - name: z2 cloud_properties: {zone: us-central1-a} vm_types: - name: default cloud_properties: machine_type: n1-standard-4 root_disk_size_gb: 20 root_disk_type: pd-ssd disk_types: - name: default disk_size: 3000 networks: - name: default type: manual subnets: - range: 10.10.0.0/24 gateway: 10.10.0.1 dns: [8.8.8.8, 8.8.4.4] azs: [z1, z2] cloud_properties: network_name: cf ephemeral_external_ip: true tags: [internal, concourse] - name: vip type: vip compilation: workers: 3 reuse_compilation_vms: true az: z1 vm_type: default network: default