PUT
call to the query pipeline API endpoint.
- All the appropriate validation occurs before the update is applied
- Avoids having to keep track of link objects outside Fusion
- Lets Fusion trigger all the necessary dependent changes as needed
- Better error handling if something goes wrong, the API may be able to correct itself
git pull
operation during startup.
See Configure the ConfigSync mode for steps to configure Subscriber mode.
Configure the ConfigSync mode
Configure the ConfigSync mode
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.
sync
configuration in the fusion-config-sync
section of the Helm chart configuration, as shown below.-
Publisher mode:
-
Subscriber mode:
-
PubSub mode:
Disaster recovery support
ConfigSync (in subscriber mode) can restore a Fusion cluster from source control in the event of a disaster. You can also use it to restore the Fusion configuration to a specific state by specifying a branch, commit, or date. Read more about Data restorationFilters
Subscriber mode supports App filters and Object filters.Ordered updates
The subscriber orders updates of Fusion objects based on the update type (DELETE
, CREATE
, UPDATE
) and resource type (such as changes to index pipelines applied before index profiles).
For example, a query profile can refer to a query pipeline and optionally an experiment.
Thus, operations are performed on query pipelines and experiments before query profiles.
Read more about ordered updates in Supported objects.
Rollback
The subscriber pulls updates from the GitHub branch. Thus, to “rollback”, a Fusion admin needs to push a change to the branch to set the desired state for Fusion objects. In other words, the subscriber doesn’t have the concept of rollback but applies the changes based on the current HEAD of the branch it watches.Collections Deletion
ConfigSync (in subscriber mode) does not delete collections. This is because deleting a collection is a destructive operation that can lead to data loss.Environment specific Substitution Variables
One of the challenges of promoting config changes from one environment to another is the need to apply environment specific config changes. For instance, the JDBC database URL would be different for staging and production. ConfigSync provides a very simple mechanism to parameterize environment specific settings. In subscriber mode, before applying changes to the target environment, ConfigSync matches substitution variables from four possible variables files:vars.json
takes precedence over the root level vars.json
Each variable has an optional glob path matcher and JSON Path component.
For instance, the following variable sets any stage property named secret
to value STAGE_SECRET
for the query pipeline with ID lab4
:
paramToTag
property is updated to the value QUERY
.
Secret Variables
Secret variables are a special type of variable that are sourced from a file, java system property, or environment variable. This is useful for sensitive information like passwords, API keys, etc. The secret variable is a JSON object with the following properties:File
dbPassword
setting for any stage is populated from a file located at /etc/secret-volume/db-password
.
Env or System Property
dbPassword
setting for any stage is populated from an environment variable named DB_PASSWORD
.
If the environment variable is not set, the java system property is checked as a fallback.