Runway on Kubernetes Service Configuration Schema

Type: object

Schema for validating Runway on Kubernetes Service values.yaml files

No Additional Properties

Type: string

API version for the Runway service configuration

Must match regular expression: ^runway/v[1-9][0-9]*$

Type: enum (of string)

Resource kind, must be RunwayKubernetesService

Must be one of:

  • "RunwayKubernetesService"

Type: object
No Additional Properties

Type: string

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

Type: object

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 Properties

All properties whose name matches the following regular expression must respect the following conditions

Property name regular expression: ^[a-zA-Z0-9._/-]+$
Type: string
Must match regular expression: ^(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])?$

Must be at most 63 characters long

Type: object
No Additional Properties

Type: string

Container image with {{ .AppVersion }} tag placeholder

Must match regular expression: ^.*\{\{ \.AppVersion \}\}$

Type: array of string

Command to run in the container

Must contain a minimum of 1 items

No Additional Items

Each item of this array must be:

Type: string

Type: object

Environment variables for the service

No Additional Properties

All properties whose name matches the following regular expression must respect the following conditions

Property name regular expression: ^[A-Z_][A-Z0-9_]*$
Type: string

Type: integer

Port exposed by the container

Value must be greater or equal to 1 and lesser or equal to 65535

Type: enum (of string) Default: "http"

Protocol used by the service (http or grpc)

Must be one of:

  • "http"
  • "grpc"

Type: object
No Additional Properties

Type: integer

Minimum number of pod instances

Value must be greater or equal to 0

Type: integer

Maximum number of pod instances

Value must be greater or equal to 1

Type: integer

Target CPU utilization percentage for autoscaling

Value must be greater or equal to 1 and lesser or equal to 100

Type: integer

Maximum number of pod instances that can be evicted at a time

Value must be greater or equal to 1

Type: object
No Additional Properties

Type: array

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 Items

Each item of this array must be:


Type: string

Prometheus scrape target in format host:port

Must match regular expression: ^[^:]+:[0-9]+$
Type: object
No Additional Properties

Type: string

Prometheus scrape target in format host:port

Must match regular expression: ^[^:]+:[0-9]+$

Type: string

HTTP path to scrape (ServiceMonitor only)

Must match regular expression: ^/.*

Type: string

Scrape interval (ServiceMonitor only, e.g. '30s')

Must match regular expression: ^[0-9]+(ms|s|m|h)$

Type: string

Scrape timeout (ServiceMonitor only, e.g. '10s')

Must match regular expression: ^[0-9]+(ms|s|m|h)$

Type: enum (of string)

URL scheme to use for scraping (ServiceMonitor only)

Must be one of:

  • "http"
  • "https"

Type: boolean

Honor labels from the scraped target (ServiceMonitor only)

Type: object

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 Properties

Type: boolean Default: true

Create 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.

Type: object

Resource requests and limits for the container

No Additional Properties

Type: object
No Additional Properties

Type: string

CPU resource quantity (e.g., '100m', '0.5', '2')

Must match regular expression: ^[0-9]+(\.[0-9]+)?$|^[0-9]+m$

Type: string

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)?$

Type: string

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)?$

Type: object

Startup probe configuration

No Additional Properties

Type: string

HTTP path for the probe (must start with /)

Must match regular expression: ^/.*

Type: integer

Number of seconds after which the probe times out

Value must be greater or equal to 1

Type: integer

How often (in seconds) to perform the probe

Value must be greater or equal to 1

Type: integer

Minimum consecutive failures for the probe to be considered failed

Value must be greater or equal to 1

Type: integer Default: 1

Minimum consecutive successes for the probe to be considered successful

Value must be greater or equal to 1

Type: integer

Number of seconds after container start before probe is initiated

Value must be greater or equal to 0

Type: object

Liveness probe configuration

Type: object

Type: object Default: 2

Type: object

Readiness probe configuration

Same definition as startup_probe

Type: object

Load balancing configuration (defaults to external if not specified)

No Additional Properties

Type: object

External (public) load balancer configuration

No Additional Properties

Type: boolean

Enable the load balancer

Type: object

