Jump to content
  • 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

    expected Output: 

    kind v0.24.0 go1.22.6 linux/amd64

     

    2. Install helm

    # Download the install shell script

    # 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

    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

    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.)

    image.thumb.png.fa745851d79b458fa686fb7e9e726044.png

     

    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)

     image.png.bedd398542e6a95dc4c21c0ed26e7ca3.png

    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

     image.png.c98393b77a31896d4e59114987fcb0ed.png

    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:

    image.png.2f272c2ca1f6053da2affe7655bffbea.png

    Check cluster with the following command

    • kubectl cluster-info

    expected output:

    image.png.1c8b8e38ee65026ad05e0f7b3f42acc1.png

    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:

     image.png.40c09157fcc2ac9f226be67df6c2b2b7.png

    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:

     image.png.5ab2d943a83056cb1355162cf22b2b3c.png

    6. Install NGINX Ingress controller by running the following command:  

    expected output:

     image.png.761affcd023be748a610bf1af47ef414.png

    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:

    image.png.82011fb16791d2d8cac025f09e9b6be0.png

    7. View the images on the wf-ce-control plane

    • docker exec -it wf-ce-control-plane crictl images

    expected output:

     image.png.bbee415ef02357af9be92ee5a5bac3f4.png

    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)

     image.png.36baa9c9bcc7d94cb2701c2d0fd8c181.png

    image.png.830171ac19844f35056e02f700fad142.png

    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.

     image.png.25e47effffc4381b2d4a69d882963014.png

    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

    image.png.c536c0a755239eb739734c4a479853f3.png

    • kubectl apply -f local-ingress.yaml   (using the yaml file you created)

    expected output

     image.png.a4ccf011509e8354c861292e72ef1f92.png

    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. 

     

    image.png.487bd54325bbab52c095d8e8e4eb9b64.png


     

    yaml_files.zip

    • Like 2

    User Feedback

    Recommended Comments

    Louis DeTurris

    Posted

    I see lots of views, please feel free to leave a comment with any questions. 

    • Like 1

×
  • Create New...