Deploying CDP Core API

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

Prerequisites:

Make sure to create a core-api secret with required data in the HashiCorp vault before deploying the CDP core api.

To create the core api secret in the HashiCorp Vault, follow the steps below:

  1. Create a core api secret sample key and value in the core api secret, and update ConfigMaps data with actual values.
    {
      "X_API_KEY": "\"\"",
      "X_API_SECRET": "\"\"",
      "akamaiHost": "\"\"",
      "akamaiKey": "\"\"",
      "akamaiKeyName": "\"\"",
      "akamaiPath": "\"\"",
      "akamaiPurgeauthkey": "\"\"",
      "amqpAuthMechanism": "\"\"",
      "amqpHost": "\"\"",
      "amqpLogin": "\"\"",
      "amqpPassword": "\"\"",
      "amqpPort": "\"\"",
      "dbConnectionLimit": "\"80\"",
      "dbDatabase": "\"<dbName>\"",
      "dbHost": "\"<dbHost>\"",
      "dbPassword": "\"<dbPassword>\"",
      "dbPort": "\"<dbPort>\"",
      "dbUser": "\"<dbUser>\"",
      "hclcdp_mailId": "\"\"",
      "hclcdp_mailPassword": "\"\"",
      "mailId": "\"\"",
      "mailPassword": "\"\"",
      "stagingS3AccessKey": "\"\"",
      "stagingSecretAccessKey": "\"\"",
      "userIdentifierAuthKey": "\"<userIdentifierAuthKey>\""
    }

Deploying CDP CORE API

