Deploying HCL CDP SMSEmailSender

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

Before you begin

Make sure to create a cdp-smsemailsender secret in the HashiCorp vault before deploying the HCL CDP SMSEmailSender.

To create a CDP SMS Email Sender secret in the HashiCorp vault, follow the steps below:

  1. Create a cdp-smsemailsender secret sample key and value, and update the actual values as shown below.
    {
    "KafkaBootstrapServer": "bootstrap.servers::<KAFKA_HOST_1>:9096,<KAFKA_HOST_2>:9096",
    "KafkaUsername": "<KAFKA_USER>",
    "KafkaPassword": "<KAFKA_PASSWORD>",
    "VrmDbUsername": "<DB_USER>",
    "VrmDbPassword": "<DB_PASSWORD>",
    "KafkaProducerHostName": "trigger-sender-mu",
    "ADCB_DEVMAG_CERTIFICATE_PASSWORD": "",
    "ADCB_PRODMAG_CERTIFICATE_PASSWORD": "",
    "s3.accessKeyId": "",
    "s3.secretKey": "",
    "s3.region": "ap-south-1",
    "RedisIP": "<REDIS_HOST>",
    "RedisPort": "6379",
    "MysqlHost": "<DB_HOST>",
    "MysqlPort": "3307",
    "MysqlDb": "vrm?autoReconnect=true",
    "5979_ACL_USER_ID": "",
    "5979_ACL_PASS": "",
    "5979_ACL_APP_ID": "",
    "5979_ACL_SUB_APP_ID": "",
    "BLOW_FISH_KEY": "<SECRET_KEY>",
    "MGAGE_XML_API": "<API_KEY>",
    "KENSCIO_CLIENT_END_POINT_URL": "",
    "KENSCIO_USERNAME": "",
    "KENSCIO_PASSWORD": "",
    "KENSCIO_SYSTEM_ID_KEY": "",
    "KENSCIO_SYSTEM_ID": "",
    "KENSCIO_MESSAGE_ID_KEY": "",
    "KENSCIO_MESSAGE_ID": "",
    "AerospikeCluster": "<AERO_HOST_1>,<AERO_HOST_2>",
    "AerospikePort": "13000",
    "Namespace": "cdpstore",
    "Expiry": "-1",
    "Timeout": "3000",
    "USAerospikeCluster": "",
    "USAerospikePort": "13000",
    "USNamespace": "",
    "MUAerospikeCluster": "<AERO_HOST_1>,<AERO_HOST_2>",
    "MUAerospikePort": "13000",
    "MUNamespace": "cdpstore",
    "SupportedRegion": "aps1",
    "ExcludedCampaigns": "",
    "KAFKA_TOPIC_LIST": "dmp_sms_core_aps1,dmp_email_core_aps1,dmp_wsap_core_aps1,dmp_trapi_core_aps1",
    "KAFKA_TOPIC_CONSUMERS": "6,6,6,6",
    "KAFKA_TOPIC_CONSUMER_BATCHSIZE": "10,10,10,10",
    "KAFKA_TOPIC_CONSUMER_DEFAULT_BATCH_TIMEOUT_MS": "1000,1000,1000,1000",
    "KAFKA_TOPIC_CONSUMER_DEFAULT_BATCHTIMEOUT_TRIGGER": "5000,5000,5000,5000",
    "TSDB_HOST": "<TSDB_HOST>",
    "allowTrafficForSpecificCampaign": "false",
    "IncludedCampaigns": "4658,6035,6238,6037,6184,6349,6450,6455,6525",
    "URL_SHORTENER_S3_BUCKET": "lem-url-shortener",
    "URL_SHORTENER_S3_BUCKET_EMAIL": "lem-email-url-shortener",
    "PII_MIN_IDLE_THREADS": "2",
    "PII_MAX_IDLE_THREADS": "4",
    "KafkaBootstrapServerUS": "",
    "KafkaUsernameUS": "",
    "KafkaPasswordUS": "",
    "SesEnabled": "true",
    "PIILookUpEnabled": "true",
    "KafkaConsumerConfig": "bootstrap.servers::<KAFKA_HOST_1>:9096,<KAFKA_HOST_2>:9096|security.protocol::SASL_SSL|sasl.jaas.config::org.apache.kafka.common.security.scram.ScramLoginModule required username='<KAFKA_USER>' password='<KAFKA_PASSWORD>';|sasl.mechanism::SCRAM-SHA-512|client.dns.lookup::use_all_dns_ips|group.id::k8s-trigger-sender",
    "KafkaProducerConfig": "bootstrap.servers::<KAFKA_HOST_1>:9096,<KAFKA_HOST_2>:9096|security.protocol::SASL_SSL|sasl.jaas.config::org.apache.kafka.common.security.scram.ScramLoginModule required username='<KAFKA_USER>' password='<KAFKA_PASSWORD>';|sasl.mechanism::SCRAM-SHA-512|client.dns.lookup::use_all_dns_ips|acks::all|max.block.ms::5000",
    "KafkaProducerRegion": "aps1",
    "KafkaProducerConfigaps1": "bootstrap.servers::<KAFKA_HOST_1>:9096,<KAFKA_HOST_2>:9096|security.protocol::SASL_SSL|sasl.jaas.config::org.apache.kafka.common.security.scram.ScramLoginModule required username='<KAFKA_USER>' password='<KAFKA_PASSWORD>';|sasl.mechanism::SCRAM-SHA-512|client.dns.lookup::use_all_dns_ips|acks::all|max.block.ms::5000",
    "AerospikeUser": "<AERO_USER>",
    "AerospikePassword": "<AERO_PASSWORD>"
    }
  2. Update ConfigMaps data with actual values, and create required Kafka topics before deployment.

