SOT
    • Introduction
    • User manual
      • Getting started
        • Device registration overview
          • Registering a device
          • Self-registration of devices
        • Device claiming
          • Adding a ctrlX Core device
          • Adding a Rexroth connectivity unit device
      • Device overview
        • Setting the filter for the search
        • Device details
        • Edit device properties
        • Roll out artifacts on one or more devices
        • Rolling out a distribution
      • Device groups
        • Creating a device group
      • Machine overview
        • Create, edit and delete machines
        • Adding machines and devices via CSV file import
        • Structure of the CSV import file
      • Activity overview
      • Distribution overview
        • Managing distributions
        • Managing commands in a distribution
    • Operations manual
      • Overview
      • System architecture and interfaces
        • Element descriptions
        • Network connections overview
      • System requirements
        • General system requirements
        • Ingress controller
        • idm/idm-device-administration-app
        • idm/idm-software-management-app
        • idm/idm-device-monitoring-app
        • idm/idm-device-master-data-mgmt-app
        • idm/idm-device-app
        • idm/idm-solution-app
        • idm/idm-webapp-backend
        • idm/idm-device-tunnel-app
        • idm/idm-artifact-repository
        • bci-app/opensearch
        • bci-app/opensearch-dashboards
        • bci-app/valkey
        • bci-app/nginx
        • bci-kube/nexeed-ansible-operator
      • Migration from previous versions
      • Setup and configuration
        • Installation guide
          • How to initialize OpenSearch
          • How to create MACMA tenants with basic authentication
          • How to configure tenants for artifact-related use cases
        • Configuration
          • Detailed configuration parameters
          • Recommendations for service meshes
      • Start and shutdown
      • Regular operations
        • Whitelist new certificate
      • Failure handling
        • Device Portal data is out of sync
        • How to synchronize devices and machines to OpenSearch
        • Synchronize communication id mapping to key-value store (Redis/Valkey)
      • Backup and Restore
      • Logging and monitoring
      • Known limitations
    • Developer guide
      • Communication ID
      • Adding diagnostic functionality to devices
      • Add command processing to devices
      • Add the backup/restore functionality to devices
      • Reducing data consumption of device communication
      • Access through a custom application
    • Artifact Repository guide
      • Introduction
      • Providing artifacts for roll-out
        • Establishing a connection to the Device Portal
        • Uploading and managing artifacts in the repository
      • Downloading artifacts
      • Sending commands
    • API documentation
    • Glossary
Device Portal
  • Smart Operations Toolkit
    • Deviation Processor
    • Multitenant Access Control
    • Notification Service
    • Ticket Management
    • Web Portal
  • Shopfloor Management
    • Andon Live
    • KPI Reporting
    • Operational Routines
    • Shift Book
    • Shopfloor Management Administration
  • Product & Quality
    • Process Quality
    • AI Services
  • Machine & Equipment
    • Condition Monitoring
    • Device Portal
  • Enterprise & Shopfloor Integration
    • Information Router
    • Master Data Management

SOT Learning Portal

  • Device Portal
  • Operations manual
  • Setup and configuration
  • Configuration
  • Detailed configuration parameters

Detailed configuration parameters

This chapter describes the configuration details of the Device Portal components.

Shared variables

For all certificates and API keys / JWTs, make sure to save the relevant information.

The following variables are not related to a specific service and are shared across them.

.Values.global.modules.deviceportal.enabled

Description

Whether deviceportal should be enabled. Per default, it is disabled. Should the deviceportal be deployed, it is necessary to set this value to "true" in the custom-values.

Required

Yes

Defaults to

false

Sources
  • Helmchart (values.yaml)

  • Inventory (custom-values)

.Values.global.modules.deviceportal.mtlsGateway.deviceDomain

Description

Domain for device mTLS communication.

Required

Yes

Defaults to

-

Sources
  • Inventory (custom-values)

.Values.global.modules.deviceportal.mtlsGateway.tls.cert

Description

Reference to a multiline variable containing the server certificate chain for the device mTLS domain. The chain must be provided in the following order: Server certificate → CA certificate → Root certificate.

Required

Yes

Defaults to

-

Sources
  • Inventory (custom-values)

.Values.global.modules.deviceportal.mtlsGateway.tls.key

Description

