Schema for validating Runway on Kubernetes Service values.yaml files
No Additional PropertiesAPI version for the Runway service configuration
Must match regular expression:^runway/v[1-9][0-9]*$
Resource kind, must be RunwayKubernetesService
Name of the service following Kubernetes naming conventions
Must match regular expression:^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
Must be at most 53 characters long
Custom labels applied to all generated Kubernetes resources. Environment-agnostic; merged with, and overridden by, per-environment labels in the RunwayKubernetesDeployment overlay. Keys allow alphanumerics and '._/-' (matching the v2 common.labels definition); the stricter Kubernetes label-key rules are enforced by the API server at apply time. Values are validated against the Kubernetes label-value format.
No Additional PropertiesAll properties whose name matches the following regular expression must respect the following conditions
Property name regular expression:^[a-zA-Z0-9._/-]+$
^(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])?$
Must be at most 63 characters long
Container image with {{ .AppVersion }} tag placeholder
Must match regular expression:^.*\{\{ \.AppVersion \}\}$
Command to run in the container
Must contain a minimum of 1 items
Environment variables for the service
No Additional PropertiesAll properties whose name matches the following regular expression must respect the following conditions
Property name regular expression:^[A-Z_][A-Z0-9_]*$
Port exposed by the container
Value must be greater or equal to 1 and lesser or equal to 65535
Protocol used by the service (http or grpc)
Minimum number of pod instances
Value must be greater or equal to 0
Maximum number of pod instances
Value must be greater or equal to 1
Target CPU utilization percentage for autoscaling
Value must be greater or equal to 1 and lesser or equal to 100
List of Prometheus scrape targets. Entries may be a 'host:port' string, or an object with a 'target' key plus optional ServiceMonitor tunables.
Must contain a minimum of 1 items
All items must be unique
No Additional ItemsPrometheus scrape target in format host:port
Must match regular expression:^[^:]+:[0-9]+$
Prometheus scrape target in format host:port
Must match regular expression:^[^:]+:[0-9]+$
HTTP path to scrape (ServiceMonitor only)
Must match regular expression:^/.*
Scrape interval (ServiceMonitor only, e.g. '30s')
Must match regular expression:^[0-9]+(ms|s|m|h)$
Scrape timeout (ServiceMonitor only, e.g. '10s')
Must match regular expression:^[0-9]+(ms|s|m|h)$
URL scheme to use for scraping (ServiceMonitor only)
Honor labels from the scraped target (ServiceMonitor only)
When enabled, a ServiceMonitor (monitoring.coreos.com/v1) is created alongside the metrics Service, and the prometheus.io/scrape annotation on the metrics Service is set to 'false' to prevent double-scraping by annotation-based collectors.
No Additional PropertiesCreate a ServiceMonitor for Prometheus Operator scraping. Enabled by default when scrape_targets are set; set to false to opt out and fall back to annotation-based scraping.
Resource requests and limits for the container
No Additional PropertiesCPU resource quantity (e.g., '100m', '0.5', '2')
Must match regular expression:^[0-9]+(\.[0-9]+)?$|^[0-9]+m$
Memory resource quantity (e.g., '128Mi', '1Gi')
Must match regular expression:^[0-9]+(\.[0-9]+)?(E|P|T|G|M|K|Ei|Pi|Ti|Gi|Mi|Ki)?$
Ephemeral storage resource quantity (e.g., '512Mi', '1Gi')
Must match regular expression:^[0-9]+(\.[0-9]+)?(E|P|T|G|M|K|Ei|Pi|Ti|Gi|Mi|Ki)?$
Startup probe configuration
No Additional PropertiesHTTP path for the probe (must start with /)
Must match regular expression:^/.*
Number of seconds after which the probe times out
Value must be greater or equal to 1
How often (in seconds) to perform the probe
Value must be greater or equal to 1
Minimum consecutive failures for the probe to be considered failed
Value must be greater or equal to 1
Minimum consecutive successes for the probe to be considered successful
Value must be greater or equal to 1
Number of seconds after container start before probe is initiated
Value must be greater or equal to 0
Liveness probe configuration
Load balancing configuration (defaults to external if not specified)
No Additional PropertiesExternal (public) load balancer configuration
No Additional PropertiesEnable the load balancer
Internal (private) load balancer configuration
Same definition as external_load_balancerCloudflare configuration
No Additional PropertiesCreate a Cloudflare zone with backend traffic restricted to Cloudflare IPs and Authenticated Origin Pulls enabled (default: true)
GCP load balancer access logging configuration (rendered on the GCPBackendPolicy). Defaults mirror GCP's implicit defaults.
No Additional PropertiesEnable HTTP access logging on the load balancer (default: true)
Fraction of requests to log, as an integer in [0, 1000000]. GCP divides by 1,000,000 to get the sampling ratio. For example, 1000000 logs 100% of requests, 100000 logs 10%. Default: 1000000.
Value must be greater or equal to 0 and lesser or equal to 1000000
Controls whether optional log fields are included. Set to CUSTOM and provide optionalfields to opt into specific fields, or EXCLUDEALL_OPTIONAL to explicitly exclude all optional fields. If unset, GCP's default applies (no optional fields).
List of optional log fields to include (e.g. 'tls.cipher', 'orcaloadreport.cpuutilization'). Only meaningful when optionalmode is CUSTOM.
All items must be unique
No Additional ItemsList of ConfigMap volumes to mount in the container
No Additional ItemsName of the ConfigMap
Mount path for the ConfigMap volume (must start with /)
Must match regular expression:^/.*
List of init containers to run before the main container
No Additional ItemsName of the init container
Must match regular expression:^[a-z]([-a-z0-9]*[a-z0-9])?$
Container image for the init container
Arguments to pass to the container
No Additional ItemsRestart policy for the init container (Always for sidecars)
Resource requests and limits for the init container
No Additional PropertiesStartup probe configuration
Port to probe
Value must be greater or equal to 1 and lesser or equal to 65535
Deployment strategy configuration
No Additional PropertiesType of deployment strategy
Maximum number of pods that can be scheduled above the desired count during a rolling update (integer or percentage string e.g. '25%')
Value must be greater or equal to 0
^[0-9]+%$
Deployment-specific configuration (not part of the service specification)
No Additional PropertiesIngress configuration options
No Additional PropertiesEnable Ingress resource creation. When enabled, tlsSecretName and at least one host must be provided.
Name of the Kubernetes secret containing the TLS certificate. Required when Ingress is enabled.
Name of the ingress class to use
Map of annotations for the ingress object
No Additional PropertiesAll properties whose name matches the following regular expression must respect the following conditions
Property name regular expression:^[a-zA-Z0-9._/-]+$
Default path prefix for all hosts
Default path type for all hosts
List of hostnames for the ingress rules. Exactly one host is required when Ingress is enabled.
Must contain a minimum of 1 items
Must contain a maximum of 1 items
All items must be unique
No Additional ItemsHost configuration with optional per-host path settings
No Additional PropertiesThe DNS hostname
Path prefix for this specific host (overrides default)
Path type for this specific host (overrides default)
HTTPRoute configuration for Gateway API
No Additional PropertiesEnable HTTPRoute resource creation
Name of the Gateway to attach to
Namespace of the Gateway to attach to
Map of annotations for the HTTPRoute object
No Additional PropertiesAll properties whose name matches the following regular expression must respect the following conditions
Property name regular expression:^[a-zA-Z0-9._/-]+$