Configure SystemLink Enterprise to access a remote Elasticsearch database to enhance scalability and performance.

You must follow these steps under the following conditions.

  • You are upgrading from a SystemLink Enterprise version before 2026-04.
  • You want to improve your search performance.
Note This feature is currently only available for the FileIngestion, Asset, and System services.

Choosing an Elasticsearch Deployment

SystemLink uses Elasticsearch to improve search performance. You can use an Elasticsearch instance in the same Kubernetes cluster as your SystemLink Enterprise installation or an external instance.

Use the following table to choose the Elasticsearch deployment that best suits your use case.
Table 33. Elasticsearch Deployment Options
Deployment When to Use Details
SystemLink Elasticsearch Helm chart
  • You need your database in the same Kubernetes cluster as your SystemLink Enterprise installation.
  • Your organization is comfortable managing an Elasticsearch instance.
  • You want user autoprovisioning and user dedicated configurations for SystemLink Enterprise.

You can run this instance on existing Kubernetes worker nodes or dedicated worker nodes using taints and tolerations.

For more information and recommended resources, refer to Sizing Considerations when Deploying an Elasticsearch Instance.

Elastic Cloud You want to simplify database provisioning, operation, backup, and restore operations. For more information and recommended resources, refer to Sizing Considerations when Deploying an Elasticsearch Instance.

Configuring the SystemLink Elasticsearch Helm Chart with Enabled Autoprovisioning

To configure Elasticsearch for the first time, you must provision the passwords.

  1. Open the elasticsearch-values.yaml file.
  2. Set the sl-elasticsearch.usersProvisioning.enabled value to True.
  3. Open the elasticsearch-secrets.yaml file.
  4. Set the password for each index.
    Table 34. Indexes for Enabled Autoprovisioning
    Service User Password
    assetservicecdc assetscdc sl-elasticsearch.secrets.assetscdcPassword
    fileingestioncdc filescdc sl-elasticsearch.secrets.filescdcPassword
    systemscdc systemscdc sl-elasticsearch.secrets.systemscdcPassword
  5. Deploy Elasticsearch.

Configuring a Remote Elasticsearch Instance or the SystemLink Elasticsearch Helm Chart with Disabled Autoprovisioning

To configure Elasticsearch for the first time, you must provision the indexes.

  1. Open the systemlink-secrets.yaml file.
  2. Set the password for each index.
    Note Some services require privileges on multiple indexes. For example, if the files,files_* parameter is specified, the service requires privileges for the following indexes:
    • The files index.
    • All indexes that match the files_* pattern (where * is a wildcard).
    Table 35. Indexes for Disabled Autoprovisioning
    Service Database User Password
    assetservice assets,assets_* assetscdc assetservice.secrets.elasticsearch.password
    assetservicecdc assets,assets_* assetscdc assetservicecdc.secrets.elasticsearch.password
    fileingestion files,files_* filescdc fileingestion.secrets.elasticsearch.password
    fileingestioncdc files,files_* filescdc fileingestioncdc.secrets.elasticsearch.password
    systems systems, systems_* systemscdc systems.secrets.elasticsearch.password
    systemscdc systems, systems_* systemscdc systemscdc.secrets.elasticsearch.password
  3. Deploy Elasticsearch.

Sizing Considerations When Deploying an Elasticsearch Instance

Resource requirements are based on service usage. Refer to the following table for tested configurations at a specified scale when configuring resources based on your expected usage.

Configure the Elasticsearch instances to handle the scale of your data.

Note These resource requirements increase as Elasticsearch usage increases.
Table 36. Elasticsearch Instance Sizing Considerations
Usage Level Scale Nodes CPU RAM Persistence
Baseline 3000 systems and 25000 assets 2 1 4 GB 1 GB
General 3000 systems, 25000 assets, and 25 million files 2 2 4 GB 50 GB
High 3000 systems, 25000 assets, and 80 million files 4 2 4 GB 200 GB

Based on your scale, select and apply a configuration.

  1. Open the elasticsearch-values.yaml file.
  2. Set the sl-elasticsearch.elasticsearch.master.replicaCount value to the listed nodes.
    Note For an optimal configuration, the number of nodes must not be smaller than the highest configured number of primary shards.
  3. Set the sl-elasticsearch.elasticsearch.master.resources.requests.cpu value to the listed CPU.
  4. Set the sl-elasticsearch.elasticsearch.master.resources.requests.memory value and the sl-elasticsearch.elasticsearch.master.resources.limits.memory value to the listed RAM.
  5. Set the sl-elasticsearch.elasticsearch.master.persistence.size value to the listed persistence storage size.

Configuring the Number of Primary Shards

Optimize your SystemLink configuration by ensuring that each service contains fewer primary shards than the number of nodes in Elasticsearch.

The following table contains configurations that NI tested at specific scales for the services.

Table 37. Tested Service Configurations
Service Scale Primary shards
Asset Service 25000 assets 1
FileIngestion Service 25 million files 2
FileIngestion Service 80 million files 4
System Service 3000 systems 2
  1. Open the systemlink-values.yaml file.
  2. Set the number of shards for the following variables:
    • assetservicecdc.job.connectors.sink.elasticsearch.index.primaryShardsCount
    • fileingestioncdc.job.connectors.sink.elasticsearch.index.primaryShardsCount
    • systemscdc.job.connectors.sink.elasticsearch.index.primaryShardsCount
  3. Save the systemlink-values.yaml file.
Note A shard configuration only works on the initial deployment. To change the configuration after the first deployment, you must manually delete the respective index from Elasticsearch. Then you can redeploy the appropriate CDC application.