Reference to a multiline variable containing the key of the server certificate for the device mTLS domain. In case an Ingress Controller is used as MTLS Gateway the private key must be unencrypted. In case you use the nginx and have an encrypted key you can set the password here.

Required

Yes

Defaults to

-

Sources
  • Inventory (custom-values)

.Values.global.modules.deviceportal.mtlsGateway.tls.whitelistedCerts

Description

Reference to a multiline variable containing multiple intermediate CA certificates that should be whitelisted for device mTLS authentication. See also Whitelist new certificate.

Required

Yes

Defaults to

-

Sources
  • Inventory (custom-values)

.Values.global.modules.deviceportal.common.springActiveProfiles

Description

Active spring profiles. Value is retrieved from exported deviceportal-specific custom-values defined within the Helmchart. Valid profile combinations:

  • "docker,azure,nexeed"

  • "docker,radium,nexeed"

    • This profile combination must be used for on-premises deployments.

Required

Yes

Defaults to

"docker,azure,nexeed"

Sources
  • Helmchart (values.yaml)

  • Inventory (custom-values)

The following variables are related to the database.

.Values.global.modules.deviceportal.common.datasourceUrl

Description

Datasource URL. MSSQL needs additional parameter (sendStringParametersAsUnicode=false) which is set per default.

  • If Oracle is used, this variable needs to be overwritten in the custom values without the additional parameter.

  • If MSSQL is used, no overwrite is necessary.

Required

Yes

Defaults to
Sources
  • Helmchart (values.yaml)

  • Inventory (custom-values)

.Values.global.modules.deviceportal.databases.deviceportal.type

Description

Datasource type. Supported datasources are MSSQL and Oracle. Value is retrieved from exported deviceportal-specific custom-values defined within the Helmchart. May be overwritten in the actual custom-values if an Oracle database should be used.

  • If an Oracle database is used, it is required to specify additional variables in the custom-values:

    • .Values.global.modules.deviceportal.databases.deviceportal.oracleSchema

    • .Values.global.modules.deviceportal.databases.deviceportal.name

    • .Values.global.modules.deviceportal.databases.deviceportal.userName

    • .Values.global.modules.deviceportal.databases.deviceportal.password

Required

Yes

Defaults to

"MSSQL|Oracle"

Sources
  • Helmchart (values.yaml)

  • Inventory (custom-values)

The following variables are related to API keys.

.Values.global.modules.deviceportal.common.internalApiKeyClients

Description

Json configuration string for internal api keys (should contain the internal api key). Value is retrieved from deviceportal-specific custom-values that must be defined in the inventory and depends on the environment.

Required

Yes

Defaults to

-

Sources
  • Inventory (custom-values)

.Values.global.modules.deviceportal.common.internalApiKeyGeneral

Description

Public of the key pair from which the internal api keys are derived. Value is retrieved from deviceportal-specific custom-values that must be defined in the inventory and depends on the environment.

Required

Yes

Defaults to

-

Sources
  • Inventory (custom-values)

.Values.global.modules.deviceportal.common.internalApiKey

Description

Api key for internal services. Value is retrieved from deviceportal-specific custom-values that must be defined in the inventory and depends on the environment.

Required

Yes

Defaults to

-

Sources
  • Inventory (custom-values)

idm/idm-device-administration-app

.Values.global.modules.deviceportal.deviceAdministration.datasourceConnectionPoolSize

Description

Data source connection pool size. This value should be equal to the web client connection pool size of Solution BFF. Default connection pool size for other services is 32.

Required

No

Defaults to

50

Sources
  • Helmchart (values.yaml)

  • Inventory (custom-values)

idm/idm-software-management-app

.Values.global.modules.deviceportal.softwareManagement.softwareSyncEnabled

Description

Whether the software sync should be enabled. In case software management functionality should not be needed, this can be set to false.

Required

No

Defaults to

true

Sources
  • Helmchart (values.yaml)

  • Inventory (custom-values)

idm/idm-device-monitoring-app

.Values.global.modules.deviceportal.deviceMonitoring.amqp.statusUpdate.minConcurrentConsumer

Description

Minimum count of consumers for status update queue.

Required

No

Defaults to

4

Sources
  • Helmchart (values.yaml)

  • Inventory (custom-values)

