Skip to content

Commit eb1e39b

Browse files
committed
Priority update for tenant-manager NB implementation
1 parent 00db93c commit eb1e39b

File tree

4 files changed

+20
-19
lines changed

4 files changed

+20
-19
lines changed
-15.3 KB
Loading
-1.54 KB
Loading
-11.2 KB
Loading

design-proposals/platform-multi-tenancy-simplification.md

Lines changed: 20 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -56,15 +56,12 @@ The current EMF architecture exhibits several key issues:
5656

5757
![new architecture](images/multi-tenancy-new-architecture.png)
5858

59-
The proposed architecture is modular and flexible, focusing on these key changes:
59+
The proposed architecture introduces modularity and deployment flexibility through the following changes:
6060

61-
- The Multi-tenant API Gateway is simplified to act only as an HTTP router for Tenant Manager APIs. In the short term,
62-
it remains Nexus-based, with plans to re-implement it as a lightweight HTTP router in the future.
63-
- Core services (AO, CO, EIM) expose their APIs directly, removing the need for centralized API gateway coordination.
64-
- Multi-tenancy is configurable; Tenant Manager and controllers can be enabled or disabled per deployment.
65-
- When multi-tenancy is off, services initialize a default tenant and restrict API requests to the default project for
66-
consistent logic.
67-
- Backward compatibility is maintained for seamless upgrades from existing multi-tenant deployments.
61+
- Elimination of the Multi-tenant API Gateway, allowing direct API exposure for all core services (App Orchestration, Cluster Orchestration, Infra Manager, Tenant Manager).
62+
- Multi-tenancy features are now optional and configurable; Tenant Manager and related controllers can be enabled or disabled based on deployment needs.
63+
- In single-tenant mode, services automatically provision a default tenant and project, ensuring consistent request handling without tenant management overhead.
64+
- Backward compatibility is preserved, enabling seamless upgrades for existing multi-tenant environments.
6865

6966
This modular approach enables organizations to deploy EMF in single-tenant or multi-tenant modes, reducing complexity
7067
and adapting to varied infrastructure needs. Below are examples of how the new modular architecture enables flexible
@@ -107,16 +104,13 @@ unnecessary, offering a lightweight and efficient integration path.
107104

108105
### Core Changes
109106

110-
#### Track 1: Reduce the scope of nexus-api-gateway
107+
#### Track 1: Remove nexus-api-gateway
111108

112-
- Limit the nexus-api-gateway’s responsibility to routing only Tenant Manager APIs (`/v1/orgs`, `/v1/projects`).
113-
- Remove all API remapping configuration from nexus-api-gateway.
114-
- Add Traefik IngressRoute for EIM, AO, and CO APIs, allowing these services to expose their APIs directly.
115-
- Ensure that tenant-aware authentication and authorization are handled by the shared middleware (`orch-lib`) in each
116-
service, not by the gateway.
117-
- Gradually deprecate legacy gateway features as services transition to direct API exposure.
118-
- Validate that existing multi-tenant workflows continue to function as expected through integration and regression
119-
testing.
109+
- Develop RESTful API endpoints for Tenant Manager (`/v1/orgs`, `/v1/projects`).
110+
- Configure Traefik IngressRoutes for direct API exposure of Tenant Manager, Infra Manager, App Orchestration, and Cluster Orchestration services.
111+
- Shift tenant-aware authentication and authorization to the shared middleware (`orch-lib`) within each service.
112+
- Phase out legacy gateway features as services migrate to direct API access.
113+
- Perform integration and regression testing to ensure multi-tenant workflows remain functional.
120114

121115
##### Step 1: Foundation
122116

@@ -140,13 +134,20 @@ features:
140134
- Remove EIM-specific API mapping from the `nexus-api-gateway` configuration.
141135
- Update CO to use EIM’s external APIs for inventory operations.
142136

143-
##### Step 3: CO and AO Modernization
137+
##### Step 3: Tenant Manager Modernization
138+
139+
- Implement a standalone HTTP server/router for the Tenant Manager, exposing RESTful endpoints at `/v1/orgs` and `/v1/projects`.
140+
- Create Traefik IngressRoute to route “PathRegexp(`/v1/orgs`, `/v1/projects`)” to the new Tenant Manager API.
141+
- Ensure authentication and authorization.
142+
- Perform integration testing to validate multi-tenant workflows and backward compatibility.
143+
144+
##### Step 4: CO and AO Modernization
144145

145146
- Refactor App Orchestration (AO) and Cluster Orchestration (CO) to adopt the modular architecture, following the EIM
146147
approach.
147148
- Complete the transition to the target architecture with all services decoupled from the legacy gateway.
148149

149-
##### Step 4: Cleanup
150+
##### Step 5: Cleanup
150151

151152
- Remove legacy code paths and deprecated components.
152153
- Finalize documentation for deployment and migration.

0 commit comments

Comments
 (0)