Contextual configuration overrides

Contextual configuration overrides (CCOs) alter the configurations for the following types of objects associated with a workload intent:
  • sub-interfaces
  • routers

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

A CCO allows you to specify a set of changes to the configuration files for one or more nodes participating in a workload intent. CCOs 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 workload intent inputs.

As part of the override, you must provide the JSON configuration data to be added to each configuration. You then specify the sub-interfaces or routers within the workload intent to which the overrides should be applied. Optionally, you can also specify the nodes on which the contextual configuration override should apply.
Note: Unlike global configuration overrides, the use of labels to identify target objects is not supported for CCOs.
When you generate a workload intent, the Fabric Services System checks for related, active CCOs. The additional configuration data from those overrides is applied to the configurations of the target objects if they are included in the current workload. This is true whether the workload you are generating is:
  • a workload intent you are currently creating
  • a new workload intent
  • a new version of an existing workload intent

Multiple versions of overrides

You can create additional versions of a contextual configuration override; only one of these can be set to Active at a time. You can set all versions of an override to Inactive if required.

Deleting overrides

If you delete a CCO, or set all versions of an override to Inactive, existing workload intents (and the node configurations that support them) are unaffected.

However, the next time you generate a workload intent that previously used the deleted or inactive CCO, the former override modification does not take place.

Deleting supporting elements

Each CCO involves one or more specific sub-interfaces or routers that you select when you create the override. If those sub-interfaces or routers are subsequently deleted, the system does not automatically update any CCO that refers to them. You must modify each affected CCO to correct the reference to the non-existent object.

However, if you try to save a CCO that refers to a non-existent object (for example, a router that existed when the CCO was first created but that has since been deleted), the system warns you that the result is an invalid workload configuration.

Contextual configuration override parameters

Table 1. 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 targets. 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 This value cannot be altered.
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 sub-interfaces or routers, the execution order value dictates the order in which the configuration changes are merged into the configurations data.

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.

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:
  • Operating System: SRLinux
  • Software Version: either
    • ALL
    • a major software version from the software catalog
    • or both
  • Data Model: SRLinux
Configuration Type Contextual Override This value cannot be modified.
Type sub-interface

Indicates the type of workload-related object whose configuration data is impacted by this override. Its value can be one of the following:

  • sub-interface
  • router
Path /interface/subinterface Indicates where within the structure of a configuration file this override should be inserted.
  • if the override applies to sub-interfaces, the override text is inserted within the /interface/sub-interface section of the configuration file
  • if the override applies to routers, the override text is inserted within the /network-instance section of the configuration file
Method Selector By Type This value cannot be altered.
Selector n/a Indicates the list of sub-interfaces or routers that are affected by this override.

The list of selected objects can span multiple workload intents.

Node Selector None

Identifies specific nodes to which this override should be applied.

You can optionally use this control to select one or more nodes in the system inventory. Regardless of how many nodes' configurations may be encompassed by the current list of sub-interface or router targets, the configuration override is applied only to these nodes.
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 data for the targets. For example:
{"ip-mtu": 1501}

Creating a contextual configuration override

Create the specific sub-interfaces or routers whose configurations you are going to modify with this override. You must create these beforehand because you are prompted to select them during this procedure.
This procedure describes how to create the initial version of a contextual configuration override. At a high level, you create a configuration override by doing the following:
  1. Provide a name and description to identify this override.
  2. Set some configuration parameters for the override:
    • whether it is active
    • where it falls in the overall execution order for all active overrides
  3. Identify the software configuration of the target nodes (the operating system, OS version, and data model).
  4. Enter the specific configuration data that should be applied to the target configurations.
  5. Specify whether the configuration override applies to sub-interfaces or routers.
    Note: Contextual configuration overrides for routers apply only to routed subnets or bridged subnets with IRB.
  6. Identify the objects to which this override applies by selecting specific, previously-defined sub-interfaces or routers.
  7. Optionally, restrict the override to only affect specific nodes.
  8. Save the override.
While the override is active, it is applied to the targeted sub-interfaces and routers when you generate configurations for any:
  • in-progress workload intents
  • future workload intents
  • new versions of existing workload intents
  1. Click the menu.
  2. Select Overrides to open the Overrides page.
  3. 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.
  4. From the View drop-down, select Contextual Override.
    Note: The View drop-down is set to Global Override by default.
  5. Click +CREATE to open the Configuration Creation page.
  6. Enter values for the following parameters as described in Contextual configuration override parameters:
    • Active
    • Name
    • Description
    • Execution Order
    Note: The Automatic Deployment property is disabled and cannot be altered for a contextual configuration override.
  7. Identify a target configuration by doing the following:
    1. Click + ADD.
    2. From the Target Configuration form, select the following:
      • Operating System
      • Software Version
      • Data Model
    3. Click ADD.
  8. 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 7. Select each target configuration from the Target drop-down list to see its unique window in which to enter configuration code.
  9. In the Type drop-down list, indicate whether this override affects the configuration of a sub-interface or a router.
  10. Select the edit icon () above the Selector panel to open the Selector form (which lists all available sub-interfaces or routers), and do the following:
    1. Check the box at the left edge of the row for one or more displayed sub-interfaces or routers whose configuration you plan to override.
    2. Click ADD.
      The sub-interfaces or routers are added to the Bin panel to the right of the selection list.
    3. If you need to remove a sub-interface or router from the Bin panel, click the More icon () to the right of the sub-interface in the Bin panel and select Delete from the displayed action list.
    4. Repeat steps 10.a through 10.c until all sub-interfaces or routers you intend to target with this override have been added to the Bin panel.
    5. Click SAVE.
      The Selector form closes and you are returned to the Create Override page. The sub-interfaces or routers you selected are displayed in the Selector panel. The Count value indicates how many sub-interfaces or routers are in the Selector list.
  11. Optionally, use the Node Selector to restrict the scope of this override. Select one or more nodes that are managed by the Fabric Services System. If the set of sub-interface or router targets you selected for this override encompass multiple nodes, only the nodes on this list are affected by the CCO.
    Note: If you do not select one or more nodes here, the contextual configuration override is applied to all nodes encompassed by the sub-interfaces or routers you selected.
  12. Click the Save icon () to save the new override.

If you created the configuration override in the midst of creating a workload intent, you must generate that workload intent again to incorporate the override data. You can then resume the creation and deployment of that workload intent.