WorkerPoolArgs

data class WorkerPoolArgs(val annotations: Output<Map<String, String>>? = null, val displayName: Output<String>? = null, val location: Output<String>? = null, val name: Output<String>? = null, val networkConfig: Output<WorkerPoolNetworkConfigArgs>? = null, val project: Output<String>? = null, val workerConfig: Output<WorkerPoolWorkerConfigArgs>? = null) : ConvertibleToJava<WorkerPoolArgs>

Definition of custom Cloud Build WorkerPools for running jobs with custom configuration and custom networking.

Example Usage

import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";
const pool = new gcp.cloudbuild.WorkerPool("pool", {
name: "my-pool",
location: "europe-west1",
workerConfig: {
diskSizeGb: 100,
machineType: "e2-standard-4",
noExternalIp: false,
},
});
import pulumi
import pulumi_gcp as gcp
pool = gcp.cloudbuild.WorkerPool("pool",
name="my-pool",
location="europe-west1",
worker_config={
"disk_size_gb": 100,
"machine_type": "e2-standard-4",
"no_external_ip": False,
})
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Gcp = Pulumi.Gcp;
return await Deployment.RunAsync(() =>
{
var pool = new Gcp.CloudBuild.WorkerPool("pool", new()
{
Name = "my-pool",
Location = "europe-west1",
WorkerConfig = new Gcp.CloudBuild.Inputs.WorkerPoolWorkerConfigArgs
{
DiskSizeGb = 100,
MachineType = "e2-standard-4",
NoExternalIp = false,
},
});
});
package main
import (
"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/cloudbuild"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := cloudbuild.NewWorkerPool(ctx, "pool", &cloudbuild.WorkerPoolArgs{
Name: pulumi.String("my-pool"),
Location: pulumi.String("europe-west1"),
WorkerConfig: &cloudbuild.WorkerPoolWorkerConfigArgs{
DiskSizeGb: pulumi.Int(100),
MachineType: pulumi.String("e2-standard-4"),
NoExternalIp: pulumi.Bool(false),
},
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.cloudbuild.WorkerPool;
import com.pulumi.gcp.cloudbuild.WorkerPoolArgs;
import com.pulumi.gcp.cloudbuild.inputs.WorkerPoolWorkerConfigArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var pool = new WorkerPool("pool", WorkerPoolArgs.builder()
.name("my-pool")
.location("europe-west1")
.workerConfig(WorkerPoolWorkerConfigArgs.builder()
.diskSizeGb(100)
.machineType("e2-standard-4")
.noExternalIp(false)
.build())
.build());
}
}
resources:
pool:
type: gcp:cloudbuild:WorkerPool
properties:
name: my-pool
location: europe-west1
workerConfig:
diskSizeGb: 100
machineType: e2-standard-4
noExternalIp: false

Network Config

import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";
const servicenetworking = new gcp.projects.Service("servicenetworking", {
service: "servicenetworking.googleapis.com",
disableOnDestroy: false,
});
const network = new gcp.compute.Network("network", {
name: "my-network",
autoCreateSubnetworks: false,
}, {
dependsOn: [servicenetworking],
});
const workerRange = new gcp.compute.GlobalAddress("worker_range", {
name: "worker-pool-range",
purpose: "VPC_PEERING",
addressType: "INTERNAL",
prefixLength: 16,
network: network.id,
});
const workerPoolConn = new gcp.servicenetworking.Connection("worker_pool_conn", {
network: network.id,
service: "servicenetworking.googleapis.com",
reservedPeeringRanges: [workerRange&#46;name],
}, {
dependsOn: [servicenetworking],
});
const pool = new gcp.cloudbuild.WorkerPool("pool", {
name: "my-pool",
location: "europe-west1",
workerConfig: {
diskSizeGb: 100,
machineType: "e2-standard-4",
noExternalIp: false,
},
networkConfig: {
peeredNetwork: network.id,
peeredNetworkIpRange: "/29",
},
}, {
dependsOn: [workerPoolConn],
});
import pulumi
import pulumi_gcp as gcp
servicenetworking = gcp.projects.Service("servicenetworking",
service="servicenetworking.googleapis.com",
disable_on_destroy=False)
network = gcp.compute.Network("network",
name="my-network",
auto_create_subnetworks=False,
opts = pulumi.ResourceOptions(depends_on=[servicenetworking]))
worker_range = gcp.compute.GlobalAddress("worker_range",
name="worker-pool-range",
purpose="VPC_PEERING",
address_type="INTERNAL",
prefix_length=16,
network=network.id)
worker_pool_conn = gcp.servicenetworking.Connection("worker_pool_conn",
network=network.id,
service="servicenetworking.googleapis.com",
reserved_peering_ranges=[worker_range&#46;name],
opts = pulumi.ResourceOptions(depends_on=[servicenetworking]))
pool = gcp.cloudbuild.WorkerPool("pool",
name="my-pool",
location="europe-west1",
worker_config={
"disk_size_gb": 100,
"machine_type": "e2-standard-4",
"no_external_ip": False,
},
network_config={
"peered_network": network.id,
"peered_network_ip_range": "/29",
},
opts = pulumi.ResourceOptions(depends_on=[worker_pool_conn]))
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Gcp = Pulumi.Gcp;
return await Deployment.RunAsync(() =>
{
var servicenetworking = new Gcp.Projects.Service("servicenetworking", new()
{
ServiceName = "servicenetworking.googleapis.com",
DisableOnDestroy = false,
});
var network = new Gcp.Compute.Network("network", new()
{
Name = "my-network",
AutoCreateSubnetworks = false,
}, new CustomResourceOptions
{
DependsOn =
{
servicenetworking,
},
});
var workerRange = new Gcp.Compute.GlobalAddress("worker_range", new()
{
Name = "worker-pool-range",
Purpose = "VPC_PEERING",
AddressType = "INTERNAL",
PrefixLength = 16,
Network = network.Id,
});
var workerPoolConn = new Gcp.ServiceNetworking.Connection("worker_pool_conn", new()
{
Network = network.Id,
Service = "servicenetworking.googleapis.com",
ReservedPeeringRanges = new[]
{
workerRange.Name,
},
}, new CustomResourceOptions
{
DependsOn =
{
servicenetworking,
},
});
var pool = new Gcp.CloudBuild.WorkerPool("pool", new()
{
Name = "my-pool",
Location = "europe-west1",
WorkerConfig = new Gcp.CloudBuild.Inputs.WorkerPoolWorkerConfigArgs
{
DiskSizeGb = 100,
MachineType = "e2-standard-4",
NoExternalIp = false,
},
NetworkConfig = new Gcp.CloudBuild.Inputs.WorkerPoolNetworkConfigArgs
{
PeeredNetwork = network.Id,
PeeredNetworkIpRange = "/29",
},
}, new CustomResourceOptions
{
DependsOn =
{
workerPoolConn,
},
});
});
package main
import (
"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/cloudbuild"
"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute"
"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/projects"
"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/servicenetworking"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
servicenetworking, err := projects.NewService(ctx, "servicenetworking", &projects.ServiceArgs{
Service: pulumi.String("servicenetworking.googleapis.com"),
DisableOnDestroy: pulumi.Bool(false),
})
if err != nil {
return err
}
network, err := compute.NewNetwork(ctx, "network", &compute.NetworkArgs{
Name: pulumi.String("my-network"),
AutoCreateSubnetworks: pulumi.Bool(false),
}, pulumi.DependsOn([]pulumi.Resource{
servicenetworking,
}))
if err != nil {
return err
}
workerRange, err := compute.NewGlobalAddress(ctx, "worker_range", &compute.GlobalAddressArgs{
Name: pulumi.String("worker-pool-range"),
Purpose: pulumi.String("VPC_PEERING"),
AddressType: pulumi.String("INTERNAL"),
PrefixLength: pulumi.Int(16),
Network: network.ID(),
})
if err != nil {
return err
}
workerPoolConn, err := servicenetworking.NewConnection(ctx, "worker_pool_conn", &servicenetworking.ConnectionArgs{
Network: network.ID(),
Service: pulumi.String("servicenetworking.googleapis.com"),
ReservedPeeringRanges: pulumi.StringArray{
workerRange.Name,
},
}, pulumi.DependsOn([]pulumi.Resource{
servicenetworking,
}))
if err != nil {
return err
}
_, err = cloudbuild.NewWorkerPool(ctx, "pool", &cloudbuild.WorkerPoolArgs{
Name: pulumi.String("my-pool"),
Location: pulumi.String("europe-west1"),
WorkerConfig: &cloudbuild.WorkerPoolWorkerConfigArgs{
DiskSizeGb: pulumi.Int(100),
MachineType: pulumi.String("e2-standard-4"),
NoExternalIp: pulumi.Bool(false),
},
NetworkConfig: &cloudbuild.WorkerPoolNetworkConfigArgs{
PeeredNetwork: network.ID(),
PeeredNetworkIpRange: pulumi.String("/29"),
},
}, pulumi.DependsOn([]pulumi.Resource{
workerPoolConn,
}))
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.projects.Service;
import com.pulumi.gcp.projects.ServiceArgs;
import com.pulumi.gcp.compute.Network;
import com.pulumi.gcp.compute.NetworkArgs;
import com.pulumi.gcp.compute.GlobalAddress;
import com.pulumi.gcp.compute.GlobalAddressArgs;
import com.pulumi.gcp.servicenetworking.Connection;
import com.pulumi.gcp.servicenetworking.ConnectionArgs;
import com.pulumi.gcp.cloudbuild.WorkerPool;
import com.pulumi.gcp.cloudbuild.WorkerPoolArgs;
import com.pulumi.gcp.cloudbuild.inputs.WorkerPoolWorkerConfigArgs;
import com.pulumi.gcp.cloudbuild.inputs.WorkerPoolNetworkConfigArgs;
import com.pulumi.resources.CustomResourceOptions;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var servicenetworking = new Service("servicenetworking", ServiceArgs.builder()
.service("servicenetworking.googleapis.com")
.disableOnDestroy(false)
.build());
var network = new Network("network", NetworkArgs.builder()
.name("my-network")
.autoCreateSubnetworks(false)
.build(), CustomResourceOptions.builder()
.dependsOn(servicenetworking)
.build());
var workerRange = new GlobalAddress("workerRange", GlobalAddressArgs.builder()
.name("worker-pool-range")
.purpose("VPC_PEERING")
.addressType("INTERNAL")
.prefixLength(16)
.network(network.id())
.build());
var workerPoolConn = new Connection("workerPoolConn", ConnectionArgs.builder()
.network(network.id())
.service("servicenetworking.googleapis.com")
.reservedPeeringRanges(workerRange.name())
.build(), CustomResourceOptions.builder()
.dependsOn(servicenetworking)
.build());
var pool = new WorkerPool("pool", WorkerPoolArgs.builder()
.name("my-pool")
.location("europe-west1")
.workerConfig(WorkerPoolWorkerConfigArgs.builder()
.diskSizeGb(100)
.machineType("e2-standard-4")
.noExternalIp(false)
.build())
.networkConfig(WorkerPoolNetworkConfigArgs.builder()
.peeredNetwork(network.id())
.peeredNetworkIpRange("/29")
.build())
.build(), CustomResourceOptions.builder()
.dependsOn(workerPoolConn)
.build());
}
}
resources:
servicenetworking:
type: gcp:projects:Service
properties:
service: servicenetworking.googleapis.com
disableOnDestroy: false
network:
type: gcp:compute:Network
properties:
name: my-network
autoCreateSubnetworks: false
options:
dependson:
- ${servicenetworking}
workerRange:
type: gcp:compute:GlobalAddress
name: worker_range
properties:
name: worker-pool-range
purpose: VPC_PEERING
addressType: INTERNAL
prefixLength: 16
network: ${network.id}
workerPoolConn:
type: gcp:servicenetworking:Connection
name: worker_pool_conn
properties:
network: ${network.id}
service: servicenetworking.googleapis.com
reservedPeeringRanges:
- ${workerRange.name}
options:
dependson:
- ${servicenetworking}
pool:
type: gcp:cloudbuild:WorkerPool
properties:
name: my-pool
location: europe-west1
workerConfig:
diskSizeGb: 100
machineType: e2-standard-4
noExternalIp: false
networkConfig:
peeredNetwork: ${network.id}
peeredNetworkIpRange: /29
options:
dependson:
- ${workerPoolConn}

Import

WorkerPool can be imported using any of these accepted formats:

  • projects/{{project}}/locations/{{location}}/workerPools/{{name}}

  • {{project}}/{{location}}/{{name}}

  • {{location}}/{{name}} When using the pulumi import command, WorkerPool can be imported using one of the formats above. For example:

$ pulumi import gcp:cloudbuild/workerPool:WorkerPool default projects/{{project}}/locations/{{location}}/workerPools/{{name}}
$ pulumi import gcp:cloudbuild/workerPool:WorkerPool default {{project}}/{{location}}/{{name}}
$ pulumi import gcp:cloudbuild/workerPool:WorkerPool default {{location}}/{{name}}

Constructors

Link copied to clipboard
constructor(annotations: Output<Map<String, String>>? = null, displayName: Output<String>? = null, location: Output<String>? = null, name: Output<String>? = null, networkConfig: Output<WorkerPoolNetworkConfigArgs>? = null, project: Output<String>? = null, workerConfig: Output<WorkerPoolWorkerConfigArgs>? = null)

Properties

Link copied to clipboard
val annotations: Output<Map<String, String>>? = null

User specified annotations. See https://google.aip.dev/128#annotations for more details such as format and size limitations. Note: This field is non-authoritative, and will only manage the annotations present in your configuration. Please refer to the field effective_annotations for all of the annotations present on the resource.

Link copied to clipboard
val displayName: Output<String>? = null

A user-specified, human-readable name for the WorkerPool. If provided, this value must be 1-63 characters.

Link copied to clipboard
val location: Output<String>? = null

The location for the resource

Link copied to clipboard
val name: Output<String>? = null

User-defined name of the WorkerPool.

Link copied to clipboard

Network configuration for the WorkerPool. Structure is documented below.

Link copied to clipboard
val project: Output<String>? = null

The project for the resource

Link copied to clipboard

Configuration to be used for a creating workers in the WorkerPool. Structure is documented below.

Functions

Link copied to clipboard
open override fun toJava(): WorkerPoolArgs