MATIH Platform is in active MVP development. Documentation reflects current implementation status.
7. Tenant Lifecycle
Provisioning
Service Deployment

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

OrderStepServiceTechnology
26DEPLOY_QUERY_ENGINETrino query engineJava
27DEPLOY_CATALOG_SERVICEOpenMetadata catalogJava
28DEPLOY_SEMANTIC_LAYERMDL semantic layerJava
29DEPLOY_PIPELINE_SERVICETemporal pipelinesJava
30DEPLOY_DATA_QUALITY_SERVICEData quality/profilingPython
31DEPLOY_BI_SERVICEBI dashboard serviceJava
32DEPLOY_AI_SERVICEText-to-SQL / AI agentsPython
33DEPLOY_ML_SERVICERay Serve ML servicePython
34DEPLOY_DATA_PLANE_AGENTControl plane bridgeJava
35DEPLOY_RENDER_SERVICEPDF/PNG rendererNode.js
36DEPLOY_ONTOLOGY_SERVICEContext graph ontologyPython
37DEPLOY_GOVERNANCE_SERVICEData governancePython
38DEPLOY_OPS_AGENT_SERVICEInfrastructure optimizerPython
39REGISTER_SERVICE_ENDPOINTSRegister endpointsN/A

Deployment Process

Each service deployment step:

  1. Resolves the Helm chart from the chart repository
  2. Constructs values overrides with tenant-specific configuration
  3. Executes helm install via the HelmClientImpl wrapper
  4. Waits for pods to reach Ready state
  5. Records the Helm release in the HelmRelease entity
  6. 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

FilePath
Step executorcontrol-plane/tenant-service/src/main/java/com/matih/tenant/provisioning/ProvisioningStepExecutor.java
Helm clientcontrol-plane/tenant-service/src/main/java/com/matih/tenant/service/helm/HelmClientImpl.java
Helm release managercontrol-plane/tenant-service/src/main/java/com/matih/tenant/service/helm/HelmReleaseManager.java