Global 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.
- insert new configuration data
- modify existing configuration data
- remove existing configuration data (using the "Delete Paths" capability).
- 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 change to the configuration is applied to the specified nodes the next time you deploy a fabric intent that includes any of those nodes. If you create a GCO during the initial fabric intent creation, you can proceed with deployment normally and the initial version of the fabric intent includes the overrides.
To apply the GCO 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 includes any changes specified in the configuration override for the nodes within that fabric intent.
GCOs 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.
GCOs 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 GCOs to the same fabric intent, each with its own configuration changes and target nodes.
Each GCO you create includes a number indicating its execution order. When multiple GCOs 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 GCOs 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.
Deviation-related global configuration overrides
A deviation is a node configuration that originates outside the Fabric Services System, and so represents a change to the current configuration for that node that is stored in the related fabric intent. The Fabric Services System continues to monitor node configurations after fabric intents have been deployed; and when the node configuration is modified externally, the system reports this as a deviation.
You can accept or reject deviations that have been detected by the Fabric Services System. Deviations you reject are discarded, but deviations you accept are stored in the Fabric Services System as a special type of system-generated GCO.
Such deviation-related GCOs are automatically deployed to the affected nodes. The GCO parameters, and the modified configuration data that is part of the GCO, are set by the system and cannot be modified. Storing the deviation as a GCO ensures that the deviation-based configuration information is stored and managed in a manner consistent with other configuration exceptions that are created by the Fabric Services System user.
Deviation-related GCOs are always the last changes applied to the normalized node configuration (after standard global configuration overrides and contextual configuration overrides) to arrive at the final configuration for a node.
If you delete a node that is the subject of a deviation-related GCO, the GCO itself is deleted from the system.
System global configuration overrides for unmanaged nodes
When a fabric consists of nodes that are not directly managed by the Fabric Services System, the complete set of configuration data for each node is stored within the Fabric Services System as a system-generated Global Configuration Override (system GCO).
Typically GCOs are used to store expected variations in a node's configuration. But for unmanaged nodes, a GCO is used to store the entire node configuration, where it is available for consultation by components of the Fabric Services System. For example, it is from this configuration data that the Fabric Services System creates initial configuration files as part of a maintenance intent.
- you can duplicate a system GCO to a conventional GCO if required
- you can also delete a system GCO
Global configuration override parameters
Parameter | Default value | Description |
---|---|---|
Version | See Description | Indicates the version number for this override. This value is assigned automatically. The first instance of any configuration override is Version 1.0. Subsequent versions of the same override increment this value. |
Active | Enabled | Indicates which, if any, version of a configuration override
should be used to modify the configuration data for the target
nodes. A maximum of one version of any configuration override can be
active at one time. It is possible to set all versions of an override to inactive. |
Automatic Deployment | Disabled | Specifies whether the override should be automatically pushed
down to the affected nodes.
|
Name | None | Identifies the configuration override and is used to identify it in the list of all overrides within the system. It must be unique (but is shared by all versions of the same override). |
Description | None | Describes the purpose or impact of the override. |
Execution Order | n+100 |
Indicates where this particular override should fall within the overall execution sequence when there are multiple overrides. If two or more overrides target the same nodes, the execution order value dictates the order in which the configuration changes are merged into the configurations of the target nodes. The override with the lowest Execution Order value is applied first. The default value is the current highest value plus 100. As a result, the first override created has a default value of 100. |
Method for Selecting Nodes | None | Indicates how to identify nodes to be affected by this override.
This can be either of these values:
|
Node Label Selector | None | Identifies the label or labels that qualify a node as a candidate for this override. If the Method for Selecting Nodes parameter is set to By Label, this control is displayed and is active. You can use this control to specify one or more node labels. These labels must be "Node-Type" labels. When applied, the configuration data in this override is applied to all nodes within the fabric intent with at least one of these labels. |
Node Selector | None | Identifies the specific nodes to which this override should be applied. If the Method for Selecting Nodes parameter is set to By Node, this control is displayed and active. You can use this control to select one or more nodes in the system inventory. When applied, the configuration data in this override is applied to each of the selected nodes within the fabric intent. |
Configuration Type | Global Override | This value cannot be modified. |
Target Configuration | See Description | Identifies several configuration properties of any node that are expected if the node is a candidate for this override. It consists of three sub-parameters:
|
Configuration Data | None | Contains the configuration data that is applied to each node that is subject to this configuration override. Each configuration override must include a set of JSON configuration data to be merged into the configuration file for the target nodes. For example:
|
Delete Paths | None | Enter any configuration data in this field that
should be deleted from the existing configuration. The delete path
syntax follows gNMI path conventions. For example:
Note: A single GCO can include JSON
configuration data for addition/modification, or for deletion,
or a mixture of both. |
Creating a global configuration override
- Provide a name and description to identify this override.
- Set some configuration parameters for the override:
- whether it is active
- where it falls in the overall execution order for all active overrides
- Identify one or more software configurations for the target nodes (the operating system, OS version, and data model).
- Enter the specific node configuration data that should be applied to the target nodes. Each combination of OS, OS version, and data model can have its own unique configuration code to be applied as part of this override.
- In the "Delete Paths" section of the override form, enter any
configuration data that should be deleted from the target nodes.Note: A single GCO can include JSON configuration data for addition/modification, or for deletion, or a mixture of both.
- Identify the specific nodes to which this override applies by either:
- selecting individual nodes
- identifying a label common to the target nodes
- Save the override.
- in-progress fabric intents
- future fabric intents
- new versions of existing fabric intents
- Click the menu.
- Select Overrides to open the Overrides page.
-
Use the Region Selector at the top of the page to select
the region in which to create the override.
Note: You cannot change the region selection after you begin creating the override. If you select a new region in the Region Selector while creating an override, the creation form closes and you are returned to the Overrides page.
- Click +CREATE to open the Configuration Creation page.
-
Enter values for the following parameters as described in Global configuration override parameters:
- Active
- Automatic Deployment
- Name
- Description
- Execution Order
-
Identify a target configuration by doing the following:
-
In the Configuration panel, add the specific
configuration data that you want to be merged into the configurations for the
targeted nodes.
Note: You can enter independent instances of configuration code here for each combination of operating system, version, and data model you selected in step 6. Select each target configuration from the Target drop-down to see its unique window in which to enter configuration code.Note: Instead of typing or pasting code in this window, you can use the More... button () at the upper right of the form to select a file from which to import this code.
-
In the Delete Paths panel, enter any configuration that
should be deleted from the configurations for the target nodes:
The configuration for deletion is added to the Delete Paths panel.
- For Method for Selecting Nodes, do one of the following:
-
Select the Edit icon () above the Node Label
Selector panel to open the Label Picker
form and do the following:
-
Select the edit icon () above the Node Selector panel to open the
Node Selector and do the following:
- Click the Save icon () to save the new override.
If you created the configuration override in the midst of creating a fabric intent, you must generate that fabric intent again to incorporate the override data. You can then resume the creation and deployment of that fabric intent.