Google Cloud Create

Google Cloud Create

Certified

Create a Compute Engine instance

Creates a new virtual machine instance on Google Compute Engine, with an optional startup script, network tags, and custom metadata. By default, an ephemeral external IP is attached to the instance's default network interface.

yaml
type: io.kestra.plugin.gcp.compute.Create

Create a VM instance and then stop it.

yaml
id: compute_engine_create
namespace: company.team

tasks:
  - id: create_instance
    type: io.kestra.plugin.gcp.compute.Create
    serviceAccount: "{{ secret('GCP_SERVICE_ACCOUNT_KEY') }}"
    projectId: "{{ secret('GCP_PROJECT_ID') }}"
    zone: "us-central1-a"
    instanceName: "kestra-job-{{ execution.id }}"
    machineType: "n1-standard-2"
    sourceImage: "projects/debian-cloud/global/images/family/debian-11"
    startupScript: "apt-get update && apt-get install -y python3"
    waitUntilRunning: "true"

  - id: stop_instance
    type: io.kestra.plugin.gcp.compute.Stop
    serviceAccount: "{{ secret('GCP_SERVICE_ACCOUNT_KEY') }}"
    projectId: "{{ secret('GCP_PROJECT_ID') }}"
    zone: "us-central1-a"
    instanceName: "{{ outputs.create_instance.instanceName }}"
Properties

The name of the Compute Engine instance

The machine type to use for the instance

e.g. n1-standard-1.

The boot disk source image

e.g. projects/debian-cloud/global/images/family/debian-11.

The zone where the instance is located

e.g. us-central1-a.

The boot disk size, in GB

Must be at least 10GB, the minimum GCP allows for most public images.

The boot disk type

e.g. pd-standard, pd-ssd.

The GCP service account to impersonate

Custom metadata key-value pairs to attach to the instance

The network to attach the instance to

e.g. global/networks/my-network. When neither networkName nor subnetworkName is set, the project's default network is used. On projects that use a custom subnet-mode network, leave this unset and set subnetworkName instead so the network is inferred from the subnetwork.

Reference (ref) of the pluginDefaults to apply to this task.

Defaultfalse

Whether the instance is preemptible

Default: false.

The GCP project ID

SubTypestring
Default["https://www.googleapis.com/auth/cloud-platform"]

The GCP scopes to be used

The GCP service account

A startup script to run when the instance boots

Stored as the startup-script instance metadata entry.

The subnetwork to attach the instance to

e.g. regions/us-central1/subnetworks/my-subnetwork. Required on projects whose network is in custom subnet mode.

SubTypestring

Network tags to apply to the instance

DefaultPT10M

The maximum duration to wait for the operation to complete

Default: PT10M. Hitting this timeout fails the task but does not cancel the in-flight GCP operation.

Defaulttrue

Whether to wait for the instance to reach the RUNNING state before completing the task

Default: true.

The instance's external (public) IP address, if any

Typically null once an instance is stopped, since ephemeral external IPs are released on stop.

The unique GCP instance ID

The name of the instance

The instance's internal (private) IP address

The instance status after the operation

e.g. PROVISIONING, STAGING, RUNNING, STOPPING, TERMINATED.