Skip to main content
The following is a full reference for all the fields that can be set for a web service in porter.yaml.
  • autoscaling - the autoscaling configuration for the service.
    • enabled - whether autoscaling is enabled or not.
    • minInstances - the minimum number of instances to run.
    • maxInstances - the maximum number of instances to run.
    • cpuThresholdPercent - the CPU threshold percentage to trigger autoscaling at.
    • memoryThresholdPercent - the memory threshold percentage to trigger autoscaling at.
  • domains - the list of custom domains for the service, if the service is exposed publicly.
    • name - the name of the domain.
  • private - whether the service is private or not.
  • serviceMeshEnabled - If ‘true’, enables enhanced communication between your services with improved performance, reliability, and monitoring. Recommended for applications with multiple services that communicate with each other, especially those using gRPC or WebSockets.
  • ingressAnnotations - the ingress annotations to apply for the service.
  • pathRouting - the list of URL paths to service port mappings, if path-based routing is enabled. Note that a path must be specified for the default port (set in services.port). If routing to a port on a different service, the port must be exposed on that service (either as the default port or through a path routing rule).
    • path - the URL path.
    • port - the port to route to.
    • appName - (optional) the name of the application to route to (as it appears in the dashboard). Defaults to the application of the current service.
    • serviceName - (optional) the name of the service to route to (as it appears in the dashboard). Defaults to the current service. Must be specified if appName is set.
  • pathRoutingConfig - optional configuration options for path-based routing.
    • rewriteMode - mode for rewriting URL paths. If the path set in pathRouting is /api/v1, then api/v1/subpath will be rewritten as follows:
      • rewrite-all - (default) rewrite the entire path to the root path —> /.
      • rewrite-prefix - rewrite the path for the URL path prefix only —> /subpath.
      • rewrite-off - disable path rewriting —> /api/v1/subpath.
  • healthCheck - the health check configuration for the service. This will configure both the liveness and readiness checks.
    • enabled - whether the health check is enabled or not.
    • httpPath - the path to check for the health check.
    • timeoutSeconds - the timeout for the health check requests. Minimum value is 1.
    • initialDelaySeconds - (optional) the initial delay for sending the health check requests. Minimum value is 0.
  • livenessCheck - the liveness check configuration for the service. Cannot be used with healthCheck.
    • enabled - whether the liveness check is enabled or not.
    • httpPath - the path to check for the liveness check.
    • timeoutSeconds - the timeout for the liveness check requests. Minimum value is 1.
    • initialDelaySeconds - (optional) the initial delay for sending the liveness check requests. Minimum value is 0.
  • readinessCheck - the readiness check configuration for the service. Cannot be used with healthCheck.
    • enabled - whether the readiness check is enabled or not.
    • httpPath - the path to check for the readiness check.
    • timeoutSeconds - the timeout for the readiness check requests. Minimum value is 1.
    • initialDelaySeconds - (optional) the initial delay for sending the readiness check requests. Minimum value is 0.
  • startupCheck - the startup check configuration for the service. Cannot be used with healthCheck.
    • enabled - whether the startup check is enabled or not.
    • httpPath - the path to check for the startup check.
    • timeoutSeconds - the timeout for the startup check requests. Minimum value is 1.
    • initialDelaySeconds - (optional) the initial delay for sending the startup check requests. Minimum value is 0.

autoscaling

object - optional All fields are optional.
autoscaling:
  enabled: true
  minInstances: 1
  maxInstances: 10
  cpuThresholdPercent: 80
  memoryThresholdPercent: 80

domains

array - optional
domains:
  - name: example.com

private

boolean - optional
private: true

ingressAnnotations

object - optional
ingressAnnotations:
  nginx.ingress.kubernetes.io/proxy-connect-timeout: '"18000"'

pathRouting

array - optional
pathRouting:
  - path: /api/v1/
    port: 8080
  - path: /api/v2/
    port: 8081
  - path: /api/v3/
    port: 8082
    serviceName: other-service-in-same-app
  - path: /api/v4/
    port: 8083
    appName: other-app
    serviceName: other-service-in-other-app

pathRoutingConfig

object - optional
pathRouting:
  - path: /api/v1/
    port: 8080
  - path: /api/v2/
    port: 8081
pathRoutingConfig:
  rewriteMode: rewrite-prefix

# for the path "/api/v1/subpath"
# rewrite-prefix will rewrite to "/subpath"
# rewrite-all will rewrite to "/"
# rewrite-off will leave the path as "/api/v1/subpath"

healthCheck

object - optional
healthCheck:
  enabled: true
  httpPath: /healthz
  timeoutSeconds: 1
  initialDelaySeconds: 15 #optional

Advanced Health Checks

Advanced health checks allow you to separately configure liveness, readiness, and startup health checks for your service. These cannot be enabled at the same time as the healthCheck field.

livenessCheck

object - optional
livenessCheck:
  enabled: true
  httpPath: /livez
  timeoutSeconds: 1
  initialDelaySeconds: 15 #optional

readinessCheck

object - optional
readinessCheck:
  enabled: true
  httpPath: /readyz
  timeoutSeconds: 1
  initialDelaySeconds: 15 #optional

startupCheck

object - optional
startupCheck:
  enabled: true
  httpPath: /startupz
  timeoutSeconds: 1
  initialDelaySeconds: 15 #optional
I