Deployment Config
DeploymentConfig
Defines the environment-specific runtime configuration for an application.
Provides overrides for resource limits, environment variables, health checks, and volume mounts, allowing a common Application manifest to be tuned for environments like staging or production when deployed to Cloud Run or GKE.
| Property | Type | Description |
|---|---|---|
| apiVersion | string | API schema version. Pins the manifest to a specific schema contract for backward-compatibility. Must be the constant lowops.manifests.v1. |
| kind | string | Resource kind discriminator. Identifies this document as a DeploymentConfig so the engine routes it to the correct defaulter, validator, computer, and executor. Must be the constant DeploymentConfig. |
| metadata | map | Classification labels and graph linkage. Free-form key/value pairs used to classify the manifest. Certain reserved keys (e.g. name, project) are read by the engine to resolve this manifest's identity and its parent Project in the dependency graph. |
| spec | Spec | Desired deployment configuration. The authoritative, user-authored specification for this deployment config. See Spec. |
BucketMountsEntry
| Property | Type | Description |
|---|---|---|
| key | string | |
| value | VolumeMountBucketRef |
EventArcNotificationsEntry
| Property | Type | Description |
|---|---|---|
| key | string | |
| value | string |
PortsEntry
| Property | Type | Description |
|---|---|---|
| key | int64 | |
| value | string |
VolumeMountsEntry
| Property | Type | Description |
|---|---|---|
| key | string | |
| value | ContainerVolumeMount |
Spec
User-provided deployment overrides.
Environment-specific configuration layered on top of the shared Application definition: container overrides, scaling bounds, exposed ports, health probes, volume mounts, and request/shutdown timeouts. Lets one application be tuned per environment (e.g. staging vs production).
| Property | Type | Description |
|---|---|---|
| description | string | Human-readable description of this deployment configuration. Optional free text describing the role of this config. Propagated onto the provisioned compute resource's description field (e.g. the Cloud Run service description), and used as context by AI assistants when reasoning about the manifest. |
| deleteBeforeCreate | bool | Destroy-before-create deployment strategy. NOT YET IMPLEMENTED. Declared in the schema but currently ignored by the engine (no executor reads it); rolling updates are always performed. Intended future behavior: when true, tear down the existing revision before creating the new one instead of performing a rolling update. |
| stateful | bool | Persistent-storage hint. NOT YET IMPLEMENTED. Declared in the schema but currently ignored by the engine (no executor reads it). Intended future behavior: signal that the application needs durable, stateful storage so the platform provisions persistent volumes. For stateful VM workloads, use the VirtualMachine manifest's stateful block instead. |
| container | ContainerSpec | Main container overrides. Environment-specific overrides for the primary application container: command, args, environment variables, and resource limits/requests. Merged over the container definition resolved from the application's source BuildDefinition/ExternalApplication. |
| ports | list of PortsEntry | Exposed ports and their protocols. Map of port number to protocol (http, grpc, or tcp). Each entry produces a backend service endpoint and service-mesh route so traffic can reach the container on that port. Port numbers are validated to be within 1-65535. |
| health | Health | Health probe settings for this deployment. See Health. When unset, the platform applies its default probing behavior. |
| volumes | list of VolumesEntry | Volume mounts for the container. Map of in-container mount path to volume source. Each entry mounts an abstract storage unit (e.g. a bucket-backed volume) into the container filesystem. Mount paths under /tmp are reserved and rejected by validation. |
| scaling | ScalingConfig | Autoscaling bounds for this deployment. See ScalingConfig. Sets the min/max instance count applied to the underlying autoscaler. |
| version | string | Application version tag. Required. The image tag deployed for this revision and the value exposed to the container as the INFRASTREAM_APP_VERSION environment variable. Drives which built image is rolled out. |
| requestTimeout | int64 | Per-request timeout, in seconds. Maximum time a single request may run before being terminated. Cloud Run: maps to RevisionTemplate.timeout. Kubernetes/Compute: maps to the backend service timeout. Only applied when greater than 0; when unset each platform default applies (e.g. Cloud Run 300s). Must be between 0 and 3600. |
| terminationGracePeriodSeconds | int64 | Graceful shutdown period, in seconds. Time to wait after SIGTERM before forcibly killing the container. Cloud Run: service-level termination grace period. Kubernetes: Pod.spec.terminationGracePeriodSeconds. Compute: injected as the TERMINATION_GRACE_PERIOD_SECONDS env var. When unset (0), each platform default applies. Must be between 0 and 3600. |
Health
Container health probes.
Startup and liveness probe definitions used to gate deployment and detect hung containers.
| Property | Type | Description |
|---|---|---|
| startup | HostHealthConfig | Startup probe configuration. NOT YET WIRED. Present in the schema but not currently read by the executor; the container's startup probe is derived from liveness instead. Reserved for a distinct startup probe in the future. |
| liveness | HostHealthConfig | Liveness probe configuration. Protocol, port, path, and timing/threshold settings for the container's health probe. Drives both the startup and liveness probe blocks on the provisioned compute resource. |
PortsEntry
| Property | Type | Description |
|---|---|---|
| key | int64 | |
| value | string |
ScalingConfig
Instance autoscaling bounds.
Lower and upper limits on the number of running instances, balancing latency against cost. Applied to the underlying autoscaler (e.g. Cloud Run min/max instances).
| Property | Type | Description |
|---|---|---|
| min | int64 | Minimum number of instances to keep warm. Floor for the autoscaler. Only applied when greater than 0; a value of 0 lets the platform scale to zero. |
| max | int64 | Maximum number of instances to scale out to. Ceiling for the autoscaler. Only applied when greater than 0. |
VolumesEntry
| Property | Type | Description |
|---|---|---|
| key | string | |
| value | ContainerVolumeMount |
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.
| Property | Type | Description |
|---|---|---|
| enabled | bool | Whether 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. |
| command | list of string | Container entrypoint. Overrides the image entrypoint (maps to the container command). Applied to the provisioned Cloud Run service or Kubernetes container. |
| args | list of string | Container arguments. Arguments passed to the entrypoint (maps to the container args). |
| env | list of EnvVariableDefinition | Static environment variables. Literal name/value environment variables merged into the container's computed environment alongside variables injected via secrets and access control. |
| uid | string | Process 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. |
| gid | string | Process 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. |
| resources | ContainerResources | Compute resource requests and limits. CPU/memory requests and limits applied to the container on the provisioned Cloud Run service or Kubernetes pod. See ContainerResources. |
VolumeMountBucketRef
References an external bucket for volume mounting.
Indicates Cloud Storage FUSE parameters and IAM permissions needed to attach the bucket.
| Property | Type | Description |
|---|---|---|
| name | string | Source bucket name. Name of the Bucket manifest attached to the container via Cloud Storage FUSE. Resolved by the deployment config computer into the computed bucket-mount entry. |
| path | string | In-container mount path. Filesystem path at which the bucket is mounted inside the container. |
| canWrite | bool | Grant write access. When true, the mount is read-write and the container's service account is granted object-write permission on the bucket; otherwise the mount is read-only. |
HostHealthConfig
Configuration for uptime and health checks on host endpoints.
Translates into google_compute_health_check and backend service parameters, driving routing decisions within GCP load balancers.
| Property | Type | Description |
|---|---|---|
| protocol | string | Probe protocol. The protocol the health check uses to reach the endpoint: one of http, http2, https, grpc, or tcp. Drives both the container startup/liveness probes (Cloud Run, GKE) and the compute backend health check for VMs. |
| port | int64 | Probe port. The TCP port the health check targets on the workload. |
| checkIntervalSec | int64 | Check interval, in seconds. How often the health check runs. Defaulted to 30 by the ingress defaulter when the probe is generated automatically. |
| timeoutSec | int64 | Probe timeout, in seconds. How long to wait for a single probe response before treating it as a failure. The ingress defaulter sets this to 10 when generating probes automatically. |
| healthyThreshold | int64 | Healthy threshold. The number of consecutive successful probes required to mark the endpoint healthy. Defaulted to 1 by the ingress defaulter. |
| unhealthyThreshold | int64 | Unhealthy threshold. The number of consecutive failed probes required to mark the endpoint unhealthy. Defaulted to 2 by the ingress defaulter. |
| enableLogs | bool | Enable health-check logging. NOT YET IMPLEMENTED. Declared in the schema but currently ignored by the engine (no consumer reads it). Intended future behavior: enable request/response logging on the generated google_compute_health_check. |
| path | string | Probe request path. The HTTP request path for HTTP-family probes. Defaults to /. Used as the request path on the container probe and the compute backend health check. |
ContainerVolumeMount
Maps generated files to a container volume.
Specifies the layout of files to be mounted, typically corresponding to config maps or secrets in K8s, or files written in Cloud Run.
| Property | Type | Description |
|---|---|---|
| files | list of FilesEntry | Files to materialize in the volume. Map of relative file path to its synthesized contents; each entry becomes a file written into the mounted volume. See VolumeMountFile. |
FilesEntry
| Property | Type | Description |
|---|---|---|
| key | string | |
| value | VolumeMountFile |
EnvVariableDefinition
Defines a static environment variable to be injected.
Appended to the environment variable array of the corresponding compute resource container definition.
| Property | Type | Description |
|---|---|---|
| name | string | The environment variable name. |
| value | string | The 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.
| Property | Type | Description |
|---|---|---|
| requests | ContainerResource | The minimum CPU/memory guaranteed to the container (maps to resource requests). |
| limits | ContainerResource | The 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.
| Property | Type | Description |
|---|---|---|
| cpu | string | CPU quantity for this boundary, in Kubernetes/Cloud Run notation (e.g. "500m", "1", "2"). |
| memory | string | Memory quantity for this boundary, in Kubernetes/Cloud Run notation (e.g. "256Mi", "1Gi"). |
VolumeMountFile
Defines a synthesized file content within a volume mount.
Handled by startup scripts to create physical files on disk with the necessary text or binary payloads.
| Property | Type | Description |
|---|---|---|
| mimeType | string | MIME type of the file. Content type recorded for the synthesized file; defaulted by the deployment config computer when left empty. Carried into the computed volume-mount file entry. |
| content | string | File contents. The literal payload written to the file at the mount path. Interpreted as base64 when base64_encoded is set, otherwise as plain text. |
| base64Encoded | bool | Content is base64-encoded. When true, content is decoded from base64 before being written, allowing binary files. Carried into the computed volume-mount file entry. |