Skip to main content

Overview

Service Advanced Settings allow you to fine-tune infrastructure and deployment parameters for your Qovery services. These settings provide granular control over build processes, networking, security, and resource allocation without requiring direct Kubernetes configuration.
Advanced settings are available for Applications, Containers, Cronjobs, Jobs, and Helm charts.

Accessing Advanced Settings

1

Navigate to Service

Open your service (Application, Container, Cronjob, Job, or Helm) in Qovery Console
2

Open Settings

Click on the Settings tab
3

Access Advanced Settings

Scroll to the Advanced Settings sectionAdvanced Settings Location
4

Configure Settings

Click on a setting to modify its value. You can toggle to show only overridden settings.Advanced Settings Interface
Use the Show only overridden toggle to view only settings that differ from defaults.

Build Settings

build.timeout_max_sec

Application Cronjob Job Type: integer Description: Allows you to specify an interval, in seconds, after which the application build times out. Default Value: 1800

build.cpu_max_in_milli

Application Cronjob Job Type: integer Description: Allows you to specify the maximum CPU allocation for the build process in millicores (1000m = 1 vCPU). Default Value: 4000

build.ram_max_in_gib

Application Cronjob Job Type: integer Description: Allows you to specify the maximum RAM allocation for the build process in gibibytes. Default Value: 8

build.ephemeral_storage_in_gib

Application Cronjob Job Type: integer Description: Allows you to specify the ephemeral storage allocation for the build process in gibibytes. Default Value: null

build.disable_buildkit_cache

Application Cronjob Job Type: boolean Description: Allows you to disable BuildKit registry cache (--cache-from and --cache-to flags) during Docker builds. Default Value: false Use Case: Enable this setting when your build tool (such as Turbo, Bazel, or Nx) has its own caching mechanism. In these cases, BuildKit’s registry cache import/export operations add overhead without benefit, as the application-level cache is more effective. Disabling BuildKit cache can significantly reduce build times for projects using these tools.

Deployment Settings

deployment.termination_grace_period_seconds

Application Container Cronjob Job Type: integer Description: Allows you to specify the time in seconds that Kubernetes waits for a pod to gracefully shut down before forcefully terminating it. Default Value: 60

deployment.affinity.node.required

Application Container Cronjob Job Type: Map<String, String> Description: Allows you to define Kubernetes node affinity requirements to control pod placement on specific nodes based on labels. Use Case: Use this to ensure your services run on nodes with specific characteristics (e.g., SSD storage, specific instance types). Default Value: {}

deployment.antiaffinity.pod

Application Container Type: string Description: Allows you to define pod anti-affinity to control how pods are distributed across nodes. Options are Preferred or Required. Use Case: Use Required to ensure pods are never scheduled on the same node (hard requirement), or Preferred for a soft preference that can be overridden if necessary. Default Value: Preferred

deployment.update_strategy.type

Application Container Type: string Description: Allows you to specify the deployment update strategy type. Options are RollingUpdate or Recreate. Use Case: RollingUpdate ensures zero-downtime deployments by gradually replacing pods. Recreate terminates all pods before creating new ones. Default Value: RollingUpdate

deployment.update_strategy.rolling_update.max_unavailable_percent

Application Container Type: integer Description: Allows you to specify the maximum percentage of pods that can be unavailable during a rolling update. Use Case: Lower values ensure more availability during updates but slower rollout speed. Higher values speed up deployments but reduce availability. Default Value: 25

deployment.update_strategy.rolling_update.max_surge_percent

Application Container Type: integer Description: Allows you to specify the maximum percentage of pods that can be created above the desired number during a rolling update. Use Case: Higher values speed up deployments by creating more new pods at once, but require more cluster resources. Default Value: 25

deployment.lifecycle.post_start_exec_command

Application Container Type: string Description: Allows you to specify a command to execute immediately after a container starts. Use Case: Use this for initialization tasks that must run after the container starts but before it receives traffic. Default Value: "" Example:
["/bin/sh", "-c", "echo 'Container started' > /tmp/started"]

deployment.lifecycle.pre_stop_exec_command

Application Container Type: string Description: Allows you to specify a command to execute before a container is terminated. Use Case: Use this for graceful shutdown procedures, such as finishing in-flight requests or closing connections cleanly. Default Value: ["/bin/sh", "-c", "sleep 15"] Example:
["/bin/sh", "-c", "kill -SIGTERM 1 && sleep 30"]

Network Settings

network.ingress.enable_cors

Application Container Helm Type: boolean Description: Allows you to enable Cross-Origin Resource Sharing (CORS) for your service. Default Value: false

network.ingress.cors_allow_origin

