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 |
|
.Values.global.modules.deviceportal.mtlsGateway.deviceDomain
| Description |
Domain for device mTLS communication. |
| Required |
Yes |
| Defaults to |
- |
| Sources |
|
.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 |
|
.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 |
|
.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 |
|
.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:
|
| Required |
Yes |
| Defaults to |
"docker,azure,nexeed" |
| Sources |
|
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.
|
| Required |
Yes |
|
Defaults to
Sources |
|
.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.
|
| Required |
Yes |
| Defaults to |
"MSSQL|Oracle" |
| Sources |
|
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 |
|
.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 |
|
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 |
|
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 |
|
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 |
|
.Values.global.modules.deviceportal.deviceMonitoring.amqp.statusUpdate.maxConcurrentConsumer
| Description |
Maximum count of consumers for status update queue. |
| Required |
No |
| Defaults to |
20 |
| Sources |
|
.Values.global.modules.deviceportal.deviceMonitoring.amqp.statusUpdate.prefetchCount
| Description |
Prefetch count for status update queue. |
| Required |
No |
| Defaults to |
1 |
| Sources |
|
.Values.global.modules.deviceportal.deviceMonitoring.amqp.eventCreation.minConcurrentConsumer
| Description |
Minimum count of consumers for event creation queue. |
| Required |
No |
| Defaults to |
2 |
| Sources |
|
.Values.global.modules.deviceportal.deviceMonitoring.amqp.eventCreation.maxConcurrentConsumer
| Description |
Maximum count of consumers for event creation queue. |
| Required |
No |
| Defaults to |
10 |
| Sources |
|
.Values.global.modules.deviceportal.deviceMonitoring.amqp.eventCreation.prefetchCount
| Description |
Prefetch count for event creation queue. |
| Required |
No |
| Defaults to |
1 |
| Sources |
|
.Values.global.modules.deviceportal.deviceMonitoring.amqp.eventDeletion.minConcurrentConsumer
| Description |
Minimum count of consumers for event deletion queue. |
| Required |
No |
| Defaults to |
1 |
| Sources |
|
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 |
|
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 |
|
.Values.global.modules.deviceportal.solutionbff.rateLimitingEnabled
| Description |
Is used to activate / deactivate the rate-limiting defined via rateLimitingRequestCountPerInterval. |
| Required |
No |
| Defaults to |
true |
| Sources |
|
.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 |
|
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 |
|
.Values.global.modules.deviceportal.deviceTunnel.ipBlockingDetectionTimeFrameInMin
| Description |
Ip blocking detection time frame in min. |
| Required |
No |
| Defaults to |
60 |
| Sources |
|
.Values.global.modules.deviceportal.deviceTunnel.ipBlockingAmountOfInvalidHostnamesBeforeBlocking
| Description |
Amount of invalid hostnames before blocking. |
| Required |
No |
| Defaults to |
3 |
| Sources |
|
.Values.global.modules.deviceportal.deviceTunnel.ipBlockingDurationInMin
| Description |
IP blocking duration in minutes. |
| Required |
No |
| Defaults to |
720 |
| Sources |
|
.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 |
|
.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 |
|
.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 |
|
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 |
|
.Values.global.modules.deviceportal.artifactRepo.repositoryEndpoint
| Description |
The mTLS URL of the Artifact Repository (used for device access). |
| Required |
Yes |
| Defaults to |
|
| Sources |
|
.Values.global.modules.deviceportal.artifactRepo.certificate
| Description |
Multiline variable with the SSL certificate. |
| Required |
Yes |
| Defaults to |
- |
| Sources |
|
.Values.global.modules.deviceportal.artifactRepo.privateKey
| Description |
Multiline variable with the unencrypted private key of the certificate. |
| Required |
Yes |
| Defaults to |
- |
| Sources |
|
.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 |
|
.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 |
|
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 |
|
.Values.global.modules.deviceportal.artifactRepo.commonStorage.maxConcurrentRequests
| Description |
Storage: maximum number of concurrent requests. |
| Required |
No |
| Defaults to |
64 |
| Sources |
|
.Values.global.modules.deviceportal.artifactRepo.commonStorage.urlLifetimeInMinutes
| Description |
Storage: URL lifetime in minutes (time before expiration). |
| Required |
No |
| Defaults to |
30 |
| Sources |
|
.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 |
|
.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 |
|
.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 |
|
.Values.global.modules.deviceportal.artifactRepo.s3.directUploadTimeoutInMinutes
| Description |
Storage: direct upload timeout in minutes. |
| Required |
No |
| Defaults to |
30 |
| Sources |
|
.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 |
|
.Values.global.modules.deviceportal.artifactRepo.blobStorage.enabled
| Description |
Whether blob storage is enabled. |
| Required |
Yes |
| Defaults to |
false |
| Sources |
|
.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 |
|
.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 |
|
.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 |
|
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 |
|
.Values.global.modules.deviceportal.artifactRepo.privateKey
| Description |
Multiline variable with the unencrypted private key of the certificate. |
| Required |
Yes |
| Defaults to |
- |
| Sources |
|
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 |
|
.Values.global.modules.deviceportal.opensearch.devicePortalUsername
| Description |
Name of the Device Portal user |
| Required |
Yes |
| Defaults to |
deviceportal |
| Sources |
|
.Values.global.modules.deviceportal.opensearch.healthCheckUsername
| Description |
Name of the OpenSearch user for health monitoring |
| Required |
Yes |
| Defaults to |
health_check |
| Sources |
|
.Values.global.modules.deviceportal.opensearch.dashboardsUsername
| Description |
Name of the OpenSearch Dashboards user |
| Required |
Yes |
| Defaults to |
dashboards |
| Sources |
|
.Values.global.modules.deviceportal.opensearch.adminUsername
| Description |
Name of the OpenSearch admin user |
| Required |
Yes |
| Defaults to |
codeulhu |
| Sources |
|
.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 |
|
.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 |
|
.Values.global.modules.deviceportal.opensearch.healthCheckPasswordHash
| Description |
BCrypt hash of the password of the OpenSearch user for health monitoring. |
| Required |
Yes |
| Defaults to |
- |
| Sources |
|
.Values.global.modules.deviceportal.opensearch.certificates.rootCaCert
| Description |
Reference to a multiline variable containing the root CA. |
| Required |
Yes |
| Defaults to |
- |
| Sources |
|
.Values.global.modules.deviceportal.opensearch.certificates.adminCert
| Description |
Reference to a multiline variable containing the admin certificate. |
| Required |
Yes |
| Defaults to |
- |
| Sources |
|
.Values.global.modules.deviceportal.opensearch.certificates.adminKey
| Description |
Reference to a multiline variable containing the admin certificate key. |
| Required |
Yes |
| Defaults to |
- |
| Sources |
|
.Values.global.modules.deviceportal.opensearch.certificates.nodeCert
| Description |
Reference to a multiline variable containing the node certificate. |
| Required |
Yes |
| Defaults to |
- |
| Sources |
|
.Values.global.modules.deviceportal.opensearch.certificates.nodeKey
| Description |
Reference to a multiline variable containing the node certificate key. |
| Required |
Yes |
| Defaults to |
- |
| Sources |
|
Key-value store settings
General
.Values.global.modules.deviceportal.keyValueStore.user
| Description |
Username for the Client authentication. |
| Required |
No |
| Defaults to |
client-user |
| Sources |
|
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 |
|
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 |
|
.Values.global.modules.deviceportal.keyValueStore.cacheSizeInMb
| Description |
Define the memory size for Valkey sentinel + Valkey and defines the persistent storage size. |
| Required |
No |
| Defaults to |
1024 |
| Sources |
|
.Values.global.modules.deviceportal.keyValueStore.sentinelUser
| Description |
Username for the Valkey Sentinel user. |
| Required |
No |
| Defaults to |
sentinel-user |
| Sources |
|
.Values.global.modules.deviceportal.keyValueStore.sentinelPassword
| Description |
Password for the Valkey Sentinel user. |
| Required |
Yes |
| Defaults to |
- |
| Sources |
|
.Values.global.modules.deviceportal.keyValueStore.replicaUser
| Description |
Username for the Valkey Replica user. |
| Required |
No |
| Defaults to |
replica-user |
| Sources |
|
.Values.global.modules.deviceportal.keyValueStore.replicaPassword
| Description |
Password for the Valkey Replica user. |
| Required |
Yes |
| Defaults to |
- |
| Sources |
|
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 |
|
.Values.global.modules.deviceportal.mtlsGateway.nginx.loadBalancer.ip
| Description |
The IP address used for mTLS communication. |
| Required |
Yes |
| Defaults to |
- |
| Sources |
|
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 |
|
.Values.global.modules.deviceportal.mtlsGateway.nginx.sessionResumption.timeout
| Description |
TLS session resumption timeout. |
| Required |
Yes |
| Defaults to |
12h |
| Sources |
|
.Values.global.modules.deviceportal.mtlsGateway.nginx.sessionResumption.keyRotationSchedule
| Description |
Schedule for encryption key rotation for session resumption. |
| Required |
Yes |
| Defaults to |
0 */4 * * * |
| Sources |
|
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 |
|
.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 |
|
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
MACMA configuration
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 |
|
.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 |
|
.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 |
|