Summary: step-by-step instructions for your CAST Imaging installation for Kubernetes.

Prerequisites

ItemComponent

Kubernetes

(tick)
Helm(tick)

Download or clone the GitHub repository

Download or clone the following GitHub repository: https://github.com/CAST-Extend/com.castsoftware.imaging.kubernetessetup/tree/main

Ensure you obtain the version you want to install by changing to the correct branch:

Installation process

Make sure your Kubernetes cluster is up and running and that Helm is installed on your system (see https://helm.sh/docs/intro/install/). 

First create a Kubernetes namespace (for example "imaging") where you want to install CAST Imaging (see https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#-em-namespace-em-):

kubectl create ns imaging

Now create a configmap (see https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#-em-configmap-em-) for the .CSV files required by CAST Imaging:

kubectl create configmap defaultcsvs --from-file=tools/csv -n imaging

Run the following Helm command from the root folder of the cloned/downloaded GitHub repository to install CAST Imaging to the imaging namespace (change this if you have called your namespace something else), and pull the images from Docker hub. Ensure you change <version> to match the release number of CAST Imaging you would like to install:

helm install imaging --namespace imaging --set version=<version>

CAST Imaging will then download and install. When installed you should run the following command from the root folder of the cloned/downloaded GitHub repository to prepare CAST Imaging to accept application data:

kubectl cp tools/csv/* neo4j-core-0:/var/lib/neo4j/import -n imaging

You may then need to use the expose command (see https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#expose):

kubectl expose deployment server --name=loadbalancer --port=80 --target-port=80 --type=LoadBalancer -n imaging

Additional commands

Update individual "service" image

Ensure you change <version> to match the release number of CAST Imaging you would like to update to. Change namespace to your chosen namespace:

helm upgrade imaging --namespace imaging --set serviceImage.tag=<version>

Update individual "etl" image

Ensure you change <version> to match the release number of CAST Imaging you would like to update to. Change namespace to your chosen namespace:

helm upgrade imaging --namespace imaging --set etlImage.tag=<version>

Update individual "neo4j" image

Ensure you change <version> to match the release number of CAST Imaging you would like to update to. Change namespace to your chosen namespace:

helm upgrade imaging --namespace imaging --set neo4jImage.tag=<version>

Get pods and service in kubernetes

kubectl get pods -n imaging
kubectl get svc -n imaging