Install configuration
There is a small amount of configuration required to deploy kdb Insights Enterprise. The kdb Insights CLI provides a wizard to simplify this process and setup the required parameters. In addition you can apply more advanced configurations using the values file it produces.
What is a values file?
kdb Insights Enterprise is deployed as a Helm chart and is configured using a values file. This is a YAML formatted file used to set chart parameters.
The required parameters for kdb Insights Enterprise involve setting up chart and image repositories, TLS certificates, credentials and similar configs. A sample values file looks something like below. The CLI creates some resources in Kubernetes and the values below reference those.
global:
image:
repository: registry.dl.kx.com
imagePullSecrets:
- name: kx-insights-nexus
license:
secretName: kxi-license
caIssuer:
name: kxi-certificate
secretName: kxi-certificate
ingress:
host: "sample.kxi.example.com"
keycloak:
auth:
existingSecret: kxi-keycloak
postgresql:
auth:
existingSecret: kxi-postgresql
Global values
Some configuration options can be applied globally across all components. Helm
has special handling for the global
key. For example the global.image.repository
key in the example above sets the image registry for all components of kdb Insights Enterprise.
In the following pages, config options will be flagged as global as it applies to them.
Conversely, the keycloak
object defines configuration for the Keycloak component of the application.
The following pages will cover the available configuration by area, highlighting what they are used for, their default values and example usages.
YAML indexing notation
As explained above configuration consists of YAML objects. The documentation here
will use .
indexing to indicate values in a nested YAML object. For example, the
repository
object in the block below would be represented by global.image.repository
.
global:
image:
repository: registry.dl.kx.com
Applying configuration changes
When you have configuration changes to apply to your deployment, you must update your values file with those changes.
-
Generate a values file.
There are a number of ways to generate a values file:
- If your system is currently deployed, you can run
kxi install get-values
to output it - If you previously deployed, the CLI would have saved a
values.yaml
file to the machine and directory you installed from - If your system is not yet deployed, you can generate one using
kxi install setup
- If your system is currently deployed, you can run
-
Once you have a values file, merge your desired changes into that file.
As an example, assuming you are using the default values from the top of this page and you want to increase the resources of the Keycloak component. This would require merging the values below with the existing ones.
global: image: repository: registry.dl.kx.com imagePullSecrets: - name: kx-insights-nexus license: secretName: kxi-license caIssuer: name: kxi-certificate secretName: kxi-certificate ingress: host: "sample.kxi.example.com" keycloak: auth: existingSecret: kxi-keycloak postgresql: auth: existingSecret: kxi-postgresql
keycloak: resources: requests: cpu: 100m memory: 1024Mi limits: cpu: 500m memory: 3072Mi
global: image: repository: registry.dl.kx.com imagePullSecrets: - name: kx-insights-nexus license: secretName: kxi-license caIssuer: name: kxi-certificate secretName: kxi-certificate ingress: host: "sample.kxi.example.com" keycloak: auth: existingSecret: kxi-keycloak postgresql: auth: existingSecret: kxi-postgresql resources: requests: cpu: 100m memory: 1024Mi limits: cpu: 500m memory: 3072Mi
Note how the two top-level
keycloak
objects have been merged together. -
You can apply the updated values to the deployment by referencing it as part of the install or upgrade CLI command.
-
If the system is not running, you should install.
kxi install run --filepath values.yaml
-
If it is running, you should upgrade.
kxi install upgrade --filepath values.yaml --version $INSIGHTS_VERSION
Duplicate keys
Be careful not to introduce duplicate objects in your values as only the last one will be actioned and this can result in broken configuration.
In the example below, the first
keycloak:
block containing authentication secrets will not be included in the deployment values.keycloak: auth: existingSecret: kxi-keycloak postgresql: auth: existingSecret: kxi-postgresql .. keycloak: resources: requests: cpu: 100m memory: 1024Mi ..
-