Application Container Helm Type: string Description: Allows you to specify the allowed origins for CORS requests. Use * to allow all origins or specify specific domains. Default Value: *

network.ingress.cors_allow_methods

Application Container Helm Type: string Description: Allows you to specify the HTTP methods allowed for CORS requests. Default Value: GET, PUT, POST, DELETE, PATCH, OPTIONS

network.ingress.cors_allow_headers

Application Container Helm Type: string Description: Allows you to specify the HTTP headers allowed for CORS requests. Default Value: DNT, Keep-Alive, User-Agent, X-Requested-With, If-Modified-Since, Cache-Control, Content-Type, Range, Authorization

network.ingress.force_ssl_redirect

Application Container Helm Type: boolean Description: Allows you to enforce HTTPS by automatically redirecting HTTP requests to HTTPS. Use Case: Enable this to ensure all traffic to your service uses encrypted connections. Default Value: true

network.ingress.proxy_body_size_mb

Application Container Helm Type: integer Description: Allows you to set, in megabytes, a maximum size for request bodies sent to your service. Use Case: By default, users can upload files or send requests up to 100 MB. You can use this advanced setting to lower or increase this limitation. Default Value: 100

network.ingress.proxy_buffer_size_kb

Application Container Helm Type: integer Description: Allows you to set the size of the buffer used for reading the first part of the response received from the proxied server, in kilobytes. Use Case: Increase this if you have large response headers. Default Value: 4

network.ingress.proxy_connect_timeout_seconds

Application Container Helm Type: integer Description: Allows you to set the timeout in seconds for establishing a connection with a proxied server. Default Value: 60

network.ingress.proxy_read_timeout_seconds

Application Container Helm Type: integer Description: Allows you to set the timeout in seconds for reading a response from the proxied server. Use Case: Increase this for long-running requests or slow backend responses. Default Value: 60

network.ingress.proxy_send_timeout_seconds

Application Container Helm Type: integer Description: Allows you to set the timeout in seconds for transmitting a request to the proxied server. Default Value: 60

network.ingress.proxy_buffering

Application Container Helm Type: string Description: Allows you to enable or disable buffering of responses from the proxied server. Options are on or off. Use Case: Disable buffering for streaming responses or server-sent events. Default Value: on

network.ingress.proxy_request_buffering

Application Container Helm Type: string Description: Allows you to enable or disable buffering of client request bodies. Options are on or off. Use Case: Disable for streaming uploads or when handling large file uploads incrementally. Default Value: on

network.ingress.proxy_set_headers

Application Container Helm Type: Map<String, String> Description: Allows you to define custom headers to add to requests forwarded to your service. Default Value: {}

network.ingress.add_headers

Application Container Helm Type: string Description: Allows you to attach supplementary headers to outgoing responses from your service. Use Case: Use this to inject custom HTTP headers into responses, commonly useful for security headers like X-Frame-Options, X-Content-Type-Options, Content-Security-Policy, etc. Default Value: {} Example:
{"X-Frame-Options":"DENY","X-Content-Type-Options":"nosniff"}

network.ingress.whitelist_source_range

Application Container Helm Type: string Description: Allows you to specify IP CIDR ranges allowed to access your service. Use this for IP whitelisting. Use Case: Restrict access to your service to specific IP addresses or ranges for enhanced security. Default Value: 0.0.0.0/0

network.ingress.denylist_source_range

Application Container Helm Type: string Description: Allows you to specify IP CIDR ranges denied access to your service. Use this for IP blacklisting. Default Value: null

network.ingress.basic_auth_env_var

Application Container Helm Type: string Description: Allows you to specify the environment variable name containing Basic Auth credentials in the format username:encrypted_password. Generate encrypted password using htpasswd -nb user password. Use Case: Add HTTP Basic Authentication to protect your service endpoints. Default Value: null

network.ingress.enable_sticky_session

Application Container Helm Type: boolean Description: Allows you to enable session affinity (sticky sessions) to route requests from the same client to the same pod. Use Case: Enable this when your application maintains session state in memory rather than in a shared data store. Default Value: false

network.ingress.keepalive_time_seconds

Application Container Helm Type: integer Description: Allows you to set the time in seconds during which a keep-alive client connection will stay open on the server side. Use Case: Adjust this to optimize connection reuse and reduce overhead of creating new connections. Default Value: 3600

network.ingress.keepalive_timeout_seconds

Application Container Helm Type: integer Description: Allows you to set the timeout in seconds during which a keep-alive client connection will remain idle before being closed. Default Value: 60

network.ingress.send_timeout_seconds

Application Container Helm Type: integer Description: Allows you to set the timeout in seconds for transmitting a response to the client. Use Case: Increase this for slow clients or large response payloads. Default Value: 60

