Configuration overrides

When you create a fabric intent, the Fabric Services System prepares a set of configuration files for all of the nodes participating in the fabric. The configuration for each of these nodes is based directly on the parameters you provide when creating the fabric intent. These are the "normalized configurations" for the participating nodes.

A configuration override allows you to specify a set of changes to the configuration files for one or more nodes within a fabric by supplying additional configuration data. Configuration overrides are strictly additive; they allow you to insert new or modify existing configuration data, but cannot be used to remove any of the configuration data that the system creates based on the original fabric intent inputs.

As part of the override, you must provide the JSON configuration data to be added to each configuration. You then specify the nodes within the fabric to which the overrides should be applied in one of the following ways:
  • by selecting individual nodes from the inventory
  • by applying a label to the nodes you want modified, and then selecting that label as the override target

The resulting updated configuration is applied to the specified nodes the next time you deploy a fabric intent that includes any of those nodes. If you create this override during the initial fabric intent creation, you can proceed with deployment normally and the initial version of the fabric intent will include the overrides.

To apply the override to nodes within an existing fabric intent, you must first create a new candidate version of the fabric intent. You can then proceed with deployment of the new version normally, which will include any changes specified in the configuration override for the nodes within that fabric intent.

Overrides are not specific to individual fabrics; they can affect multiple nodes that have been either selected manually or identified by a shared label, and these nodes could belong to multiple fabrics. For the node configuration changes to take full effect, you must re-deploy any already-deployed fabrics that include the affected nodes.

Configuration overrides themselves can have multiple versions, although only one version of a particular override can be active at one time.

Applying multiple overrides

You can apply multiple configuration overrides to the same fabric intent, each with its own configuration changes and target nodes.

Each configuration override you create includes a number indicating its execution order. When multiple overrides are applied to a fabric intent, the overrides are applied to the participating nodes' configuration data based on the execution order value, from lowest to highest. This ensures that the overrides interact in a consistent and predictable way.

Deploying fabric intents with overrides

Like any fabric intent deployment, the deployment of fabric intents that include configuration overrides proceeds as a single transaction. If the deployment of the modified fabric intent fails for any node, the entire deployment is rolled back and any modified nodes are restored to their previous states.

The reason for any failure is recorded in the Fabric Services System Events Log.

Fabric intent displays and configuration overrides

When viewing a fabric intent in the Fabric Services System GUI, the system displays some parameters pertaining generally to the nodes within the fabric intent. These values always reflect the normalized configuration within the fabric intent, and do not reflect any configuration overrides that may have been applied to the nodes.

For example, the Fabric Intents design page displays values for FTP settings near the bottom of the left column. This reflects the FTP settings that are specified when creating the fabric intent, and so may continue to display FTP as disabled across the fabric even though a configuration override subsequently added data to enable FTP on some of the nodes.