Skip to content

Commit

Permalink
Examples msr-tsa-stateful-cluster and Trading Networks added
Browse files Browse the repository at this point in the history
  • Loading branch information
thr authored and thr committed Mar 14, 2024
1 parent 455b74c commit 0396604
Show file tree
Hide file tree
Showing 4 changed files with 150 additions and 4 deletions.
5 changes: 1 addition & 4 deletions microservicesruntime/examples/msr-statefulset-csq/README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,3 @@
# Running MSR as statefulset for Client Side Queueing

This exmple shows how to deploy MSR as a Stateful set in order to allow stable storage of Client Side Queue files.

## Prerequisites

This example [values.yaml](./values.yaml) shows how to deploy MSR as a Stateful set in order to allow stable storage of Client Side Queue files.
56 changes: 56 additions & 0 deletions microservicesruntime/examples/msr-tsa-stateful-cluster/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
# Deploy MSR stateful Cluster with Terracotta Big Memory Max Server Array (TSA)

Set the values described in this document in your `values.yaml` to deploy a MSR *stateful* cluster with distributed caches. *stateful* is here in this context only the data with are stored in the distributed cache.

Note, you must configured for other data e.g. CSQ if you want to have a stateful container. See example [msr-statefulset-csq](../msr-statefulset-csq/README.md).

## Prerequisites

Use the [Terracotta Big Memory Helm Chart](../../../terracottabigmemorymax/helm/README.md) to deploy a TSA in your namespace of MSR.

After deployment, TSA can be connected on `terracotta-service:9510` in your namespace.

## Setup `values.yaml`

* Add Terracotta License Key using `extra...` configuration settings and mount the volume ...

```
extraConfigMaps:
- name: cache-tsa-config
data:
terracotta-license.key: |
# copy/past here the content of LK ...
Date of Issue: ...
extraVolumeMounts:
- name: terracotta-license-key
mountPath: /opt/softwareag/common/conf/terracotta-license.key
subPath: terracotta-license.key
extraVolumes:
- name: terracotta-license-key
configMap:
name: cache-tsa-config
```

* Add following WATT settings to configure the TSA URL `terracotta-service:9510` cluster in MSR ...

```
propertiesFile:
content: |
settings.watt.server.cluster.aware=true
settings.watt.server.cluster.name="{{ include "common.names.fullname" . }}"
settings.watt.server.cluster.tsaURLs=terracotta-service:9510
settings.watt.server.cluster.SessTimeout=60
settings.watt.server.cluster.action.errorOnStartup=standalone
```

* Unfortunately, the cluster is going to health status `UP` only if there are minimum 2 nodes up and running. Therefore increase the replicates ...

```
# -- Number of replicates in Deployment
replicaCount: 2
```

Note: You can change the threshold of nodes in `./config/healthindicators/healthindicators.cnf` of MSR container.
91 changes: 91 additions & 0 deletions microservicesruntime/examples/trading-networks/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
# Trading Networks (TN) Deployment

This example guides you to deploy Trading Networks (TN) in a container environment.

## Architecture

We need following containers to run ...

* Integration Server with Trading Network Server and EDI adapters
* My webMethods Server for Monitoring for Trading Network Portal
* Universal Messaging
* Database(s)
* if you want to have more than 1 MSR/IS node, TN needs a distributed cache. In this case, a Terracotta Server Array (TSA) is required to setup a cluster.

## Prerequisites

* License Key for MSR and Trading Networks
* Image Build Environment, e.g. [image-builder-using-azure-devops](../../../utils/image-builder-using-azure-devops/README.md)

## Create Base Image for TN Server

With using [image-builder-using-azure-devops](../../../utils/image-builder-using-azure-devops/README.md) and pipeline `azure-pipelines-own-entrypoint`, you can create the TN Server image with following parameters ...

```
PRODUCTS: "integrationServer,Monitor,PIEContainerExternalRDBMS,TNServer,1syncDoc,1sync,EDIINT,EDICore,EDIEANCOM,EDIODETTE,EDITRADACOMS,EDIUCS,EDIUNEDIFACTMisc,EDIUNEDIFACT1990,EDIUNEDIFACT1991,EDIUNEDIFACT1992,EDIUNEDIFACT1993,EDIUNEDIFACT1994,EDIUNEDIFACT1995,EDIUNEDIFACT1996,EDIUNEDIFACT1997,EDIUNEDIFACT1998,EDIUNEDIFACT1999,EDIUNEDIFACT2000,EDIUNEDIFACT2001,EDIUNEDIFACT2002,EDIUNEDIFACT2003,EDIUNEDIFACT2004,EDIUNEDIFACT2005,EDIUNEDIFACT2006,EDIUNEDIFACT2007,EDIUNEDIFACT2008,EDIUNEDIFACT2009,EDIUNEDIFACT2010,EDIUNEDIFACT2011,EbXMLCore"
ENTRYPOINT: "/opt/softwareag/IntegrationServer/bin/startContainer.sh"
BASE_IMAGE: "centos:8"
```