.Values.global.modules.deviceportal.deviceMonitoring.amqp.statusUpdate.maxConcurrentConsumer

Description

Maximum count of consumers for status update queue.

Required

No

Defaults to

20

Sources
  • Helmchart (values.yaml)

  • Inventory (custom-values)

.Values.global.modules.deviceportal.deviceMonitoring.amqp.statusUpdate.prefetchCount

Description

Prefetch count for status update queue.

Required

No

Defaults to

1

Sources
  • Helmchart (values.yaml)

  • Inventory (custom-values)

.Values.global.modules.deviceportal.deviceMonitoring.amqp.eventCreation.minConcurrentConsumer

Description

Minimum count of consumers for event creation queue.

Required

No

Defaults to

2

Sources
  • Helmchart (values.yaml)

  • Inventory (custom-values)

.Values.global.modules.deviceportal.deviceMonitoring.amqp.eventCreation.maxConcurrentConsumer

Description

Maximum count of consumers for event creation queue.

Required

No

Defaults to

10

Sources
  • Helmchart (values.yaml)

  • Inventory (custom-values)

.Values.global.modules.deviceportal.deviceMonitoring.amqp.eventCreation.prefetchCount

Description

Prefetch count for event creation queue.

Required

No

Defaults to

1

Sources
  • Helmchart (values.yaml)

  • Inventory (custom-values)

.Values.global.modules.deviceportal.deviceMonitoring.amqp.eventDeletion.minConcurrentConsumer

Description

Minimum count of consumers for event deletion queue.

Required

No

Defaults to

1

Sources
  • Helmchart (values.yaml)

  • Inventory (custom-values)

.Values.global.modules.deviceportal.deviceMonitoring.amqp.eventDeletion.maxConcurrentConsumer

Description

Maximum count of consumers for event deletion queue.

Required

No

Defaults to

5

Sources
  • Helmchart (values.yaml)

  • Inventory (custom-values)

.Values.global.modules.deviceportal.deviceMonitoring.amqp.eventDeletion.prefetchCount

Description

Prefetch count for event deletion queue.

Required

No

Defaults to

1

Sources
  • Helmchart (values.yaml)

  • Inventory (custom-values)

idm/idm-device-master-data-mgmt-app

.Values.global.modules.deviceportal.deviceMasterDataManagement.deviceValidationClaimableUntilMaxDays

Description

Defines the maximum number of days before which a device must be claimed. The value is equal to the number of years x 365 days + a buffer is included for different calculation methods e.g. leap years.

Required

No

Defaults to

735

Sources
  • Helmchart (values.yaml)

  • Inventory (custom-values)

idm/idm-device-app

No variables to configure.

idm/idm-solution-app

.Values.global.modules.deviceportal.solutionbff.webClientConnectionPoolSize

Description

Web client connection pool size for Solution BFF. This value should be equal to the database connection pool size of Device Administration. Default web client connection pool size for other services is 32.

Required

No

Defaults to

50

Sources
  • Helmchart (values.yaml)

  • Inventory (custom-values)

.Values.global.modules.deviceportal.solutionbff.rateLimitingEnabled

Description

Is used to activate / deactivate the rate-limiting defined via rateLimitingRequestCountPerInterval.

Required

No

Defaults to

true

Sources
  • Helmchart (values.yaml)

  • Inventory (custom-values)

.Values.global.modules.deviceportal.solutionbff.rateLimitingRequestCountPerInterval

Description

Defines how many requests a solution (typically one customer) is allowed to perform in a given interval. Attention: this limit is applied per instance/pod.

Required

No

Defaults to

30

Sources
  • Helmchart (values.yaml)

  • Inventory (custom-values)

.Values.global.modules.deviceportal.solutionbff.rateLimitingIntervalInSeconds

Description

Defines the interval (in seconds) which is the base for rate-limiting defined via rateLimitingRequestCountPerInterval.

Required

No

Defaults to

1

Sources
  • Helmchart (values.yaml)

  • Inventory (custom-values)

idm/idm-webapp-backend

.Values.global.modules.deviceportal.webapp.remoteAccessPrivateKey

Description

Private key for device tunnel. Related variable: .Values.global.modules.deviceportal.deviceTunnel.remoteAccessPublicKey

Required

Yes

Defaults to

-

Sources
  • Inventory (custom-values)

