Skip to main content

Job Config

JobConfig

Environment-specific runtime configuration for a single application job.

Each JobConfig corresponds to one entry in the parent Application's spec.jobs list (matched by the <app-name>-<job-name> naming pattern) and provisions a Cloud Run Job with its container command, scheduling, retries, and resource limits. Environment-specific overrides let the same job differ per environment (e.g. a different schedule in staging vs production). SCHEDULED jobs additionally get a Cloud Scheduler trigger; BEFORE/AFTER jobs are wired to run relative to the sibling DeploymentConfig's service.

PropertyTypeDescription
apiVersionstringAPI schema version. Pins the manifest to a specific schema contract for backward-compatibility. Must be the constant lowops.manifests.v1.
kindstringResource kind discriminator. Identifies this document as a JobConfig so the engine routes it to the correct defaulter, validator, computer, and executor. Must be the constant JobConfig.
metadatamapClassification labels and graph linkage. Free-form key/value pairs used to classify the manifest. Certain reserved keys (e.g. name, project, environment, organization) are read by the engine to resolve this manifest's identity and its parent Project in the dependency graph, and to look up dependencies during execution.
specSpecDesired job configuration. The authoritative, user-authored specification for this job. See Spec.

Spec

User-provided job configuration.

The container specification, scheduling, retry/parallelism, and image version for the job. The engine resolves the container image and job type from the referencing Application; the fields here tune how the resulting Cloud Run Job runs.

PropertyTypeDescription
containerContainerSpecJob container specification. Required. Command, args, environment variables, and resource limits/requests for the job's container. The image itself is resolved from the parent Application's source (BuildDefinition/ExternalApplication); the command, args, env, and CPU/memory limits declared here are applied on top when the Cloud Run Job is provisioned. Presence is enforced by both a buf.validate required rule and the validator.
timeoutstringMaximum task execution duration. Per-task run-time budget as a duration string (e.g. 600s). Applied to the Cloud Run Job's task timeout only when set; when empty the platform default applies. Not defaulted by the engine.
maxRetriesint32Failed-task retry limit. Maximum number of times an individual failed task is retried. Applied to the Cloud Run Job only when greater than 0; otherwise the platform default applies.
parallelismint32Concurrent task count. Number of tasks that may execute in parallel. Applied to the Cloud Run Job only when greater than 0; otherwise the platform default (1) applies.
taskCountint32Total task count. Total number of tasks created per job execution. Applied to the Cloud Run Job only when greater than 0; otherwise the platform default (1) applies.
schedulestringCron schedule expression. Standard cron expression (e.g. 0 3 * * *) that drives a Cloud Scheduler trigger. REQUIRED for SCHEDULED jobs and must be empty for all other job types; the validator rejects a schedule on BEFORE, AFTER, or ON_DEMAND jobs and a missing schedule on SCHEDULED jobs.
timeZonestringCron schedule timezone. NOT YET IMPLEMENTED. Declared in the schema but currently ignored by the engine (the Cloud Scheduler trigger is created without a timezone, so schedules evaluate in the provider default of UTC). Intended future behavior: interpret schedule in this IANA timezone (e.g. America/New_York) for SCHEDULED jobs.
versionstringContainer image version tag. Required. The image tag deployed for this job revision. Applied as the container image tag and exposed to the container as the INFRASTREAM_APP_VERSION environment variable. Updated during CD promotions.

ContainerSpec

Core configuration block for defining a runtime container.

Overrides default container behavior from the base image, defining entrypoints, variables, and compute constraints. Translates directly to elements like resources and env within google_cloud_run_v2_service or Kubernetes specifications.

PropertyTypeDescription
enabledboolWhether this container is enabled. NOT YET IMPLEMENTED. Declared in the schema but currently ignored by the engine (no consumer reads it). Intended future behavior: allow toggling this container off without removing its definition.
commandlist of stringContainer entrypoint. Overrides the image entrypoint (maps to the container command). Applied to the provisioned Cloud Run service or Kubernetes container.
argslist of stringContainer arguments. Arguments passed to the entrypoint (maps to the container args).
envlist of EnvVariableDefinitionStatic environment variables. Literal name/value environment variables merged into the container's computed environment alongside variables injected via secrets and access control.
uidstringProcess user ID. NOT YET IMPLEMENTED. Declared in the schema but currently ignored by the engine (no consumer reads it). Intended future behavior: run the container process as this UID.
gidstringProcess group ID. NOT YET IMPLEMENTED. Declared in the schema but currently ignored by the engine (no consumer reads it). Intended future behavior: run the container process as this GID.
resourcesContainerResourcesCompute resource requests and limits. CPU/memory requests and limits applied to the container on the provisioned Cloud Run service or Kubernetes pod. See ContainerResources.

EnvVariableDefinition

Defines a static environment variable to be injected.

Appended to the environment variable array of the corresponding compute resource container definition.

PropertyTypeDescription
namestringThe environment variable name.
valuestringThe literal value assigned to the environment variable.

ContainerResources

Defines compute requirements and constraints for a container.

Maps to the resource requests and limits in Kubernetes Pods or Cloud Run service configurations to ensure adequate scaling and scheduling semantics.

PropertyTypeDescription
requestsContainerResourceThe minimum CPU/memory guaranteed to the container (maps to resource requests).
limitsContainerResourceThe maximum CPU/memory the container may consume (maps to resource limits).

ContainerResource

Single resource boundary definition.

Translates to either requests or limits for CPU or memory within a container specification.

PropertyTypeDescription
cpustringCPU quantity for this boundary, in Kubernetes/Cloud Run notation (e.g. "500m", "1", "2").
memorystringMemory quantity for this boundary, in Kubernetes/Cloud Run notation (e.g. "256Mi", "1Gi").