Deploying CDP Trigger

This section provides detailed instructions on how to deploy HCL CDP Trigger using the Devtron in the OpenShift.

Prerequisites

Make sure to create cdp-trigger secret in HashiCorp vault before deploying CDP Trigger.

To create CDP Trigger secret in the HashiCorp vault, follow the steps below:

  1. Create a cdp-trigger secret sample key and value, and update the actual values as shown below.
    {
      "AerospikeCluster": "<AerospikeCluster>",
      "AerospikeTimeout": "10000",
      "KafkaConsumerConfig": "<KafkaConsumerConfig>",
      "KafkaProducerConfig": "<KafkaProducerConfig>",
      "KafkaProducerConfigaps1": "<KafkaProducerConfigaps1>",
      "MY_SQL_HOST": "<MY_SQL_HOST>",
      "MysqlDatabase": "<MysqlDatabase>",
      "MysqlPassword": "<MysqlPassword>",
      "MysqlPort": "<MysqlPort>",
      "MysqlUsername": "<MysqlUsername>",
      "allowTrafficForSpecificCampaign": "false"
    }
  2. Create a Kubernetes Secret with Vault credentials to fetch the secrets from the vault.
    apiVersion: v1
    kind: Secret
    metadata:
      name: vault-creds
      namespace: cdp-dev-app
    type: Opaque
    data:
      username: <vault username>
      password: <vault password>
  3. Create separate service account cdp-dev-app-sa with appropriate roles and permissions, and update ConfigMaps data with actual values.
  4. Create required Kafka topics before deployment. A sample Kafka topic configuration is shown below.

Deploy CDP Trigger

To deploy CDP Trigger using Devtron in Openshift platform, follow the steps below:

  1. Navigate to the Devtron Chart Store, and select cdp-trigger chart to deploy.

  2. Now, configure and deploy the cdp-trigger charts.

  3. In the YAML section, update the ConfigMap using the below details and deploy the chart.
    APP_INFRA: k8s
    APP_REGION: ap-south-1
    APP_TYPE: trigger--mu
    AWSRegion: us-east-1
    AerospikeAppPushBin: ap
    AerospikeBookKeepingBin: bk
    AerospikeCacheExpiry: "48"
    AerospikeEmailBin: email
    AerospikeIcAndBookKeepingSetPrefix: impression_
    AerospikeIcAndBookKeepingSetTTL: "8760"
    AerospikeImpressionCapBin: ic
    AerospikeNamespace: cdpstore
    AerospikePushFallbackBin: appfb
    AerospikePushFallbackSet: fallback
    AerospikePushFallbackSetTTL: "48"
    AerospikeRamanujanBin: tc
    AerospikeRamanujanSet: ramanujan
    AerospikeRamanujanSetTTL: "48"
    AerospikeSegmentSetTTL: "48"
    AerospikeSmsBin: sms
    AerospikeTimeout: "100000"
    AerospikeTriggerApiBin: ""
    AerospikeWebPushBin: wp
    AerospikeWhatsAppBin: wsap
    AppPushDelayedTriggerTopic: dmp_apn_tr
    AppPushImmediateTriggerTopic: dmp_apn_tr
    CeleryParamIgnore: IGNORE_IF_PRESENT
    CeleryParamOverride: OVERRIDE
    CeleryParamTrigger: TRIGGER
    CeleryTimeThresholdMinutes: "30"
    CeleryTriggerTopic: CeleryETALem
    EXECUTOR_SERVICE_MAX_THREADS: "4"
    EXECUTOR_SERVICE_MIN_THREADS: "2"
    EXECUTOR_SERVICE_QUEUE_SIZE: "100"
    EXECUTOR_SERVICE_THREAD_TTL: "5"
    EmailDelayedTriggerTopic: dmp_email_tr
    EmailImmediateTriggerTopic: dmp_email_tr
    InboundKafkaTopic: trigger_inbound
    KAFKA_CONSUMER_GROUP_ID: -trigger
    KAFKA_POLL_INTERVAL: "200"
    KAFKA_PRODUCER_EVENT_TYPE: "5656"
    KAFKA_PRODUCER_META: "true"
    KAFKA_PRODUCER_POOL_SIZE: "10"
    KAFKA_TOPIC_CONSUMER_BATCH_SIZE: 10,10,10
    KAFKA_TOPIC_CONSUMER_DEFAULT_BATCH_TIMEOUT_MS: 1000,1000,1000
    KAFKA_TOPIC_CONSUMER_DEFAULT_BATCH_TIMEOUT_TRIGGER: 5000,5000,5000
    KAFKA_TOPIC_CONSUMERS: 6,6,6
    KAFKA_TOPIC_LIST: dmp_rt_segments,ETANotify,dmp_journey_trigger
    KafkaCeleryNotify: ETANotify
    KafkaJourneyTopic: dmp_journey_trigger
    KafkaRTSegment: dmp_rt_segments
    KafkaRTSegmentOffline: dmp_rt_segments_offline
    LOG_LEVEL_APP: debug
    LOG_LEVEL_METRICS: info
    LOG_LEVEL_ROOT: info
    LOG_LEVEL_UTILS: info
    MAX_BATCH_EXECUTE_RETRIES: "3"
    MAX_EVENT_BATCH_LAG: "8"
    MysqlMapRefreshIntervalMinute: "1"
    OPEN_TSDB_HOST: <OPEN_TSDB_HOST>
    OPEN_TSDB_HOST_TO_BE_ADDED: "true"
    OPEN_TSDB_PORT: "80"
    ReportingIntervalInMin: "55"
    RtsSegOfflineRefreshDsName: rtsegofflinerefresh
    RtsSegOnlineRefreshDsName: rtsegonlinerefresh
    RtsSegRefreshDsName: rtsegrefresh
    SmsDelayedTriggerTopic: dmp_sms_tr
    SmsImmediateTriggerTopic: dmp_sms_tr
    TriggerApiDelayedTriggerTopic: dmp_trapi_tr
    TriggerApiImmediateTriggerTopic: dmp_trapi_tr
    UserFailureKafkaTopic: trigger_failure
    WebPushDelayedTriggerTopic: dmp_wpn_tr
    WebPushImmediateTriggerTopic: dmp_wpn_tr
    WhatsAppDelayedTriggerTopic: dmp_wsap_tr
    WhatsAppImmediateTriggerTopic: dmp_wsap_tr
    alertToEmailId: ""
    emailType: SMTP
    fromEmailId: ""
    hostname: trigger-prod-mu
    smtpHost: <OPEN_TSDB_HOST>
    smtpPort: "<smtpPort>" 

  4. On successful deployment, validate the deployment as shown below.