Welcome to the IOM Helm Charts 1.5.
IOM is delivered via Docker images which are dedicated to run in Kubernetes. Intershop also provides Helm Charts for IOM, which allow to easily operate IOM.
For the best compatibility between IOM Helm charts and IOM, please always use the newest version of IOM Helm charts, regardless of the IOM version you are currently using. To do so, please update IOM Helm charts as often as possible.
Helm \ IOM | 3.0 | 3.1 | 3.2 | 3.3 | 3.4 | 3.5 | 3.6 |
---|---|---|---|---|---|---|---|
1.5.X | 1), 2), 3), 4), 5), 6), 7), 8) | 4), 6), 7), 8) | 5), 6), 7), 8) | 6), 7), 8) | 7), 8) | 8) | |
1.4.X | 1), 2), 3), 4), 5), 6), 7) | 4), 6), 7) | 5), 6), 7) | 6), 7) | 7) | x | |
1.3.0 | 1), 2), 3), 4), 5), 6) | 4), 6) | 5), 6) | 6) | x | x | |
1.2.1 | 1), 2), 3), 4), 5) | 4), 5) | 5) | x | x | x | |
1.2.0 | 1), 2), 3), 4) | 4) | x | x | x | x | |
1.1.0 | 1) | x | x | x | x | x | |
1.0.0 | x | x | x | x | x | x |
1) Defect IOM-10458 still occurs in this combination
2) Helm parameter for timeout of test-data import does not work in this combination
3) Helm parameter to control creation of access log does not work in this combination
4) Defect IOM-10362 still occurs in this combination
5) Defect IOM-10891 still occurs in this combination
6) Helm parameters to control Datadog APM do not work in this combination
7) Helm parameter jboss.nodePrefix does not work in this combination
8) Helm parameters log.rest, config.skip*, oms.db.connectionMonitor.*, oms.db.connectTimeout do not work in this combination.
x) Not supported
Term | Description |
---|---|
Docker | An OS-level virtualization software. |
Helm | A package manager for Kubernetes. |
IOM | The abbreviation for Intershop Order Management |
Kubernetes | An open-source system for automating deployment, scaling, and management of containerized applications. |
Default values of image.tag and config.image.tag were set to 3.6.0.0. Default value of dbaccount.image.tag is now 1.3.0.0.
Helm parameters resources.limits and resources.requests now have default values that allow to start a non-customized instance of IOM. For more information, please consult Guide - Operate Intershop Order Management 3.X.
A new parameter log.rest was added. This parameter can hold a list of operationIds of REST interfaces. If the operationId of a REST interface is listed at the parameter, information about request and response of according REST calls are written into DEBUG messages. More information can be found in Guide - Operate Intershop Order Management 3.X and Guide - IOM REST-Logging.
The default value of parameter jboss.javaOpts was changed to enable JVM container support by default. Using this setting, JVM memory consumption is automatically controlled by the memory provided to the pod (see parameters resources.limits and resources.requests). More information can be found in Guide - Operate Intershop Order Management 3.X.
The default value of the parameter oms.secureCookiesEnabled is now true, allowing a secure configuration of IOM by default. For more information, see Guide - Operate Intershop Order Management 3.X.
When updating the config image of IOM, stored procedures, migration scripts and project configuration are executed as part of the initialization process. Three new parameters, config.skipProcedures, config.skipMigration and config.skipConfig, now allow for a fine tuning of this behavior. Setting one of these parameters to true
, skips the execution of the according process. If you are going to skip any part of the initialization process, it is in your responsibility to not harm the system.
Note
The Helm chart of the integrated NGINX ingress controller was updated to version 3.35.0. The integrated NGINX ingress controller is not enabled by default.
It is only required if the global ingress controller is not an NGINX implementation capable of implementing sticky sessions required by the IOM.
IOM Helm charts were reworked for use with Helm 3.6. Along with this update, support was extended to current Kubernetes versions. Current IOM Helm charts are compatible with older Helm versions newer or equal to 3.2.
New parameters oms.db.connectionMonitor.enabled|schedule are provided, to control a Kubernetes cronjob, that is writing INFO log-messages, created by process connection_monitor.sh. This process provides information about database clients and the number of connections they are using. This information is written in the CSV format with quoted newlines between records.
Example:{"tenant":"company-name","environment":"system-name","logHost":"ci-iom-connection-monitor-27154801-c6lk4","logVersion":"1.0","appName":"iom-config","appVersion":"3.6.0.0","logType":"script","timestamp":"2021-08-18T12:01:01+00:00","level":"INFO","processName":"connection_monitor.sh","message":"count,application_name,client_addr\\n51,OMS_ci-iom-0,40.67.249.40\\n2,psql,40.67.249.40","configName":null}
connection_monitor.sh ignores settings of parameter log.level.scripts. It always uses log-level INFO.
For more information, see Guide - Operate Intershop Order Management 3.X.
The parameter log.rest was added to control DEBUG messages providing information about REST requests and according responses. The parameter log.rest can hold a list of operation-IDs of REST interfaces. Information about according REST requests and responses are written into DEBUG messages, if listed at log.rest parameter. OperationIds are part of the YAML specification of IOM REST interfaces.
Configuration example:
log:
rest:
- createOrder
- getReturnRequests
- updateTransmissions
- createOrderResponse
For more information, see Guide - Operate Intershop Order Management 3.X.
The parameter oms.db.connectTimeout was added to define connect timeout of database connections (for both, JDBC and PSQL initiated connections). The value is defined in seconds. A value of 0 means to wait infinitely.
Key | Summary |
---|---|
60384 | Missing default values for resources may lead to problems |
65821 | Deprecated/outdated method to set ingress class was used |
Key | Summary |
---|---|
69933 | Global NGINX controller of version 4.0.1 cannot be used along with internal NGINX controller of IOM |
Helm parameters resources.limits and resources.requests now have default values. If these values are greater than the needs of your IOM installation and the resources provided are not sufficient for the new resource settings, then IOM may fail to start after updating to the latest version of the IOM helmet charts. You have to check and adapt the resource settings to your needs.
In previous versions of IOM helm charts, the default value for the parameter oms.secureCookiesEnabled was false. In order to follow a "secure by design"-approach, secure cookies are now enabled by default. Since the usage of secure cookies requires a fully encrypted HTTP communication for OMT, this change might brake your installation if OMT is used unencrypted. In this case you have to set oms.secureCookiesEnabled to false.
The default value of parameter jboss.javaOpts was changed to enable JVM container support by default. Using this setting, JVM memory consumption is automatically controlled by the memory provided to the pod (see parameters resources.limits and resources.requests). If jboss.javaOpts has been overwritten in your installation of IOM, it is recommended to add the default value to your own settings in order to benefit from the JVM container support.
The repository providing IOM images has changed. All IOM docker images, also all previously released ones, are now available at docker.intershop.de/intershophub/.
Depending on the Kubernetes version you are using, the definition of ingress resources has to be changed. If you are using Kubernetes version >= 1.19 ingress resources are now using api-version networking.k8s.io/v1. Since older versions of IOM Helm charts always used api-version networking.k8s.io/v1beta1, existing configurations have to be migrated, if you are using a Kubernetes version >= 1.19.
The following boxes show a very simple example of the migration of ingress of IOM. You have to migrate all ingresses defined in your values file. Within the example, a custom ingress-class was used, to show the required changes. More information can be found in the Deprecated API Migration Guide of Kubernetes and the official documentation of the ingress API object.
ingress: enabled: true annotations: # use custom global ingress controller kubernetes.io/ingress.class: "global-nginx" hosts: - host: iom.yoursite.com paths: ["/"]
ingress: enabled: true annotations: # use custom global ingress controller className: global-nginx hosts: - host: iom.yoursite.com paths: - path: / pathType: Prefix