
Google Cloud CustomJob
CertifiedRun a Vertex AI custom job
Google Cloud CustomJob
Run a Vertex AI custom job
Starts a custom training job in Vertex AI with the provided spec. Can stream logs, wait for completion, and optionally delete the job afterward.
type: io.kestra.plugin.gcp.vertexai.CustomJobExamples
id: gcp_vertexai_custom_job
namespace: company.team
tasks:
- id: custom_job
type: io.kestra.plugin.gcp.vertexai.CustomJob
projectId: my-gcp-project
region: europe-west1
displayName: Start Custom Job
spec:
workerPoolSpecs:
- containerSpec:
imageUri: gcr.io/my-gcp-project/my-dir/my-image:latest
machineSpec:
machineType: n1-standard-4
replicaCount: 1
Properties
displayName *Requiredstring
Display name
Human-friendly name for the job
region *Requiredstring
Region
Vertex AI region for the job endpoint
spec *RequiredNon-dynamic
Job spec
CustomJobSpec defining worker pools, container/package, scheduling, etc.
io.kestra.plugin.gcp.vertexai.models.CustomJobSpec
1Worker pool specs
At least one worker pool; define machine type, replica count, and container/package.
io.kestra.plugin.gcp.vertexai.models.WorkerPoolSpec
The custom container task
io.kestra.plugin.gcp.vertexai.models.ContainerSpec
The URI of a container image in the Container Registry that is to be run on each worker replica
Must be on google container registry, example: gcr.io/{{ project }}/{{ dir }}/{{ image }}: {{ tag }}
The arguments to be passed when starting the container
The command to be invoked when the container is started
It overrides the entrypoint instruction in Dockerfile when provided.
Environment variables to be passed to the container
Maximum limit is 100.
The specification of a single machine
io.kestra.plugin.gcp.vertexai.models.MachineSpec
The type of the machine
The number of accelerators to attach to the machine
ACCELERATOR_TYPE_UNSPECIFIEDNVIDIA_TESLA_K80NVIDIA_TESLA_P100NVIDIA_TESLA_V100NVIDIA_TESLA_P4NVIDIA_TESLA_T4NVIDIA_TESLA_A100NVIDIA_A100_80GBNVIDIA_L4NVIDIA_H100_80GBNVIDIA_H100_MEGA_80GBNVIDIA_H200_141GBNVIDIA_B200NVIDIA_GB200NVIDIA_RTX_PRO_6000TPU_V2TPU_V3TPU_V4_PODTPU_V5_LITEPODUNRECOGNIZEDThe type of accelerator(s) that may be attached to the machine
The specification of the disk
io.kestra.plugin.gcp.vertexai.models.DiscSpec
100Size in GB of the boot disk
PD_SSDPD_SSDPD_STANDARDType of the boot disk
The python package specs
io.kestra.plugin.gcp.vertexai.models.PythonPackageSpec
The Google Cloud Storage location of the Python package files which are the training program and its dependent packages
The maximum number of package URIs is 100.
Environment variables to be passed to the python module
Maximum limit is 100.
The Google Cloud Storage location of the Python package files which are the training program and its dependent packages
The maximum number of package URIs is 100.
The specification of the disk
Base output directory
GCS location for job outputs
io.kestra.plugin.gcp.vertexai.models.GcsDestination
Google Cloud Storage URI to output directory
If the uri doesn't end with '/', a '/' will be automatically appended. The directory is created if it doesn't exist.
Enable web access
Enable interactive shell access to training containers
VPC network
Full network name (projects/{project}/global/networks/{network}); requires Vertex AI VPC peering
Scheduling
Optional scheduling options (timeout, restart, etc.)
io.kestra.plugin.gcp.vertexai.models.Scheduling
Restarts the entire CustomJob if a worker gets restarted
This feature can be used by distributed training jobs that are not resilient to workers leaving and joining a job.
The maximum job running time. The default is 7 days
Service account
Run-as service account; submitters need act-as on this account. Defaults to Vertex AI Custom Code Service Agent.
Tensorboard
Tensorboard resource for logs, format projects/{project}/locations/{location}/tensorboards/{tensorboard}
delete booleanstring
trueDelete on completion
If true (default), deletes the job after completion
impersonatedServiceAccount string
The GCP service account to impersonate
pluginDefaultsRef Non-dynamicstring
Reference (ref) of the pluginDefaults to apply to this task.
projectId string
The GCP project ID
scopes array
["https://www.googleapis.com/auth/cloud-platform"]The GCP scopes to be used
serviceAccount string
The GCP service account
wait booleanstring
trueWait for completion
If true (default), waits for job end and captures status/logs
Outputs
createDate *Requiredstring
date-timeTime when the CustomJob was created
endDate *Requiredstring
date-timeTime when the CustomJob was ended
name *Requiredstring
Resource name of a CustomJob
state *Requiredstring
JOB_STATE_UNSPECIFIEDJOB_STATE_QUEUEDJOB_STATE_PENDINGJOB_STATE_RUNNINGJOB_STATE_SUCCEEDEDJOB_STATE_FAILEDJOB_STATE_CANCELLINGJOB_STATE_CANCELLEDJOB_STATE_PAUSEDJOB_STATE_EXPIREDJOB_STATE_UPDATINGJOB_STATE_PARTIALLY_SUCCEEDEDUNRECOGNIZEDThe detailed state of the CustomJob
updateDate *Requiredstring
date-timeTime when the CustomJob was updated