Documentation Index
Fetch the complete documentation index at: https://enterprise-docs.crewai.com/llms.txt
Use this file to discover all available pages before exploring further.
Overview
By default, all organizations share the same Kubernetes namespace (defined byK8S_NAMESPACE). Multi-org namespace isolation allows each organization to use a dedicated namespace, providing stronger isolation between organizations.
This feature is optional. Organizations that do not require isolation will continue using the shared namespace as before.
Prerequisites
K8S_NAMESPACEenvironment variable is set in your Helm values (e.g.,crewai)- The
k8s_namespace_isolationFlipper feature flag is enabled globally - Recommended: Enable
rbac.namespaceIsolation: truein Helm values to automatically grant cluster-wide permissions for managing per-organization namespaces
Enable the Feature Flag
Enable ClusterRole for Namespace Isolation (Recommended)
The chart can automatically create the required ClusterRole and ClusterRoleBinding to grant the CrewAI Platform ServiceAccount permissions across all organization namespaces. This simplifies setup by eliminating manual RoleBinding creation for each organization. Add to your Helm values:When
rbac.namespaceIsolation: true, the chart creates a ClusterRole with scoped permissions (namespaces, secrets, configmaps, pods, deployments, etc.) and binds it to the CrewAI ServiceAccount. This grants cluster-wide access to manage resources in dynamically created per-organization namespaces (e.g., crewai-org-1, crewai-org-2).Namespace Naming Convention
When isolation is enabled, each organization gets a dedicated namespace using the format:K8S_NAMESPACE=crewai and the organization ID is 4, the namespace will be crewai-org-4.
You can find the organization ID and the expected namespace name on the organization’s admin page in the warning banner.
Setting Up a New Organization Namespace
Automatic Setup (Recommended)
If you enabledrbac.namespaceIsolation: true in your Helm values, the platform will automatically create organization namespaces and manage permissions when you deploy crews to a new organization. You only need to ensure the registry secret is copied to new namespaces.
For each new organization namespace:
The platform automatically creates the namespace (
{K8S_NAMESPACE}-org-{id}) when a crew is deployed to the organization. No manual namespace creation or RoleBinding setup is required when using rbac.namespaceIsolation: true.Manual Setup (Alternative)
If you cannot enablerbac.namespaceIsolation due to security policies that prohibit ClusterRole creation, manually set up each organization namespace:
1. Create the Namespace
2. Grant the Service Account Access
The platform’s service account needs permissions to manage resources in the new namespace:Replace
{K8S_NAMESPACE} with your configured namespace (e.g., crewai) and {id} with the organization ID shown on the organization’s admin page.3. Copy the Registry Secret
The new namespace needs access to the container image registry to pull automation images:Example
Automatic Setup Example
Setting up namespace isolation for organization 4 withK8S_NAMESPACE=crewai and rbac.namespaceIsolation: true:
Manual Setup Example
Setting up namespace isolation for organization 4 withK8S_NAMESPACE=crewai without rbac.namespaceIsolation:
Verification
After setting up the namespace, deploy an automation to the organization. The deployment should target the new namespace. You can verify with:Support Bundle Configuration
When using multi-organization namespace isolation, configure support bundles to collect logs from all organization namespaces for comprehensive troubleshooting. Add to your Helm values:Troubleshooting
Deployment Fails with Forbidden Error
The service account does not have permissions in the org namespace. If usingrbac.namespaceIsolation: true: Verify the ClusterRoleBinding exists:
