This repository illustrates a reference implementation of Senzing using IBM's Db2 as the underlying database.
The instructions show how to set up a system that:
- Reads JSON lines from a file on the internet.
- Sends each JSON line to a message queue.
- In this implementation, the queue is RabbitMQ.
- Reads messages from the queue and inserts into Senzing.
- In this implementation, Senzing keeps its data in an IBM Db2 database.
- Reads information from Senzing via Senzing API Server server.
- Views resolved entities in a web app.
For more information, see Senzing Entity Resolution for IBM Cloud Pak for Data.
The following diagram shows the relationship of the Helm charts, docker containers, and code in this Kubernetes demonstration.
- Expectations
- Prerequisites
- Demonstrate
- Log into OpenShift
- EULA
- Environment variables
- Security context
- Persistent volume storage
- Database connection information
- Create custom helm values files
- Create custom kubernetes configuration files
- Create OpenShift project
- Create persistent volume
- Create persistent volume claims
- Create Service Context Constraint
- Add helm repositories
- Deploy Senzing RPM
- Install IBM Db2 Driver
- Install RabbitMQ Helm chart
- Install senzing-mock-data-generator Helm chart
- Install senzing-base Helm chart
- Install Senzing license
- Get Senzing schema sql for Db2
- Create Senzing schema on Db2
- Database tuning
- Install senzing-init-container Helm chart
- Install senzing-configurator Helm Chart
- Install senzing-stream-loader Helm chart
- Install senzing-redoer Helm chart
- Install senzing-api-server Helm chart
- Install senzing-entity-search-web-app Helm chart
- View data
- Troubleshooting
- Cleanup
- 🤔 - A "thinker" icon means that a little extra thinking may be required. Perhaps you'll need to make some choices. Perhaps it's an optional step.
- ✏️ - A "pencil" icon means that the instructions may need modification before performing.
⚠️ - A "warning" icon means that something tricky is happening, so pay attention.
Budget 4 hours to get the demonstration up-and-running, depending on CPU and network speeds.
This repository assumes a working knowledge of:
- Minimum CPU: 4
- Minimum Memory: 16 GB
- Minimum Storage: 200Gi
- Number of Pods/Replicas: 20
- More details in System Requirements.
- Third party Software requirements:
- IBM Db2
- RabbitMQ
- Permission requirements:
- root permission for init containers
- non-root for all other containers
The Git repository has files that will be used in the helm install --values
parameter.
-
Using these environment variable values:
export GIT_ACCOUNT=senzing export GIT_REPOSITORY=ibm-openshift-guide export GIT_ACCOUNT_DIR=~/${GIT_ACCOUNT}.git export GIT_REPOSITORY_DIR="${GIT_ACCOUNT_DIR}/${GIT_REPOSITORY}"
-
Follow steps in clone-repository to install the Git repository.
The following instructions assume that a database has been created for use by Senzing. The database connection information will be needed for the "Database connection information" step below.
-
✏️ Set environment variables. Note: Setting
OC_PASSWORD
as an environment variable is not a best practice. The example is meant to highlight the variables used in theoc login
command. Example:export OC_USERNAME=my-username export OC_PASSWORD=my-password export OC_URL=https://xxxx:8443
-
Login. Example:
oc login -u ${OC_USERNAME} -p ${OC_PASSWORD} ${OC_URL}
To use the Senzing code, you must agree to the End User License Agreement (EULA).
-
⚠️ This step is intentionally tricky and not simply copy/paste. This ensures that you make a conscious effort to accept the EULA. See SENZING_ACCEPT_EULA for the correct value. Replace the double-quote character in the example with the correct value. The use of the double-quote character is intentional to prevent simple copy/paste. Example:export SENZING_ACCEPT_EULA="
-
Set environment variables listed in "Clone repository".
-
✏️ Environment variables that need customization. Example:
export DEMO_PREFIX=my export DEMO_NAMESPACE=zen export DOCKER_REGISTRY_URL=docker.io export DOCKER_REGISTRY_SECRET=${DOCKER_REGISTRY_URL}-secret
-
🤔 Optional: If using Transport Layer Security (TLS), then set the following environment variable:
export HELM_TLS="--tls"
-
FIXME: Find acceptable UIDs for system. Example:
oc ................
-
✏️ Environment variables for
securityContext
values. See Managing Security Context Constraints to determine the correct values. Example:export SENZING_RUN_AS_USER=1001 export SENZING_RUN_AS_GROUP=1001 export SENZING_FS_GROUP=1001
-
✏️ Environment variable for Persistent Volume
spec.nfs.path
value. Example:export NFS_PATH=/disk2/nfspv
-
✏️ Environment variable for Persistent Volume
spec.nfs.server
value. Example:export NFS_SERVER=bsr-openshift-nfs-0
-
✏️ Environment variables for Persistent Volume Claim
spec.storageClassName
values. Example:export PERSISTENT_VOLUME_STORAGE_CLASS_NAME=nfs-client
-
Craft the
SENZING_DATABASE_URL
.✏️ Set environment variables. Example:
export DATABASE_USERNAME=johnsmith export DATABASE_PASSWORD=secret export DATABASE_HOST=my.database.com export DATABASE_PORT=50000 export DATABASE_DATABASE=G2
Construct database URL. Example:
export SENZING_DATABASE_URL="db2://${DATABASE_USERNAME}:${DATABASE_PASSWORD}@${DATABASE_HOST}:${DATABASE_PORT}/${DATABASE_DATABASE}" echo ${SENZING_DATABASE_URL}
🤔 In this step, Helm template files are populated with actual values. There are two methods of accomplishing this. Only one method needs to be performed.
-
Method #1: Quick method using
envsubst
. Example:export HELM_VALUES_DIR=${GIT_REPOSITORY_DIR}/helm-values mkdir -p ${HELM_VALUES_DIR} for file in ${GIT_REPOSITORY_DIR}/helm-values-templates/*.yaml; \ do \ envsubst < "${file}" > "${HELM_VALUES_DIR}/$(basename ${file})"; done
-
Method #2: Copy and manually modify files method. Example:
export HELM_VALUES_DIR=${GIT_REPOSITORY_DIR}/helm-values mkdir -p ${HELM_VALUES_DIR} cp ${GIT_REPOSITORY_DIR}/helm-values-templates/* ${HELM_VALUES_DIR}
✏️ Edit files in ${HELM_VALUES_DIR} replacing the following variables with actual values.
${DEMO_PREFIX}
${DOCKER_REGISTRY_SECRET}
${DOCKER_REGISTRY_URL}
${SENZING_ACCEPT_EULA}
${SENZING_DATABASE_URL}
${SENZING_FS_GROUP}
${SENZING_RUN_AS_USER}
${SENZING_RUN_AS_GROUP}
🤔 In this step, Kubernetes template files are populated with actual values. There are two methods of accomplishing this. Only one method needs to be performed.
-
Method #1: Quick method using
envsubst
. Example:export KUBERNETES_DIR=${GIT_REPOSITORY_DIR}/kubernetes mkdir -p ${KUBERNETES_DIR} for file in ${GIT_REPOSITORY_DIR}/kubernetes-templates/*; \ do \ envsubst < "${file}" > "${KUBERNETES_DIR}/$(basename ${file})"; done
-
Method #2: Copy and manually modify files method. Example:
export KUBERNETES_DIR=${GIT_REPOSITORY_DIR}/kubernetes mkdir -p ${KUBERNETES_DIR} cp ${GIT_REPOSITORY_DIR}/kubernetes-templates/* ${KUBERNETES_DIR}
✏️ Edit files in ${KUBERNETES_DIR} replacing the following variables with actual values.
${DEMO_NAMESPACE}
-
✏️ Set environment variables. Example:
export OC_DESCRIPTION="My description..." export OC_DISPLAY_NAME="My project"
-
Create project. Example:
oc new-project ${DEMO_NAMESPACE} \ --description=${OC_DESCRIPTION} \ --display-name=${OC_DISPLAY_NAME}
🤔 To create persistent volume claims (PVC) below, a persistent volume (PV) or storage class must first exist. If a persistent volume or a storage class already exists, proceed to Create persistent volume claims.
There are many ways of creating a Persistent Volume.
The following is an example of creating an NFS type Persistent Volume
that can be referred to in a PVC by spec.volumeName
.
-
✏️ Review and modify, as needed, the contents of:
- ${KUBERNETES_DIR}/persistent-volume-rabbitmq.yaml
- ${KUBERNETES_DIR}/persistent-volume-senzing.yaml
-
If needed, create persistent volumes. Example:
oc create -f ${KUBERNETES_DIR}/persistent-volume-rabbitmq.yaml oc create -f ${KUBERNETES_DIR}/persistent-volume-senzing.yaml
-
🤔 Optional: Review persistent volumes and claims. Example:
oc get persistentvolumes \ --namespace ${DEMO_NAMESPACE}
🤔 There are multiple ways of creating a persistent volume claim (PVC).
The following are examples of how to create a PVC
with spec.storageClassName
or spec.volumeName
.
Only one method of creating PVCs is needed.
-
Method #1 - Create persistent volume claims using
spec.storageClassName
.-
Review and modify, as needed, the following files:
- ${KUBERNETES_DIR}/persistent-volume-claim-rabbitmq-storageClassName.yaml
- ${KUBERNETES_DIR}/persistent-volume-claim-senzing-storageClassName.yaml
-
Create PVCs. Example:
oc create -f ${KUBERNETES_DIR}/persistent-volume-claim-rabbitmq-storageClassName.yaml oc create -f ${KUBERNETES_DIR}/persistent-volume-claim-senzing-storageClassName.yaml
-
-
Method #2 - Create persistent volume claims using
spec.volumeName
.-
Review and modify, as needed, the following files:
- ${KUBERNETES_DIR}/persistent-volume-claim-rabbitmq-volumeName.yaml
- ${KUBERNETES_DIR}/persistent-volume-claim-senzing-volumeName.yaml
-
Create PVCs. Example:
oc create -f ${KUBERNETES_DIR}/persistent-volume-claim-rabbitmq-volumeName.yaml oc create -f ${KUBERNETES_DIR}/persistent-volume-claim-senzing-volumeName.yaml
-
-
🤔 Optional: Review persistent volumes and claims. Example:
oc get persistentvolumeClaims \ --namespace ${DEMO_NAMESPACE}
-
Create Security Constraint Context. Example:
oc create -f ${KUBERNETES_DIR}/security-context-constraint-runasany.yaml oc create -f ${KUBERNETES_DIR}/security-context-constraint-limited.yaml
-
Add Senzing repository. Example:
helm repo add senzing https://senzing.github.io/charts/
-
Update repositories. Example:
helm repo update
-
🤔 Optional: Review repositories. Example:
helm repo list
-
Reference: helm repo
This deployment initializes the Persistent Volume with Senzing code and data.
-
Add Security Context Constraint. Example:
oc adm policy add-scc-to-user \ senzing-security-context-constraint-runasany \ -z ${DEMO_PREFIX}-senzing-yum
-
Install chart. Example:
helm install ${HELM_TLS} \ --name ${DEMO_PREFIX}-senzing-yum \ --namespace ${DEMO_NAMESPACE} \ --values ${HELM_VALUES_DIR}/senzing-yum.yaml \ senzing/senzing-yum
This deployment adds the IBM Db2 Client driver code to the Persistent Volume.
-
Add Security Context Constraint. Example:
oc adm policy add-scc-to-user \ senzing-security-context-constraint-runasany \ -z ${DEMO_PREFIX}-ibm-db2-driver-installer
-
Install chart. Example:
helm install ${HELM_TLS} \ --name ${DEMO_PREFIX}-ibm-db2-driver-installer \ --namespace ${DEMO_NAMESPACE} \ --values ${HELM_VALUES_DIR}/ibm-db2-driver-installer.yaml \ senzing/ibm-db2-driver-installer
This deployment creates a RabbitMQ service.
-
Add Security Context Constraint. Example:
oc adm policy add-scc-to-user \ senzing-security-context-constraint-runasany \ -z ${DEMO_PREFIX}-rabbitmq
-
Install chart. Example:
helm install ${HELM_TLS} \ --name ${DEMO_PREFIX}-rabbitmq \ --namespace ${DEMO_NAMESPACE} \ --values ${HELM_VALUES_DIR}/rabbitmq.yaml \ stable/rabbitmq
-
Wait for pods to run. Example:
oc get pods \ --namespace ${DEMO_NAMESPACE} \ --watch
-
🤔 Optional: To view RabbitMQ, see View RabbitMQ
The mock data generator pulls JSON lines from a file and pushes them to RabbitMQ.
-
Add Security Context Constraint. Example:
oc adm policy add-scc-to-user \ senzing-security-context-constraint-limited \ -z ${DEMO_PREFIX}-senzing-mock-data-generator
-
Install chart. Example:
helm install ${HELM_TLS} \ --name ${DEMO_PREFIX}-senzing-mock-data-generator \ --namespace ${DEMO_NAMESPACE} \ --values ${HELM_VALUES_DIR}/senzing-mock-data-generator-rabbitmq.yaml \ senzing/senzing-mock-data-generator
This deployment provides a pod that is used to copy files to and from the Persistent Volume in later steps.
-
Add Security Context Constraint. Example:
oc adm policy add-scc-to-user \ senzing-security-context-constraint-runasany \ -z ${DEMO_PREFIX}-senzing-base
-
Install chart. Example:
helm install ${HELM_TLS} \ --name ${DEMO_PREFIX}-senzing-base \ --namespace ${DEMO_NAMESPACE} \ --values ${HELM_VALUES_DIR}/senzing-base.yaml \ senzing/senzing-base
-
Find pod name. Example:
export SENZING_BASE_POD_NAME=$(oc get pods \ --namespace ${DEMO_NAMESPACE} \ --output jsonpath="{.items[0].metadata.name}" \ --selector "app.kubernetes.io/name=senzing-base, \ app.kubernetes.io/instance=${DEMO_PREFIX}-senzing-base" \ )
-
Wait for pods to run. Example:
oc get pods \ --namespace ${DEMO_NAMESPACE} \ --watch
🤔 Optional: Senzing for IBM Cloud Pak for Data comes with a trial license that supports one million records. If this is sufficient, there is no need to install a new license and this step may be skipped.
-
If working with more than one million records, obtain a Senzing license.
-
Be sure the
senzing-base
Helm Chart has been installed and is running. See "Install senzing-base Helm Chart". -
Copy the
g2.lic
file to thesenzing-debug
pod at/opt/senzing/g2/data/g2.lic
.✏️ Identify location of
g2.lic
on local workstation. Example:export G2_LICENSE_PATH=/path/to/local/g2.lic
Copy file to debug pod. Example:
oc cp \ --namespace ${DEMO_NAMESPACE} \ ${G2_LICENSE_PATH} \ ${DEMO_NAMESPACE}/${SENZING_BASE_POD_NAME}:/opt/senzing/senzing-etc/g2.lic
-
Note:
/etc/opt/senzing
is attached as a Kubernetes Persistent Volume Claim (PVC), so the license will be seen by all pods that attach to the PVC.
The step copies the SQL file used to create the Senzing database schema onto the local workstation.
-
Be sure the
senzing-base
Helm Chart has been installed and is runnning. See "Install senzing-base Helm Chart". -
Copy the
/opt/senzing/g2/resources/schema/g2core-schema-db2-create.sql
file from thesenzing-base
pod.✏️ Identify location to place
g2core-schema-db2-create.sql
on local workstation. Example:export SENZING_LOCAL_SQL_PATH=/path/to/local/g2core-schema-db2-create.sql
Copy file from pod to local workstation. Example:
oc cp \ --namespace ${DEMO_NAMESPACE} \ ${DEMO_NAMESPACE}/${SENZING_BASE_POD_NAME}:/opt/senzing/senzing-g2/resources/schema/g2core-schema-db2-create.sql \ ${SENZING_LOCAL_SQL_PATH}
-
✏️ Copy
g2core-schema-db2-create.sql
to a system that can access the database created for Senzing. Use an appropriate hostname or IP address. Example:export DATABASE_HOST=my.database.com scp ${SENZING_LOCAL_SQL_PATH} db2inst1@${DATABASE_HOST}:
-
If needed, create a database for Senzing data. Example:
su - db2inst1 export DB2_DATABASE=G2 source sqllib/db2profile db2 create database ${DB2_DATABASE} using codeset utf-8 territory us
-
Connect to
DB2_DATABASE
. Example:su - db2inst1 export DB2_DATABASE=G2 export DB2_USER=db2inst1 source sqllib/db2profile db2 connect to ${DB2_DATABASE} user ${DB2_USER}
When requested, supply password.
-
Create tables in schema. Example:
db2 -tvf g2core-schema-db2-create.sql db2 terminate
🤔 Optional: Database tuning may be performed later.
-
For information on tuning the database for optimum performance, see Tuning your Database.
-
Additional tuning parameters to try:
db2set DB2_USE_ALTERNATE_PAGE_CLEANING=ON db2set DB2_APPENDERS_PER_PAGE=1 db2set DB2_INLIST_TO_NLJN=YES db2set DB2_LOGGER_NON_BUFFERED_IO=ON db2set DB2_SKIP_LOG_WAIT=YES db2set DB2_APM_PERFORMANCE=off db2set DB2_SKIPLOCKED_GRAMMAR=YES
-
Additional tuning parameters to try:
export DB2_DATABASE=G2 export DB2_USER=db2inst1 db2 connect to ${DB2_DATABASE} user ${DB2_USER} db2 UPDATE SYS_SEQUENCE SET CACHE_SIZE=100000 db2 commit db2 terminate
The init-container creates files from templates and initializes the G2 database.
-
Add Security Context Constraint. Example:
oc adm policy add-scc-to-user \ senzing-security-context-constraint-runasany \ -z ${DEMO_PREFIX}-senzing-init-container
-
Install chart. Example:
helm install ${HELM_TLS} \ --name ${DEMO_PREFIX}-senzing-init-container \ --namespace ${DEMO_NAMESPACE} \ --values ${HELM_VALUES_DIR}/senzing-init-container.yaml \ senzing/senzing-init-container
-
Wait for pods to run. Example:
oc get pods \ --namespace ${DEMO_NAMESPACE} \ --watch
The Senzing Configurator is a micro-service for changing Senzing configuration.
-
Add Security Context Constraint. Example:
oc adm policy add-scc-to-user \ senzing-security-context-constraint-limited \ -z ${DEMO_PREFIX}-senzing-configurator
-
Install chart. Example:
helm install ${HELM_TLS} \ --name ${DEMO_PREFIX}-senzing-configurator \ --namespace ${DEMO_NAMESPACE} \ --values ${HELM_VALUES_DIR}/senzing-configurator.yaml \ senzing/senzing-configurator
-
🤔 Optional: To view Senzing Configurator, see View Senzing Configurator.
The stream loader pulls messages from RabbitMQ and sends them to Senzing.
-
Add Security Context Constraint. Example:
oc adm policy add-scc-to-user \ senzing-security-context-constraint-limited \ -z ${DEMO_PREFIX}-senzing-stream-loader
-
Install chart. Example:
helm install ${HELM_TLS} \ --name ${DEMO_PREFIX}-senzing-stream-loader \ --namespace ${DEMO_NAMESPACE} \ --values ${HELM_VALUES_DIR}/senzing-stream-loader-rabbitmq.yaml \ senzing/senzing-stream-loader
The Senzing Redoer processes Senzing "redo" records.
-
Add Security Context Constraint. Example:
oc adm policy add-scc-to-user \ senzing-security-context-constraint-limited \ -z ${DEMO_PREFIX}-senzing-redoer
-
Install chart. Example:
helm install ${HELM_TLS} \ --name ${DEMO_PREFIX}-senzing-redoer \ --namespace ${DEMO_NAMESPACE} \ --values ${HELM_VALUES_DIR}/senzing-redoer.yaml \ senzing/senzing-redoer
The Senzing API server receives HTTP requests to read and modify Senzing data.
-
Add Security Context Constraint. Example:
oc adm policy add-scc-to-user \ senzing-security-context-constraint-limited \ -z ${DEMO_PREFIX}-senzing-api-server
-
Install chart. Example:
helm install ${HELM_TLS} \ --name ${DEMO_PREFIX}-senzing-api-server \ --namespace ${DEMO_NAMESPACE} \ --values ${HELM_VALUES_DIR}/senzing-api-server.yaml \ senzing/senzing-api-server
-
Wait for pods to run. Example:
oc get pods \ --namespace ${DEMO_NAMESPACE} \ --watch
-
🤔 Optional: To view Senzing API server, see View Senzing API Server.
The Senzing Entity Search WebApp is a light-weight WebApp demonstrating Senzing search capabilities.
-
Add Security Context Constraint. Example:
oc adm policy add-scc-to-user \ senzing-security-context-constraint-limited \ -z ${DEMO_PREFIX}-senzing-entity-search-web-app
-
Install chart. Example:
helm install ${HELM_TLS} \ --name ${DEMO_PREFIX}-senzing-entity-search-web-app \ --namespace ${DEMO_NAMESPACE} \ --values ${HELM_VALUES_DIR}/senzing-entity-search-web-app.yaml \ senzing/senzing-entity-search-web-app
-
Wait for pod to run. Example:
oc get pods \ --namespace ${DEMO_NAMESPACE} \ --watch
-
🤔 Optional: To view Senzing Entity Search WebApp, see View Senzing Entity Search WebApp.
- Username and password for the following sites are the values seen in the corresponding "values" YAML file located in helm-values-templates.
The /etc/hosts
file needs to be updated with a line like:
10.10.10.10 rabbitmq.local senzing-api.local senzing-configurator.local senzing-entity-search.local
🤔 Instead of 10.10.10.10
, the real IP address needs to be found.
There are 2 methods to find the IP address.
-
Method #1: Ping the "infra node". Example:
-
Determine the IP address of the OpenShift "infra" node. Example:
export SENZING_INFRA_NODE=$(oc get nodes \ --output jsonpath="{.items[0].metadata.name}" \ --selector "node-role.kubernetes.io/infra=true" \ ) ping ${SENZING_INFRA_NODE}
-
From out output of the
ping
command, the IP address can be found.
-
-
Method #2: Extract the IP Address. Example:
-
Query the IP address directly. Example:
export SENZING_INFRA_NODE_IP_ADDRESS=$(oc get nodes \ --output jsonpath="{.items[0].status.addresses[0].address}" \ --selector "node-role.kubernetes.io/infra=true" \ ) echo ${SENZING_INFRA_NODE_IP_ADDRESS}
-
-
✏️ Into the
/etc/hosts
file, append a line like the following example, replacing10.10.10.10
with the infra node IP address.10.10.10.10 rabbitmq.local senzing-api.local senzing-configurator.local senzing-entity-search.local
- If not already done, update hosts file.
- RabbitMQ will be viewable at rabbitmq.local.
- Login
- See helm-values/rabbitmq.yaml for Username and password.
- Default: user/passw0rd (seen in helm-values-templates/rabbitmq.yaml)
- Login
-
If not already done, update hosts file.
-
Senzing Configurator will be viewable at senzing-configurator.local/datasources.
-
Make HTTP calls via
curl
. Example:export SENZING_CONFIGURATOR_SERVICE=http://senzing-configurator.local curl -X GET ${SENZING_CONFIGURATOR_SERVICE}/datasources curl -X POST \ --data '[ "TEST", "TEST1", "TEST2", "TEST3"]' \ --header 'Content-type: application/json;charset=utf-8' \ ${SENZING_CONFIGURATOR_SERVICE}/datasources
- If not already done, update hosts file.
- View results from Senzing REST API server.
The server supports the
Senzing API Server.
-
From a web browser. Examples:
-
From
curl
. Examples:export SENZING_API_SERVICE=http://senzing-api.local curl -X GET ${SENZING_API_SERVICE}/heartbeat curl -X GET ${SENZING_API_SERVICE}/license curl -X GET ${SENZING_API_SERVICE}/entities/1
-
From OpenApi "Swagger" editor.
-
- If not already done, update hosts file.
- Senzing Entity Search WebApp will be viewable at senzing-entity-search.local. The demonstration instructions will give a tour of the Senzing web app.
This deployment provides a pod that can be used to view Persistent Volumes and run Senzing utility programs.
-
Add Security Context Constraint. Example:
oc adm policy add-scc-to-user \ senzing-security-context-constraint-runasany \ -z ${DEMO_PREFIX}-senzing-debug
-
Install chart. Example:
helm install ${HELM_TLS} \ --name ${DEMO_PREFIX}-senzing-debug \ --namespace ${DEMO_NAMESPACE} \ --values ${HELM_VALUES_DIR}/senzing-debug.yaml \ senzing/senzing-debug
-
Wait for pod to run. Example:
oc get pods \ --namespace ${DEMO_NAMESPACE} \ --watch
-
Find pod name. Example:
export SENZING_DEBUG_POD_NAME=$(oc get pods \ --namespace ${DEMO_NAMESPACE} \ --output jsonpath="{.items[0].metadata.name}" \ --selector "app.kubernetes.io/name=senzing-debug, \ app.kubernetes.io/instance=${DEMO_PREFIX}-senzing-debug" \ )
-
Log into debug pod. Example:
oc exec -it --namespace ${DEMO_NAMESPACE} ${SENZING_DEBUG_POD_NAME} -- /bin/bash
Additional information:
If the instructions don't address an issue you are seeing, please "submit a request" so we can help you.
This repository is a community project. Feel free to submit a Pull Request for change.
-
Example:
helm delete ${HELM_TLS} --purge ${DEMO_PREFIX}-senzing-entity-search-web-app helm delete ${HELM_TLS} --purge ${DEMO_PREFIX}-senzing-api-server helm delete ${HELM_TLS} --purge ${DEMO_PREFIX}-senzing-redoer helm delete ${HELM_TLS} --purge ${DEMO_PREFIX}-senzing-stream-loader helm delete ${HELM_TLS} --purge ${DEMO_PREFIX}-senzing-configurator helm delete ${HELM_TLS} --purge ${DEMO_PREFIX}-senzing-init-container helm delete ${HELM_TLS} --purge ${DEMO_PREFIX}-senzing-base helm delete ${HELM_TLS} --purge ${DEMO_PREFIX}-ibm-db2-driver-installer helm delete ${HELM_TLS} --purge ${DEMO_PREFIX}-senzing-yum helm delete ${HELM_TLS} --purge ${DEMO_PREFIX}-senzing-mock-data-generator helm delete ${HELM_TLS} --purge ${DEMO_PREFIX}-rabbitmq helm delete ${HELM_TLS} --purge ${DEMO_PREFIX}-senzing-debug helm repo remove senzing oc delete ${HELM_TLS} -f ${KUBERNETES_DIR}/security-context-constraint-limited.yaml oc delete ${HELM_TLS} -f ${KUBERNETES_DIR}/security-context-constraint-runasany.yaml oc delete ${HELM_TLS} -f ${KUBERNETES_DIR}/persistent-volume-claim-senzing.yaml oc delete ${HELM_TLS} -f ${KUBERNETES_DIR}/persistent-volume-claim-rabbitmq.yaml oc delete ${HELM_TLS} -f ${KUBERNETES_DIR}/persistent-volume-senzing.yaml oc delete ${HELM_TLS} -f ${KUBERNETES_DIR}/persistent-volume-rabbitmq.yaml
-
Delete git repository. Example:
sudo rm -rf ${GIT_REPOSITORY_DIR}