Deploying HCL CDP SMSEmailSender

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

Prerequisites

Make sure to create cdp-smsemailsender secret in the AWS secret manager before deploying CDP SMS Email Sender.

To create CDP SMS Email Sender secret in the AWS secret manager, 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.

Deploy CDP SMS Email Sender

  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.