Deploy real-time reporting (RTR) Java services

The Java reporting services are being consolidated in an upcoming release. The service validation URLs reflect the NBS 7.12 configuration.

This page covers deploying the RTR Java services that process streamed events from Kafka and load domain-specific reporting data.

On this page

  1. Installing RTR Java services

These steps require a Unix-compatible shell. On Windows, use Git Bash, WSL, or an equivalent terminal emulator.

Installing RTR Java services

Follow these steps to configure and deploy the RTR Java services Helm chart.

Verify that you are connected to the correct Kubernetes cluster before proceeding. To confirm, run kubectl config current-context.

  1. Locate the Helm chart for all RTR Java services in the NEDSS-Helm repository.

  2. Validate the Kubernetes secret for database credentials:

    kubectl get secret/database-access -o yaml
    

    Verify that the secret contains the correct database username and password, Kafka cluster, and other required configuration values. If the secret does not exist, create it by applying the provided YAML file. Replace all placeholder values before running:

    Script location: NEDSS-Helm/nbs-secrets.yaml

    kubectl apply -f k8-manifests/nbs-secrets.yaml
    
  3. Validate the image repository:

    global.image.repository: "quay.io/us-cdcgov/cdc-nbs-modernization/data-reporting-service"
    
  4. Update feature flags for each service. Verify that PHCMartETL.bat is turned off before enabling updates to the PublicHealthCaseFact datamart via RTR:

    featureFlag:
      investigation-reporting:
        phcDatamartEnable: '''true'''
    
  5. Install the Helm chart for all RTR Java services:

    helm install rtr . -f values.yaml
    
  6. Verify the pods are running:

    kubectl get pods
    

    Expected output:

    NAME                                                READY   STATUS    RESTARTS   AGE
    rtr-java-services-investigation-reporting-<hash>    1/1     Running   0          2m6s
    rtr-java-services-ldfdata-reporting-<hash>          1/1     Running   0          2m6s
    rtr-java-services-observation-reporting-<hash>      1/1     Running   0          2m6s
    rtr-java-services-organization-reporting-<hash>     1/1     Running   0          2m6s
    rtr-java-services-person-reporting-<hash>           1/1     Running   0          2m6s
    rtr-java-services-post-processing-reporting-<hash>  1/1     Running   0          2m6s
    
  7. Validate the services. Replace <exampledomain> with your actual domain (see Deploy Traefik ingress controller):

    investigation-svc

    https://data.<exampledomain>/reporting/investigation-svc/status
    Expected: Investigation Service Status OK
    

    person-svc

    https://data.<exampledomain>/reporting/person-svc/status
    Expected: Person Service Status OK
    

    observation-svc

    https://data.<exampledomain>/reporting/observation-svc/status
    Expected: Observation Service Status OK
    

    organization-svc

    https://data.<exampledomain>/reporting/organization-svc/status
    Expected: Organization Service Status OK
    

    ldfdata-svc

    https://data.<exampledomain>/reporting/ldfdata-svc/status
    Expected: LDFData Service Status OK
    

    post-processing-svc

    https://data.<exampledomain>/reporting/post-processing-svc/status
    Expected: Post Processing Service Status OK