Deploy RAA

From Genesys Documentation
Revision as of 18:29, September 1, 2021 by Tony.gilchrist@genesys.com (talk | contribs) (Published)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
This topic is part of the manual Genesys Customer Experience Insights Private Edition Guide for version Current of Reporting.

Learn how to deploy Reporting and Analytics Aggregates (RAA).

The following example illustrates the minimal values needed for a simple RAA deployment:

raa:
 
  deployment:
    targetPlatform: "local"
    environment: "lab"
 
  env:
    # echo '{"jdbc_url":"jdbc:postgresql://<host>:5432/<gim_database>", "db_username":"<user>", "db_password":"<password>"}' | base64
    GCXI_GIM_DB__JSON: |-
      eyJqZGJjX3VybCI6ImpkYmM6cG9zdGdyZXNxbDovLzxob3N0Pjo1NDMyLzxnaW1fZGF0YWJhc2U+IiwgImRiX3VzZXJuYW1lIjoiPHVzZXI+IiwgImRiX3Bhc3N3b3JkIjoiPHBhc3N3b3JkPiJ9Cg==
 
 
  image:
    # It is not recommended to pull into production environment directly from the registry.
    # The container images should be cached in the customer's own local repository with help of CI/CD pipelines or manually.
    registry: "pureengage-docker-staging.jfrog.io"
    pullSecrets:
      - "mysecret"
 
  volume:
    config:
      storageClassName: "hostpath"
      pv:
        vendorSpec:
          hostPath:
            type: Directory
            path: "/local/genesys/raa/"
    health:
      storageClassName: "hostpath"
      pv:
        vendorSpec:
          hostPath:
            type: Directory
            path: "/local/genesys/raa/"

The following bash script deploys RAA with the values above:

if ! kubectl get namespace gcxi; then
  kubectl create namespace gcxi
fi
 
kubectl create secret docker-registry mysecret \
 --namespace gcxi \
 --docker-server="pureengage-docker-staging.jfrog.io" \
 --docker-username="<regisry-user>" \
 --docker-password="<regisry-password>" \
 --docker-email=user@email.com
 
helm repo add helmrepo \
 "https://pureengage.jfrog.io/pureengage/helm-dev/" \
 --username "<regisry-user>" \
 --password "<regisry-password>" \
 --force-update
 
helm repo update
 
helm upgrade gcxi-raa-lab helmrepo/gcxi-raa \
 --install \
 --values myvalues.yaml
Important
Review Before you begin deploying GCXI for the full list of prerequisites required to deploy RAA. For information about the cloud platform, see [[PrivateEdition/Current/PEGuide/GetStarted|]].

Deploy in OpenShift

Configure the following resources to support the RAA pod:

  • Database connection details specified as raa.env.GCXI_GIM_DB__JSON value, or as a Kubernetes or vendor specific secret. See Genesys info Mart secret volume for details.
  • Config volume mounted. Specific storage should be provisioned and be available for mounting to the POD containers via specific helm values or separately from RAA helm chart with help k8s or vendor specific tools.
  • Health volume mounted. Specific storage should be provisioned and be available for mounting to the POD containers via specific helm values or separately from RAA helm chart with help k8s or vendor specific tools.

Validate the deployment in OpenShift

The testRun init container activates validation testing. Helm test command runs all the test containers: one of the test containers tests execution results, while a second performs a healthCheck.
    containers:
 
      ## optional
      ## enables config delivery init container.
      ## container delivers required xml configuration and *.ss files to RAA work dir
      ## those files delivered from gzip archive encoded as base64 and specified via {{ .Values.raa.deplyment.configTar }} helm value
      ## default conf.xml and user-data-map.ss are supplied with chart
      ## they are copied to work dir when absent and helm value above is not specified
      configDelivery: {}
 
      #  ## container name template
      #  ## should be uncommented when configDelivery is enabled
      #  name: "{{ $.Chart.Name }}-conf-delivery"
 
      ## optional
      ## enables test run init container (GCXI-3463).
      ## it performs running of all the aggregates on empty data
      ## to test the correctness of configrugation and customization
      testRun:
 
        ## container name template
        name: "{{ $.Chart.Name }}-test-run"
 
      ## main aggregation container
      aggregation:
 
        ## container name template
        name: "{{ $.Chart.Name }}"
 
      ## optional
      ## enable side car container for monitoring and processing of:
      ## - new tool command requests from a file in work dir
      ## - new prometheus scrape requests
      monitor: {}
 
      #  ## container name template
      #  name: "{{ $.Chart.Name }}-monitor"
 
      #  ## optional
      #  ## enables command processing from file placed into work dir (GCXI-4052)
      #  ## it is helpful when kubect exec is forbidden by environment restrictions.
      #  toolcmd:
 
      #    ## interval of checking for a new file with command
      #    intervalSec: "20"
 
      #  ## optional
      #  ## enables raa metrics scraping in Prometheus format via http
      #  metrics:
 
      #    ## k8s port name
      #    portName: "metrics"
 
      #    ## port number
      #    containerPort: "9100"
 
      #  ## optional
      #  ## enables raa health metric scraping in Prometheus format via http
      #  health:
 
      #    ## k8s port name
      #    portName: "health"
 
      #    ## port number
      #    containerPort: "9101"
 
 
  ## optional
  ## defines if any test pod will be declared for helm release testing
  ## see links:
  ## - https://helm.sh/docs/topics/chart_tests/
  ## - https://helm.sh/docs/helm/helm_test/
  testPods:
 
    ## optional
    ## checks the result of test run init container execution
    ## actual when {{ .Values.raa.statefulset.containers.testRun }} is specified.
    testRunCheck:
 
      ## pod name template     
      name: "{{ tpl .Values.raa.serviceName . }}-test-run-check"
 
      container:
        ## container name template     
        name: "{{ $.Chart.Name }}-test-run-check"
 
      ## optional
      ## test pod specific labels are adjusted to common labels
      labels: {}
 
      ## test pod specific annotations are adjusted to common annotations
      annotations:
        "helm.sh/hook-weight": "100"
        "helm.sh/hook": "test-success"
        "helm.sh/hook-delete-policy": "before-hook-creation"
        
    ## optional
    ## performs RAA health check
    healthCheck:
      ## pod name template     
      name: "{{ tpl .Values.raa.serviceName . }}-health-check"
 
      container:
        ## container name template     
        name: "{{ $.Chart.Name }}-health-check"
 
      ## optional
      ## test pod specific labels are adjusted to common labels
      labels: {}
 
      ## test pod specific annotations are adjusted to common annotations
      annotations:
        "helm.sh/hook-weight": "200"
        "helm.sh/hook": "test-success"
        "helm.sh/hook-delete-policy": "before-hook-creation"
Comments or questions about this documentation? Contact us for support!