{"id":718,"date":"2021-01-21T15:33:56","date_gmt":"2021-01-21T14:33:56","guid":{"rendered":"https:\/\/www.ume.li\/blog\/?p=718"},"modified":"2021-01-21T15:33:56","modified_gmt":"2021-01-21T14:33:56","slug":"hcl-connections-7-update","status":"publish","type":"post","link":"https:\/\/www.ume.li\/blog\/2021\/01\/21\/hcl-connections-7-update\/","title":{"rendered":"HCL Connections 7 &#8211; update"},"content":{"rendered":"<p>We updated our productive HCL Connections environment last week from 6.5CR1 to 7. This time we decided to do an inplace update.<\/p>\n<p>Upgrade WAS to 8.5.5.18 on commandline :<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">cd \/opt\/ibm\/InstallationManager\/eclipse\/tools\r\n.\/imcl install com.ibm.websphere.ND.v85_8.5.5018.20200910_1821 -repositories \/data\/install\/unpacked\/wasfp18\/ -acceptLicense<\/pre>\n<p>The Connections update itself did not provide any surprises.<br \/>\nThe database wizard was a bit creepy as it wanted to do a db update from 2.5 to 7 in the first place. After switching to the db2inst1 user, it still wanted an update from 3 to 7 for wikis and files db. So we decided to go through the wizards connections.sql directory and run any upgrade-XY-70.sql scripts. There&#8217;s only one for homepage.<\/p>\n<p>Export PDF: there&#8217;s a post <a title=\"pdf export\" href=\"https:\/\/help.hcltechsw.com\/connections\/v7\/admin\/install\/install-guide-preparations.html?hl=wkhtmltopdf\" target=\"_blank\" rel=\"noopener\">install step <\/a>hidden, deep inside the help on how to install wkhtmltopdf.<\/p>\n<p>Upgrade the Component Pack to 7 required some steps.<br \/>\nI decided to upgrade our kubernetes environment to 1.18.latest first. Then install helm3 and migrate all the stuff from helm2 using <a title=\"helm 2to3\" href=\"https:\/\/github.com\/helm\/helm-2to3\" target=\"_blank\" rel=\"noopener nofollow\">helm 2to3 Plugin<\/a><\/p>\n<p>What am I missing at the moment: all my previous metrics data. The elasticsearch got updated from 5.5 to 7 which does not automatically update the elasticsearch indices. I have not found a way to update these properly yet.<\/p>\n<p>The next step was to prepare all the *.yml files from the samples to my environment.<br \/>\nAfter applying all the new helm builds all the pods updated. Nothing worked. All the pods were up, but neither \/appreg nor \/social worked.<\/p>\n<p>I only got a 404 from nginx.<\/p>\n<p>After some debugging with <a title=\"Krew plugin\" href=\"https:\/\/krew.sigs.k8s.io\/docs\/user-guide\/quickstart\/\" target=\"_blank\" rel=\"noopener nofollow\">krew&#8217;s tail<\/a> plugin, it was clear that I had some issues with the ingress definitions.<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<br \/>\nLooks like the ingress controller has some issues with regex and wildcard definitions.<br \/>\nTo fix this issue I added these 2 ingress definitions. <\/p>\n<pre class=\"brush: yaml; title: ; notranslate\" title=\"\">\r\napiVersion: extensions\/v1beta1\r\nkind: Ingress\r\nmetadata:\r\n  annotations:\r\n    kubernetes.io\/ingress.class: nginx\r\n    nginx.ingress.kubernetes.io\/rewrite-target: \/\r\n  name: my-ingress-appreg\r\n  namespace: connections\r\nspec:\r\n  rules:\r\n  - host: 'connections.belsoft.ch'\r\n    http:\r\n      paths:\r\n      - backend:\r\n          serviceName: appregistry-client\r\n          servicePort: 7000\r\n        path: \/appreg\r\n        pathType: ImplementationSpecific\r\n      - backend:\r\n          serviceName: te-creation-wizard\r\n          servicePort: 8080\r\n        path: \/te-creation-wizard\r\n        pathType: ImplementationSpecific\r\n      - backend:\r\n          serviceName: community-template-service\r\n          servicePort: 3000\r\n        path: \/comm-template\r\n        pathType: ImplementationSpecific\r\n      - backend:\r\n          serviceName: admin-portal\r\n          servicePort: 8080\r\n        path: \/cnxadmin\r\n        pathType: ImplementationSpecific\r\n      - backend:\r\n          serviceName: sanity\r\n          servicePort: 3000\r\n        path: \/sanity\r\n        pathType: ImplementationSpecific\r\n\r\n<\/pre>\n<p>and <\/p>\n<pre class=\"brush: yaml; title: ; notranslate\" title=\"\">\r\n---\r\napiVersion: extensions\/v1beta1\r\nkind: Ingress\r\nmetadata:\r\n  annotations:\r\n    kubernetes.io\/ingress.class: nginx\r\n  name: my-ingress-appregistry\r\n  namespace: connections\r\nspec:\r\n  rules:\r\n  - host: 'connections.belsoft.ch'\r\n    http:\r\n      paths:\r\n      - backend:\r\n          serviceName: appregistry-service\r\n          servicePort: 3000\r\n        path: \/appregistry\r\n        pathType: ImplementationSpecific\r\n      - backend:\r\n          serviceName: orient-web-client\r\n          servicePort: 8000\r\n        path: \/social\r\n        pathType: ImplementationSpecific\r\n      - backend:\r\n          serviceName: itm-services\r\n          servicePort: 3000\r\n        path: \/itm\r\n        pathType: ImplementationSpecific\r\n      - backend:\r\n          serviceName: community-suggestions\r\n          servicePort: 3000\r\n        path: \/community_suggestions\/api\/recommend\/communities\r\n        pathType: ImplementationSpecific\r\n      - backend:\r\n          serviceName: connections-ui-poc\r\n          servicePort: 3000\r\n        path: \/connections-ui\r\n        pathType: ImplementationSpecific\r\n      - backend:\r\n          serviceName: teams-presence-service\r\n          servicePort: 3000\r\n        path: \/teams-presence\r\n        pathType: ImplementationSpecific\r\n      - backend:\r\n          serviceName: teams-share-service\r\n          servicePort: 3000\r\n        path: \/teams-share-service\r\n        pathType: ImplementationSpecific\r\n      - backend:\r\n          serviceName: teams-share-ui\r\n          servicePort: 3000\r\n        path: \/teams-share-ui\r\n        pathType: ImplementationSpecific\r\n      - backend:\r\n          serviceName: teams-tab-api\r\n          servicePort: 3000\r\n        path: \/teams-tab\/api\r\n        pathType: ImplementationSpecific\r\n      - backend:\r\n          serviceName: teams-tab-ui\r\n          servicePort: 8080\r\n        path: \/teams-tab\r\n        pathType: ImplementationSpecific\r\n\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>We updated our productive HCL Connections environment last week from 6.5CR1 to 7. This time we decided to do an<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[62,54,23],"tags":[],"class_list":["post-718","post","type-post","status-publish","format-standard","hentry","category-62","category-component-pack","category-connections"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.ume.li\/blog\/wp-json\/wp\/v2\/posts\/718","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ume.li\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.ume.li\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.ume.li\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ume.li\/blog\/wp-json\/wp\/v2\/comments?post=718"}],"version-history":[{"count":6,"href":"https:\/\/www.ume.li\/blog\/wp-json\/wp\/v2\/posts\/718\/revisions"}],"predecessor-version":[{"id":724,"href":"https:\/\/www.ume.li\/blog\/wp-json\/wp\/v2\/posts\/718\/revisions\/724"}],"wp:attachment":[{"href":"https:\/\/www.ume.li\/blog\/wp-json\/wp\/v2\/media?parent=718"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.ume.li\/blog\/wp-json\/wp\/v2\/categories?post=718"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.ume.li\/blog\/wp-json\/wp\/v2\/tags?post=718"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}