Slide 1

Slide 1 text

Let‘s Connect 2022 October 26, 2022 Things we learned, improved, simplified going to container- based delivery with Connections Cameron Bosnic, HCLTech @CameronBosnic

Slide 2

Slide 2 text

Let’s Connect 2022 October 26, 2022 Agenda • Install upgrade types • CNX8 and beyond delivery model • Harbor • Infrastructure upgrades and migrations • Ansible deployment scripts • Update with cron or Jenkins • Upgrade component with ansible

Slide 3

Slide 3 text

Let’s Connect 2022 October 26, 2022 Upgrade Types • In place • Easiest option for smaller environments • Run the Installation Manager to upgrade the Connections server. Helm upgrade command to install/upgrade the Component Pack. • Side by Side • Most used technique, used by technical advisors • New 'clean' install • Stage changes and config and switch over when the configuration and customizations look good • Hybrid • Hybrid upgrade uses the same process as in-place, a new environment identical to production • Can still test customizations as with a side by side upgrade

Slide 4

Slide 4 text

Let’s Connect 2022 October 26, 2022 Upgrade Types • Component pack delivered as huge zip file • Deliveries have been slow (annual) • All images and charts require setting up internal registry • Each image individually added to registry • Not taking advantage of some of the strengths of containers

Slide 5

Slide 5 text

Let’s Connect 2022 October 26, 2022 CNX 8 + Delivery Model • Continuous quarterly releases • Regular feature releases, bug fixes, and security updates • Enabled by Harbor • Automatable with Ansible • Quarterly release cadence on both WebSphere and Kubernetes side • K8s kept up to date (most recent 3 releases)

Slide 6

Slide 6 text

Let’s Connect 2022 October 26, 2022 CNX 8 + Delivery Model

Slide 7

Slide 7 text

Let’s Connect 2022 October 26, 2022 Harbor • Harbor is a repository for our Component Pack build containing: • Charts • Helm 3 • Images • Docker images • for components

Slide 8

Slide 8 text

Let’s Connect 2022 October 26, 2022 Harbor • Access: Register for Harbor and get username/token at hclr.io Entitlement and access to repo added by Harbor team • Deploy: Change Helm repo with helm repo add (Demo) Helm upgrade … (Demo)

Slide 9

Slide 9 text

Let’s Connect 2022 October 26, 2022 CNX Infrastructure Upgrades and Migrations Recreate Ingress (for upgrade to cnx8 once only) • Ingresses have been moved to their respective component Helm charts and need to be recreated kubectl delete ingress -n connections $(kubectl get ingress -n connections | awk '{print $1}' | grep -vE "NAME") helm upgrade cnx-ingress -i ingress-nginx/ingress-nginx --namespace connections - f cnx-ingress-values.yml --wait

Slide 10

Slide 10 text

Let’s Connect 2022 October 26, 2022 CNX Infrastructure Upgrades and Migrations Mongo3 -> Mongo5 • Pull Mongo Dockerfile from github, build image • Import to containerd in worker nodes, update Helm chart to pull the image • Export from Mongo3 • Import to Mongo5

Slide 11

Slide 11 text

Let’s Connect 2022 October 26, 2022 CNX Infrastructure Upgrades and Migrations Elasticsearch -> OpenSearch • Export from ElasticSearch7 • Import to OpenSearch

Slide 12

Slide 12 text

Let’s Connect 2022 October 26, 2022 Ansible Deployment Scripts Public Git repo: https://github.com/HCL-TECH-SOFTWARE/connections- automation Used daily to install / upgrade our internal deployments. Available as a public Git repo as a proof of concept for our customers to get an idea how to automate the process and with the possibility to extend upon it. Install configurations are driven by a set of inventory files tailored to the system being deployed. Install actions are driven by a set of playbooks to deploy different parts of the products.

Slide 13

Slide 13 text

Let’s Connect 2022 October 26, 2022 Ansible Deployment Scripts Connections Server playbook - setup-connections-complete.yml

Slide 14

Slide 14 text

Let’s Connect 2022 October 26, 2022 Ansible Deployment Scripts Component Pack Infrastructure playbook - setup-component-pack-infra-only.yml

Slide 15

Slide 15 text

Let’s Connect 2022 October 26, 2022 Ansible Deployment Scripts Configuring options in inventory to install/upgrade component

Slide 16

Slide 16 text

Let’s Connect 2022 October 26, 2022 Update via Jenkins or cron Job These playbooks can be executed as a Jenkins job or a shell script

Slide 17

Slide 17 text

Let’s Connect 2022 October 26, 2022 Upgrade component with ansible • Configure inventory to enable target components • Run ansible script

Slide 18

Slide 18 text

Let’s Connect 2022 October 26, 2022 Let‘s Connect 2022 October 26, 2022 Questions?

Slide 19

Slide 19 text

Let’s Connect 2022 October 26, 2022 Actions Check it out: • https://hclcr.io/harbor/projects • https://github.com/HCL-TECH-SOFTWARE/connections-automation • https://preview.hclconnections.net