The Connect service architecture

Connect acts as a bridge between the Fabric Services System and different cloud environments. It is aware of the different processes and workloads running on the servers that make up the cloud environment while at the same time being aware of the fabric as configured on the Fabric Services System.

To ensure a fast and consistent API, the operations on Connect are decoupled from the Fabric Services System itself. Each resource in Connect corresponds to one or more resources in the Fabric Services System. By being decoupled, the successful creation or update of a Connect resource is only a promise that an action will later be taken on the Fabric Services System. To expose this concept on the API, three fields are available:

  • version
  • deployedVersion
  • Status

Version is incremented after every Create or Update operation on a resource.

deployedVersion is incremented once those changes are deployed to the Fabric Services System.

For convenience, Connect maintains the Status field. This field indicates whether a resource is Deploying, Deployed, or in an Error state. It is this field that will be important when troubleshooting failures. While the field value is Deploying, the Fabric Services System itself is not yet configured based on the resource in Connect.

Connect maintains the objects shown in Connect component objects.

Figure 1. Connect component objects
  • Plugin: An instance of a Connect plugin, registered on Connect by the plugin itself. (See also Managing plugins and deployments.)
  • Deployment: A cloud environment that is monitored by a specific plugin. A Deployment is created on a plugin by either the operator or the Plugin itself (see Managing Plugins & Deployments further on). All further Connect resources will belong to one specific Deployment.

    For more information about deployment, see Managing plugins and deployments.

  • Tenant: A container intended for the separation of concern between different tenants or customers on the cloud environment. A tenant will result in a workload intent on the Fabric Services System. The ID of this workload intent is populated into the fssWorkloadEvpnId field of the tenant.
  • Subnet: A networking subnet. A subnet will result in a bridged workload subnet on the Fabric Services System.
  • HostPort: A server compute NIC. A HostPort does not have any representation on the Fabric Services System, as its connection is to the fabric leaf node interface rather than a direct translation. The HostPort's <HostName, PortName> should be globally unique, typically with a fully qualified domain names. For example, <compute-01.datacenter01.company.com, eth0>.

    The status of a HostPort is also dependent on whether an EdgeMap with the corresponding host information was found.

  • HostPortLabel: A container connecting HostPort and subnet. Rather than configuring every single VLAN we want to configure on a HostPort (actually on the EdgeLink Port on the Leaf where the HostPort is connected to on the fabric), Connect works with an indirection object. This allows Connect to specify a group of HostPorts with a similar configuration: for example, all compute HostPorts that serve the same overlay network through VLAN 200. A HostPortLabel is represented by a label in the Fabric Services System.
  • HostPortLabelHostPortAssociation: HPLHPA for short, this is the association between the container object HostPortLabel and a HostPort. It ensures that all VLANs scheduled on the HostPortLabel are connected to this HostPort. An HPLHPA is represented by an association between the EdgeLink that the HostPort corresponds to, and the label of the HostPortLabel.
  • HostPortLabelSubnetAssociation: HPLSA for short, this is the association between the container object HostPortLabel and a subnet. The association contains a VLAN to be scheduled on the sub-interfaces that follow from this HPLSA.
  • EdgeMap: An EdgeMap contains the neighbor information the fabric has learned through LLDP. It contains the information Connect has learned regarding the connected hypervisors or servers to the leaf fabric.