Title here
Summary here
Before deploying bouine to production, verify each item below. Items are grouped by area. Skip items that don’t apply to your deployment.
insecure_skip_verify is not set in any upstream pool TLS configresources.limits.memory set and GOMEMLIMIT auto-computed (Helm chart does this)hot_max_bytes sized to fit in RAM without GC pressure (default: 75% of GOMEMLIMIT)warmVolume.size)warm_max_bytes set below PVC capacity to leave headroommax_object_size configured per route to reject oversized responsesmax_response_bytes configured to prevent memory exhaustion from large bodiesreplicaCount >= 3 for quorumpodDisruptionBudget.enabled: true with minAvailable >= 2hop_limit configured (default 2 is fine for most deployments)terminationGracePeriodSeconds >= 40 to allow graceful drainminReadySeconds >= 30 to let the ring converge before trafficttl_default set explicitlystale_while_revalidate configured for routes that can serve stalestale_if_error configured for origin-outage resiliencenegative_ttl set for routes that return errors (prevents error storms)jitter_percent > 0 to prevent synchronized revalidation burstsallow_set_cookie is off unless you explicitly need Set-Cookie cachingconsecutive_5xx, eject_for)max_connections set per pool to prevent FD exhaustionlisten.max_connections set to bound total data-plane connections (default 4096)listen.idle_timeout tuned against front-end/LB idle timeouts (front-end must close idle connections first)connect.max_idle_conn_duration kept below any LB idle timeout between bouine and the origin (AWS NLB: 350s)response_header_timeout configured to prevent slow-origin connection churncluster.peer_max_idle_conn_duration kept below admin.idle_timeout (default 300s)cluster.peer_fetch_concurrency sized for strong-mode peer-hit load (default 4, range 1–128)bouine_fetch_shed_total (slow-origin shedding — see
Streaming)bouine_peer_fetch_shed_total and bouine_peer_fetch_queue_wait_seconds in strong-mode clusters (peer-fetch saturation — see
Monitoring)pprof_enabled is off in production (default)metric_relabel_configs considered for bouine_request_duration_seconds (see
Monitoring)values-production.yaml as base)NetworkPolicy.enabled: true to isolate admin and cluster portsservice.type: LoadBalancer — the admin plane stays on the separate admin Serviceautoscaling.enabled: ArgoCD ignoreDifferences for /spec/replicas on the StatefulSetserviceAccount.automount: false (bouine doesn’t need K8s API access)/readyz), liveness (/healthz)maxUnavailable: 1 for sequential pod restarts/drain endpoint + preStop hook)