Skip to main content
This topic provides a complete reference to the ConfigSync configuration options. See also Enable ConfigSync and Configure the ConfigSync mode.
To enable ConfigSync, add the config-sync values to your Helm chart configuration, similar to the example below:
fusion-config-sync:
  enabled: true
  # other config-sync specific values
  sshKey: <base64-encoded-private-key>
  cfg:
    github:
      repo: <repository-url> # use the ssh url e.g. git@github.com:my-fusion/config-sync-repo.git
      branch: <customer-branch> # you can leave it as is
      mainBranch: <main-branch> # most probably it's `main`
Next, you can configure the ConfigSync mode to select Publisher mode, Subscriber mode, or Pub/Sub mode.For additional options, see the ConfigSync configuration reference.
ConfigSync can operate in different modes:
  • Publisher mode: Monitors Fusion for changes and pushes them to a Git repository.
  • Subscriber mode: Polls a Git repository for changes and applies them to Fusion.
  • Pub/Sub mode: Combines the features of both Publisher and Subscriber modes.
You can configure the synchronization mode by adding the appropriate profile to the sync configuration in the fusion-config-sync section of the Helm chart configuration, as shown below.
  • Publisher mode:
    fusion-config-sync:
      springProfilesOverride: "kubernetes,jwt,fusion,pub"
    
  • Subscriber mode:
    fusion-config-sync:
      springProfilesOverride: "kubernetes,jwt,fusion,sub"
    
  • PubSub mode:
    fusion-config-sync:
      springProfilesOverride: "kubernetes,jwt,fusion,pub,sub"
    
For additional options, see Filters and the ConfigSync configuration reference.
fusion-config-sync:
  # pub mode
  springProfilesOverride: "kubernetes,jwt,fusion,pub"
  # sub mode
  #springProfilesOverride: "kubernetes,jwt,fusion,sub"
  # pubsub mode
  #springProfilesOverride: "kubernetes,jwt,fusion,pub,sub"

  cfg:
    sync:
      apps: -cloud-platform # track all the apps except cloud-platform
    #  apps: "*" # track all the apps (default)
    #  apps: "app1,app2" # track only app1 and app2 apps
      syncEvery: 30000 # this setting controls how often we're running pub/sub job, 30000 milliseconds is a default

    # github connection properties, common for pub/sub modes
    github:
      repo: "https://github.com/mycompany/cloud-config-sync.git" # git repo, mandatory
      branch: "rh/stg" # git branch, mandatory
      dir: "/tmp/config-sync-repo" # repo dir, default "/tmp/config-sync-repo"
      path: / # configs path in the repo dir, default "/"
      username: "fusion-config-sync" # git user name, default "fusion-config-sync"
      email: "fusion-config-sync@mycompany.com" # git user email, mandatory, default "fusion-config-sync@lucidworks.com"
      secretPath: "/etc/secrets/github_oauth_token" # alternative location for github oauth token as a file
      githubToken: "token" # alternative way to specify github oauth token explicitly

    pub:
      checkForBlobUpdatesEveryMs: 20000 # blob aren't stored in zk but in solr so this setting controls how often should we check blob updates from solr, 20000 is a default
      checkForRuleUpdatesEveryMs: 300000 # rules aren't stored in zk but in solr so this setting controls how often should we check rule updates from solr, 300000 is a default
      objects:
        decode-secrets: false # shall ConfigSync not decode secrets like s3 private keys, JDBC passwords etc.
        name-filter: ".*_lw_tmp.*" # filter tmp file names
        # filter audit properties by json pointer
        prop-filter: >
          /created,
          /modified,
          /createdAt,
          /updatedAt,
          /updates
        apps:
          prop-filter: >
            /properties/previousCollectionId
        blobs:
          name-filter: "^(quickstart/|prefs-).+"
        collections:
          name-filter: "^system_.+"
        spark-jobs:
          # data-migration jobs
          name-filter: "^(import|export)_.+"
        tasks:
          # data-migration tasks
          name-filter: "^export_finalizer_.+"
        index-pipelines:
          prop-filter: >
            /properties/secretSourcePipelineId,
            /stages/secretSourceStageId,
            /stages/licensed
        query-pipelines:
          prop-filter: >
            /properties/secretSourcePipelineId,
            /stages/secretSourceStageId,
            /stages/licensed
    sub:
      objects:
        name-filter: ".*_lw_tmp.*" # filter tmp file names
    # add filters and other settings for the subscriber mode here
I