network.ingress.grpc_send_timeout_seconds

Application Container Helm Type: integer Description: Allows you to specify the timeout in seconds for gRPC send operations. Default Value: 60

network.ingress.grpc_read_timeout_seconds

Application Container Helm Type: integer Description: Allows you to specify the timeout in seconds for gRPC read operations. Default Value: 60

network.ingress.nginx_controller_configuration_snippet

Application Container Helm Type: string Description: Allows you to inject custom NGINX configuration snippets into the location block of the ingress controller. Use Case: Use this for advanced NGINX customization that isn’t available through other settings. Default Value: null

network.ingress.nginx_controller_server_snippet

Application Container Helm Type: string Description: Allows you to inject custom NGINX configuration snippets into the server block of the ingress controller. Use Case: Use this for server-level NGINX configuration that applies to all locations. Default Value: null

network.ingress.nginx_limit_burst_multiplier

Application Container Helm Type: string Description: Allows you to set the burst multiplier for NGINX rate limiting. Use Case: Control how many requests can exceed the rate limit in short bursts. Default Value: null

network.ingress.nginx_limit_connections

Application Container Helm Type: integer Description: Allows you to limit the number of concurrent connections from a single IP address. Use Case: Protect your service from connection-based attacks or excessive connection usage. Default Value: null

network.ingress.nginx_limit_rpm

Application Container Helm Type: string Description: Allows you to set NGINX-specific rate limiting in requests per minute. Default Value: null

network.ingress.nginx_limit_rps

Application Container Helm Type: string Description: Allows you to set NGINX-specific rate limiting in requests per second. Default Value: null

network.ingress.nginx_custom_http_errors

Application Container Helm Type: string Description: Allows you to specify custom HTTP error codes that should be intercepted and handled by NGINX. Use Case: Define custom error pages for specific HTTP status codes. Default Value: null Example:
"404,503"

Auto-scaling (HPA)

hpa.cpu.average_utilization_percent

Application Container Type: integer Description: Allows you to define the target CPU utilization percentage for horizontal pod autoscaling. Use Case: Set this to scale your application based on CPU usage. Lower values trigger scaling sooner. Default Value: 60

hpa.memory.average_utilization_percent

Application Container Type: integer Description: Allows you to define the target memory utilization percentage for horizontal pod autoscaling. Use Case: Set this to scale your application based on memory usage. Default Value: null

Job Settings

job.delete_ttl_seconds_after_finished

Cronjob Job Type: integer Description: Allows you to specify the time in seconds after which completed jobs are automatically deleted. Use Case: Set this to automatically clean up completed job pods and reduce cluster resource usage. Default Value: null

cronjob.failed_jobs_history_limit

Cronjob Type: integer Description: Allows you to specify the number of failed job executions to keep in history. Default Value: 1

cronjob.success_job_history_limit

Cronjob Type: string Description: Allows you to specify the number of successful job executions to keep in history. Default Value: 1

cronjob.concurrency_policy

Cronjob Type: string Description: Allows you to specify how concurrent executions of a job are handled. Options are Forbidden (do not allow concurrent runs), Allow (allow concurrent runs), or Replace (replace currently running job). Use Case: Use Forbidden to prevent overlapping executions, Allow for independent parallel runs, or Replace to cancel old runs when a new one starts. Default Value: Forbidden

Resources

resources.override.limit.cpu_in_milli

Application Container Cronjob Job Type: integer Description: Allows you to override the CPU limit for your service pods in millicores (1000m = 1 vCPU). Use Case: Use this to fine-tune CPU allocation beyond the standard Qovery instance sizes. Default Value: null

resources.override.limit.ram_in_mib

Application Container Cronjob Job Type: integer Description: Allows you to override the RAM limit for your service pods in mebibytes. Use Case: Use this to fine-tune memory allocation beyond the standard Qovery instance sizes. Default Value: null

Security

security.service_account_name

Application Container Cronjob Job Type: string Description: Allows you to specify the Kubernetes ServiceAccount name to use for the service pods. Use Case: Use this to assign specific IAM roles or permissions to your application via Kubernetes ServiceAccounts. Default Value: null

security.automount_service_account_token

Application Container Cronjob Job Type: boolean Description: Allows you to control whether the service account token is automatically mounted into pods. Use Case: Set to false to improve security for pods that don’t need to access the Kubernetes API. Default Value: false

security.read_only_root_filesystem

Application Container Cronjob Job Type: boolean Description: Allows you to mount the container’s root filesystem as read-only. Use Case: Enable this security best practice to prevent the container from writing to its filesystem, reducing attack surface. Requires your application to write only to mounted volumes. Default Value: false

Next Steps