string
default:"web"
Name identifier for web component. Used in labels and resource names.
boolean
default:"true"
Enable HTTPS protocol for external access.When Enabled:
- Application is accessed via HTTPS URL
- Must be set to
truewhen usingweb.enableSslFromPuma: true - Required for proper protocol detection in URLs
- Ingress handles TLS termination and application accessed via HTTP
- Internal cluster-only access without encryption
boolean
default:"true"
Enable SSL/TLS at the application level (Puma web server).When Enabled:
- Puma serves HTTPS directly with TLS certificates
- Automatically sets
APPLICATION_INTERNAL_URLto usehttps:// - Automatically sets NGINX
backend-protocoltoHTTPS - Requires SSL certificate configuration (via
web.tls.autoGenerateorsecrets.SSL_*)
- Ingress or load balancer handles TLS termination
- Application serves HTTP only
- Using external TLS proxy
web.useHttps which controls the external protocol, while enableSslFromPuma controls whether Puma itself handles TLS encryption.integer
default:"443"
Port where the web application listens.Default Behavior:
443whenweb.enableSslFromPuma: true(HTTPS)- Typically
80or3000when TLS is disabled
integer
default:"1"
Number of web application replicas.High Availability Recommendations:
- Development: 1 replica
- Staging: 2 replicas
- Production: 3+ replicas across multiple availability zones
- Each replica needs full resource allocation (6 CPU / 12Gi by default)
- Database connections scale with replicas
- Session management requires sticky sessions or external session store
string
default:""
Kubernetes service type for web application.Auto-Detection: When empty:
"ClusterIP"if ingress is enabled"LoadBalancer"if ingress is disabled
"ClusterIP"- Internal cluster access only"LoadBalancer"- Expose via cloud load balancer"NodePort"- Expose on node ports
"ClusterIP" with ingress for production deployments.web.tls.*
Application-level TLS configuration.
boolean
default:"false"
Automatically generate self-signed TLS certificate.When Enabled:
- Certificate generated during Helm deployment
- Persisted across upgrades using
lookupfunction - Includes all hostnames from
hostsarray
- Development environments
- Testing HTTPS functionality
- Environments without proper certificate management
integer
default:"365"
Certificate validity period in days (for auto-generated certificates).
array
default:"[\"localhost\", \"127.0.0.1\"]"
Additional hostnames to include in auto-generated certificate.Example:
web.resources.*
Resource limits and requests for web application container.
string
default:"6"
CPU limit for web pod.
string
default:"12Gi"
Memory limit for web pod.
string
default:"500m"
Guaranteed CPU allocation for web pod.
string
default:"6Gi"
Guaranteed memory allocation for web pod.
integer
default:"30"
Seconds to allow for graceful pod shutdown.Purpose: Allows in-flight requests to complete before pod termination.Production Recommendation: Set to 60-120 seconds for production to handle long-running requests.
object
default:"{}"
Node selector for web pod placement.Example:Use Cases:
- Ensure web pods run on nodes with specific capabilities
- Separate web workload from database or worker workload
- Control pod placement across availability zones
web.readinessProbe.*
Readiness probe configuration for web pods.
integer
default:"10"
Seconds to wait before first readiness check.Tuning: Increase if application takes longer to start.
integer
default:"10"
Seconds between readiness checks.
integer
default:"5"
Readiness probe timeout.
integer
default:"1"
Consecutive successes required.
integer
default:"3"
Consecutive failures before pod marked not ready.Purpose: Removes pod from service load balancing during failures, preventing request failures.
web.ingress.*
Ingress configuration for external web access.
boolean
default:"false"
Enable ingress for web application.Production Recommendation: Enable for production deployments.
string
default:"nginx"
Ingress class name.Common Values:
"nginx"- NGINX Ingress Controller"alb"- AWS Application Load Balancer Controller"traefik"- Traefik Ingress"istio"- Istio Virtual Service (seevirtualService.*)
string
default:""
Hostname for ingress routing.Example:
"crewai.company.com"Required: Must be set when ingress is enabled.string
default:"/"
URL path for ingress routing.Use Cases:
- Root path:
"/"(most common) - Subpath deployment:
"/crewai"
string
default:"Prefix"
Path matching type.Valid Values:
"Prefix"- Match path prefix"Exact"- Exact path match"ImplementationSpecific"- Controller-specific
object
default:"{}"
Custom annotations for the Ingress resource.Purpose: Add ingress controller-specific annotations not covered by the built-in configuration options.Example:Note: These annotations are applied in addition to the controller-specific annotations (ALB, NGINX) that are automatically generated based on other configuration values like
web.ingress.alb.* and web.ingress.nginx.*.web.ingress.alb.*
AWS Application Load Balancer specific configuration.
string
default:"internet-facing"
ALB scheme.Valid Values:
"internet-facing"- Public internet access"internal"- VPC-internal only
string
default:"ip"
ALB target type.Valid Values:
"ip"- Direct pod IP routing (recommended for EKS)"instance"- NodePort routing
string
default:""
ACM certificate ARN for HTTPS.Example:
"arn:aws:acm:us-west-2:123456789012:certificate/abc-def-ghi"Required: For HTTPS access via ALB.string
default:"ELBSecurityPolicy-TLS-1-2-2017-01"
ALB SSL/TLS policy.Common Policies:
"ELBSecurityPolicy-TLS-1-2-2017-01"- TLS 1.2+ (recommended)"ELBSecurityPolicy-TLS-1-2-Ext-2018-06"- Extended TLS 1.2+"ELBSecurityPolicy-FS-1-2-Res-2020-10"- Forward secrecy enforced
web.ingress.nginx.*
NGINX Ingress Controller specific configuration.
boolean
default:"false"
Automatically redirect HTTP to HTTPS.Production Recommendation: Enable when TLS is configured.
string
default:"50m"
Maximum allowed size for client request body.Use Cases:
- File uploads
- Large API payloads
"<number>m" for megabytes, "<number>g" for gigabytes, "0" for unlimited.boolean
default:"true"
Enable Cross-Origin Resource Sharing (CORS).Purpose: Allow browser-based applications from different origins to access the API.
string
default:"GET, PUT, POST, DELETE, PATCH, OPTIONS"
Allowed HTTP methods for CORS.
string
Allowed HTTP headers for CORS preflight.
string
default:"*"
Allowed origins for CORS.Production Recommendation: Specify exact origins instead of
"*":boolean
default:"true"
Allow credentials (cookies, authorization headers) in CORS requests.
boolean
default:"true"
Enable sticky sessions (session affinity).Purpose: Routes requests from the same client to the same backend pod.When Needed:
- In-memory session storage
- WebSocket connections
- Application-specific caching
string
default:"_session_id"
Cookie name for session affinity.
string
default:"/"
Cookie path for session affinity.
string
default:""
IP CIDR ranges allowed to access ingress.Default Behavior: When empty (default), no IP restrictions are applied.Example - Multiple Ranges:Production Recommendation: Restrict to known corporate IP ranges or VPN endpoints for enhanced security.
string
default:""
Backend protocol for NGINX to use when communicating with the web pods.Auto-Detection: When empty (default), automatically sets based on
web.enableSslFromPuma:"HTTPS"ifweb.enableSslFromPumaistrue"HTTP"ifweb.enableSslFromPumaisfalse
""- Auto-detect (recommended)"HTTP"- Force HTTP backend communication"HTTPS"- Force HTTPS backend communication
- Most deployments should use auto-detection (leave empty)
- Override only when custom TLS termination or protocol handling is needed
nginx.ingress.kubernetes.io/backend-protocol annotation.boolean
default:"true"
Enable TLS for NGINX ingress.
string
default:""
Name of Kubernetes TLS secret.Create Secret:
web.virtualService.*
Istio Virtual Service configuration (alternative to standard ingress).
boolean
default:"false"
Enable Istio Virtual Service instead of standard ingress.
string
default:""
Hostname for virtual service routing.
string
default:""
Istio Gateway resource name.Example:
web.gateway.*
Gateway API HTTPRoute configuration (alternative to Ingress).
Gateway API vs Ingress: Gateway API is the modern successor to Ingress, offering better multi-tenancy, advanced routing, and standardization. It’s natively supported on GKE and recommended for new deployments.
boolean
default:"false"
Enable Gateway API HTTPRoute for web application.When Enabled:Prerequisites:
- Creates an HTTPRoute resource for web service
- Requires
gateway.enabled: trueat the global level - Routes traffic from Gateway listeners to web service
- Automatically configures health check path to
/health
- No HTTPRoute created for web service
- Use
web.ingress.*orweb.virtualService.*instead
- Gateway API CRDs installed in cluster
- Gateway resource exists (created via
gateway.create: trueor externally) - On GKE: Run
gcloud container clusters update CLUSTER --gateway-api=standard
On GKE, the chart automatically creates a HealthCheckPolicy that configures the load balancer’s health probes to use
/health as the check path. This prevents unconditional drop overload errors caused by Rails’ HostAuthorization middleware blocking GKE’s default health check behavior.array
default:"[]"
Hostnames for web service routing via Gateway API.Default Behavior: When empty, defaults to Example - Multiple Hostnames:Example - Use APPLICATION_HOST (Default):
[envVars.APPLICATION_HOST].Purpose: Specifies which hostnames this HTTPRoute should match. Traffic to these hostnames will be routed to the web service.Example - Single Hostname: