npm package: @itentialopensource/versa-device-onboarding-workflow
Description: Versa Device Onboarding
Author: Itential Artifacts
Latest version: 0.0.12-2023.1.0

<!-- This is a comment in md (Markdown) format, it will not be visible to the end user -->

<!-- Update the below line with your Pre-Built name -->
# Versa Device Onboarding Workflow

<!-- Leave TOC intact unless you've added or removed headers -->
## Table of Contents

* [Overview](#overview)
* [Requirements](#requirements)
* [Features](#features)
* [How to Install](#how-to-install)
* [How to Run](#how-to-run)
* [Additional Information](#additional-information)

## Overview

This pre-built is used to onboard a new device in Versa Director.
<!-- Write a few sentences about the Pre-Built and explain the use case(s) -->
<!-- Avoid using the word Artifact. Please use Pre-Built, Pre-Built Transformation or Pre-Built Automation -->
<!-- Ex.: The Migration Wizard enables IAP users to conveniently move their automation use cases between different IAP environments -->
<!-- (e.g. from Dev to Pre-Production or from Lab to Production). -->

<!-- Workflow(s) Image Placeholder - TO BE ADDED DIRECTLY TO GitLab -->
<!-- REPLACE COMMENT BELOW WITH IMAGE OF YOUR MAIN WORKFLOW -->
<!--

-->
<!-- REPLACE COMMENT ABOVE WITH IMAGE OF YOUR MAIN WORKFLOW -->

<!-- ADD ESTIMATED RUN TIME HERE -->
<!-- e.g. Estimated Run Time: 34 min. -->
<table><tr><td>
  <img src="./images/workflow-ui.png" alt="workflow ui" width="900px">
</td></tr></table> 
<table><tr><td>
  <img src="./images/workflow.png" alt="workflow" width="900px">
</td></tr></table> 
Estimated Run Time: 5 minute

## Requirements

This Pre-Built requires the following:

<!-- Unordered list highlighting the requirements of the Pre-Built -->
<!-- EXAMPLE -->
<!-- * cisco ios device -->
<!-- * Ansible or NSO (with F5 NED) * -->
* Itential Automation Platform
  * `^2023.1`
* A running instance of the Itential OpenSource Versa Director adapter, which can be installed from [here](https://gitlab.com/itentialopensource/adapters/controller-orchestrator/adapter-versa_director).

## Features

The main benefits and features of the Pre-Built are outlined below.

Every Itential Pre-built is designed to optimize network performance and configuration by focusing on reliability, flexibility and coordination of network changes with applications and IT processes. As the network evolves, Pre-builts allow customers to focus on effective management and compliance to minimize risks of disruption and outage that can negatively impact quality of service.

<!-- Unordered list highlighting the most exciting features of the Pre-Built -->
<!-- EXAMPLE -->
<!-- * Automatically checks for device type -->
<!-- * Displays dry-run to user (asking for confirmation) prior to pushing config to the device -->
<!-- * Verifies downloaded file integrity (using md5), will try to download again if failed -->


## How to Install

To install the Pre-Built:
<table><tr><td>
  <img src="./images/install.png" alt="install" width="800px">
</td></tr></table> 

* Verify you are running a supported version of the Itential Automation Platform (IAP) as listed above in the [Requirements](#requirements) section in order to install the Pre-Built. 
* The Pre-Built can be installed from within App-Admin_Essential. Simply search for the name of your desired Pre-Built and click the install button (as shown below).

<!-- REPLACE BELOW WITH IMAGE OF YOUR PUBLISHED PRE-BUILT -->
<!--
<table><tr><td>
  <img src="./images/install.png" alt="install" width="600px">
</td></tr></table>
-->
<!-- REPLACE ABOVE WITH IMAGE OF YOUR PUBLISHED PRE-BUILT -->

<!-- OPTIONAL - Explain if external components are required outside of IAP -->
<!-- Ex.: The Ansible roles required for this Pre-Built can be found in the repository located at https://gitlab.com/itentialopensource/pre-built-automations/hello-world -->

## How to Run

Use the following to run the Pre-Built:


The pre-built can be run as a standalone or as part of a parent job. 
- To run it as a standalone job, run the respective job from Operations Manager with the necessary JSON form. 
- The workflow or the job can also be used as part of another parent job.

The description of the formdata needed by the prebuilt is given below:
The required values to be passed on are:

<table><tr><td>
  <img src="./images/initialForm.png" alt="initialForm" width="500px">
</td></tr></table> 

**Versa Adapter ID:** The adapter of Versa installed on IAP.

<table><tr><td>
  <img src="./images/device-onboarding-1.png" alt="device-onboarding-1" width="400px">
</td></tr></table> 

**Name:** Name of the device to be onboarded.\
**Global Device ID:** This is an automated value provided to uniquely identify the device that is onboarded.\
**Organization:** The organization to be attached to the device onboarded.\
**Deployment Type:** This identifies how the device is deployed as
* Full Mesh: The device will establish the Data tunnels with all other devices in the tenant
* Hub: The device will be onboarded as a Hub device that other Spokes in the region can use to connect to each other
* Spoke: The device will be onboarded as a Spoke device and automatically connect to other Spokes directly or via a Hub in that region based on VRF priorities.

**Serial Number:** Hardware Serial Number of the device that is onboarded.\
**Service Bandwidth:** The bandwidth for which the specific device will be entitled to (multiple options can be selected to get to specific BW tier).

<table><tr><td>
  <img src="./images/device-onboarding-2.png" alt="device-onboarding-2" width="400px">
</td></tr></table> 

**Device group:** The name of the device group that this device will belong to (that way it can get the mapped configuration template automatically).\
**Location information:** The address of the location where the device will be onboarded at.\
**Device service templates:** The service level configuration template which describes specific set of services which can be mapped to the device being.onboarded.
<table><tr><td>
  <img src="./images/device-onboarding-3.png" alt="device-onboarding-3" width="400px">
</td></tr></table> 
<table><tr><td>
  <img src="./images/device-onboarding-3-1.png" alt="device-onboarding-3-1" width="400px">
</td></tr></table> 

**Data Binding for Post staging template and Service template:** Values for variables that are identified in each of the templates associated with the device.


<!-- Explain the main entrypoint(s) for this Pre-Built: Operations Manager item, Workflow, Postman, etc. -->

## Versa instance

The above onboarded device can be verified on the versa instance by logging in using the credentials provided.\
After logging in, select the workflows tab, choose 'Devices' from the left pane to view all the devices onboarded.

<table><tr><td>
  <img src="./images/devices-list-versa.png" alt="devices-list-versa" width="800px">
</td></tr></table> 

Click on the device onboarded to verify all the basic information, bind data and device service template details etc.,
<table><tr><td>
  <img src="./images/created-device-versa.png" alt="created-device-versa" width="800px">
</td></tr></table> 

## Additional Information

Please use your Itential Customer Success account if you need support when using this Pre-Built.