
Originally published on October 25, 2024 11:56 AM
This article outlines the steps I took to get WebFOCUS Container Edition (WF-CE) and prerequisites running in Kubernetes deployment.
This was done with the following configuration:
- OS: Ubuntu 24.01 (with 4 vCPU's and 16 GB RAM)
- Kind: v0.24.0 go1.22.6 Linux/amd64
- Helm: Version:"v3.16.1"
- Kubectl: Client Version: v1.31.0
- Helmfile: Version 0.167.1
- Docker engine: Version 24.0.7
- WebFOCUS Container Edition v1.3.1
Some quick Notes:
- You will need a license.txt file and must know your customer ID. If you do not know about either, then visit our product Support website and collect first.
- General utility commands like ubuntu-desktop (for local browser), curl, git, gunzip, watch…etc should already be present.
- There are many Linux distributions, you need to know the install commands for that specific Linux kernel.
- Cut and paste is not your friend, re: the bullets + tab will copy by default (you’ll need to watch and clean up)
- If you are running on windows – you will need Windows Subsystem for Linux (WSL v2) – not doc’d here.
- The following documentation was done on OS: Ubuntu 24.01 and reflects that configuration only.
In the next few steps, I am installing the pre-reqs and confirming the version installed. I created a directory WFCE_131 and issues the following commands three.
1. Install Kind – Quick start guide for different binaries (https://kind.sigs.k8s.io/docs/user/quick-start/ )
# For AMD64 / x86_64 – I selected this command for my Ubuntu OS
- [ $(uname -m) = x86_64 ] && curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.24.0/kind-linux-amd64
- chmod +x ./kind
- sudo mv ./kind /usr/local/bin/kind
- kind version
expected Output:
kind v0.24.0 go1.22.6 linux/amd64
2. Install helm
# Download the install shell script
- curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3
# Change permissions allowing it to Run
- chmod 700 get_helm.sh
# Install
- . ./get_helm.sh (notice the DOT space DOT/)
# Double check helm permission -
- ls -lrt /usr/local/bone (if owner is root, change to match kind owner, should be your ID, with group 2130 in my case)
- sudo chown csslmd:2130 /usr/local/bin/helm (changes owner to my ID csslmd and group 2130 matching kind)
- helm version
expected Output
version.BuildInfo{Version:"v3.16.1", GitCommit:"5a5449dc42be07001fd5771d56429132984ab3ab", GitTreeState:"clean", GoVersion:"go1.22.7"}
3. Install kubectl
- curl -LO https://dl.k8s.io/release/v1.31.0/bin/linux/amd64/kubectl
- chmod 755 kubectl
- sudo mv kubectl /usr/local/bin/kubectl
- kubectl version
Expected output
Client Version: v1.31.0
Kustomize Version: v5.4.2
Server Version: v1.31.0
4. Install Helmfile – Select the correct distribution - https://github.com/helmfile/helmfile/releases/tag/v0.167.1
- wget -O helmfile_linux_amd64 https://github.com/helmfile/helmfile/releases/download/v0.167.1/helmfile_0.167.1_linux_amd64.tar.gz
- mv helmfile_linux_amd64 helmfile.tar.gz #note the above file name and what is written to disk. Need to change extension
- gunzip helmfile.tar.gz
- tar -xvf helmfile.tar (I chose to remove the 2 README files as well as the LICENSE file – not needed - helmfile is what you are looking for)
- sudo mv helmfile /usr/local/bin/helmfile
- helmfile version
expected output
helmfile Version 0.167.1
Git Commit 86664f5
Build Date 03 Aug 24 22:03 EDT (1 month ago)
Commit Date 02 Aug 24 19:53 EDT (1 month ago)
Dirty Build no
Go version 1.22.4
Compiler gc
Platform linux/amd64
5. Install Docker
- sudo apt install -y docker.io
- sudo vi /etc/group #vi to edit the group file and add your userID, (mine is csslmd) appended to the docker entry, e.g: docker:x:124:csslmd
- after adding ID to the docker group and saving , you MUST log out and back in to take effect.
- docker version
expected output
Client:
Version: 24.0.7
API version: 1.43
Go version: go1.22.2
Git commit: 24.0.7-0ubuntu4.1
Built: Fri Aug 9 02:33:20 2024
OS/Arch: linux/amd64
Context: default (….. etc , yes there is more....)
6. Confirm your pre-requisites are in the /usr/local/bin, with correct permissions (adjust if needed). This location is in your path by default.
- ls -lrt /usr/local/bin
-rwxr-xr-x 1 csslmd csslmd 91693208 Aug 3 22:07 helmfile
-rwxrwxr-x 1 csslmd csslmd 9930525 Sep 25 09:09 kind
-rwxr-xr-x 1 csslmd csslmd 57122968 Sep 25 14:43 helm
-rwxr-xr-x 1 csslmd csslmd 56381592 Sep 25 15:38 kubectl
- sudo ls -ltr /var/lib/docker #Docker is written to a different location
drwx------ 2 root root 4096 Oct 15 02:03 runtimes
drwx--x--- 2 root root 4096 Oct 15 02:03 containers
drwx-----x 2 root root 4096 Oct 15 02:03 volumes
drwx------ 4 root root 4096 Oct 15 02:03 plugins
-rw------- 1 root root 36 Oct 15 02:03 engine-id
drwx------ 3 root root 4096 Oct 15 02:03 image
drwxr-x--- 3 root root 4096 Oct 15 02:03 network
drwx------ 2 root root 4096 Oct 15 02:03 swarm
drwx--x--- 3 root root 4096 Oct 15 02:03 overlay2
drwx--x--x 4 root root 4096 Oct 15 02:03 buildkit
drwx------ 2 root root 4096 Oct 15 02:03 tmp
***************** Pre-reqs are completed *******************
Installing WF-CE (as of the date this doc was written, 10/2024, 1.3.1 was the current version)
1. Download at minimum 2 tar files from e-delivery and doc - ibi WebFOCUS - Container Edition Add-on
- IBI_wfce_1.3.1.tar
- IBI_wfce_images_1.3.1.tar
- Create a directory for the file. (I created WFCE_131 and placed the files there.)
2. load docker images from downloaded wfce images tar file:
- docker load -i IBI_wfce_images_1.3.1.tar (from location where you copied the tar files)
- docker images (this command shows newly loaded images, output in screenshot below)
NOTE: If the docker command requires sudo to run, you may not have logged out and back in (as directed above)
3. Now you can untar wf-ce install with the below command, which will untar WF-CE into a directory called IBI_wfce_1.3.1
- tar -xvf IBI_wfce_1.3.1.tar
4. We will now create a single node Kubernetes cluster using kind, called wf-ce.
First upload the kind.with.ingress.yaml (from the attached yaml_files.zip I have attached to this topic) BEFORE running the kind command below. (I put mine in WFCE_131/)
- kind create cluster --name wf-ce --config kind.with.ingress.yaml
expected output:
Check cluster with the following command
- kubectl cluster-info
expected output:
5. Set the required environment variables and then load images to kind cluster.
run the following command from WFCE_131/IBI_wfce_1.3.1/scripts/helmfile
- . ./export-defaults.sh (notice the DOT space DOT/export-defaults.sh)
expected output:
Type env to view your environment variables to confirm they are set. (the names + version # should look familiar)
To load images to kind cluster, wf-ce, created above, run the following commands
- kind load docker-image ibi2020/webfocus:wfc-9.3-1.3.1 --name wf-ce
- kind load docker-image ibi2020/webfocus:wfs-9.3-1.3.1 --name wf-ce
- kind load docker-image ibi2020/webfocus:wfs-etc-9.3-1.3.1 --name wf-ce
- kind load docker-image ibi2020/webfocus:cm-9.3-1.3.1 --name wf-ce
expected output:
6. Install NGINX Ingress controller by running the following command:
- kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/main/deploy/static/provider/kind/deploy.yaml
expected output:
Run the following command to validate Ingress is installed properly
- kubectl wait --namespace ingress-nginx --for=condition=ready pod --selector=app.kubernetes.io/component=controller --timeout=90s
expected output:
7. View the images on the wf-ce-control plane
- docker exec -it wf-ce-control-plane crictl images
expected output:
8. Use helmfile to build and deploy the infrastructure required by WebFOCUS CE to run. Running the below command builds and deploys the pods from the images onto the control-plane
- cd WFCE_131/IBI_wfce_1.3.1/scripts/helmfile/infra/
- helmfile sync
NOTE: Since lots will scroll by from the above command, you can run the following command , from a separate windows, to monitor as the infrastructure is getting built/deployed in the webfocus namespace
- watch kubectl get pods -n webfocus
expected output of the watch command as it runs, note the next 2 screen shots are while running and then when all 'Ready' (screen updates every 2 seconds)
9. installing the WF-CE License –
As mentioned in the NOTES section at the top, you will require a license.txt file and must know your customer ID. If you do not know about either, then visit our product Support website.
From WFCE_131/IBI_wfce_1.3.1/scripts/helmfile/environments/ directory, make a backup copy of wf.integ.yaml.gotmpl (in case you make a vi mistake)
- cp wf.integ.yaml.gotmpl wf.integ.yaml.gotmpl.orig
- vi wf.integ.yaml.gotmpl
Update wf.integ.yaml.gotmpl with your provided CUSTOMERID and accept the EULA by adding Y. - you are modifying the below two lines only
WF_CUSTOMERID: "999999" #Customer ID
ACCEPT_EUA: "Y" #You must accept the End User Agreement by setting to "Y"
- Copy the provided active license.txt file to the following location WFCE_131/IBI_wfce_1.3.1/scripts/license. (you can overwrite what is there)
10. Load the prebuilt WebFOCUS images and deploy the pods to wf-ce control-plane
- cd WFCE_131/IBI_wfce_1.3.1/scripts/helmfile
- helmfile -e dev sync
This is deploying the WF components to Kubernetes with a development profile – ‘dev’ and lots will scroll by, so we watch.
Again you can run to monitor as it builds
- watch kubectl get pods -n webfocus
Note – if smoke test fails – don’t panic – move forward.
11. To complete/fix ingress by adding your hostname
- From the WFCE_131/IBI_wfce_1.3.1/scripts/helmfile/environments directory
- Please create local-ingress.yaml (using the provided file yaml_files.zip)
- Modify that local-ingress.yaml, by changing the last two of the three localhost values to your hostname (lines 44 and 54 - in lower case) and run the below command
- kubectl apply -f local-ingress.yaml (using the yaml file you created)
expected output
This was done on a local install of Ubuntu Desktop. You can confirm success with the overall install and ingress change, from a browser local to the host, just put ‘localhost’ as the URL and it should resolve.
If you see the login screen below, with just typing in localhost you are good! The default credentials are located in the TIBCO WebFOCUS® Container Edition Installation and Deployment Guide
Please feel free to reach out with any questions.
-
2
Recommended Comments