Internal (private) load balancer configuration

Same definition as external_load_balancer

Type: object

Cloudflare configuration

No Additional Properties

Type: boolean Default: true

Create a Cloudflare zone with backend traffic restricted to Cloudflare IPs and Authenticated Origin Pulls enabled (default: true)

Type: object

GCP load balancer access logging configuration (rendered on the GCPBackendPolicy). Defaults mirror GCP's implicit defaults.

No Additional Properties

Type: boolean Default: true

Enable HTTP access logging on the load balancer (default: true)

Type: integer Default: 1000000

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

Type: enum (of string)

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).

Must be one of:

  • "CUSTOM"
  • "EXCLUDE_ALL_OPTIONAL"

Type: array of string

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 Items

Each item of this array must be:

Type: array of object

List of ConfigMap volumes to mount in the container

No Additional Items

Each item of this array must be:

Type: object
No Additional Properties

Type: string

Name of the ConfigMap

Type: string

Mount path for the ConfigMap volume (must start with /)

Must match regular expression: ^/.*

Type: array of object

List of init containers to run before the main container

No Additional Items

Each item of this array must be:

Type: object
No Additional Properties

Type: string

Name of the init container

Must match regular expression: ^[a-z]([-a-z0-9]*[a-z0-9])?$

Type: string

Container image for the init container

Type: array of string

Arguments to pass to the container

No Additional Items

Each item of this array must be:

Type: enum (of string) Default: "Always"

Restart policy for the init container (Always for sidecars)

Must be one of:

  • "Always"
  • "Never"
  • "OnFailure"

Type: object

Resource requests and limits for the init container

No Additional Properties

Type: object

Startup probe configuration

Type: object

Type: integer

Port to probe

Value must be greater or equal to 1 and lesser or equal to 65535

Type: object

Deployment strategy configuration

No Additional Properties

Type: enum (of string) Default: "RollingUpdate"

Type of deployment strategy

Must be one of:

  • "RollingUpdate"
  • "Recreate"


Maximum number of pods that can be unavailable during a rolling update (integer or percentage string e.g. '25%')

Type: integer

Value must be greater or equal to 0

Type: string
Must match regular expression: ^[0-9]+%$


Maximum number of pods that can be scheduled above the desired count during a rolling update (integer or percentage string e.g. '25%')

Type: integer

Value must be greater or equal to 0

Type: string
Must match regular expression: ^[0-9]+%$

Type: object

Deployment-specific configuration (not part of the service specification)

No Additional Properties

Type: object

Ingress configuration options

No Additional Properties

Type: boolean

Enable Ingress resource creation. When enabled, tlsSecretName and at least one host must be provided.

Type: string

Name of the Kubernetes secret containing the TLS certificate. Required when Ingress is enabled.

Type: string

Name of the ingress class to use

Type: object

Map of annotations for the ingress object

No Additional Properties

All properties whose name matches the following regular expression must respect the following conditions

Property name regular expression: ^[a-zA-Z0-9._/-]+$
Type: string

Type: string Default: "/"

Default path prefix for all hosts

Type: enum (of string) Default: "Prefix"

Default path type for all hosts

Must be one of:

  • "Prefix"
  • "Exact"
  • "ImplementationSpecific"

Type: array of object

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 Items

Each item of this array must be:

Type: object

Host configuration with optional per-host path settings

No Additional Properties

Type: stringFormat: hostname

The DNS hostname

Type: string Default: "/"

Path prefix for this specific host (overrides default)

Type: enum (of string) Default: "Prefix"

Path type for this specific host (overrides default)

Must be one of:

  • "Prefix"
  • "Exact"
  • "ImplementationSpecific"

Type: object

HTTPRoute configuration for Gateway API

No Additional Properties

Type: boolean

Enable HTTPRoute resource creation

Type: string

Name of the Gateway to attach to

Type: string

Namespace of the Gateway to attach to

Type: object

Map of annotations for the HTTPRoute object

No Additional Properties

All properties whose name matches the following regular expression must respect the following conditions

Property name regular expression: ^[a-zA-Z0-9._/-]+$
Type: string