Pre-Installations for DES

The following pre-installations are to be performed before AKS creation:

  • Transact pods to be deployed in AKS.
  • DES database details are required.
  • Azure Event Hub to be created and details like primary key, connection strings are to be noted which would be used when installing DES.

Setting up Third-Party Services

Once the Azure resources are available, follow the steps below to install third-party services. If Kafka, Zookeeper, Schema registry are already available as a part of the installation, then skip the step 4 and 5.

  1. Create Event Hub in Azure resources manually using the portal or using Azure cli using the command below. Attached a sample des_eventhub.json for reference. For all the required topics to be created, read the release notes section 4.3 in the DES release package.
  2. az group deployment create -g <<Resource group>> --template-file <<path to des_eventhub.json>>
    EXAMPLE: az group deployment create -g FRONT2BACK2-aks --template-file des_eventhub.json

  3. Execute the below commands to get values for Event Hub related environment variables to create a connection between DES and Event Hub.
    • Event Hub Shared Access Key
    • az eventhubs namespace authorization-rule keys list -g $(shared.aksResourceGroup) --namespace-name

      $(eventhubNamespace) --name RootManageSharedAccessKey --query primaryKey -o tsv

      EXAMPLE: az eventhubs namespace authorization-rule keys list -g FRONT2BACK-aks --namespace-name front2backdeshubHA --name RootManageSharedAccessKey --query primaryKey -o tsv export EVENT_HUB_SHARED_ACCESS_KEY=<<value obtained from above execution>>
    • Event Hub Connection URL
    • az eventhubs namespace authorization-rule keys list -g $(shared.aksResourceGroup) --namespace-name

      $(eventhubNamespace) -n RootManageSharedAccessKey --query "primaryConnectionString" -o tsv

      EXAMPLE: az eventhubs namespace authorization-rule keys list -g FRONT2BACK-aks --namespace-name front2backdeshubHA -n RootManageSharedAccessKey --query "primaryConnectionString" -o tsv export EH_CONNECTION_URL=<<value obtained from above execution>>
    • Event Hub CI shared access key
    • az eventhubs namespace authorization-rule keys list -g $(shared.aksResourceGroup) --namespace-name

      $(eventhubNamespaceCI) -n RootManageSharedAccessKey --query primaryKey -o tsv

      EXAMPLE: az eventhubs namespace authorization-rule keys list -g FRONT2BACK-aks --namespace-name front2backdeshubCIHA -n RootManageSharedAccessKey --query primaryKey -o tsv export EVENT_HUB_CI_SHARED_ACCESS_KEY=<<value obtained from above execution>>
    • Event Hub CI connection URL
    • az eventhubs namespace authorization-rule keys list -g $(shared.aksResourceGroup) --namespace-name $(eventhubNamespaceCI) -n RootManageSharedAccessKey --query "primaryConnectionString" -o tsv

      EXAMPLE: az eventhubs namespace authorization-rule keys list -g FRONT2BACK-aks --namespace-name front2backdeshubCIHA -n RootManageSharedAccessKey --query "primaryConnectionString" -o tsv export EVENT_HUB_CI_CONNECTION_URL=<<value obtained from above execution>>
  4. Go to SQL managed instances and get the database host details and database name, username, and password for Transact and DES databases. The same details are used to construct the database related properties that can be overridden using setters (--set) when installing DES using helm.
  5. If third-party helm charts are not available in the des-docker/src/helm/3rdParty folder, then execute the command below to start the third-party services, such as Kafka and Schema registry.

    az acr helm repo add -n $(crName)

    helm repo add confluentinc https://confluentinc.github.io/cp-helm-charts/ helm repo update

    helm upgrade kafka-oss confluentinc/cp-helm-charts --install --version 0.5.0 -n kafka

  6. The charts available in des-docker/src/helm/3rdParty folder is a copy of confluent helm charts and uses community edition of confluent images. If Confluent images are pushed to a local registry, run the command below

    helm install kafka-oss 3rdParty/cp-helm-charts --version 0.5.0 -n kafka \

    --set cp-zookeeper.image=<<ACRNAME>>/cp-zookeeper \

    --set cp-zookeeper.imageTag=5.2.2 \

    --set cp-kafka.image=<<ACRNAME>>/cp-kafka \

    --set cp-kafka.imageTag=5.2.2 \

    --set cp-schema-registry.image=<<ACRNAME>>/cp-schema-registry \

    --set cp-schema-registry.imageTag=5.2.2 \

    --create-namespace

    Here ACRNAME - Container registry where images are available. eg. ctsdev.azurecr.io

Initiating DES Services

In the Helm or Event Hub folder, you have values .yaml files which contains various values that are required to start DES pods. These values can either be passed as overrider using -set during helm installation of DES or can be edited and stored in the same file. The table below contains the notable parameters and a brief explanation of what it represents.

Property name

Default Value

Description

Possible values
des. des_tool_enabledtrueEnables DES tool pod to be run for installation of configuration and SQL scripts
  • true
  • false

des.ci_mode

run-web

Config-installer start mode

  • run-web
  • run-loop

des.schema_ip

-

IP of the schema registry service that is deployed as a part of third-party installation

IP address of the hosted schema registry service

des.kafka_ip

-

IP of Kafka service that is deployed as a part of third-party installation

IP address of the hosted Kafka service

des.t24_host_ip

-

IP of the machine hosting Temenos Transact database

IP address

des. stream_host_ip

-

IP of the machine hosting streaming database

IP address

des.schema_url