idm/idm-device-tunnel-app

.Values.global.modules.deviceportal.deviceTunnel.ipBlockingEnabled

Description

If it is enabled, IPs from which recurring non-valid requests are sent are put on a blocklist for a certain period of time.

Required

No

Defaults to

"false"

Sources
  • Helmchart (values.yaml)

  • Inventory (custom-values)

.Values.global.modules.deviceportal.deviceTunnel.ipBlockingDetectionTimeFrameInMin

Description

Ip blocking detection time frame in min.

Required

No

Defaults to

60

Sources
  • Helmchart (values.yaml)

  • Inventory (custom-values)

.Values.global.modules.deviceportal.deviceTunnel.ipBlockingAmountOfInvalidHostnamesBeforeBlocking

Description

Amount of invalid hostnames before blocking.

Required

No

Defaults to

3

Sources
  • Helmchart (values.yaml)

  • Inventory (custom-values)

.Values.global.modules.deviceportal.deviceTunnel.ipBlockingDurationInMin

Description

IP blocking duration in minutes.

Required

No

Defaults to

720

Sources
  • Helmchart (values.yaml)

  • Inventory (custom-values)

.Values.global.modules.deviceportal.deviceTunnel.ipBlockingWhitelistedIpRanges

Description

Allows to define trusted IP ranges which will never be affected by IP-blocking. For example: 124.6.88.*,46.187.72.*

Required

No

Defaults to

""

Sources
  • Inventory (custom-values)

.Values.global.modules.deviceportal.deviceTunnel.remoteAccessPublicKey

Description

Public key for remote access. Related variable: .Values.global.modules.deviceportal.webapp.remoteAccessPrivateKey

Required

Yes

Defaults to

-

Sources
  • Inventory (custom-values)

.Values.global.modules.deviceportal.deviceTunnel.maxPayloadSizeInMb

Description

The maximum size of the request and response body in megabytes. It is recommended to keep the value as low as possible and not to exceed the default value. Any increase leads to restrictions in terms of the number of concurrent users and the possible throughput. Can not be raised above 15 MB.

Required

No

Defaults to

8

Maximum

15

Minimum

2

Sources
  • Helmchart (values.yaml)

  • Inventory (custom-values)

idm/idm-artifact-repository

This section is only relevant in case Managed Artifact Repository is deployed within the cluster.

.Values.global.modules.deviceportal.artifactRepo.deployArtifactRepo

Description

Flag, whether a managed (cluster internal) artifact repository is deployed.

Required

Yes

Defaults to

false

Sources
  • Helmchart (values.yaml)

  • Inventory (custom-values)

.Values.global.modules.deviceportal.artifactRepo.repositoryEndpoint

Description

The mTLS URL of the Artifact Repository (used for device access).

Required

Yes

Defaults to

https://{{.Values.global.modules.deviceportal.mtlsGateway.deviceDomain }}/artifact-repository

Sources
  • Helmchart (values.yaml)

  • Inventory (custom-values)

.Values.global.modules.deviceportal.artifactRepo.certificate

Description

Multiline variable with the SSL certificate.

Required

Yes

Defaults to

-

Sources
  • Inventory (custom-values)

.Values.global.modules.deviceportal.artifactRepo.privateKey

Description

Multiline variable with the unencrypted private key of the certificate.

Required

Yes

Defaults to

-

Sources
  • Inventory (custom-values)

.Values.global.modules.deviceportal.artifactRepo.maxFileSizeInMb

Description

Maximum supported file size in MB (excluding setup files, backups and diagnostic data). Should not be raised above 500 MB.

Required

No

Defaults to

500

Sources
  • Helmchart (values.yaml)

  • Inventory (custom-values)

.Values.global.modules.deviceportal.artifactRepo.deviceTypeMapping

Description

The mapping between the device type ID and the device type name visible to end users.

Required

No

Defaults to

ctrlX CORE=MJ7YMNIWEeid1-7uCv8ViW,E2E=XrUuAB0_EeyOD-7uCv_B8g

Sources
  • Helmchart (values.yaml)

  • Inventory (custom-values)

Variables under "commonStorage" are used by both S3 and Azure Blob storage.

.Values.global.modules.deviceportal.artifactRepo.commonStorage.uploadPartSizeInMb

Description

