1.3 Connect 11 Installation Overview MicroK8s

Prerequistes

Connect 11 deployment for MicroK8s assume the following requirements are met.

  • Single or Multiple K8 Linux Control Plane Node(s). 8gb Memory, 250gb storage.

  • Minimum of 2 K8 Linux Worker Nodes. 8gb Memory, 250gb storage.

  • K8 Metrics Server installed and accessible.

  • K8 Dashboard installed and accessible.

  • Oracle Database installed and network accessible by the Worker Nodes.

  • Linux client available with Docker, Helm, MicroK8s and kubectl installed, with K8 Admin and Repository credentials to access and administer the container registry and the k8 cluster. (This shall be referred to as the Installation Client in this document). Enable registry, dns, and helm3 in MicroK8s.

  • Unzip, and xsltproc linux utilities are installed/

  • Sudo privilege

Installation client checklist

The following commands will verify that the client is ready for installation

  • docker images

  • helm list

  • unzip (Verify is present)

  • xsltproc (Verify is present)

  • su ls (Verify have privilege)

Installation of Connnect 11

Make sure database schema has been created with proper permissions and tablespaces.

unzip Connect distribution to /opt/connect.install/kc

$KCHOME refers to the path /opt/connect/kc from now on

  1. run $KCHOME/install/bootstrap.sh or bootstrap.sh --offline - this will create an install.properties file, download Java and any other files needed

  2. Edit database.conf file in $KCHOME/config

  3. run $KCHOME/initschema/runliquibase.sh clearCheckSums

  4. run $KCHOME/initschema/runliquibase.sh updateSQL - this outputs the SQL changes that Liquibase will make

  5. run $KCHOME/initschema/runliquibase.sh update - this applies the schema changes outlined in updateSQL

  6. Run $KCHOME/install/seeddb.sh Default "Customer Care" [email protected]

Create Kubernetes Deployment

Create Deployment Records

Navigate to $KCHOME/install

run the following command

installer.sh installk8s ../install.kubernetes/deployment/deployment-kubernetes.conf


This will create a deployment records in the database and files in $KCHOME/deploy/kubernetes

There are two subdirectories in $KCHOME/deploy/kubernetes

  • java

  • kc

In the POD, these directories are mounted at the following paths:

  • /opt/brickst/kc

  • /opt/brickst/java

Create the brickst namespace

kubectl create namespace brickst

If you are rebuilding an exisiting cluster you may want to delete the namespace

kubectl delete namespace brickst

Create Pull Secret

sudo kubectl create secret generic regcred --from-file=.dockerconfigjson=/root/.docker/config.json --type=kubernetes.io/dockerconfigjson -n brickst


WildFly Config

Edit if needed $KCHOME/install.kubernetes/wildfly/wildfly.config

#
# wildfly container config
#
WFIMAGE=jboss/wildfly:21.0.2.Final
database_type=oracle
#database_type=mysql
#database_type=sql
jdbc_oracle=ojdbc8-21.1.0.0.jar
jdbc_mysql=mysql-connector-java-8.0.23.jar
jdbc_sql=mssql-jdbc-8.2.1.jre8.jar
  • WFIMAGE - The Wildfly image to be used

  • database_type - database type that will be used. Uncomment the database_type in use.

  • jdbc_* - jdbc driver that will be used depending on database type

Create the brickst and brickstwar images

Create the brickst and brickstwar images by running $KCHOME/install.kubernetes/ updateMicrok8sImages.sh. There are four options to run:

d - brickst image

w - brickstwar images

all - both images

justclean - deletes the K8 resources such as the cron jobs and service while cleaning up the images from the docker registry

 
Example for brickst container
bash ./updateMicrok8sImages.sh d
 
Example for brickstwar container
bash ./updateMicrok8sImages.sh w
Example forboth
bash ./updateMicrok8sImages.sh all
Example forjustclean
bash ./updateMicrok8sImages.sh justclean


Deploy Connect Application

  1. run $KCHOME/install.kubernetes/helm/helm dependency update

  2. Edit values.yaml - add the secret and repository/image names (image and imagePullSecrets, the rest is optional).

    brickst:
    image: localhost:32000/brickst:registry
    # controlls the pull policy of the componenets pods
    #values IfNotPresent/Always/Never
    pullPolicy: IfNotPresent
    createConfig: true
    configName: brickst-deploy-config
    drnNodeName: brickst-drn
    dmzNodeName: brickst-dmz
    createSecret: true
    dbSecretName: brickst-deploy-secret
    dbSecretPassKey: brickst-db-password
    dbPassword:
    componentBasePort: 1600
     
    imagePullSecrets: []
    #- name : regcred

    image - path to an image in a private registry
    imagePullSecrets - Kubernetes should get the credentials from this secret

  3. run $KCHOME/install.kubernetes/helmHelper.sh install brickst ./helm --namespace brickst