http://kafka-oss-cp-schema- registry.kafka:8081

End point of the schema registry service. This is an optional one and value is not required if schema_ip is provided

End point of schema registry

des.db_vendor

-

Type of database vendor

  • sqlserver
  • nuodb
  • oracle
  • postgresql

des. stream_vendor

-

Type of streaming platform used

  • kafka
  • kinesis
  • eventhub

des. stream_instance_ unique

true

In case of autoscaling, each DES pod has unique values for certain native properties. Setting this as True makes these values unique without requiring user setting changes.

 

temn.source.db. jdbc.driver

-

Driver value for the database

  • com.microsoft.sqlserver.jdbc. SQLServerDriver
  • com.nuodb.jdbc.Driver
  • oracle.jdbc.driver.OracleDriver
  • org.postgresql.Driver

temn.source.db. jdbc.user

-

Username for Temenos Transact database

Username

temn.stream.db. jdbc.user

-

Username for DES database

Username

temn.source.db. jdbc.password

-

Password for Temenos Transact database user. Provide the value in reverse, if override password class and method is set

Password

temn.stream.db. jdbc.password

-

Password for DES database user. Provide the value in reverse, if override password class and method is set

Password

temn.source.db. jdbc.url

-

Connection string value of Temenos Transact database

JDBC URL of Temenos Transact database

temn.stream.db. jdbc.url

-

Connection string value of DES database

JDBC URL of DES database

image.registry

-

Registry from which images needs to be pulled

In case of offline installation, the local registry, for example,

 

localhost:5000

image.pullPolicy

IfNotPresent

pullPolicy for the pods are set

  • Always
  • IfNotPresent
  • Never

image.appVersion

-

Version of image to be used

Version of image to be used, in this case it is 202101.0.0

NOTE: Comments are provided in the values.yaml file to create more understanding on the properties. Any properties passed in the des-config.yaml file or as an environment to actual DES component can be overridden while installing DES using Helm.

To install DES in AKS platform:

  1. Execute the command below to install DES pods.
  2. Syntax: helm install [RELEASE] [CHART FOLDER PATH] parameters helm install des eventhub --version 0.1.0 -n des \

    --set des.schema_ip=10.111.130.39 \

    --set des.kafka_ip=10.103.255.33 \

    --set des.t24_host_ip=192.168.0.107 \

    --set des.stream_host_ip=192.168.0.107 \

    --set image.registry=localhost:5000 \

    --set image.pullPolicy=IfNotPresent \

    --set image.appVersion=202101.0.0 \

    --set temn.source.db.jdbc.user=t24 \

    --set temn.stream.db.jdbc.user=t24 \

    --set temn.source.db.jdbc.password=t24 \

    --set temn.stream.db.jdbc.password=t24 \

    --set temn.source.db.jdbc.url="jdbc:h2:tcp://192.168.0.107:3456/TAFJDB" \

    --set temn.stream.db.jdbc.url="jdbc:h2:tcp://192.168.0.107:3456/TAFJDB" \

    --set temn.source.db.jdbc.driver="org.h2.Driver" \

    --set temn.stream.db.jdbc.driver="org.h2.Driver" \

    --set des.des_tool_enabled=true \

    --set des.db_vendor=sqlserver \

    --set des.stream_vendor=eventhub \

    --set des.des_tool_args=install \

    --set des.stream_instance_unique=true \

    --set event.event_hub_shared_access_key=$(EVENT_HUB_SHARED_ACCESS_KEY) \

    --set event.event_hub_resource_group_host=$(eventhubNamespace).servicebus.windows.net \

    --set event.event_hub_jass_config="$(EH_CONNECTION_URL)" \

    --set event.event_hub_ci_resource_group_host=$(eventhubNamespaceCI).servicebus.windows.net \

    --set event.event_hub_ci_shared_access_key=$(EVENT_HUB_CI_SHARED_ACCESS_KEY) \

    --set event.event_hub_ci_jass_config="$(EVENT_HUB_CI_CONNECTION_URL)" \

    --create-namespace

  3. Check if the pods are running using the command below.

  4. Check if the services are running using the command below.
  5. kubectl get svc -n des

  6. Hit the health end points for each of the installation to confirm the status. The end points below are samples which are accessed from tool like Postman to view the output.

    EPA: http://<<EXTERNAL-IP>>:13100/meta/health

    EC: http://<<EXTERNAL-IP>>:13110/meta/health

    EP: http://<<EXTERNAL-IP>>:13120/meta/health

    ER: http://<<EXTERNAL-IP>>:13130/meta/health

    CI: http://<<EXTERNAL-IP>>:13140/meta/health

    In this example since all the pods are deployed in single node the <<EXTERNAL-IP>> - localhost

  7.  

In any of the commands above, the set can be removed and values can directly be set in the values.yaml of DES Helm chart available under des-docker/src/helm/eventhub

NOTE:

Third-party installation related charts are provided by confluent and the same is packaged in DES under helm/3rdParty folder. Kindly read through the confluent documentation to understand more on installation and maintenance of the confluent pods.

Streaming platforms (Kafka or Kinesis or Event Hub) used by DES for streaming are third-party services that must be maintained and managed by the users. Startup scripts in DES download confluent package as zip (standalone) or confluent image(docker) from the official Confluent site. These are nothing but the community edition (CE) of confluent package and it is recommended to upgrade to licensed version for production.

The packages are downloaded using the links below:

Copyright © 2020- Temenos Headquarters SA

Published on :
Thursday, October 13, 2022 3:03:31 PM IST

Feedback
x