PrizmDoc® v14.2 Release - Updated
PrizmDoc OCR API / OCR API Admin Guide / Deployment to Kubernetes - Guidance for the Process Manager
In This Topic
    Deployment to Kubernetes - Guidance for the Process Manager
    In This Topic

    Resources Used in PrizmDoc Deployment

    In addition to the core workload resources needed for a functioning installation, various additional capabilities can be supported through the instantiation of one or more Process Manager instances and supporting workers.

    The Process Manager is a supplemental service that allows for the management of long running processing tasks which are handled by independent worker services.

    Process Manager

    You will need the following resources for the Process Manager:

    Deployment for the Process Manager

    The Process Manager can be created as a standard deployment. Supplying the string YES in the ACCEPT_EULA environment variable signifies that you accept the Process Manager's license agreement.

    You will also need to provide a database connection string to the database where the Process Manager will store information about ongoing and completed processes.

    Example

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: accusoft-process-manager-deployment
      labels:
        app: accusoft-process-manager
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: accusoft-process-manager
      template:
        metadata:
          labels:
            app: accusoft-process-manager
        spec:
          containers:
          - name: process-manager
            image: nexus.jpg.com:9443/sdk/process-manager:latest
            env:
            - name: ACCEPT_EULA
              value: "YES"
            - name: DATABASE_CONNECTION_STRING
              value: "mysql://user:password@mysqlhost:mysqlport/ProcessManager"
            - name: LOG_LEVEL
              value: "info"
            - name: ACTIVITY_DATA_LIFETIME
              value: "8h"
            resources:
              limits:
                cpu: 250m
                memory: 250Mi
              requests:
                cpu: 250m
                memory: 250Mi
            livenessProbe:
              httpGet:
                path: /liveness
                port: 3001
              initialDelaySeconds: 1
              periodSeconds: 30
              timeoutSeconds: 5
            readinessProbe:
              httpGet:
                path: /readiness
                port: 3001
              initialDelaySeconds: 1
              periodSeconds: 30
              timeoutSeconds: 5
            ports:
            - name: public
              containerPort: 3000
            - name: internal
              containerPort: 3001
    
    

    Process Manager Service Resources

    You should expose both the Process Manager's internal API (for status and administrative purposes) and its external API (for process requests and updates) as Services:

    Example

    apiVersion: v1
    kind: Service
    metadata:
      name: accusoft-process-manager-internal
    spec:
      selector:
        app: accusoft-process-manager
      ports:
      - name: internal
        targetPort: internal
        port: 80
    ---
    apiVersion: v1
    kind: Service
    metadata:
      name: accusoft-process-manager-public
    spec:
      selector:
        app: accusoft-process-manager
      ports:
      - name: public
        targetPort: public
        port: 80