To deploy the CDP core API, follow the steps below:

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

  2. Now, configure and deploy the cdp core api charts.

  3. In the YAML section, update the ConfigMap using below details and deploy the charts.
    druidURL: "<DRUID_URL>"
    tsdbURL: "<TSDB_URL>"
    uploadsBucket: <UPLOADS_BUCKET_NAME>
    uploadsFolder: <UPLOADS_FOLDER_NAME>
    segmentUserListuploadsBucket: <SEGMENT_UPLOADS_BUCKET>
    segmentUserListuploadsFolder: <SEGMENT_UPLOADS_FOLDER>
    TPPActivationUrl: "<TPP_ACTIVATION_URL>"
    hasSegRefreshQueueEnabled: "<SEG_REFRESH_QUEUE_CAMPAIGN_LIST>"
    whiteListCrudAlertMails: "<CRUD_ALERT_EMAIL_LIST>"
    enablePrometheus: "<BOOLEAN>"
    suppressionList: "<SUPPRESSION_LIST_CONFIG>"
    productCatalog: "<PRODUCT_CATALOG_CONFIG>"
    rts_endpoint: "<RTS_ENDPOINT>"
    disableActivation: |
    <DISABLED_ACTIVATION_CAMPAIGN_LIST>
    s3Bucket: <PRIMARY_S3_BUCKET>
    DSN: "<DSN>"
    cdpDashboardService: "<CDP_DASHBOARD_SERVICE_URL>"
    rmq: <RABBITMQ_QUEUE_NAME>
    javascript_sdk_endpoint: "<JS_SDK_ENDPOINT>"
    sendRabbitmqMessageDisabled: "<BOOLEAN>"
    API: "<API_ENDPOINT>"
    cdnImagePrefixWithoutProtocol: "<CDN_IMAGE_PREFIX_NOPROTO>"
    cdnImageWithProtocol: "<CDN_IMAGE_PREFIX_PROTO>"
    cdnFallbackImageWithoutProtocol: "<CDN_FALLBACK_IMAGE_PREFIX>"
    urlShortnerConfigDomain: "<URL_SHORTENER_DOMAIN>"
    sendEmailDomain: "<EMAIL_SENDER_DOMAIN>"
    uibase: "<UI_BASE_URL>"
    reportAutomationApiKeyUrl: "<REPORT_AUTOMATION_APIKEY_URL>"
    accessTokenLifeTime: "<ACCESS_TOKEN_LIFETIME_SECONDS>"
    segRefreshQueue: "<SEG_REFRESH_QUEUE_NAME>"
    enableCrudAlertForCampaigns: |
    <CRUD_ALERT_CAMPAIGN_LIST>
    isKmsEncryptDisabled: "<BOOLEAN>"
    disablePageres: "<BOOLEAN>"
    tableauProxy: "<TABLEAU_PROXY_URL>"
    channelQueue: <CHANNEL_QUEUE_NAME>
    engagementScheduleQueue: "<ENGAGEMENT_SCHEDULE_QUEUE>"
    journeyDisableQueue: "<JOURNEY_DISABLE_QUEUE>"
    webPushQueue: <WEB_PUSH_QUEUE_NAME>
    adhocBucket: "<ADHOC_BUCKET>"
    adhocQueue: "<ADHOC_QUEUE>"
    adHocFileLoc: "<ADHOC_FILE_LOCATION>"
    adHocCancelQueue: "<ADHOC_CANCEL_QUEUE>"
    sslEnabled: "<BOOLEAN>"
    offlineProfileUploadBucket: "<OFFLINE_PROFILE_BUCKET>"
    offlineProfileUploadFolder: "<OFFLINE_PROFILE_FOLDER>"
    disableNotification: "<BOOLEAN>"
    tableauURL: "<TABLEAU_URL>"
    kms_encrypt: "<KMS_ENCRYPT_FUNCTION>"
    kms_decrypt: "<KMS_DECRYPT_FUNCTION>"
    kms_region: <KMS_REGION>
    allowedTags: "<HTML_ALLOWED_TAG_LIST>"
    allowedAttributes: "<HTML_ALLOWED_ATTRIBUTE_MAP>"
    tawuniyaCoreApi: "<EXTERNAL_CORE_API_ENDPOINT>"
    psql_endpoint: "<POSTGRES_ENDPOINT>"
    psql_host: "<POSTGRES_HOST>"
    fileUploadTimeout: "<FILE_UPLOAD_TIMEOUT_MS>"
    CampaignRegionList: "<CAMPAIGN_REGION_MAPPING>"
    muUserIdentifierDomain: "<MU_USER_IDENTIFIER_DOMAIN>"
    usUserIdentifierDomain: "<US_USER_IDENTIFIER_DOMAIN>"
    sftpFilePath: "<SFTP_FILE_PATH>"
    sstApiVersion: <SST_API_VERSION>
    devMode: "<BOOLEAN>"
    DEFAULT_SRC: "<CSP_DEFAULT_SRC_LIST>"
    FONT_SRC: "<CSP_FONT_SRC>"
    IMG_SRC: "<CSP_IMG_SRC>"
    SCRIPT_SRC: "<CSP_SCRIPT_SRC>"
    STYLE_SRC: "<CSP_STYLE_SRC>"
    
    minioAccessKeyId: "<MINIO_ACCESS_KEY_ID>"
    minioSecretAccessKey: "<MINIO_SECRET_ACCESS_KEY>"
    minioEndpoint: "<MINIO_ENDPOINT>"
    
    FROM_EMAIL_ID: "<FROM_EMAIL_ID>"
    ALERT_TO_EMAIL_ID: "<ALERT_TO_EMAIL_ID>"
    BUCKET_TYPE: "<BUCKET_TYPE>"
    
    detectConfig: "<DETECT_CONFIG>"
    
    hclcdp_uibase: "<HCLCDP_UI_BASE>"
    hclcdp_mailId: "<HCLCDP_MAIL_ID>"
    hclcdp_mailPassword: "<HCLCDP_MAIL_PASSWORD>"
    
    awsAccessKeyId: "<AWS_ACCESS_KEY_ID>"
    
    sampleBucket: "<SAMPLE_BUCKET>"
    sampleFolder: "<SAMPLE_FOLDER>"
    
    webpushBucket: "<WEBPUSH_BUCKET>"
    webpushFolder: "<WEBPUSH_FOLDER>"
    
    engageQueue: "<ENGAGE_QUEUE>"
    notificationQueue: "<NOTIFICATION_QUEUE>"
    
    clickTrackerEmail: "<CLICK_TRACKER_EMAIL>"
    clientRequestEmailTo: "<CLIENT_REQUEST_EMAIL_TO>"
    clientRequestEmailCC: "<CLIENT_REQUEST_EMAIL_CC>"
    
    apibase: "<API_BASE_DOMAIN>"
    adserver: "<ADSERVER_URL>"
    imageLink: "<IMAGE_LINK>"
    imageLinkWithoutProtocol: "<IMAGE_LINK_NO_PROTOCOL>"
    cdnImageWithoutProtocol: "<CDN_IMAGE_NO_PROTOCOL>"
    
    retargetStage: "<RETARGET_STAGE>"
    retargetSection: "<RETARGET_SECTION>"
    retargetLevel: "<RETARGET_LEVEL>"
    
    segmentationSuffix: "<SEGMENTATION_SUFFIX>"
    segmentationCountSuffix: "<SEGMENTATION_COUNT_SUFFIX>"
    
    programmaticId: "<PROGRAMMATIC_ID>"
    fbRhsId: "<FB_RHS_ID>"
    fbNfId: "<FB_NF_ID>"
    onsiteRecoId: "<ONSITE_RECO_ID>"
    
    port: "<PORT>"
    
    channelsProgrammatic: "<CHANNEL_PROGRAMMATIC>"
    channelsFbnf: "<CHANNEL_FBNF>"
    channelsFbrhs: "<CHANNEL_FBRHS>"
    channelsOnsitereco: "<CHANNEL_ONSITE_RECO>"
    channelsOnsitenot: "<CHANNEL_ONSITE_NOTIF>"
    channelsEmail: "<CHANNEL_EMAIL>"
    channelsAppPush: "<CHANNEL_APP_PUSH>"
    channelsSms: "<CHANNEL_SMS>"
    channelsWebpush: "<CHANNEL_WEBPUSH>"
    channelsNb: "<CHANNEL_NB>"
    channelsBp: "<CHANNEL_BP>"
    channelsInApp: "<CHANNEL_INAPP>"
    channelsWhatsapp: "<CHANNEL_WHATSAPP>"
    
    verticalIdFlight: "<VERTICAL_ID_FLIGHT>"
    verticalIdEcommerce: "<VERTICAL_ID_ECOMMERCE>"
    
    mobidmpBucket: "<MOBIDMP_BUCKET>"
    mobidmpFolder: "<MOBIDMP_FOLDER>"
    
    googleApiClientId: "<GOOGLE_API_CLIENT_ID>"
    googleApiClientSecret: "<GOOGLE_API_CLIENT_SECRET>"
    googleApiRedirectUrl: "<GOOGLE_API_REDIRECT_URL>"
    
    facebookAccessToken: "<FACEBOOK_ACCESS_TOKEN>"
    facebookPageId: "<FACEBOOK_PAGE_ID>"
    facebookBusinessId: "<FACEBOOK_BUSINESS_ID>"
    facebookSystemUserId: "<FACEBOOK_SYSTEM_USER_ID>"
    facebookVersion: "<FACEBOOK_VERSION>"
    
    flowThroughChannelsSms: "<FLOW_THROUGH_CHANNEL_SMS>"
    flowThroughChannelsEmail: "<FLOW_THROUGH_CHANNEL_EMAIL>"
    
    crudAlertsRegion: "<CRUD_ALERTS_REGION>"
    crudAlertsVersion: "<CRUD_ALERTS_VERSION>"
    crudAlertsFrom: "<CRUD_ALERTS_FROM>"
    crudAlertsTo: "<CRUD_ALERTS_TO>"
    
    sesConfigRegion: "<SES_REGION>"
    sesConfigVersion: "<SES_VERSION>"
    sesConfigFrom: "<SES_FROM>"
    sesConfigTo: "<SES_TO>"
    
    ConfigDMPchannelIdJourneyApi: "<DMP_CHANNEL_ID_JOURNEY_API>"
    ConfigDMPchannelIdExternalApi: "<DMP_CHANNEL_ID_EXTERNAL_API>"
    
    CORS: |
      <CORS_RULE_1>
      <CORS_RULE_2>
      <CORS_RULE_3>
      <CORS_RULE_4>
      <CORS_RULE_5>
      <CORS_RULE_6>
      <CORS_RULE_7>
      <CORS_RULE_8>
      <CORS_RULE_9>
      <CORS_RULE_10>
    
    blowFishKey: "<BLOWFISH_KEY>"
    
    ALLOWED_HOSTS: |
      <ALLOWED_HOST_1>
      <ALLOWED_HOST_2>
    
    LINK_USERNAME: "<LINK_USERNAME>"
    LINK_PASSWORD: "<LINK_PASSWORD>"
    linkBaseUrl: "<LINK_BASE_URL>"
    linkBaseUrlClient: "<LINK_BASE_URL_CLIENT>"
    linkProjectId: "<LINK_PROJECT_ID>"
    LINK_RUNTIME_SERVER: "<LINK_RUNTIME_SERVER>"
    LINK_SERVER_ID: "<LINK_SERVER_ID>"
    LINK_DESIGN_SERVER: "<LINK_DESIGN_SERVER>"
    LINK_CLIENT_URL: "<LINK_CLIENT_URL>"
    LINK_PROJECT_ID: "<LINK_PROJECT_ID>"
    LINK_PROJECT_NAME: "<LINK_PROJECT_NAME>"
    LINK_SERVER_NAME: "<LINK_SERVER_NAME>"
    
    CLICKHOUSE_URL: "<CLICKHOUSE_URL>"
    isClickhouseEnabled: "<BOOLEAN>"

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