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.Accessing Advanced Settings
Navigate to Service
Open Settings
Access Advanced Settings

Configure Settings

Quick Reference
Settings by Category
Build Settings (4 settings)
Build Settings (4 settings)
| Setting | Default | Service Types | Description |
|---|---|---|---|
build.timeout_max_sec | 1800 | App Cronjob Job | Build timeout in seconds |
build.cpu_max_in_milli | 4000 | App Cronjob Job | Build CPU allocation (millicores) |
build.ram_max_in_gib | 8 | App Cronjob Job | Build RAM allocation (GiB) |
build.ephemeral_storage_in_gib | null | App Cronjob Job | Build ephemeral storage (GiB) |
Deployment Settings (2 settings)
Deployment Settings (2 settings)
| Setting | Default | Service Types | Description |
|---|---|---|---|
deployment.termination_grace_period_seconds | 60 | App Container Cronjob Job | Graceful shutdown timeout |
deployment.affinity.node.required | App Container Cronjob Job | Node affinity requirements |
Network - CORS (4 settings)
Network - CORS (4 settings)
| Setting | Default | Service Types | Description |
|---|---|---|---|
network.ingress.enable_cors | false | App Container Helm | Enable CORS |
network.ingress.cors_allow_origin | * | App Container Helm | Allowed origins |
network.ingress.cors_allow_methods | GET, PUT, POST, DELETE, PATCH, OPTIONS | App Container Helm | Allowed HTTP methods |
network.ingress.cors_allow_headers | DNT, Keep-Alive, User-Agent, … | App Container Helm | Allowed headers |
Network - Proxy & Headers (2 settings)
Network - Proxy & Headers (2 settings)
| Setting | Default | Service Types | Description |
|---|---|---|---|
network.ingress.proxy_body_size_mb | 100 | App Container Helm | Max request body size (MB) |
network.ingress.proxy_set_headers | App Container Helm | Custom request headers |
Network - Access Control (5 settings)
Network - Access Control (5 settings)
| Setting | Default | Service Types | Description |
|---|---|---|---|
network.ingress.whitelist_source_range | 0.0.0.0/0 | App Container Helm | IP whitelist (CIDR) |
network.ingress.denylist_source_range | null | App Container Helm | IP denylist (CIDR) |
network.ingress.basic_auth_env_var | null | App Container Helm | Basic auth credentials (env var) |
network.ingress.enable_sticky_session | false | App Container Helm | Session affinity |
network.ingress.sticky_session_cookie_name | QOVERY_COOKIE_ID | App Container Helm | Session cookie name |
Network - gRPC (2 settings)
Network - gRPC (2 settings)
| Setting | Default | Service Types | Description |
|---|---|---|---|
network.ingress.grpc | false | App Container Helm | Enable gRPC protocol |
network.ingress.grpc_send_timeout_seconds | 60 | App Container Helm | gRPC send timeout |
Network - Rate Limiting (2 settings)
Network - Rate Limiting (2 settings)
| Setting | Default | Service Types | Description |
|---|---|---|---|
network.ingress.add_rate_limit | false | App Container Helm | Enable rate limiting |
network.ingress.rate_limit_rpm | 0 | App Container Helm | Requests per minute limit |
Auto-scaling (HPA) (4 settings)
Auto-scaling (HPA) (4 settings)
| Setting | Default | Service Types | Description |
|---|---|---|---|
hpa.cpu.average_utilization_percent | 60 | App Container Helm | CPU target for HPA |
hpa.memory.average_utilization_percent | null | App Container Helm | Memory target for HPA |
hpa.scale_down_policy_strategy | Max | App Container Helm | Scale down strategy |
hpa.scale_up_policy_strategy | Max | App Container Helm | Scale up strategy |
Job Settings (2 settings)
Job Settings (2 settings)
| Setting | Default | Service Types | Description |
|---|---|---|---|
job.delete_ttl_seconds_after_finished | null | Cronjob Job | Delete job after completion |
cronjob.failed_jobs_history_limit | 1 | Cronjob | Failed jobs history limit |
Resources (2 settings)
Resources (2 settings)
| Setting | Default | Service Types | Description |
|---|---|---|---|
resources.override | App Container Cronjob Job Helm | Override resource requests/limits | |
readiness_probe.initial_delay_seconds | 30 | App Container Helm | Readiness probe initial delay |
Security (1 setting)
Security (1 setting)
| Setting | Default | Service Types | Description |
|---|---|---|---|
security.service_account_name | null | App Container Cronjob Job Helm | Kubernetes ServiceAccount name |
Configuring Advanced Settings
Via Qovery Console
- Navigate to your service (Application, Container, Job, Cronjob, or Helm)
- Click Settings tab
- Scroll to Advanced Settings section
- Click on any setting to modify its value
- Click Save and redeploy your service
Via Qovery API
Advanced settings can be configured using the Qovery API:Via Terraform
Use the Qovery Terraform Provider to manage advanced settings as code:Best Practices
Start with Defaults
Start with Defaults
Test in Non-Production First
Test in Non-Production First
Document Your Changes
Document Your Changes
Monitor After Changes
Monitor After Changes
Use Infrastructure as Code
Use Infrastructure as Code
Security First
Security First
- Always use IP whitelisting for internal services
- Enable Basic Auth for sensitive endpoints
- Use HTTPS-only for CORS origins
- Set appropriate rate limits to prevent abuse
Resource Optimization
Resource Optimization
- Set realistic build timeouts to catch hanging builds early
- Configure HPA thresholds based on actual traffic patterns
- Use resource overrides sparingly and monitor cluster impact.
Troubleshooting
Service Not Starting After Settings Change
Service Not Starting After Settings Change
- Invalid resource overrides (requests > limits)
- ServiceAccount doesn’t exist
- Node affinity requirements can’t be satisfied
- Build timeout too short
- Check deployment logs for specific error messages
- Verify resource values are valid (requests ≤ limits)
- Confirm ServiceAccount exists:
kubectl get sa -n NAMESPACE - Check node labels match affinity requirements
- Revert to default settings and apply changes incrementally
CORS Not Working
CORS Not Working
- Verify
network.ingress.enable_corsistrue - Check
cors_allow_originincludes your domain (not just*) - Ensure
cors_allow_methodsincludes your HTTP method - Verify
cors_allow_headersincludes required headers - Check browser console for specific CORS error details
- Confirm service has redeployed after settings change
HPA Not Scaling
HPA Not Scaling
- Metrics server is installed:
kubectl top pods - CPU/memory requests are set (HPA requires requests)
- Current utilization exceeds threshold
- Min/max instances configured correctly
- HPA events:
kubectl describe hpa HPA_NAME
- No resource requests defined (HPA can’t calculate percentage)
- Utilization below threshold
- Already at max instances
- Scale down policy set to
Disabled
Rate Limiting Issues
Rate Limiting Issues
- Review
rate_limit_rpmvalue - may be too restrictive - Check if rate limit is per IP (all users behind NAT count as one)
- Consider using application-level rate limiting for better control
- Monitor Nginx ingress logs for rate limit events
- Adjust RPM based on actual traffic patterns
Basic Auth Not Prompting
Basic Auth Not Prompting
- Environment variable specified in
basic_auth_env_varexists - Environment variable format is correct:
username:encrypted_password - Password encrypted with htpasswd:
htpasswd -nb user pass - Service has been redeployed after setting change
- Accessing via HTTPS (some browsers skip auth on HTTP)