Core Configuration
Enable or disable the Built-in Integrations service deployment.Purpose: Controls whether the Built-in Integrations service and its associated resources (Deployment, Service, Ingress) are deployed to the cluster.When Enabled:
- Deploys Built-in Integrations service pods
- Creates Built-in Integrations ClusterIP service
- Optionally creates Ingress for external OAuth callbacks
- Automatically configures Rails application with Built-in Integrations service URL
- No Built-in Integrations service resources deployed
- Third-party integrations unavailable
- OAuth-related secrets still created but unused
Component name for the Built-in Integrations service.Purpose: Used for resource naming and labeling. Generally should not be changed.
Number of Built-in Integrations service pod replicas.High Availability: Multiple replicas ensure Built-in Integrations service availability during rolling updates and pod failures.Recommendations:
- Development:
1 - Production:
2or more for high availability - High-traffic:
3-5based on load
Container port for the Built-in Integrations service.Default:
8787Note: This is the internal container port. External access is configured via Ingress.Image Configuration
Container registry hostname for the Built-in Integrations service image.Default Behavior: If empty, falls back to
global.imageRegistry.Example:Built-in Integrations service image name.Default:
"proxy/crewai/crewai/crewai-oauth"Note: The image name includes the full path to the Built-in Integrations service container image.Built-in Integrations service image tag.Default:
"0.1-pre"Production Recommendation: Use specific version tags for reproducible deployments.Example:Image pull policy for Built-in Integrations service.Valid Values:
"IfNotPresent"- Pull only if not cached locally"Always"- Always pull latest image"Never"- Never pull, use cached only
"IfNotPresent"Kubernetes secret name for Built-in Integrations service image registry authentication.Default Behavior: If empty, falls back to
image.pullSecret.Example:Service Configuration
Kubernetes service type for Built-in Integrations service.Default:
"ClusterIP"Recommendation: Keep as ClusterIP and use Ingress for external access.Valid Values:"ClusterIP"- Internal cluster access only (recommended)"LoadBalancer"- External LoadBalancer (not recommended, use Ingress instead)"NodePort"- Node port access (not recommended for production)
Service port for Built-in Integrations service.Default:
8787Note: This is the service port that other services use to communicate with the Built-in Integrations service internally.Target port on Built-in Integrations service pods.Default:
8787Note: Should match oauth.port.Resource Limits
CPU and memory resource requests and limits for Built-in Integrations service pods.Default Configuration:Tuning Guidelines:Low Traffic (< 100 users):Medium Traffic (100-500 users):High Traffic (500+ users):
Health Probes
Liveness probe configuration for Built-in Integrations service.Purpose: Kubernetes restarts the container if the liveness probe fails, recovering from deadlocks or hung processes.Default Configuration:Probe Details:
- Endpoint:
GET /healthon port8787 - Initial Delay: 30 seconds (allows service startup time)
- Check Interval: Every 30 seconds
- Timeout: 5 seconds per check
- Failure Threshold: 3 consecutive failures trigger restart
Readiness probe configuration for Built-in Integrations service.Purpose: Kubernetes removes the pod from service load balancing if the readiness probe fails, preventing traffic to unhealthy pods.Default Configuration:Probe Details:
- Endpoint:
GET /healthon port8787 - Initial Delay: 5 seconds
- Check Interval: Every 10 seconds
- Timeout: 5 seconds per check
- Failure Threshold: 3 consecutive failures mark pod as not ready
Node Placement
Node selector labels for Built-in Integrations service pod placement.Default:
{} (no node selector, schedule on any node)Use Cases:- Dedicated node pools for services
- GPU or specialized hardware requirements
- Cost optimization (spot/preemptible instances)
- Compliance requirements (data locality)
Ingress Configuration
The Built-in Integrations service requires external access for OAuth provider callbacks (redirects from Google, Microsoft, etc.). Ingress configuration provides secure HTTPS access to OAuth endpoints.Enable Ingress for Built-in Integrations service external access.Default:
falseRequired For: OAuth provider callbacks to work correctly.When Enabled:- Creates Ingress resource for OAuth endpoints
- OAuth providers can send callbacks to your domain
- Uses
oauth.ingress.hostor falls back toenvVars.APPLICATION_HOST
- OAuth callbacks will fail
- Third-party integrations cannot complete authentication flow
Ingress controller class name.Valid Values:
"nginx"- NGINX Ingress Controller"alb"- AWS Application Load Balancer
"nginx"Hostname for Built-in Integrations service external access.Default Behavior: If empty, falls back to Example with Shared Domain (using fallback):Path Configuration:The OAuth service is automatically exposed at the
envVars.APPLICATION_HOST.Format: Fully qualified domain name (FQDN)Important:- Must be configured in DNS to point to your Ingress controller
- Must match OAuth provider callback configuration
- Requires valid TLS certificate for HTTPS
/oauthsvc path prefix. When using NGINX Ingress Controller, the chart configures automatic path rewriting and optimized buffer sizes for OAuth flows.Additional annotations for the OAuth Ingress resource.Purpose: Advanced Ingress controller configuration not covered by built-in settings.Example:
AWS ALB Configuration
AWS ALB scheme when using ALB Ingress controller.Valid Values:
"internet-facing"- Public internet access (required for OAuth)"internal"- VPC-internal only
"internet-facing"Note: OAuth callbacks require public internet access from OAuth providers.AWS ALB target type.Valid Values:
"ip"- Target pods by IP (recommended for most cases)"instance"- Target EC2 instances via NodePort
"ip"AWS ACM certificate ARN for HTTPS.Required: Yes (for ALB with HTTPS)Format:
arn:aws:acm:region:account:certificate/idExample:AWS ALB SSL policy.Default:
"ELBSecurityPolicy-TLS-1-2-2017-01"Other Options:"ELBSecurityPolicy-TLS13-1-2-2021-06"- TLS 1.3 and 1.2"ELBSecurityPolicy-FS-1-2-2019-08"- Forward secrecy
NGINX Ingress Configuration
Redirect HTTP to HTTPS automatically.Default:
trueRecommendation: Keep enabled for security. OAuth requires HTTPS.Maximum request body size.Default:
"10m" (10 megabytes)Purpose: Limits size of OAuth requests and responses.Enable CORS (Cross-Origin Resource Sharing).Default:
truePurpose: Allows Built-in Integrations service to be called from web application hosted on different subdomain.Allowed HTTP methods for CORS requests.Default:
"GET, POST, OPTIONS"Note: OAuth flows primarily use GET and POST methods.Allowed HTTP headers for CORS requests.Default: Standard headers for OAuth and API requests.
Allowed origins for CORS requests.Default:
"*" (allow all origins)Security Note: For production, consider restricting to specific domains:Allow credentials (cookies, authorization headers) in CORS requests.Default:
truePurpose: Required for OAuth cookie-based authentication.Enable TLS termination at NGINX.Default:
falseWhen Enabled: Requires TLS certificate in Kubernetes secret specified by oauth.ingress.nginx.tls.secretName.Example:Kubernetes secret name containing TLS certificate and key.Required When:
oauth.ingress.nginx.tls.enabled: trueSecret Format:Environment Configuration
Built-in Integrations service log level.Valid Values:
"debug", "info", "warn", "error"Default: "info"Recommendations:- Production:
"info"or"warn" - Development:
"debug"
Enable SSL for Built-in Integrations service database connections.Valid Values:
"true", "false"Default: "false"When to Enable:- Using managed database service (AWS RDS, Azure Database, etc.)
- Database requires encrypted connections
- Compliance requirements
OAuth Secrets Configuration
OAuth secrets are configured via theoauth.secrets values and are used to secure the Built-in Integrations service and enable third-party integrations. These secrets are separate from the main application secrets and are stored in a dedicated Kubernetes secret resource.
Auto-Generated Secrets
Secret key for signing OAuth session cookies.Auto-Generation: If not provided, automatically generated as a 64-character random alphanumeric string and persisted across upgrades.Purpose: Secures OAuth flow session data during the authentication process.Manual Generation:Leave Empty: To use auto-generated value (recommended).
Encryption key for OAuth tokens stored in the database.Auto-Generation: If not provided, automatically generated as a 64-character hexadecimal string and persisted across upgrades.Purpose: Encrypts sensitive OAuth tokens (access tokens, refresh tokens) at rest in the OAuth database.Format: 64-character hexadecimal string.Manual Generation:Leave Empty: To use auto-generated value (recommended).
Internal API key for authentication between the Built-in Integrations service and Rails application.Auto-Generation: If not provided, automatically generated as a 64-character random alphanumeric string and persisted across upgrades.Purpose: Enables secure service-to-service communication for OAuth operations.Important: This value is automatically duplicated as Leave Empty: To use auto-generated value (recommended).
CREWAI_OAUTH_API_KEY in the main application secrets for Rails to use.Manual Generation:OAuth Provider Credentials
OAuth provider credentials are optional and only required if you want to enable specific OAuth integrations. Each provider supports both provider-level credentials (shared across all products) and product-specific overrides.Google OAuth Provider
Google OAuth client ID used as default for all Google products.Purpose: Shared Google OAuth client ID. If product-specific client IDs are not provided, this value is used for all Google integrations (Gmail, Calendar, Drive, etc.).Obtain From: Google Cloud Console → APIs & Services → CredentialsExample:
Google OAuth client secret used as default for all Google products.Purpose: Shared Google OAuth client secret for all Google integrations.
Google Drive Picker API key for file picker functionality.Purpose: Enables Google Drive file picker UI in the application for selecting files from Google Drive.Obtain From: Google Cloud Console → APIs & Services → Credentials → Create Credentials → API KeyImportant: This is an API key (not OAuth credentials) specifically for the Google Picker API.Example:
Google Calendar-specific OAuth client ID.Override: Falls back to
oauth.secrets.google.clientId if not provided.Google Calendar-specific OAuth client secret.Override: Falls back to
oauth.secrets.google.clientSecret if not provided.Gmail-specific OAuth client ID.Override: Falls back to
oauth.secrets.google.clientId if not provided.Gmail-specific OAuth client secret.Override: Falls back to
oauth.secrets.google.clientSecret if not provided.Google Drive-specific OAuth client ID.Override: Falls back to
oauth.secrets.google.clientId if not provided.Google Drive-specific OAuth client secret.Override: Falls back to
oauth.secrets.google.clientSecret if not provided.Google Contacts-specific OAuth client ID.Override: Falls back to
oauth.secrets.google.clientId if not provided.Google Contacts-specific OAuth client secret.Override: Falls back to
oauth.secrets.google.clientSecret if not provided.Google Sheets-specific OAuth client ID.Override: Falls back to
oauth.secrets.google.clientId if not provided.Google Sheets-specific OAuth client secret.Override: Falls back to
oauth.secrets.google.clientSecret if not provided.Google Slides-specific OAuth client ID.Override: Falls back to
oauth.secrets.google.clientId if not provided.Google Slides-specific OAuth client secret.Override: Falls back to
oauth.secrets.google.clientSecret if not provided.Google Docs-specific OAuth client ID.Override: Falls back to
oauth.secrets.google.clientId if not provided.Google Docs-specific OAuth client secret.Override: Falls back to
oauth.secrets.google.clientSecret if not provided.Microsoft OAuth Provider
Microsoft OAuth client ID used as default for all Microsoft products.Purpose: Shared Microsoft OAuth client ID. If product-specific client IDs are not provided, this value is used for all Microsoft integrations (Outlook, OneDrive, Teams, etc.).Obtain From: Microsoft Azure Portal → App registrationsExample:
Microsoft OAuth client secret used as default for all Microsoft products.Purpose: Shared Microsoft OAuth client secret for all Microsoft integrations.
Outlook-specific OAuth client ID.Override: Falls back to
oauth.secrets.microsoft.clientId if not provided.Outlook-specific OAuth client secret.Override: Falls back to
oauth.secrets.microsoft.clientSecret if not provided.OneDrive-specific OAuth client ID.Override: Falls back to
oauth.secrets.microsoft.clientId if not provided.OneDrive-specific OAuth client secret.Override: Falls back to
oauth.secrets.microsoft.clientSecret if not provided.Teams-specific OAuth client ID.Override: Falls back to
oauth.secrets.microsoft.clientId if not provided.Teams-specific OAuth client secret.Override: Falls back to
oauth.secrets.microsoft.clientSecret if not provided.SharePoint-specific OAuth client ID.Override: Falls back to
oauth.secrets.microsoft.clientId if not provided.SharePoint-specific OAuth client secret.Override: Falls back to
oauth.secrets.microsoft.clientSecret if not provided.Excel-specific OAuth client ID.Override: Falls back to
oauth.secrets.microsoft.clientId if not provided.Excel-specific OAuth client secret.Override: Falls back to
oauth.secrets.microsoft.clientSecret if not provided.Word-specific OAuth client ID.Override: Falls back to
oauth.secrets.microsoft.clientId if not provided.Word-specific OAuth client secret.Override: Falls back to
oauth.secrets.microsoft.clientSecret if not provided.Other OAuth Providers
HubSpot OAuth client secret.
Notion OAuth client secret.
Related Configuration
OAuth Secrets: See Secrets Reference - Built-in Integrations Secrets for Built-in Integrations service secrets configuration including:OAUTH_COOKIE_SECRET- Session cookie signingOAUTH_DB_ENCRYPTION_KEY- Token encryptionOAUTH_INTERNAL_API_KEY- Service-to-service authentication- OAuth provider credentials (Google, Microsoft, HubSpot, Notion)
oauth_db) created automatically in the PostgreSQL instance. See PostgreSQL Configuration for database configuration.
Automatic URL Configuration: When Built-in Integrations service is enabled, the Rails application is automatically configured with CREWAI_OAUTH_API_BASE_URL pointing to the internal Built-in Integrations service URL. See Environment Variables - Built-in Integrations for details.