Freeform Introduction
Reference Designs
If your network architecture is comprised of a 3-stage Clos, 5-stage Clos or collapsed fabric, you’ll want to take advantage of the abstraction and automation that’s included with the Datacenter reference design. For all other topologies, you can use the Freeform reference design to leverage any feature, protocol, or architecture.
Blueprints created in the Datacenter reference design use a set of design elements to abstract and automate many network activities. Blueprints created in the Freeform reference design consist of systems and links that you add and configure yourself, giving you complete control over your architecture. In Freeform we use the term system to represent all the types of devices that can be linked in the Apstra environment: switches, routers, Linux hosts and so on.
Device Management
Device management for Freeform blueprints is the same as for Datacenter blueprints. The process of installing agents and acknowledging them to bring them under Apstra management is the same in both reference designs. Only Juniper devices are supported in Freeform blueprints.
Freeform Bluprints and Device Profiles
You can build your Freeform blueprint manually from an empty blueprint, or if you've exported an existing Freeform blueprint, you can use it as a template for a new one (as of Apstra version 4.2.0). You’ll start building your empty blueprint by importing device profiles from the design (global) catalog. A device profile represents a device’s capabilities without specifying its system ID (serial number). This is what enables you to build your entire network ‘offline’ before deploying it.
Systems and Links
You’ll create internal systems and assign device profiles to them. Internal systems are devices that are managed in the Apstra environment. You can bring your devices under Apstra management at any time. If you have them ready, you can assign them as you're creating your internal systems. If they're not ready, that's OK. You can assign them any time before deploying your network.
External systems are the other type of system used in Freeform blueprints. These are systems that are linked to internal systems, and are not under Apstra management.
When you link your systems, you’ll select ports and transformations, as applicable. You can also add IP addresses and tags as you're creating those links.
Config Templates, Property Sets and Tags
Config templates are text files used to configure internal systems in Freeform. You'll assign a config template to every internal system. You could paste configuration directly from your devices into a config template to create a static config template, but then you wouldn’t be using the potential of config templates. With some Jinja2 knowledge (and maybe some Python), you can parametrize config templates to do powerful things.
Property sets provide a valuable capability to fully parameterize config templates. Consisting of key-value pairs, they enable you to separate static portions of config templates from variables. You create property sets in the blueprint catalog. (Property sets used in Freeform blueprints are not related to property sets in the design (global) catalog.) You'll include property set names in your config template and then the values in those property sets will be used when configuration is rendered.
You can also create a property set and assign it directly to one system.
Tags are a way for you to assign metadata to Apstra-managed resources. They can help you identify, organize, search for, and filter Apstra systems and links. With tags, you can categorize resources by purpose, owner, environment, or other criteria. Because tags are metadata, they aren't just used for visual labeling; they are also applied as properties of nodes in the Apstra graph database. This node property (or device property) is then available for you to reference in Jinja config templates for dynamic variables in config generation and the Apstra real-time analytics via Apstra's Live Query technology and Apstra Intent-Based Analytics.
An example of when you might want to use tags is if you have bare metal servers with SRIOV
interfaces, and you need to produce specific configuration for those interfaces. You would
add the tag sriov
to the links, then specify in the config template that
links with that tag are to be configured a certain way.
Freeform Workflow
-
Access the Apstra GUI.
-
Bring your devices under Apstra management (same procedure as for Datacenter blueprints). If you don't have your system IDs (serial numbers) yet, that's OK. You can build your entire network 'offline' in the Apstra environment and bring your devices under Apstra management any time before deploying your network.
-
Import device profiles for the internal systems you'll create.
-
Add internal systems for the systems that Apstra will manage.
-
Add external systems for unmanaged systems, as applicable.
-
Add links to your systems.
-
Create config templates, and property sets as needed.
-
Assign config templates to internal systems with deploy mode set to Deploy.
-
If you haven't brought your devices under Apstra management yet, it's time to do that now.
-
Assign system IDs (if you haven't already) and set the deploy mode on your systems to Deploy.
-
Before deploying your network, you can use the apstra-cli utility to validate config template syntax. For more information, see Juniper Support Knowledge Base article KB69779.
-
Commit changes to deploy blueprint.