Install Module Suite on OpenText Extended ECM CE¶
Overview of the installation phases¶
This guide provides the complementary steps of the OpenText Extended ECM CE 2X.Y - Cloud Deployment Guide for deploying the Module Suite on the OpenText Extended ECM 2X.Y in a Kubernetes Cluster.
Check the official OpenText documentation
This guide is based on the OpenText Extended ECM CE 24.2 - Cloud Deployment Guide . Procedures may vary for other versions of OpenText Extended ECM. Always refer to the appropriate "OpenText Extended ECM CE X.Y - Cloud Deployment Guide" for your specific version, as parameters and arguments discussed in this manual may differ.
What is covered by this guide¶
This guide covers the following high-level phases:
-
Build Init Containers: This phase covers the deployment of the Module Suite software binaries on an external image repository in the form of Init containers. The operations are performed using command-line commands.
-
Deployment: This phase covers the definition of the arguments to be added to the standard Helm installation command for deploying the Module Suite and OpenText Extended ECM in the target Kubernetes Cluster. The operations are performed using command-line commands.
Activation and Configuration
For detailed instructions on activation and configuration, always consult the most recent version of the official Module Suite documentation. For information on activating the Module Suite software, please refer to the official documentation: Activate and Import Module Suite For information on post-installation configuration steps, including importing core libraries and components, please refer to the official documentation: Configure Module Suite
Prerequisites¶
A host PC or VM is required for leveraging the deployment/installation process. This host should contain the following software:
- The destination Kubernetes cluster hyperscaler client software
- Docker
- Kubectl
- Helm
- The latest publicly available Alpine Linux image
This guide presumes the usage of a Linux host PC or VM.
Software Download References¶
-
Kubernetes cluster hyperscaler client software: AWS: AWS CLI , Azure: Azure CLI , Google Cloud: Google Cloud SDK
-
Docker: Docker Engine installation
-
Kubectl: kubectl installation
-
Helm: Helm installation
-
Alpine Linux image: Alpine Linux Docker image
Additional Requirements¶
-
Module Suite System Center compatible artifacts: Module Suite modules suitable for installation with OpenText System Center.
Check Module Suite release notes for compatibility
Always verify on the Module Suite release notes the compatibility of the Module Suite version with the OpenText Extended ECM CE application.
-
AnswerModules activation key: Either in plain text format or in an OTCS Configuration Export XML format. The XML format is recommended to prevent errors due to manual input.
How to get System Center artifacts and Activation Key
To obtain the Module Suite artifacts and its activation key, open a request to the AnswerModules Support Team at Request Activation Key
-
External image repository: Available for hosting the AnswerModules Module Suite init containers.
This guide presumes the usage of Dockerhub as the external image repository.
Please ensure you download and install the appropriate versions compatible with your system and the version of OpenText Extended ECM CE you are deploying.
Build Init Containers¶
In this phase, we'll prepare the AnswerModules Module Suite Init containers and upload them to an external container repository. This crucial step enables the integration of Module Suite with OpenText Extended ECM in a Kubernetes environment.
Understanding Init Containers¶
Init containers are a powerful feature in Kubernetes that run before the main application containers in a pod. They serve several important purposes:
- Environment preparation: Set up necessary configurations or data.
- Dependency checks: Ensure required services are available.
- Initialization tasks: Perform one-time setup operations.
In our specific use case, init containers will add the Module Suite modules to the OpenText Extended ECM installation, ensuring all necessary components are in place before the main application starts.
More about Init Containers
For more detailed information about init containers, refer to the official Kubernetes documentation: Init Containers | Kubernetes
Get all you need
Before proceeding, please ensure you have:
-
A Dockerhub account (or access to another container registry).
-
Familiarity with:
- Unix systems and commands
- Docker and its command-line interface
- Basic Kubernetes concepts
Step-by-Step Procedure¶
Access the Linux host PC or VM designated for the installation process and follow these steps:
Init Container FS structure¶
-
Create main folder
- Create a new folder on the host machine (e.g.,
MSInitContainer
)
- Create a new folder on the host machine (e.g.,
-
Create subfolder
- Inside the main folder, create a subfolder (e.g.,
Init
)
- Inside the main folder, create a subfolder (e.g.,
-
Add Dockerfile
- Copy the
Dockerfile_init
file (obtained from OpenText My Support) into theInit
folder
- Copy the
-
Create the extensions folder
- Inside the
Init
folder, create a new folder namedextensions
- Inside the
-
Set up the extensions folder structure
- Navigate to the
extensions
folder - Create the following folder structure:
extensions/ ├── apps/ ├── language_packs/ ├── manifest/ ├── module_language_packs/ ├── modules/ └── patch/
- Navigate to the
-
Set up apps folder structure
- Navigate to the
extensions/apps/
folder -
Create the following folder structure:
apps/ ├── install/ └── upgrade/
Check your work
Your final folder structure should look like this:
MSInitContainer/ └── Init/ ├── Dockerfile_init └── extensions/ ├── apps/ │ ├── install/ │ └── upgrade/ ├── language_packs/ ├── manifest/ ├── module_language_packs/ ├── modules/ └── patch/
- Copy Module Suite artifacts
- Copy the first module suite artifact anscontentscript_X_Y_Z_GA.tar.gz in the modules folder. Do NOT expand the artifact archives.
- Copy Module Suite artifacts
Only one artifact at a time
Important do not add more than a module at a time because we are going to build separate Init Containers for each one of them
- Navigate to the
Build the container¶
-
Open a command shell, navigate to the main folder (i.e.
MSInitContainer
) and build the Init Containers by executing commands below:docker build -f Dockerfile_init . --build-arg base_image_tag=a.b.c --tag anscontentscript:x.y.z.t
docker build -f Dockerfile_init . --build-arg base_image_tag=a.b.c --tag anscontentsmartui:x.y.z.t
docker build -f Dockerfile_init . --build-arg base_image_tag=a.b.c --tag ansbwebform:x.y.z.t
where a.b.c is the version of the Alpine Linux image, module is the name of the artifact for which you are creating the init container, x.y.z is the version of the Module Suite module and t is the version of the Init container. E.g.
docker build -f Dockerfile_init . --build-arg base_image_tag=3.6.0 --tag anscontentscript:3.7.0.1
Follow the building process execution
You can follow the building process using the command shell, where messages are constantly updated. if terminated successfully you should readm a message similar to the one below
Successfully built <Image_ID> Successfully tagged <Image_Name>:<Tag_Name>
Push the Init Containers to your image repository¶
Once built, the init container you can push them to your image repository, assuming you are using Dockerhub you can proceed as follows:
- Tag the init container with the Dockerhub account, owner, of the repository:
docker tag anscontentscript:x.y.z.t dockerhubuser/anscontentscript:x.y.z.t
docker tag ansbwebform:x.y.z.t dockerhubuser/ansbwebform:x.y.z.t
docker tag anscontentsmartui:x.y.z.t dockerhubuser/anscontentsmartui:x.y.z.t
e.g.
docker tag anscontentscript:3.7.0.1 dockerhubuser/anscontentscript:3.7.0.1
docker tag ansbwebform:3.7.0.1 dockerhubuser/ansbwebform:3.7.0.1
docker tag anscontentsmartui:3.7.0.1 dockerhubuser/anscontentsmartui:3.7.0.1
- Push the init container to the external image repository as follows:
docker push dockerhubuser/anscontentscript:x.y.z.t
docker push dockerhubuser/ansbwebform:x.y.z.t
docker push dockerhubuser/anscontentsmartui:x.y.z.t
e.g.
docker push dockerhubuser/anscontentscript:3.7.0.1
docker push dockerhubuser/ansbwebform:3.7.0.1
docker push dockerhubuser/anscontentsmartui:3.7.0.1
Follow the process execution
You can follow the process using the command shell, where messages are constantly updated. If terminated successfully you should readm a message similar to the one below
_The push refers to repository \[_[_docker.io/dockeruser/anscontentscript_](http://docker.io/msdckruser/anscontentscript)_\]_
_e6bed7bffb32: Pushed_
_8be46d384520: Pushed_
_24302eb7d908: Pushed_
_3.7.0.1: digest: sha256:33dc6c3810b0e5a72cfa7fc98fd1f4780fe3aaac320bc715c8a4233 size: 949_
Deploy¶
Enable extensions in Helm deployment¶
- When deploying OpenText Extended ECM, include this Helm command argument:
--set otcs.config.extensions.enabled=true
Specify Init container details¶
- For each Init container (including any manifest container), add the following Helm command arguments:
Replace
--set otcs.initContainers[n].name=<Init_Container_Image_Name> --set otcs.initContainers[n].image.source=<Image_Source> --set otcs.initContainers[n].image.name=<Image_Name> --set otcs.initContainers[n].image.tag=<Image_Tag>
[n]
with an incrementing number for each Init container, starting from 0.
Parameter Details
<Init_Container_Image_Name>
: A name of your choice for the Init container.<Image_Source>
: The registry containing your images. Include this even if it's the same as in the<platform>.yaml
file.<Image_Name>
: The name you set in your docker build command.<Image_Tag>
: The tag you set in your docker build command.
E.g.
helm install myotxecm otxecm -f otxecm/platforms/gcp.yaml
--set otds.otdsws.cryptKey=MTIzNDU2Nzg5YWNiZGVmZw==
--set otcs.config.extensions.enabled=true
--set otcs.initContainers[0].name=anscontentscript
--set otcs.initContainers[0].image.source=docker.io
--set otcs.initContainers[0].image.name=dockerUser/anscontentscript
--set otcs.initContainers[0].image.tag=3.7.0.1
--set otcs.initContainers[1].name=ansbwebform
--set otcs.initContainers[1].image.source=docker.io
--set otcs.initContainers[1].image.name=dockerUser/ansbwebform
--set otcs.initContainers[1].image.tag=3.7.0.1
--set otcs.initContainers[2].name=anssmartui
--set otcs.initContainers[2].image.source=docker.io
--set otcs.initContainers[2].image.name=dockerUser/anssmartui
--set otcs.initContainers[2].image.tag=3.7.0.1
(Optional) Activate the Module Suite
The activation of the Module Suite can be performed when the containers are deployed.
-
Add the administration settings file to the Helm chart Place an Administration Settings file named adminSettings.xml (containing the ModuleSuite activation key) in the ../otxecm/charts/otcs folder.
-
Enable the use of an administration settings file Include the Helm command argument
--set otcs.loadAdminSettings.enabled=true