Deployment via Helm with multi-instance support
To deploy using Helm, two files need to be modified in the Nexeed umbrella chart: Chart.yaml and custom-values.yaml.
Chart.yaml
Add Rework Control chart reference for every instance to deploy. An example for the content of Chart.yaml after modification is shown below. Please note that <instance-id> shall be replaced with a unique alias for the chart instance. The alias may only contain lower case letters, dashes (-) and numbers.
Listing 1. Content of Chart.yaml after modification
apiVersion: v2
name: nexeed
version: 0.1.0
description: Nexeed umbrella Helm chart for Kubernetes
type: application
dependencies:
...
- name: rework
alias: <instance-id>
version: <chart-version>
repository: oci://bcidockerregistry.azurecr.io/rework/helmchart
import-values:
- child: export
parent: global.modules.<instance-id>
condition: global.modules.<instance-id>.enabled
...
custom-values.yaml
Some settings need to be set there. Below is the definition for the local dictionary structure and its default values. If a required setting is not set, building the umbrella chart will fail and show the corresponding error message.
Listing 2. Content that shall be added
...
<instance-id>:
local:
logging: # The default logging level to use. Allowed values are [ERROR, WARN, INFO, TRACE, DEBUG]
webservice: "WARN"
backend: "WARN"
gateway: "WARN"
tenant:
homeTenantId: # Optional. The software providing tenant of Rework Control. If not set, will fall back to .Values.global.nexeedMacmaTenant0Id.
acl:
refreshInterval: 60 # The refresh interval in seconds for cached ACL values
introspection:
cachingEnabled: false # Whether to cache introspection data about access tokens
cachingDuration: 30 # How long to cache introspection data in seconds. Recommended to be less than 1 minute
instanceDisplayName: # Optional. Appears in the sub-menu navigation link in the Nexeed Web Portal
instanceDependencies: # These are the aliases of other charts that are dependencies of Rework Control
linecon: # Required (e.g. 'linecon')
erpconn: # Optional (e.g. 'erpconn')
parttrace: # Required (e.g. 'parttrace'). It is used for Nexeed Part Traceability and Nexeed Part Quality modules
blockman: # Optional (e.g. 'blockman')
specs: # Optional (e.g. 'specs')
mes: # Optional. These are settings needed to reference external MES modules
erpconn:
url: # Optional (e.g. 'https://<mes-erpconn-url>')
orchestration: # Required for scenario that uses Orchestration to execute ConfirmRework workflow
url: # Optional (e.g. 'https://<mes-orchestration-url>')
httpsEnabled: # Optional. If set to true, the chart will be deployed with HTTPS enabled. If not set, will fallback to .Values.global.nexeedServerTLSEnabled.
certificates:
gatewayCert: "" # Required if https is enabled. The public key for the certificate that will be used for the gateway
gatewayCertKey: "" # Required if https is enabled. The private key for the certificate that will be used for the gateway
webCert: "" # Required if https is enabled. The public key for the certificate that will be used for the web service
webCertKey: "" # Required if https is enabled. The private key for the certificate that will be used for the web service
backendCert: "" # Required if https is enabled. The public key for the certificate that will be used for the backend service
backendCertKey: "" # Required if https is enabled. The private key for the certificate that will be used for the backend service
observability:
otelAutoInjectEnvParams: true # This will automatically inject the standardized OTEL env variables into your pods. Please refer to the General IAS Operation manual for standardized observability settings.
swaggerEnabled: false # Optional. Determines whether swagger UI is enabled for the deployment.
...
global
modules
<instance-id>:
enabled: true # Whether the instance is enabled
namespaceSuffix: rework # Needed to have a different namespace in Kubernetes per instance
hostPrefix: rework # Used as the subdomain name for the instance
...