Connections 6.0 CR 5: ICM (mail plugin) vs. Wikis

We are running Connections 6.0 CR5 with the Mail / calendar Plugin.
The plugin is officially not supported.

One issue we ran into is that the wiki page looses its header as soon as we create or edit a page.
The connections menu would appear below the page. Only a page refresh would bring the menu back to the top.

Analyzing the page source revealed, that the lotusMain was placed before the banner.

To fix this you need to alter the javascript. Always make a backup! Test it first. Use the following on your own risk:
It’s in the file shared/provision/webresources/com.ibm.lconn.wikis.web.resources_[XY].jar
unzip it
edit the file resources\scenes.js at line 1792 replace
frame.insertBefore(el,frame.lastChild);
with
//frame.insertBefore(el,frame.lastChild);
dojo.place(el,frame,'last');

Repack everything to the same filename com.ibm.lconn.wikis.web.resources_[XY].jar and use it to replace the one in the webresources.

As this is a javascript change you need to update the versionstamp, stop your nodes, clean the websphere temp directories and any cacheing proxies, before the change takes effect.
As stated before. use at your own risk.

IBM Connections Systemd on Centos / RHEL 7

Starting Deployment Manager as a SystemD Service.
Save the code below to /etc/systemd/system/dmgr.service


[Unit]
Description="Connections Deployment Manager"
Requires=network.service
After=network-online.target

[Service]
User=connections
ExecStart=/opt/ibm/WebSphere/AppServer/profiles/Dmgr01/bin/startManager.sh
ExecStop=/opt/ibm/WebSphere/AppServer/profiles/Dmgr01/bin/stopManager.sh
PIDFile=/opt/ibm/WebSphere/AppServer/profiles/Dmgr01/logs/dmgr/dmgr.pid
Type=forking
Restart=no
TimeoutStartSec=6000
TimemoutStopSec=600
LimitNOFILE=60000
LimitNPROC=12500

[Install]
WantedBy=multi-user.target

Enable dmgr at boot time:
systemctl enable dmgr.service

Some more examples.
systemctl start dmgr.service
systemctl stop dmgr.service
systemctl status dmgr.service

Connections – Mass file removal

I got a request to cleanup some files in a IBM Connections environment. Remove all the files created before 1.1.2015.
Getting the list of files is easy.

connect to files@
export to files.csv of del modified by nochardel
select hex(ID), id, title,create_date from files.media where create_date < date('2015-01-01')@ connect reset@

This got me around 11'000 records.
In the api documentation I found the required API call.
After a while I got my first node.js app. Which was correctly posting the required requests against my server. Doing a testrun with 11'000 records was a bad idea. My environment was so fast, that it sent the 11'000 requests in under 10s.
The first couple of request passed, but then I got a lot of errors and the files app did not respond at all. With the help of simple rate limiter I throttled it down to 2 requests/per second. The process will now take a bit longer, but at least the connections environment stays alive.

Connections Customizer Lite

As we are currently only using the Customizer from the stack formerly known as pink (sfkap) I was suprised to find the Customizer Lite in the downloads. As my connections 6 lab is running with the sfkap I decided to give my Connections 5.5 Lab an upgrade. The installationexperience was ok. It’s not HA, but that’s ok, as my lab is not HA either.
I only added an nginx reverse proxy on the same box. It should also be possible to run a dockerized nginx if needed, but I’m happy with the nginx on the host.

Applying some basic customizations, adding css or js files , seems to work with Connections 5.5.

In my opinion the effort to setup the customizer lite and use it, compared to fiddle around with hikariTheme/custom.css and some nasty javascripts/dojo plugins, is ok.

Time to play around…

IBM Customizer – Do not reboot the worker node – personal reminder

Rule #1: Drain the worker node before a reboot. 
Consequences if you do not follow the Rule #1: the mongo-db gets corrupt and you need to repair it.
Steps to repair the customizer DB: delete the contents in mongo-node-0, mongo-node-1 and mongo-node-2’s subdirectory /data/db/ and register the customizer apps in the appregistry again.

I’m sure that there’s a way to repair the mongo db directories…

IBM Component Pack 6.0.0.6 upgrade Kubernetes 1.11.1 to 1.11.5

According to this cve There’s a potential issue with kubernetes 1.11.1 which is used in the component pack 6.0.0.6.
So I was wondering if it is possible to upgrade the kubernetes version to the patched point release 1.11.5.
The long version can be found in the official documentation.

The short version:

#on Master Node

yum-config-manager --enable kubernetes

yum install kubeadm-1.11.5-0 --disableexcludes=kubernetes

kubeadm upgrade plan
kubeadm upgrade apply v1.11.5

#Masterupdate
kubectl drain $MASTER --ignore-daemonsets
yum install kubectl-1.11.5-0 kubelet-1.11.5-0 --disableexcludes=kubernetes
kubectl uncordon $MASTER

yum-config-manager --disable kubernetes

#repeat for each master goto Masterupdate

#for each node
kubectl drain $NODE

#Nodeupdate
#on node $NODE

yum-config-manager --enable kubernetes
yum install kubectl-1.11.5-0 kubelet-1.11.5-0 kubeadm-1.11.5-0 --disableexcludes=kubernetes

yum-config-manager --disable kubernetes
kubeadm upgrade node config --kubelet-version $(kubelet --version | cut -d ' ' -f 2)
systemctl daemon-reload
systemctl restart kubelet

#back on the master
kubectl uncordon $NODE

#repeat for each node: restart from Nodeupdate

The upgrade on my little lab environment (1 Master + 3 Worker) went smooth.

IBM Connections Component Pack 6.0.0.6 – reveal the elasticsearch secret

In order to combine elasticsearch and Connections you need some of the elasticsearch certificates. With version < 6.0.0.6 those certificates could be found in /opt/certs. With the latest release, they are created directly into your kubernetes cluster.

With this simple line, created by Toni Feric, you can export the certs


kubectl -n connections get secret elasticsearch-secret -o json | egrep '\.txt|\.p12|\.key|\.pem' | sed -e 's/^ *//' -e 's/,$//' -e 's/"//g' | awk -F':' '{print "echo"$2" | base64 -d >"$1}' | bash

The result should look like this:

IBM Component Pack 6.0.0.6 – quest for the missing elasticsearchsecret

Now the Customizer is up and running. Now I tried to put the elasticsearch stack. Following the IBM documentation, I was able to add a new worker node, dedicated solely for elasticsearch.
Putting the additional images in my dockerregistry, installing the helm charts. So far so good. But my es-master, es-data and es-client would not start. The log revealed the missing elasticsearch-secret. After some hints from Nico directing my search to the connections-env part. There’s parameter “createSecret=false” which drew my attention.

A short helm delete connections-env --purge and reinstall of the connections-env with createSecret=true did the trick.