Storage: upload part size in MB.

Required

No

Defaults to

10

Sources
  • Helmchart (values.yaml)

  • Inventory (custom-values)

.Values.global.modules.deviceportal.artifactRepo.commonStorage.maxConcurrentRequests

Description

Storage: maximum number of concurrent requests.

Required

No

Defaults to

64

Sources
  • Helmchart (values.yaml)

  • Inventory (custom-values)

.Values.global.modules.deviceportal.artifactRepo.commonStorage.urlLifetimeInMinutes

Description

Storage: URL lifetime in minutes (time before expiration).

Required

No

Defaults to

30

Sources
  • Helmchart (values.yaml)

  • Inventory (custom-values)

.Values.global.modules.deviceportal.artifactRepo.s3.endpoint

Description

S3 storage endpoint. For example: "https://rb-objectstorage.de.bosch.com:9021". Value is retrieved from global custom-values and depends on the environment.

Required

Yes (only for on-premises deployment)

Defaults to

-

Sources
  • Inventory (custom-values)

.Values.global.modules.deviceportal.artifactRepo.s3.bucketName

Description

S3 storage bucket name. For example: "bci-nxiasdp-q". Value is retrieved from global custom-values and depends on the environment.

Required

Yes (only for on-premises deployment)

Defaults to

-

Sources
  • Inventory (custom-values)

.Values.global.modules.deviceportal.artifactRepo.s3.accessKeyId

Description

S3 storage access key id. Value is retrieved from global custom-values and depends on the environment.

Required

Yes (only for on-premises deployment)

Defaults to

-

Sources
  • Inventory (custom-values)

.Values.global.modules.deviceportal.artifactRepo.s3.directUploadTimeoutInMinutes

Description

Storage: direct upload timeout in minutes.

Required

No

Defaults to

30

Sources
  • Helmchart (values.yaml)

  • Inventory (custom-values)

.Values.global.modules.deviceportal.artifactRepo.s3.secretAccessKey

Description

S3 storage secret access key. Value is retrieved from global custom-values and depends on the environment.

Required

Yes (only for on-premises deployment)

Defaults to

-

Sources
  • Inventory (custom-values)

.Values.global.modules.deviceportal.artifactRepo.blobStorage.enabled

Description

Whether blob storage is enabled.

Required

Yes

Defaults to

false

Sources
  • Helmchart (values.yaml)

  • Inventory (custom-values)

.Values.global.modules.deviceportal.artifactRepo.blobStorage.endpoint

Description

Azure blob storage endpoint. For example: "https://dpmanagedrepodev.blob.core.windows.net/". Value is retrieved from global custom-values and depends on the environment.

Required

Yes (only for cloud deployment)

Defaults to

"https://{{.Values.global.modules.deviceportal.artifactRepo.blobStorage.name }}.blob.core.windows.net/"

Sources
  • Helmchart (values.yaml)

  • Inventory (custom-values)

.Values.global.modules.deviceportal.artifactRepo.blobStorage.name

Description

Azure blob storage account name. For example: "dpmanagedrepodev". Value is retrieved from global custom-values and depends on the environment.

Required

Yes (only for cloud deployment)

Defaults to

-

Sources
  • Inventory (custom-values)

.Values.global.modules.deviceportal.artifactRepo.blobStorage.accountKey

Description

Azure blob storage account access key. Value is retrieved from global custom-values and depends on the environment.

Required

Yes (only for cloud deployment)

Defaults to

-

Sources
  • Inventory (custom-values)

Connect to Private Artifact Repositories

This section is only relevant in cloud environments where customer-operated Private Artifact Repositories should be integrated.

.Values.global.modules.deviceportal.artifactRepo.certificate

Description

Multiline variable holding the SSL certificate which is used to authenticate at the Private Artifact Repository instances. Hint: The hash value of this certificate must be registered at all connected Private Artifact Repository instances for a successful authentication.

Required

Yes

Defaults to

-

Sources
  • Inventory (custom-values)

.Values.global.modules.deviceportal.artifactRepo.privateKey

Description

Multiline variable with the unencrypted private key of the certificate.

Required

Yes

Defaults to

-

Sources
  • Inventory (custom-values)

bci-app/opensearch:2.19.3

.Values.global.modules.deviceportal.opensearch.enableInternalAudit