Procedure

  1. Navigate to the Devtron Chart Store, and select the cdp-smsemailsender chart to deploy.
  2. Now, configure and deploy the cdp-smsemailsender charts.
  3. In the YAML section, update the ConfigMap using the below details and deploy the chart.
    KAFKA_EXECUTOR_SERVICE_MIN_THREADS: "32"
    KAFKA_EXECUTOR_SERVICE_MAX_THREADS: "64"
    KAFKA_EXECUTOR_SERVICE_THREAD_TTL: "5"
    KAFKA_EXECUTOR_SERVICE_QUEUES_SIZE: "1000"
    
    TRAPI_KAFKA_EXECUTOR_SERVICE_MIN_THREADS: "32"
    TRAPI_KAFKA_EXECUTOR_SERVICE_MAX_THREADS: "64"
    TRAPI_KAFKA_EXECUTOR_SERVICE_THREAD_TTL: "5"
    TRAPI_KAFKA_EXECUTOR_SERVICE_QUEUES_SIZE: "1000"
    
    MAX_EVENT_BATCH_LAG: "16"
    KAFKA_CONSUMER_GROUP: k8s-trigger-sender
    
    EMAIL_HTTPS_CONNECTION_COUNT: "10"
    EMAIL_HTTPS_CONNECTION_KEEP_ALIVE_SECONDS: "6000"
    
    MANDRILL_CLIENT_END_POINT_URL: "<masked-email-provider>"
    
    kMS_DECRYPT_TIMEOUT: "3"
    
    FROM_EMAIL_ID: user@domain.com
    ALERT_TO_EMAIL_ID: user@domain.com
    
    SMS_HTTPS_CONNECTION_COUNT: "10"
    SMS_HTTPS_CONNECTION_KEEP_ALIVE_SECONDS: "6000"
    
    REDIS_MAX_CONNECTIONS: "20"
    REDIS_KEY_TTL_IN_SEC: "7776000"
    
    TRAPI_HTTPS_CONNECTION_COUNT: "45"
    TRAPI_HTTPS_CONNECTION_KEEP_ALIVE_SECONDS: "4000"
    TRAPI_HTTPS_CONNECTION_READ_TIMEOUT_SECONDS: "122"
    TRAPI_HTTPS_CONNECTION_WRITE_TIMEOUT_SECONDS: "123"
    TRAPI_HTTPS_CONNECT_TIMEOUT_SECONDS: "124"
    
    CLICK_TRACKER: "<masked-tracker-url>"
    CLICK_TRACKER_SMS: "<masked-tracker-url>"
    OPEN_TRACKER: "<masked-tracker-url>"
    
    PASS_THROUGH_SUPPORTED_VENDOR: Phonon
    
    DB_REFRESH_INTERVAL_MS: "120000"
    TRAPI_CONFIG_REFRESH_INTERVAL: "600000"
    
    MINIMUM_IDLE_THREADS: "3"
    MAXIMUM_IDLE_THREADS: "6"
    
    TRAPI_TOPIC_PREFIX: dmp_trapi_core
    
    S3_ENDPOINT: "<masked-s3-endpoint>"
    S3_PROTOCOL: HTTPS
    S3_MAX_ERROR_RETRY: "3"
    S3_MAX_CONNECTIONS: "10"
    S3_MAX_RW_RETRY: "3"
    S3_TIMEOUT_SOCKET: "5000"
    S3_TIMEOUT_CONNECTION: "10000"
    S3_TIMEOUT_CLIENTEXECUTION: "50000"
    S3_TIMEOUT_REQUEST: "5000"
    S3_REQUEST_METADATA_FOLDER: trapi_req_metadata
    
    URL_SHORTENER_DOMAIN: "<masked-shortener-domain>"
    URL_SHORTENER_DOMAIN_EMAIL: "<masked-shortener-email-domain>"
    URL_SHORTENER_AVOID_CONFLICT: "true"
    URL_SHORTENER_CONFLICT_MAX_RETRIES: "3"
    URL_SHORTENER_MULTIPLY_FACTOR: "10000"
    
    SHORTEN_CLICK_TRACKER_EMAIL: "<masked-shortener-url>"
    
    KAFKA_PRODUCER_POOL_SIZE: "10"
    KAFKA_PRODUCER_META: "true"
    PRODUCER_EVENT_TYPE: "1234"
    
    CELERY_PARAM_SENDER: SENDER_aps1
    CELERY_PARAM_IGNORE: IGNORE_IF_PRESENT
    CELERY_TOPIC: CeleryETA
    
    KAFKA_PRODUCER_CHANNELS: email,sms,trapi,wasp
    
    EMAIL_IMPRESSION_TOPIC: sms_email_events
    SMS_IMPRESSION_TOPIC: sms_email_events
    TRAPI_IMPRESSION_TOPIC: trapi_events
    TRAPI_FEEDBACK_IMPRESSION_TOPIC: sms_email_events
    WASP_IMPRESSION_TOPIC: whatsapp_events
    
    USER_FAILURE_KAFKA_TOPIC: sender_failure
    
    ADCB_DEVMAG_TRAPI_CERTIFICATE_FILE_PATH: "<masked-cert-path>"
    ADCB_DEVMAG_TRAPI_CERTIFICATE_S3_FILE_PATH: "<masked-cert-path>"
    ADCB_PRODMAG_TRAPI_CERTIFICATE_S3_FILE_PATH: "<masked-cert-path>"
    ADCB_PRODMAG_TRAPI_CERTIFICATE_FILE_PATH: "<masked-cert-path>"
    TRAPI_CERTIFICATE_ENDPOINT: "<masked-cert-service>"
    TRAPI_CERTIFICATE_CAMPAIGN_SUFFIX: "<masked-value>"
    
    COMPONENT_NAME: trigger_sender_us
    
    REPORTING_INTERVAL_IN_MIN: "55"
    
    WHATSAPP_HTTPS_CONNECTION_COUNT: "120"
    WHATSAPP_HTTPS_CONNECTION_KEEP_ALIVE_SECONDS: "10"
    
    METRIC_FILE_PATH: /disk1/config/sms-email-sender/metrics.ini
    METRIC_DUMPER_FILE_PATH: /disk1/config/sms-email-sender/metricDumper.ini
    
    HTTPS_CONNECTION_COUNT: "10"
    HTTPS_CONNECTION_KEEP_ALIVE_SECONDS: "60"
    
    SERVER_PORT: "8085"
    
    COMMON_HTTPS_CONNECTION_COUNT: "100"
    COMMON_HTTPS_CONNECTION_KEEP_ALIVE_SECONDS: "60"
    
    ADCB_STAGE_HTTPS_CONNECTION_COUNT: "10"
    ADCB_STAGE_HTTPS_CONNECTION_KEEP_ALIVE_SECONDS: "600"
    ADCB_STAGE_HTTPS_CONNECTION_READ_TIMEOUT_SECONDS: "125"
    ADCB_STAGE_HTTPS_CONNECTION_WRITE_TIMEOUT_SECONDS: "120"
    ADCB_STAGE_HTTPS_CONNECT_TIMEOUT_SECONDS: "130"
    
    ADOBE_HTTPS_CONNECTION_COUNT: "15"
    ADOBE_HTTPS_CONNECTION_KEEP_ALIVE_SECONDS: "120"
    ADOBE_HTTPS_CONNECTION_READ_TIMEOUT_SECONDS: "900"
    ADOBE_HTTPS_CONNECTION_WRITE_TIMEOUT_SECONDS: "900"
    ADOBE_HTTPS_CONNECT_TIMEOUT_SECONDS: "124"
    
    SENDER_FEEDBACK_TOPIC: dmp_sst_nba_di_api
    
    LIVSPACE_IVR_LPEU_APID: "99"
    LIVSPACE_IVR_BPEU_APID: "89"
    
    APP_TYPE: trigger-sender-us
    APP_REGION: ap-south-1
    APP_INFRA: k8s
    
    LOG_LEVEL_APP: debug
    LOG_LEVEL_METRICS: info
    LOG_LEVEL_UTILS: debug
    LOG_LEVEL_PII_STORAGE: debug
    LOG_LEVEL_KMS: debug
    LOG_LEVEL_ROOT: info
    
    S3_ACCESSKEYID: ""
    S3_SECRETKEY: ""
    S3_REGION: ap-south-1
    
    defaultBusinessRegion: aps1
    inboundKafkaTopic: sender_inbound
    
    ergoLeadApi: "<masked-api>"
    
    VRM_DRIVER: org.mariadb.jdbc.Driver
    DBDRIVER: jdbc:mariadb
    
    TSDB_PORT: "80"
    
    KafkaProducerConfiguse1: "<masked>"
    KafkaProducerConfigtaw1: "<masked>"
    
    KENSCIO_USERNAME: "<masked>"
    KENSCIO_PASSWORD: "<masked>"
    KENSCIO_SYSTEM_ID_KEY: "<masked>"
    KENSCIO_SYSTEM_ID: "<masked>"
    KENSCIO_MESSAGE_ID_KEY: "<masked>"
    KENSCIO_MESSAGE_ID: "<masked>"
    
    ADCB_DEVMAG_CERTIFICATE_PASSWORD: "<masked>"
    5979_ACL_USER_ID: "<masked>"
    5979_ACL_PASS: "<masked>"
    5979_ACL_APP_ID: "<masked>"
    5979_ACL_SUB_APP_ID: "<masked>"
    
    BLOW_FISH_KEY: "<masked>"
    
    MGAGE_XML_API: "<masked>"
    
    emailType: SES
    KMS_IMPLEMENTATION: AWS
  4. On successful deployment, validate the deployment as shown below.