Central Instance

Overview

The Central Instance Deployment Model for HCM services takes care of running operations for Mozambique, Liberia, and Nigeria on a single Kubernetes cluster. Data is kept separate through namespace and database schema isolation.

Goals:

  • Reduce operational effort

  • Standardize configurations

  • Avoid duplicate services

  • Still allow country-specific customisations

This change applies only to application-facing services (not Admin Console or Micro-Planning).

Main updates:

  • Multi-schema database support

  • Standardised Kafka topic naming

  • Updated Flyway migration scripts

  • Helm and environment configuration improvements for smooth multi-tenant deployments

Key Features

1. Centralised Multi-Tenant Deployment

  • HCM services for Mozambique, Liberia, and Nigeria are now deployed in a single Kubernetes cluster.

  • Introduced a common namespace hosting all shared core services:

  • Shared Core Services: egov-user, workflow, egov-otp,user-otp, MDMS V2, and other backbone modules.

  • Create dedicated tenant namespaces (e.g., Liberia, Nigeria) for services requiring country-specific customisations such as HRMS.

2. Multi-Schema Database Support

  • A single PostgreSQL instance now hosts separate schemas (public, liberia, nigeria) to isolate tenant data.

  • Updated Flyway migration process:

  • New migrate.sh script loops through all configured schemas automatically.

  • Ensures all migrations execute across tenants without manual intervention.

  • Database schema lists and enablement flags are now configurable per service via Helm and environment YAML files.

3. Mobile App Endpoint Segregation

  • Three separate mobile applications (mz, lb, ng) now connect to tenant-specific URLs, ensuring proper routing and separation of country-level operations.

4. Standardised Kafka Topic Naming

  • All Kafka topics now use tenant-prefixed names to avoid cross-tenant collisions.

  • Example:

  • Mozambique: mz-save-household-topic

  • Liberia: lb-save-household-topic

  • Nigeria: ng-save-household-topic

5. Helm and Configuration Updates

  • Common values.yml now provides baseline DB and service configurations.

  • App-specific values.yml files override:

  • Schema lists (db-schemas).

  • Multi-schema enablement flags.

  • Most default configurations remain untouched, ensuring backwards compatibility for services not requiring multi-schema support.

6. Centralised Internal Gateway and MDMS v2

  • Internal Gateway configurations are now maintained centrally in a shared Git repository for easier updates.

  • MDMS v2 configurations for each tenant are consolidated, ensuring consistent metadata management.

7. Shared vs. Tenant-Specific Services

  • Common services like Household, Individual, Stock, Facility, Product, Service Request, Egov-HRMS, Project, and Referral are deployed once in the common namespace.

  • Custom tenant-specific services (e.g., Liberia HRMS, Nigeria HRMS) run in separate namespaces to preserve flexibility without duplicating the entire stack.

Last updated

Was this helpful?