Install Configuration

Note

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. 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.

Note

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. Helm values

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.

YAML

Copy
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:
  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:

YAML

Copy
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

Note

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.

Note

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.

YAML

Copy
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:

YAML

Copy
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.

  1. 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

  2. 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:

    Note

    In the following examples, replace the global/image/repository value with registry.dl.kx.com and the global/imagePullSecrets value with kx-insights-nexus.

    • To increase the resources of the Keycloak component merge the values below with the existing ones.

      Original values

      Desired changes

      Merged values

      YAML

      Copy
      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:
        auth:
          existingSecret: kxi-keycloak
        postgresql:
          auth:
            existingSecret: kxi-postgresql

      YAML

      Copy
      keycloak:
        resources:
          requests:
            cpu: 100m
            memory: 1024Mi
          limits:
            cpu: 500m
            memory: 3072Mi

      YAML

      Copy
      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:
        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.

    • 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, not kxi-encryption-secret.

      Original values

      Desired changes

      Merged values

      YAML

      Copy
      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:
        auth:
          existingSecret: kxi-keycloak
        postgresql:
          auth:
            existingSecret: kxi-postgresql

      YAML

      Copy
      global:
        encryption:
          auth:
            existingSecret: dare-secret-name

      YAML

      Copy
      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
          auth:
            existingSecret: dare-secret-name

      keycloak:
        auth:
          existingSecret: kxi-keycloak
        postgresql:
          auth:
            existingSecret: kxi-postgresql
  3. 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.

      bash

      Copy
      kxi install run --filepath values.yaml
    • If it is running, upgrade.

      bash

      Copy
      kxi install upgrade --filepath values.yaml --version $INSIGHTS_VERSION

    Warning

    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.

    YAML

    Copy
    keycloak:
      auth:
        existingSecret: kxi-keycloak
      postgresql:
        auth:
          existingSecret: kxi-postgresql
    ..
    keycloak:
      resources:
        requests:
          cpu: 100m
          memory: 1024Mi
        ..