Name identifier for web component. Used in labels and resource names.
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
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.Port where the web application listens.Default Behavior:
443whenweb.enableSslFromPuma: true(HTTPS)- Typically
80or3000when TLS is disabled
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
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.
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
Certificate validity period in days (for auto-generated certificates).
Additional hostnames to include in auto-generated certificate.Example:
web.resources.*
Resource limits and requests for web application container.
CPU limit for web pod.
Memory limit for web pod.
Guaranteed CPU allocation for web pod.
Guaranteed memory allocation for web pod.
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.
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.
Seconds to wait before first readiness check.Tuning: Increase if application takes longer to start.
Seconds between readiness checks.
Readiness probe timeout.
Consecutive successes required.
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.
Enable ingress for web application.Production Recommendation: Enable for production deployments.
Ingress class name.Common Values:
"nginx"- NGINX Ingress Controller"alb"- AWS Application Load Balancer Controller"traefik"- Traefik Ingress"istio"- Istio Virtual Service (seevirtualService.*)
Hostname for ingress routing.Example:
"crewai.company.com"Required: Must be set when ingress is enabled.URL path for ingress routing.Use Cases:
- Root path:
"/"(most common) - Subpath deployment:
"/crewai"
Path matching type.Valid Values:
"Prefix"- Match path prefix"Exact"- Exact path match"ImplementationSpecific"- Controller-specific
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.
ALB scheme.Valid Values:
"internet-facing"- Public internet access"internal"- VPC-internal only
ALB target type.Valid Values:
"ip"- Direct pod IP routing (recommended for EKS)"instance"- NodePort routing
ACM certificate ARN for HTTPS.Example:
"arn:aws:acm:us-west-2:123456789012:certificate/abc-def-ghi"Required: For HTTPS access via ALB.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.
Automatically redirect HTTP to HTTPS.Production Recommendation: Enable when TLS is configured.
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.Enable Cross-Origin Resource Sharing (CORS).Purpose: Allow browser-based applications from different origins to access the API.
Allowed HTTP methods for CORS.
Allowed HTTP headers for CORS preflight.
Allowed origins for CORS.Production Recommendation: Specify exact origins instead of
"*":Allow credentials (cookies, authorization headers) in CORS requests.
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
Cookie name for session affinity.
Cookie path for session affinity.
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.
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.Enable TLS for NGINX ingress.
Name of Kubernetes TLS secret.Create Secret:
web.virtualService.*
Istio Virtual Service configuration (alternative to standard ingress).
Enable Istio Virtual Service instead of standard ingress.
Hostname for virtual service routing.
Istio Gateway resource name.Example:
