Running VoltSP Pipelines

The following sections explain how to build, configure and run your VoltSP pipelines.

Building Pipeline

Once you complete the pipeline definition you are ready to compile and build the pipeline into a JAR file. You can use the Maven build file created when you downloaded the sample as a template without any modifications:

$ mvn clean package

The resulting JAR file is created in the target directory.

Configuring the Pipeline

VoltSP uses Helm to create and manage the pods in Kubernetes. There are two main aspects of the configuration:

  • Assigning the resources needed and used by the pipeline, such as memory, CPU and number of pods
  • Defining the properties that fill in placeholders in the pipeline template at runtime

The resources are defined using standard Kubernetes and Helm properties, such as resources.limits andresources.requests. For example:

replicaCount: 1

resources:
  limits:
    cpu: 2
    memory: 2G
  requests:
    cpu: 2
    memory: 2G

There are several options for how to define the properties used by the pipeline itself. See the section on Helm Configuration Options for more information on defining pipeline properties.

Running the Pipeline

Now you are ready to run your pipeline. Use the helm install command to start the pipeline, specifying voltdb/volt-streams as the chart and your edited YAML as the properties file. (If this is your first time running a pipeline, it is a good idea to issue a helm repo update command first to make sure you have access to the latest charts.) You will also need to include your volt license file specify the JAR file for the pipeline using the streaming.voltapps property. For example:

```shell $ export MY_VOLT_LICENSE=$HOME/licenses/volt-license.xml

$ helm install mydatapipe voltdb/volt-streams \ --set-file streaming.licenseXMLFile=${MY_VOLT_LICENSE} \ --set-file streaming.voltapps=target/mydatapipe-1.0-SNAPSHOT.jar \ --values test/src/main/resources/mydatapipe.yaml

```

Once you start the pipeline you can use the kubectl get pods to verify the processes have started. If there are any issues you can use kubectl logs pod-id to get details on what is happening.