ICE Order Book Accelerator Quickstart Guide
The ICE Order Book Accelerator is an FSI Accelerator package which comes with ready made Pipelines, Views, and Schemas out of the box.
Prerequisites
This quickstart guide is not intended to be a comprehensive KDB Insights Install Guide, for more information regarding KDB Insights installation refer to the kdb Insights Enterprise documentation). This guide assumes the following pre-requisites:
- KDB Insights Enterprise 1.9.0 (minimum version) installed
- Necessary credentials obtained and configured:
- Insights Users:
- GUI User
- API Client
- Insights Users:
- kx download portal bearer token to download packages/charts (represented by BEARER in this guide).
- ICE Credentials:
- ICE Consolidated Feed Username & Password
- ICE Consolidated Feed IP Address & Port Number
- Necessary Tools Used:
- Access to *nix command-line
- KDB Insights CLI -
kxi
- Kubernetes tools:
- kubectl
- K9s
- Helm installed and logged in to nexus
- VSCode with the following plugins:
- KX kdb
- Jupyter
Quick Start Guide
Download the required FSI packages from the kx download portal:
# Download fsi-lib - the Core FSI Library
curl -s --fail-with-body -D /dev/stderr --oauth2-bearer ${BEARER} -L -OJ https://portal.dl.kx.com/assets/raw/kxi-accelerators/fsi/fsi-lib/packages/1.1.1/fsi-lib-1.1.1.kxi
# Download fsi-app-ice-orderbook - the ICE Orderbook Accelerator
curl -s --fail-with-body -D /dev/stderr --oauth2-bearer ${BEARER} -L -OJ https://portal.dl.kx.com/assets/raw/kxi-accelerators/fsi/fsi-ice-orderbook/packages/1.1.0/fsi-app-ice-orderbook-1.1.0.kxi
Unpack fsi-app-ice-orderbook:
kxi package unpack fsi-app-ice-orderbook-1.1.0.kxi
Update the example ICE Feedhandler Config File to include your credentials and preferences.
Note
- The config file contains a lot of commonly pre-populated default values.
- Any values that are expected to require updating on a per-deployment bases have been marked with a TODO comment, for example:
- Connection Details
- Subscription List
vi fsi-app-ice-orderbook/config/feed/ice-feed-values.yaml
Push the packages to Insights and Deploy the fsi-ice-orderbook-assembly:
# Install the packages
kxi package push --force fsi-lib/1.1.1
kxi package push --force fsi-app-ice-orderbook/1.1.0
# Deploy the assembly
kxi package deploy fsi-app-ice-orderbook/1.1.0
Note
At this point you should be able to see the pipelines booting up on the GUI or on k9s.
Add the KX helm repository from the KX downloads portal.
Note
For info on how to set up your downloads bearer token, go to https://portal.dl.kx.com/auth/token
helm repo add kx https://portal.dl.kx.com/assets/helm --username <INSERT_EMAIL> --password <INSERT_BEARER_TOKEN>
Download the ICE Feedhandler from helm:
helm fetch kx/rt-ice-pub --version 1.0.0 --untar
Add your ICE Username & Password as a kubernetes secret:
Note
The secret name, in this case my-ice-secrets
, should match the ice.secrets.name
value in the example config file you previously edited - fsi-app-ice-orderbook/feed/ice-feed-values.yaml
.
kubectl create secret generic my-ice-secrets --from-literal=my-username=<INSERT_ICE_USERNAME> --from-literal=my-password=<INSERT_ICE_PASSWORD> -n <YOUR_NAMESPACE>
To create a secret for the Helm chart to pull the feed image, use the following command:
kubectl create secret docker-registry "docker-pull" --docker-server=portal.dl.kx.com --docker-username=<INSERT_EMAIL> --docker-password=<INSERT_BEARER_TOKEN> --docker-email=<INSERT_EMAIL> -n <INSERT_YOUR_NAMESPACE>
Install the ICE Feedhandler Helm Chart using our config file:
helm install rt-ice-pub ./rt-ice-pub -f fsi-app-ice-orderbook/config/feed/ice-feed-values.yaml -n <INSERT_YOUR_NAMESPACE>
Verify the ICE FH is running using kubectl:
kubectl describe pod rt-ice-pub-0
Expected Output from above command on successful install:
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Created 24s kubelet Created container rt-ice-pub
Normal Started 24s kubelet Started container rt-ice-pub
Now that you have the ICE Feedhandler running you should be able to see data flowing in realtime via the Realtime-Orderbook View: