Installing (containerized)
Plan the containerized deployment of the IBM® Product Master.
Before you begin
- If the Volumes or Persistent Volumes are auto-provisioned, skip to the Step 3.
-
Amazon EKS cluster
- You need to setup AWS Load Balancer Controller. For more information, see Install the AWS Load Balancer Controller using Helm.
- You need to upload the Domain-related certificate (certificate_arn ID) in the Amazon Certificate Manager (ACM).
- You can use ephemeral volumes for the StatefulSets. For more information, see Using ephemeral volumes for the StatefulSets.
- Red Hat® OpenShift® clusterThis topic is not applicable to a Red Hat OpenShift cluster on the cloud environment as volumes are auto-provisioned.
Procedure
Proceed as follows.
- Self-managed Kubernetes clusterCreate directories
for volumes by using the following command.
The directories should have required structure and proper permissions on all the Master and Slave nodes of your cluster.
mkdir -p /mnt/ipm14/ cd /mnt/ipm14/ mkdir admin mkdir ftsindlog mkdir ftspimlog mkdir gds mkdir ml mkdir mongodb mkdir mongodblog mkdir mq-data mkdir personaui mkdir sch mkdir wfl mkdir appdata mkdir elasticsearch-data mkdir restapi mkdir magento-connector
- Self-managed Kubernetes clusterAdd user by using
the following command.
adduser default --uid 10001 --gid 0 chown -R 10001.0 /mnt/ipm14/ chmod -R +777 /mnt/ipm14/
Note:- Self-managed Kubernetes clusterShare the appdata-volume among cluster nodes by using the Network File System (NFS) service.
- Amazon EKS cluster and Red Hat
OpenShift clusterUse File storage as StorageClass
for the appdata-volume-claim. The rest of volumes can be
Block
storage type of StorageClass. You can also specify all the volumes as File storage StorageClass.
- Self-managed Kubernetes clusterCreate
volumes by using the following
command.
You can view the created volumes by using the following command.kubectl apply -f volumes.yaml
kubectl get pv
- Create a namespace by using the following command.Important: Update the value of <namespace>as applicable.Self-managed Kubernetes clusterAmazon EKS cluster
Red Hat OpenShift clusterkubectl create ns <namespace>
oc create ns <namespace>
- Add the <namespace> that you created in
the Step 4 to the following files.
- app_secrets.yaml
- catalog_source.yaml
- operator_group.yaml
- registry_secret.yaml
- subscription.yaml
- Deploy the operator by using the following command.
Self-managed Kubernetes clusterAmazon EKS
cluster
Red Hat OpenShift clusterkubectl config set-context --current --namespace=<namespace> kubectl apply -f registry_secret.yaml kubectl create serviceaccount serviceaccount -n <namespace> kubectl create serviceaccount ibm-productmaster-catalog -n <namespace> kubectl patch -n <namespace> serviceaccount default -p '{"imagePullSecrets": [{"name": "ipm-registry"}]}' kubectl patch -n <namespace> serviceaccount serviceaccount -p '{"imagePullSecrets": [{"name": "ipm-registry"}]}' kubectl patch -n <namespace> serviceaccount ibm-productmaster-catalog -p '{"imagePullSecrets": [{"name": "ipm-registry"}]}' kubectl apply -f catalog_source.yaml kubectl apply -f operator_group.yaml kubectl apply -f subscription.yaml kubectl apply -f app_secrets.yaml
oc config set-context --current --namespace=<namespace> oc apply -f registry_secret.yaml oc create serviceaccount serviceaccount -n <namespace> oc create serviceaccount ibm-productmaster-catalog -n <namespace> oc patch -n <namespace> serviceaccount default -p '{"imagePullSecrets": [{"name": "ipm-registry"}]}' oc patch -n <namespace> serviceaccount serviceaccount -p '{"imagePullSecrets": [{"name": "ipm-registry"}]}' oc patch -n <namespace> serviceaccount ibm-productmaster-catalog -p '{"imagePullSecrets": [{"name": "ipm-registry"}]}' oc apply -f catalog_source.yaml oc apply -f operator_group.yaml oc apply -f subscription.yaml oc apply -f app_secrets.yaml
- Modify the ipm_14.0.x_cr.yaml file.
In the deployment_platform section, update the following under the required subsection (aws_eks, self_managed_k8s, or openshift).
Property Description Red Hat OpenShift cluster (openshift) Self-managed Kubernetes cluster (self_managed_k8s) Amazon EKS cluster (aws_eks) enable Set the value to 1
.✓ ✓ ✓ certificate_arn Specify an Amazon Resource Name (ARN).
❌ ❌ ✓ domain_name Specify the domain name.
✓ ✓ ❌ block_storageclass Specify the Block
storage type of the storage class.✓ ✓ ✓ file_storageclass Specify the File
storage type of the storage class.✓ ✓ ✓ - Deploy the Product Master by using the
following command.
Self-managed Kubernetes clusterAmazon EKS
cluster
Red Hat OpenShift clusterkubectl apply -f ipm_14.0.x_cr.yaml
oc apply -f ipm_14.0.x_cr.yaml
- View all resources by using the following command.
Self-managed Kubernetes clusterAmazon EKS
cluster
Red Hat OpenShift clusterkubectl get all -n <namespace>
You can also view specific resources by using the following command. Self-managed Kubernetes clusterAmazon EKS clusteroc get all -n <namespace>
Red Hat OpenShift clusterkubectl get <pods/deploy/svc/pvc/cm/pv> -n <namespace>
oc get <pods/deploy/svc/pvc/cm/pv> -n <namespace>
- View the NGINX Ingress resources by using the following command and note the port
mappings.
Self-managed Kubernetes
cluster
kubectl get svc -n ingress-nginx
- Check logs for a specific pod by using the following command.
Self-managed Kubernetes clusterAmazon EKS
cluster
Red Hat OpenShift clusterkubectl logs -f <pod name> -n <namespace>
Access a specific pod by using the following command. Self-managed Kubernetes clusterAmazon EKS clusteroc logs -f <pod name> -n <namespace>
Red Hat OpenShift clusterkubectl exec -it <pod name> /bin/bash
oc rsh <pod name>
Note: Before you proceed with any configuration changes on the pod, it is recommended that you stop the services by using /home/default/stop.sh file.
What to do next
- Use the following command to fetch the NGINX Ingress HTTPS port.
Self-managed Kubernetes
cluster
kubectl get svc -A | grep nginx
- Use the following command to fetch the hostname.
Self-managed Kubernetes clusterAmazon EKS
cluster
Red Hat OpenShift clusterkubectl get ingress -n <namespace>
oc get ingress -n <namespace>
- Log in to the application by using the following URL and NGINX Ingress HTTPS port.
UI Self-managed Kubernetes cluster Amazon EKS cluster Red Hat OpenShift cluster Persona-based UI https://<hostname>:<nginx_ingress https port>/mdm_ui/#/login https://<hostname>/mdm_ui/#/login https://<hostname>/mdm_ui/#/login Admin UI https://<hostname>:<nginx_ingress https port>/ https://<hostname>/ https://<hostname>/utils/enterLogin.jsp