Service Deployment
Phase 5 of the provisioning pipeline deploys 13 data plane services into the tenant's Kubernetes namespace using Helm. Each service is deployed as an individual provisioning step with its own rollback support.
Deployed Services
| Order | Step | Service | Technology |
|---|---|---|---|
| 26 | DEPLOY_QUERY_ENGINE | Trino query engine | Java |
| 27 | DEPLOY_CATALOG_SERVICE | OpenMetadata catalog | Java |
| 28 | DEPLOY_SEMANTIC_LAYER | MDL semantic layer | Java |
| 29 | DEPLOY_PIPELINE_SERVICE | Temporal pipelines | Java |
| 30 | DEPLOY_DATA_QUALITY_SERVICE | Data quality/profiling | Python |
| 31 | DEPLOY_BI_SERVICE | BI dashboard service | Java |
| 32 | DEPLOY_AI_SERVICE | Text-to-SQL / AI agents | Python |
| 33 | DEPLOY_ML_SERVICE | Ray Serve ML service | Python |
| 34 | DEPLOY_DATA_PLANE_AGENT | Control plane bridge | Java |
| 35 | DEPLOY_RENDER_SERVICE | PDF/PNG renderer | Node.js |
| 36 | DEPLOY_ONTOLOGY_SERVICE | Context graph ontology | Python |
| 37 | DEPLOY_GOVERNANCE_SERVICE | Data governance | Python |
| 38 | DEPLOY_OPS_AGENT_SERVICE | Infrastructure optimizer | Python |
| 39 | REGISTER_SERVICE_ENDPOINTS | Register endpoints | N/A |
Deployment Process
Each service deployment step:
- Resolves the Helm chart from the chart repository
- Constructs values overrides with tenant-specific configuration
- Executes
helm installvia theHelmClientImplwrapper - Waits for pods to reach Ready state
- Records the Helm release in the
HelmReleaseentity - Registers service endpoints in the tenant record
Endpoint Registration
After all services are deployed, the REGISTER_SERVICE_ENDPOINTS step discovers and records service endpoints in the tenant's serviceEndpoints JSON field:
@Column(name = "service_endpoints", columnDefinition = "jsonb")
@Convert(converter = MapToJsonConverter.class)
private Map<String, String> serviceEndpoints;This allows the control plane to route requests to the correct data plane service for each tenant.
Source Files
| File | Path |
|---|---|
| Step executor | control-plane/tenant-service/src/main/java/com/matih/tenant/provisioning/ProvisioningStepExecutor.java |
| Helm client | control-plane/tenant-service/src/main/java/com/matih/tenant/service/helm/HelmClientImpl.java |
| Helm release manager | control-plane/tenant-service/src/main/java/com/matih/tenant/service/helm/HelmReleaseManager.java |