Description

Whether internal audit logging is enabled, see: https://docs.opensearch.org/latest/security/audit-logs/index/#disabling-audit-logs

Required

Yes

Defaults to

true

Sources
  • Inventory (custom-values)

.Values.global.modules.deviceportal.opensearch.devicePortalUsername

Description

Name of the Device Portal user

Required

Yes

Defaults to

deviceportal

Sources
  • Inventory (custom-values)

.Values.global.modules.deviceportal.opensearch.healthCheckUsername

Description

Name of the OpenSearch user for health monitoring

Required

Yes

Defaults to

health_check

Sources
  • Inventory (custom-values)

.Values.global.modules.deviceportal.opensearch.dashboardsUsername

Description

Name of the OpenSearch Dashboards user

Required

Yes

Defaults to

dashboards

Sources
  • Inventory (custom-values)

.Values.global.modules.deviceportal.opensearch.adminUsername

Description

Name of the OpenSearch admin user

Required

Yes

Defaults to

codeulhu

Sources
  • Inventory (custom-values)

.Values.global.modules.deviceportal.opensearch.password

Description

Initial password of the Device Portal user, the OpenSearch admin user and the OpenSearch Dashboards user. The passwords can and should be changed via OpenSearch Dashboards. Attention: When changing the password of the Device Portal user or the OpenSearch Dashboards user the configuration of these applications must be updated to use the new password.

Required

Yes

Defaults to

-

Sources
  • Inventory (custom-values)

.Values.global.modules.deviceportal.opensearch.passwordHash

Description

BCrypt hash of the initial password of Device Portal user, the OpenSearch admin user and the OpenSearch Dashboards user.

Required

Yes

Defaults to

-

Sources
  • Inventory (custom-values)

.Values.global.modules.deviceportal.opensearch.healthCheckPasswordHash

Description

BCrypt hash of the password of the OpenSearch user for health monitoring.

Required

Yes

Defaults to

-

Sources
  • Inventory (custom-values)

.Values.global.modules.deviceportal.opensearch.certificates.rootCaCert

Description

Reference to a multiline variable containing the root CA.

Required

Yes

Defaults to

-

Sources
  • Inventory (custom-values)

.Values.global.modules.deviceportal.opensearch.certificates.adminCert

Description

Reference to a multiline variable containing the admin certificate.

Required

Yes

Defaults to

-

Sources
  • Inventory (custom-values)

.Values.global.modules.deviceportal.opensearch.certificates.adminKey

Description

Reference to a multiline variable containing the admin certificate key.

Required

Yes

Defaults to

-

Sources
  • Inventory (custom-values)

.Values.global.modules.deviceportal.opensearch.certificates.nodeCert

Description

Reference to a multiline variable containing the node certificate.

Required

Yes

Defaults to

-

Sources
  • Inventory (custom-values)

.Values.global.modules.deviceportal.opensearch.certificates.nodeKey

Description

Reference to a multiline variable containing the node certificate key.

Required

Yes

Defaults to

-

Sources
  • Inventory (custom-values)

bci-app/opensearch-dashboards:2.19.3

No variables to configure.

Key-value store settings

General

.Values.global.modules.deviceportal.keyValueStore.user

Description

Username for the Client authentication.
In case of an external Redis, if no specific user is specified by the provider you can use the value 'default'.
In case of a Valkey Sentinel deployment, the user with the name you specified will be created.

Required

No

Defaults to

client-user

Sources
  • Helmchart (values.yaml)

  • Inventory (custom-values)

.Values.global.modules.deviceportal.keyValueStore.password

Description

Password for the client authentication.

Required

Yes

Defaults to

-

Sources
  • Inventory (custom-values)

External Redis

