TerraformPilot

DevOps

Terraform for Arista EOS and CloudVision Studios

Automate Arista EOS switches with Terraform: aristanetworks/cvp provider, CloudVision Studios, configlet management, and EVPN fabric automation.

LLuca Berton1 min read

Arista EOS powers leaf-spine fabrics in many of the world's largest data centers. Automation usually goes through CloudVision Portal (CVP) Studios, and the aristanetworks/cloudvision Terraform provider manages Studios, configlets, change controls, and tags declaratively.

For the multi-vendor overview see Cisco / Junos / Arista combined article.

Provider

#
terraform {
  required_providers {
    cloudvision = {
      source  = "aristanetworks/cloudvision"
      version = "~> 1.5"
    }
  }
}
 
provider "cloudvision" {
  cvaas_org   = var.cvaas_org
  cvaas_token = var.cvaas_token
}

Studio Inputs

#

CloudVision Studios is intent-based: you set inputs, CV renders configlets and pushes via change control.

resource "cloudvision_studio" "fabric" {
  studio_id = var.fabric_studio_id
  workspace_id = cloudvision_workspace.this.id
 
  inputs = jsonencode({
    fabric = {
      asn      = "65001"
      vtep_loopback = "Loopback1"
      tenants = [
        { name = "blue", vni = 10100, vlan = 100 },
        { name = "green", vni = 10200, vlan = 200 },
      ]
    }
  })
}

Workspace + Change Control

#
resource "cloudvision_workspace" "this" {
  display_name = "tf-${formatdate("YYYYMMDDhhmm", timestamp())}"
  description  = "Terraform-driven fabric change"
}
 
resource "cloudvision_change_control" "this" {
  workspace_id = cloudvision_workspace.this.id
  approve      = true
  execute      = true
}

Best Practices

#
  • Studios > raw configlets — Studios encode intent, configlets encode lines.
  • One workspace per change — workspaces are CV's transaction unit.
  • Approve via humans, execute via Terraform — keeps a clear audit trail.
  • Tag-driven assignment — let CV roll the configlet out by tag, not by switch ID.
#
#Terraform#Arista EOS#CloudVision#Studios#Configlets

Share this article