Install Configuration¶
KX Nexus
The KX Nexus repository will be sunsetted in the future. Nexus links on this page are provided as a temporary alternative to the KX Downloads Portal for existing users. The KX Downloads Portal is the preferred repository for all use cases and KX Nexus links will be removed once the KX Nexus repository is decommissioned.
A small amount of configuration is required to deploy kdb Insights Enterprise using the default settings. 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.
Info
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: portal.dl.kx.com
imagePullSecrets:
- name: kx-image-pull-secret
license:
secretName: kxi-license
caIssuer:
name: kxi-certificate
secretName: kxi-certificate
ingress:
host: "sample.kxi.example.com"
keycloak:
fullnameOverride: "insights-keycloak"
auth:
existingSecret: kxi-keycloak
postgresql:
auth:
existingSecret: kxi-postgresql
Existing users can use the KX Nexus repository until Nexus is removed in the future. The following is the equivalent command to the above example, using the KX Nexus repository instead of the KX Downloads Portal:
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:
fullnameOverride: "insights-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 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: portal.dl.kx.com
The following is the equivalent command to the above example, using KX Nexus instead of the KX Downloads Portal:
global:
image:
repository: registry.dl.kx.com
Applying configuration changes¶
The Insights Configuration Reference page lists all configurable values for your values.yaml file.
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-valuesto output it - If you previously deployed, the CLI would have saved a
values.yamlfile 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.
The following examples show how to merge the default values from the top of this page with additional settings:
Existing users using the KX Nexus repository
In the following examples, replace the
global/image/repositoryvalue withregistry.dl.kx.comand theglobal/imagePullSecretsvalue withkx-insights-nexus.-
To increase the resources of the Keycloak component merge the values below with the existing ones.
global: image: repository: portal.dl.kx.com imagePullSecrets: - name: kx-image-pull-secrets license: secretName: kxi-license caIssuer: name: kxi-certificate secretName: kxi-certificate ingress: host: "sample.kxi.example.com" keycloak: fullnameOverride: "insights-keycloak" auth: existingSecret: kxi-keycloak postgresql: auth: existingSecret: kxi-postgresqlkeycloak: resources: requests: cpu: 100m memory: 1024Mi limits: cpu: 500m memory: 3072Miglobal: image: repository: portal.dl.kx.com imagePullSecrets: - name: kx-image-pull-secrets license: secretName: kxi-license caIssuer: name: kxi-certificate secretName: kxi-certificate ingress: host: "sample.kxi.example.com" keycloak: fullnameOverride: "insights-keycloak"S auth: existingSecret: kxi-keycloak postgresql: auth: existingSecret: kxi-postgresql resources: requests: cpu: 100m memory: 1024Mi limits: cpu: 500m memory: 3072MiNote how the two top-level
keycloakobjects have been merged together. -
To upgrade from kdb Insights Enterprise 1.10, with encryption-in-transit on, to kdb Insights Enterprise 1.11 or above, where your encryption secret is
dare-secret-name, notkxi-encryption-secret.global: image: repository: portal.dl.kx.com imagePullSecrets: - name: kx-image-pull-secrets license: secretName: kxi-license caIssuer: name: kxi-certificate secretName: kxi-certificate ingress: host: "sample.kxi.example.com" encryption: enabled: true keycloak: fullnameOverride: "insights-keycloak" auth: existingSecret: kxi-keycloak postgresql: auth: existingSecret: kxi-postgresqlglobal: encryption: auth: existingSecret: dare-secret-nameglobal: image: repository: portal.dl.kx.com imagePullSecrets: - name: kx-image-pull-secrets license: secretName: kxi-license caIssuer: name: kxi-certificate secretName: kxi-certificate ingress: host: "sample.kxi.example.com" encryption: enabled: true auth: existingSecret: dare-secret-name keycloak: fullnameOverride: "insights-keycloak" auth: existingSecret: kxi-keycloak postgresql: auth: existingSecret: kxi-postgresql
-
-
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, install.
kxi install run --filepath values.yaml -
If it is running, 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: fullnameOverride: "insights-keycloak" auth: existingSecret: kxi-keycloak postgresql: auth: existingSecret: kxi-postgresql .. keycloak: resources: requests: cpu: 100m memory: 1024Mi .. -
Package Manager resiliency¶
Starting with kdb Insights Enterprise version 1.17, the Package Manager (PM) supports scaling to multiple replicas.
That means all package data is stored in a centralized database outside of the package-manager service. This allows safe scaling, and data migration is handled automatically during the kxi upgrade or kxi rollback process.
To enable resiliency, add the following to your Insights values file at install or upgrade:
kxi-package-manager:
replicaCount: 2
Set the replicaCount based on your needs, as follows:
-
1for low resource usage, non-resilient. Suitable only for environments with minimal package operations or deployments. Not recommended for heavy UI usage. -
2for basic resiliency with relatively low resource overhead. Doubles the API request throughput. -
3or more for high resilience with higher resource usage and high API request throughput. Recommended for production workloads that require high availability and responsiveness.
Warning
Setting replicaCount to 2 or higher is only supported in kdb Insights Enterprise 1.17+.