Reporting and Data Analytics

This installation guide provides details on how to install Reporting and Data Analytics (RDA).

System Requirements

Before installing RDA, you must have the following:

Other prerequisites

  • Domain mapped to the ingress controller load balancer. For example, df.example.com
  • SSL certificates for the domain
    • Certificate (.crt or cert)
    • Key (.key)
    • Keystore (.p12)
  • Registry credentials to access the Dockerhub
  • AWS S3 bucket and credentials
  • AWS load balancer for Dremio

Configuration requirements

Generate p12 certificates from the SSL/TLS certificate

You should also have a valid certificate for the DNS. To generate the p12 and encoded values, follow these steps:

  1. Generate a p12 certificate from the DNS certificate by running the following command.

    Ensure to replace the following with valid values:

    • tls.crt is the full chain certificate, and
    • tls.key is the certificate key.
     openssl pkcs12 -export -in tls.crt -inkey tls.key -out keystore.p12
    
  2. Generate an encoded value for the certificates.

      kubectl create secret generic subdomain-certificate \
       --from-file=tls.crt=tls.crt \
       --from-file=tls.key=tls.key \
      --from-file=keystore.p12=keystore.p12 \
      --namespace="$NAMESPACE"
    

Initialize the database

  1. Create a databasethat will hold the data of RDA.
  2. Restore app.sql in the database.

Install RDA

To install RDA, follow these steps:

  1. Create a values-override.yaml file.

      global:
      rda:
      enabled: true
      image:
      imagePullSecrets:
        - name: regcred
      database:
        DB_HOST: somerds.clsnsx0duv8h.us-east-1.rds.amazonaws.com
        DB_PORT: "5432"
        DB_NAME: dbname
        DB_USERNAME: postgres
        DB_PASSWORD: postgrespassword
    
      framework:
        fw-ssologin:
        ingress:
        enabled: true
        className: "nginx"
        annotations:
          nginx.ingress.kubernetes.io/proxy-send-timeout: 300s
        hosts:
          - host: df.riaapps.com
            paths:
              - path: /
                pathType: Prefix
        tls:
          - hosts:
              - df.riaapps.com
            secretName: subdomain-certificate
        rda:
        enabled: true  
        dremio_v2:
        # Dist storage for Dremio
        distStorage:
        type: "aws"
        aws:
          bucketName: "bucket name"
          path: "/"
          authentication: "accessKeySecret"
          credentials:
            accessKey: "ACCESS KEY"
            secret: "SECRET"
          superset:
            ingress:
            enabled: true
            ingressClassName: nginx
          annotations:
            nginx.ingress.kubernetes.io/proxy-body-size: 32m
          path: /
          pathType: ImplementationSpecific
          hosts:
            - superset.example.com
          tls:
            - hosts:
            - superset.example.com
              secretName: superset-tls
    
  2. Create registry credentials.

      kubectl create secret docker-registry regcred \
          --docker-username="riaadvisory1" \
         --docker-password="$DOCKER_PASSWORD" \
          --namespace="$NAMESPACE"
    
  3. Install RDA.

      helm install riaapps ./ -n namespace
    

    If you need to use an environment-specific value, specify the filepath.

      helm install riaapps ./ -n namespace -f values.yaml
    

Upgrade an existing RDA version

If you need to upgrade your RDA to the latest version, run:

helm upgrade riaapps ./ -n namespace

If you need to use an environment-specific value, specify the filepath.

helm upgrade riaapps ./ -n namespace -f values.yaml

Enable or disable components

You can modify the values of subcharts directly or override them during installation or upgrade. To do this, you can edit the values.yaml file of the riaapps directly and set the enabled parameters to either true or false.

Each subchart, such as riaapps/framework, also has its own values.yaml file that contains options for enabling or disabling its components.

Subcharts

The riaapps chart is an umbrella chart containing several subcharts under charts:

Subchart Description / Components
framework Core platform framework that includes shared foundational services such as:
  • fw-auth – Authentication and authorization services
  • fw-ui – Common user interface components
  • fw-gateway – API gateway and routing layer
  • fw-tms – Task management and scheduling
  • fw-ssologin – Single sign-on login integration
  • Other reusable framework modules
hazelcast Distributed in-memory data grid providing caching, data synchronization, and high-speed access for real-time applications.
kafka Distributed messaging and event streaming platform used for real-time data pipelines, communication between microservices, and event-driven architecture.
rda Analytics and reporting stack composed of:
  • superset – Data visualization and dashboarding
  • dremio_v2 – Data lake engine for querying and integration
  • rda-ui – Analytics user interface
  • dbt – Data transformation and modeling
  • Other supporting analytics components