[IMPORTANT

This section is only relevant in case an external Redis is used.

.Values.global.modules.deviceportal.keyValueStore.host

Description

Host of the external Redis.

Required

Yes

Defaults to

-

Sources
  • Inventory (custom-values)

.Values.global.modules.deviceportal.keyValueStore.port

Description

Port of the external Redis.

Required

Yes

Defaults to

-

Sources
  • Inventory (custom-values)

.Values.global.modules.deviceportal.keyValueStore.protocol

Description

Protocol of the external Redis (either 'redis' for non TLS communication or 'rediss' for TLS communication).

Required

Yes

Defaults to

-

Sources
  • Inventory (custom-values)

bci-app/valkey:7.2.8

This section is only relevant in case a Valkey is used within the cluster.

.Values.global.modules.deviceportal.keyValueStore.deployValkey

Description

Whether Valkey Sentinel should be deployed within the cluster.

Required

Yes

Defaults to

false

Sources
  • Helmchart (values.yaml)

  • Inventory (custom-values)

.Values.global.modules.deviceportal.keyValueStore.cacheSizeInMb

Description

Define the memory size for Valkey sentinel + Valkey and defines the persistent storage size.
This limits the amount of data that can be cached.

Required

No

Defaults to

1024

Sources
  • Helmchart (values.yaml)

  • Inventory (custom-values)

.Values.global.modules.deviceportal.keyValueStore.sentinelUser

Description

Username for the Valkey Sentinel user.

Required

No

Defaults to

sentinel-user

Sources
  • Helmchart (values.yaml)

  • Inventory (custom-values)

.Values.global.modules.deviceportal.keyValueStore.sentinelPassword

Description

Password for the Valkey Sentinel user.

Required

Yes

Defaults to

-

Sources
  • Inventory (custom-values)

.Values.global.modules.deviceportal.keyValueStore.replicaUser

Description

Username for the Valkey Replica user.

Required

No

Defaults to

replica-user

Sources
  • Helmchart (values.yaml)

  • Inventory (custom-values)

.Values.global.modules.deviceportal.keyValueStore.replicaPassword

Description

Password for the Valkey Replica user.

Required

Yes

Defaults to

-

Sources
  • Inventory (custom-values)

.Values.global.modules.deviceportal.keyValueStore.adminUser

Description

Username for the Admin User.

Required

No

Defaults to

admin-user

Sources
  • Helmchart (values.yaml)

  • Inventory (custom-values)

.Values.global.modules.deviceportal.keyValueStore.adminPassword

Description

Password for the Admin User.

Required

Yes

Defaults to

-

Sources
  • Inventory (custom-values)

bci-app/nginx:1.29.0

mTLS

This section is only relevant in case a NGINX is deployed for mTLS.

.Values.global.modules.deviceportal.mtlsGateway.nginx.deployNginx

Description

Whether NGINX should be deployed as MTLS Gateway. Per default, it is disabled and the Ingress Controller is used as MTLS Gateway instead. Should the NGINX component be deployed, it is necessary to set this value to "true" in the custom-values.

Required

Yes

Defaults to

false

Sources
  • Helmchart (values.yaml)

  • Inventory (custom-values)

.Values.global.modules.deviceportal.mtlsGateway.nginx.loadBalancer.ip

Description

The IP address used for mTLS communication.

Required

Yes

Defaults to

-

Sources
  • Inventory (custom-values)

.Values.global.modules.deviceportal.mtlsGateway.nginx.loadBalancer.sourceRanges

Description

Traffic will be restricted to the IPs specified in this list.

Required

Yes

Defaults to

-

Sources
  • Inventory (custom-values)

.Values.global.modules.deviceportal.mtlsGateway.nginx.nginxServerKeyPass

Description

Password of the NGINX certificate key (Only necessary if key is encrypted).

Required

No

Defaults to

-

Sources
  • Inventory (custom-values)

NGINX Session Resumption

This section is only relevant in case a NGINX is deployed for mTLS and session resumption should be enabled.

.Values.global.modules.deviceportal.mtlsGateway.nginx.sessionResumption.enabled

Description

Whether session resumption is enabled.

Required

Yes

Defaults to

false

Sources
  • Helmchart (values.yaml)

  • Inventory (custom-values)

.Values.global.modules.deviceportal.mtlsGateway.nginx.sessionResumption.timeout

Description

TLS session resumption timeout.

Required

Yes

Defaults to

12h

Sources
  • Helmchart (values.yaml)

  • Inventory (custom-values)

.Values.global.modules.deviceportal.mtlsGateway.nginx.sessionResumption.keyRotationSchedule

Description

Schedule for encryption key rotation for session resumption.
The schedule should be aligned with the sessionResumptionTimeout so that a session ticket created in the first hour of key rotation is valid until the end of the session timeout and can be decrypted with an existing & valid encryption key e.g. if 4 encryption keys are used and the session timeout is 12 hours, the cron job should run at least every 4 hours ( [12 hours divided by 4 keys] + 1 hour)

Required

Yes

Defaults to

0 */4 * * *

Sources
  • Helmchart (values.yaml)

  • Inventory (custom-values)

Initialize session ticket encryption keys

A job that runs once and uses bci-kube/nexeed-ansible-operator:1.8.2 to create the TLS session encryption keys and store them in a kubernetes secret.

Service account: deviceportal-session-resumption-account.
Assigned Roles: Get & Create the secrets in device portal namespace.

Auto rotate session ticket encryption keys

A cron job that uses bci-kube/nexeed-ansible-operator:1.8.2 to auto rotate the TLS session encryption keys, update them in a kubernetes secret and restart the mTLS gateway deployment.

Service account: deviceportal-session-resumption-account.
Assigned Roles: List & Update the secrets in device portal namespace and Get & Update the mTLS gateway deployment.

Kubernetes Nginx Ingress Controller

This section is only relevant in case Kubernetes NGINX Ingress Controller is used and its "default" certificate and key need to be overridden.

.Values.global.ingressTLSKeyOverride

Description

Reference to a multiline variable containing the key of the server certificate.

Required

Yes

Defaults to

-

Sources
  • Inventory (custom-values)

.Values.global.ingressTLSCertOverride

Description

Reference to a multiline variable containing the certificate chain. The chain must be provided in the following order: Server certificate → CA certificate → Root certificate.

Required

Yes

Defaults to

-

Sources
  • Inventory (custom-values)

Device Portal umbrella chart deployment configuration

There are certain properties and configurations that must be set if the Device Portal is provided via its own umbrella chart. These settings are required regardless of whether the Umbrella Chart is installed in the same cluster as the IAS Umbrella Chart or in a different one.

Portal configuration

.Values.global.modules.portal.enabled

Description

Must be set to "false" if Device Portal is deployed via its own umbrella chart.

Required

Yes

Defaults to

-

Sources
  • Inventory (custom-values)

.Values.global.modules.portal.remoteModuleUrl

Description

Must be set if Device Portal is deployed via its own umbrella chart. Externally reachable URL e.g:

https://portal.bosch-nexeed.com
Required

Yes

Defaults to

-

Sources
  • Inventory (custom-values)

MACMA configuration

.Values.global.modules.macma.enabled

Description

Must be set to "false" if Device Portal is deployed via its own umbrella chart.

Required

Yes

Defaults to

-

Sources
  • Inventory (custom-values)

.Values.global.modules.macma.remoteModuleUrl

Description

Must be set if Device Portal is deployed via its own umbrella chart. Externally reachable URL e.g:

https://portal.bosch-nexeed.com/iam
Required

Yes

Defaults to

-

Sources
  • Inventory (custom-values)

Ansible operator configuration

.Values.global.modules.ansible-operator.enabled

Description

Must be set to "false" if Device Portal is deployed via its own umbrella chart.

Required

Yes

Defaults to

-

Sources
  • Inventory (custom-values)

.Values.global.modules.ansible-operator.namespaceSuffix

Description

If the Device Portal is deployed via its own umbrella chart, it must be set to the namespace in which the Ansible Operators (part of the IAS umbrella chart) are deployed. Ansible Operators must be available in the same cluster where the Device Portal is deployed. There have to be Ansible Operators available in the same cluster as the Device Portal is deployed to. Usually the namespace is:

namespaceSuffix: aops
Required

Yes

Defaults to

-

Sources
  • Inventory (custom-values)

.Values.global.modules.ansible-operator.additionalNamespacesToWatch

Description

This configuration must be made in the custom values that actually deploy the Ansible operators to the cluster where the Device Portal is running. This property instructs the Ansible operators to also monitor the custom resources of the Device Portal namespaces, as by default they only monitor namespaces from the same Helm chart installation they belong to. The namespace of the MTLS Gateway doesn’t need monitoring so it usually it is:

additionalNamespacesToWatch: [deviceportal]
Required

Yes

Defaults to

-

Sources
  • Inventory (custom-values)

Contents

© Robert Bosch Manufacturing Solutions GmbH 2023-2026, all rights reserved

Changelog Corporate information Legal notice Data protection notice Third party licenses