The entrypoint `startContainer.sh` requires additional environment variable `INSTANCE_NAME`. Therefore, you must increase the already created image using Docker `build` and Docker file ...

```
FROM your-created-image-with-azure-pipelines-own-entrypoint
ENV INSTANCE_NAME=default
```

Create a new image with `docker build -t wm-tn .`

## Create Base Image for My webMethods Server as TN Portal

With using [image-builder-using-azure-devops](../../../utils/image-builder-using-azure-devops/README.md) and pipeline `azure-pipelines`,

```
PRODUCTS: MwsProgramFiles,monitorUI,optimizeSharedUI,optimizeUI,centralConfiguratorUI,TNPortal
BASE_IMAGE : "centos:8"
```

## Create TN Database Schema

You must use the Database Component Configurator to create the TN schemas (parameter `-pr TN`) in you database. If you have an already created DCC image with ([image-builder-using-azure-devops](../../../utils/image-builder-using-azure-devops/README.md)), you can call the DCC with following `kubectl` command. The following command use an existing PostgresQL database ...

```
kubectl run wm-dcc-client --rm --tty -i --restart=Never --namespace TN --image wm-dcc:10.15.01 --command -- /opt/softwareag/common/db/bin/dbConfigurator.sh -a CREATE -l "jdbc:wm:postgresql://tn-db-postgresql:5432;databaseName=wmdb" --dbms postgresql -u wm -p "password" -pr TN
```

## Add TN JDBC Pool in TN Server

Add following JDBC database pool configuration in `application.properties` of MSR/IS to access the TN database ...

```
jdbc.tn.dbURL=jdbc:wm:postgresql://tn-postgresql:5432;databaseName=wmdb
jdbc.tn.driverAlias=DataDirect Connect JDBC PostgreSQL Driver
jdbc.tn.maxConns=10
jdbc.tn.password=...
jdbc.tn.userid=...
jdbcfunc.TN.connPoolAlias=tn
```

## TN Configuration for Containers

To configure TN at IS/MSR container, you can setup appropriated `application.properties` in `values.yaml` (how described [here](https://documentation.softwareag.com/webmethods/trading_networks/otn10-15/webhelp/otn-webhelp/#page/otn-webhelp%2Fto-tn_4.html%23)). The [available TN properties](https://documentation.softwareag.com/webmethods/trading_networks/otn10-15/webhelp/otn-webhelp/#page/otn-webhelp%2Fto-app_tn_config_props.html%23) must have the `tnProperty` prefix that IS/MSR (with MSR License) call pull these at startup time.

## TN Server @ Cluster

Optional, if you want to replicate the TN server then you must setup Terracotta for a distributed cache. You can use the described [msr-tsa-stateful-cluster](../msr-tsa-stateful-cluster/README.md) example.

## Install TN Server Release

At least, you have the `application.properties` and a `values.yaml` (e.g. `tn-values.yaml`) file configured, you can install the MSR with Helm ...

```
helm upgrade --install msr-tn webmethods/microservicesruntime -n TN -f tn-values.yaml
```

## Install TN Portal Release

To install the TN Portal, use the [My webMethods Server Helm Chart](../../../mywebmethodsserver/helm/README.md) with the image which you have already created.
2 changes: 2 additions & 0 deletions microservicesruntime/helm/README.md.gotmpl
Original file line number Diff line number Diff line change
Expand Up @@ -55,12 +55,14 @@ Sub-folder `examples` contains some *values* examples for more use-cases. To use
| [msr-post-init](../examples/msr-post-init/README.md) | Performs *post-init* actions after startup, e.g. deploy assets to Universal Messaging |
| [msr-push-doc-types](../examples/msr-push-doc-types/README.md) | Pushing IS Document Types after startup |
| [msr-statefulset-csq](../examples/msr-statefulset-csq/README.md) | Deploy MSR with stateful set |
| [../examples/msr-tsa-stateful-cluster/README.md] | Deploy MSR with Terracotta as distributed cache |
| [msr-using-secrets](../examples/msr-using-secrets/README.md) | Using secrets in application properties and set Administrator password |
| [msr-with-extra-ports](../examples/msr-with-extra-ports/README.md) | Define additional ports in MSR deployment |
| [msr-with-tls](../examples/msr-with-tls/README.md) | Configure Ingress with TLS |
| [process-engine](../examples/process-engine/README.md) | Deploy MSR as Process Engine |
| [service-auditing-monitor](../examples/service-auditing-monitor/README.md) | Deploy MSR as Service Auditing Monitor |
| [Stakater Reloader](../examples/stakater-reloader/README.md) | Utility to restart MSR pod on configuration changes |
| [Trading Networks](../examples/trading-networks/README.md | Deploy Trading Networks in a container environment) |

## Install Microservices Runtime Release

Expand Down

0 comments on commit 0396604

Please sign in to comment.