Novelty Helm Chart Quickstart¶
Follow this link for the Full Helm chart.
Prerequisites¶
Kubernetes¶
A Kubernetes cluster is required to install Novelty with Helm.
Helm¶
Helm must be installed to use the charts. Please refer to Helm's documentation to get started.
Once Helm has been set up correctly, add the repo as follows:
helm repo add thatdot https://helm.thatdot.com
If you have previously added this repo, run helm repo update to retrieve the latest versions of the packages. You can then run helm search repo thatdot to see the charts.
Cassandra Compatible Database¶
Apache Cassandra or a Cassandra-compatible database such as ScyllaDB is required to use Novelty.
The database used with Novelty may be installed in the same Kubernetes cluster as Novelty, but this is not required. However, it is recommended that it be physically located as close to the Novelty installation as possible to reduce network latency, such as ensuring they are both located in the same AWS region or availability zone.
There are a variety of ways to install Apache Cassandra or ScyllaDB into Kubernetes. Both databases have published Helm charts to make installation and administration easier.
See helm-charts/extras/persistor for an example to quickly bootstrap a thatDot environment with an Apache Cassandra cluster.
Apache Cassandra Helm chart: https://artifacthub.io/packages/helm/bitnami/cassandra
ScyllaDB Helm chart: https://operator.docs.scylladb.com/stable/installation/helm.html
License¶
Novelty is proprietary software and a license is required to use it.
To request an evaluation, schedule a demo, or purchase a license, please visit https://www.thatdot.com/getting-started-with-thatdot/ or email sales@thatdot.com.
Once you receive your license key, you must store it in a Kubernetes secret and reference that secret in the Helm values using the licenseKeySecret field.
The same key is also your credential for the private image registry that distributes the Novelty image: the registry username is your client id, and the password is the license key itself. You can verify your credentials from a workstation with docker:
echo <LICENSE_KEY> | \
docker login <DOCKER_REGISTRY_URL> \
-u <CLIENT_ID> \
--password-stdin
Installation¶
Helm Values¶
First create a values file called novelty-values.yaml with required helm configuration values (see values.yaml for a reference of available configuration and defaults):
# Settings for using Cassandra cluster as the persistor. REQUIRED.
cassandra:
enabled: true
endpoints: "<CASSANDRA_ADDRESS_1>,<CASSANDRA_ADDRESS_2>"
plaintextAuth:
enabled: true
username: <CASSANDRA_USERNAME>
password: <CASSANDRA_PASSWORD>
shouldCreateKeyspace: true
shouldCreateTables: true
Create a Kubernetes secret containing your license key:
kubectl create secret generic novelty-license \
--from-literal=license-key="YOUR_LICENSE_KEY"
Then reference this secret in your Helm values:
licenseKeySecret:
name: novelty-license
key: license-key
The Novelty image is pulled from thatDot's private registry, authenticated with the same license key. Create a kubernetes.io/dockerconfigjson secret holding that credential:
kubectl create secret docker-registry thatdot-registry \
--docker-server=<DOCKER_REGISTRY_URL> \
--docker-username=<CLIENT_ID> \
--docker-password=<LICENSE_KEY>
The resulting secret is a docker login stored as data. If you manage manifests directly or use a secrets operator, the equivalent shape is:
apiVersion: v1
kind: Secret
metadata:
name: thatdot-registry
type: kubernetes.io/dockerconfigjson
stringData:
.dockerconfigjson: |
{"auths": {"<DOCKER_REGISTRY_URL>": {
"username": "<CLIENT_ID>",
"password": "<LICENSE_KEY>",
"auth": "<base64 of CLIENT_ID:LICENSE_KEY>"}}}
Reference the secret and the image in your Helm values:
image:
repository: <DOCKER_REGISTRY_URL>/<IMAGE>
pullPolicy: IfNotPresent
tag: "<TAG>"
imagePullSecrets:
- name: thatdot-registry
The chart renders these into the Deployment's pod template, where the secret is referenced by name for image pulls. If you deploy without Helm, the same wiring in a Deployment manifest looks like:
apiVersion: apps/v1
kind: Deployment
spec:
template:
spec:
imagePullSecrets:
- name: thatdot-registry
containers:
- name: novelty
image: <DOCKER_REGISTRY_URL>/<IMAGE>:<TAG>
Install the cluster with Helm using the command (Don't forget to first helm repo add the thatdot Helm repo in the prerequisites section):
helm install --values=novelty-values.yaml \
my-novelty thatdot/novelty
Uninstall the cluster:
helm uninstall my-novelty
Metrics and Monitoring¶
Novelty exposes a large number of JVM and application metrics via the Dropwizard Metrics Library.
The recommended monitoring stack consists of influxDBv1 to record metrics and grafana to graph and visualize them.
See helm-charts/extras/monitoring-stack for an example to quickly bootstrap a thatDot environment with an InfluxDb and a Grafana instance.
# Metrics Configuration:
metrics:
influx:
enabled: true
database: metrics
scheme: http
# Set "host" and "port" to the reachable address of the influx server
host: "<INFLUXDB_HOST_ADDRESS>"
port: 8086
Note
Novelty also supports emitting metrics to Prometheus. A guide on how to set this up with Helm is here.