![]() |
Camphor Networks Platform API
|
Functions | |
def | test1_simple_network () |
Create a simple network connecting routers. More... | |
def | test2_linear_topology () |
Create a simple linear topology of SONiC Devices. More... | |
def | test3_custom_topology () |
Create a customized network topology. More... | |
def | test4_circular_topology (int count=10) |
Create a simple circular topology of NXOS Devices. More... | |
def | test5_device_for_analytics (int device_count=4, int network_count=2) |
Create a network with better management traffic capable devices. More... | |
def | test6_multi_device_networks (int device_count=4, int network_count=4) |
Create a network with better management traffic capable devices. More... | |
def | test7_camphor_topology_file () |
Load a camphor network topology from an external yaml file. More... | |
def | test8_small_datacenter () |
Create a small data center network. More... | |
def | test9_medium_datacenter () |
Create a medium sized data center network. More... | |
def | test10_large_datacenter () |
Create a large sized data center network. More... | |
def | test11_customized_datacenter () |
Create a customized data center network. More... | |
def | test12_ospf_basic (bool synchronize=False) |
Create a simple OSPF Topology of JUNOS Routers. More... | |
def | test13_device_with_pci_passthrough (int device_count=4) |
Create devices with PCI Cards pass through from underlying host such as GPUs, NPUs and IPUs. More... | |
def | test14_device_with_k8_pods (int device_count=int(environ.get('CAMPHOR_TEST_DEVICE_COUNT', '4')), int network_count=int(environ.get('CAMPHOR_TEST_NETWORK_COUNT', '4')), bool synchronize=environ.get('CAMPHOR_TEST_SYNCHRONIZE', '').upper()=='TRUE') |
Create a network of devices and verify wih K8. More... | |
def | test15_device_pause (str name='router', int count=4) |
Pause devices. More... | |
def | test16_device_resume (str name='router', int count=4) |
Resume devices. More... | |
def | test17_device_shutdown (str name='router', int count=4) |
Shutdown devices. More... | |
def | test18_device_restart (str name='router', int count=4) |
Restart devices. More... | |
def | test19_device_recreate (str name='router', int count=4) |
Recreate devices. More... | |
def | test20_device_pullconf (str name='router', int count=4) |
Pull Configuration from devices. More... | |
def | test21_device_pushconf (str name='router', int count=4) |
Push Configuration to devices. More... | |
def | test22_device_interface_link_down (str name='router', int count=4) |
Turn down interface link state. More... | |
def | test23_device_interface_link_up (str name='router', int count=4) |
Turn up interface link state. More... | |
def | test24_device_interface_admin_down (str name='router', int count=4) |
Turn down interface admin state. More... | |
def | test25_device_interface_admin_up (str name='router', int count=4) |
Turn up interface admin state. More... | |
def | test26_application_drawio () |
Create application DrawIO Diagrams Editor. More... | |
def | test27_application_grafana () |
Create application Grafana Graphs Generator. More... | |
def | test28_application_jenkins () |
Create application Jenkins Jobs Manager. More... | |
def | test29_application_jupyter_notebook () |
Create application Jupyter Notebook for Easy Automation. More... | |
def | test30_application_kibana () |
Create application Elastic Search Based Kibana Logs Analyzer. More... | |
def | test31_application_novnc () |
Create application noVNC Remote Desktop for Ubuntu Linux. More... | |
def | test32_application_opennms () |
Create application OpenNMS Network Management Station. More... | |
def | test33_application_suzieq () |
Create application SuzieQ Network Analytics Manager, especially for Data Centers. More... | |
def | test34_application_wordpress () |
Create application WordPress WebSite Hosting Platform. More... | |
def | test35_datacenter_cisco () |
Load a cisco network topology from an external yaml file. More... | |
def | test36_datacenter_convergeone () |
Load a convergeone network topology from an external yaml file. More... | |
def | test37_datacenter_aviz () |
Load a aviz network topology from an external yaml file. More... | |
def | test38_datacenter_augtera () |
Load a augtera network topology from an external yaml file. More... | |
def | test39_datacenter_junos () |
Load a junos network topology from an external yaml file. More... | |
def | test40_datacenter_arrcus () |
Load a arrcus network topology from an external yaml file. More... | |
def | test41_datacenter_arista () |
Load a arista network topology from an external yaml file. More... | |
def | test42_datacenter_sonic () |
Load a sonic network topology from an external yaml file. More... | |
def | test43_kubernetes_cluster1 (int masters=-1, int computes=3) |
Create a Kubernetes Cluster. More... | |
def | test44_aviz_ones_controller_based_datacenter () |
Create a Aviz-Ones-Controller driven Virtual Data Center. More... | |
def camphor_api.camphor_api_test.test1_simple_network | ( | ) |
Create a simple network connecting routers.
Two SONiC Routers are created and connected with each other.
You can see the autogenerated topology at Camphor Networks Platform Dashboard
#
# Copyright (C) Camphor Networks, Inc - All Rights Reserved
# Unauthorized copying of this file via any medium is strictly prohibited
# Proprietary and confidential
# Written by Ananth Suryanarayana <ananth@camphornetworks.com>, June 2021
# https://camphornetworks.com/camphor-networks-platform-terms-of-use-and-privacy-policy/
# mailto:info@camphornetworks.com?subject=copyright
#
# yaml-language-server: $schema=/var/lib/camphor/camphor_project_schema.json
#
# Run this command from any camphor cluster node to load this topology!
# export CAMPHOR_PASSWORD='<CamphorPassword>'
# python3 /var/lib/camphor/camphor_api/camphor_manage_device.pyc --oper=load-deployment <yaml-file>
#
---
devices:
item:
- attributes:
os: SONiC
type: dedicatedVM
name: router1
- attributes:
os: SONiC
type: dedicatedVM
name: router2
networks:
item:
- attributes:
ports:
item:
- device: router1
- device: router2
name: network1
Definition at line 59 of file camphor_api_test.py.
def camphor_api.camphor_api_test.test2_linear_topology | ( | ) |
Create a simple linear topology of SONiC Devices.
SONiC Routers are created and chained in a serial manner. Generated yaml is loaded onto the camphor controller.
You can see the autogenerated topology at Camphor Networks Platform Dashboard
#
# Copyright (C) Camphor Networks, Inc - All Rights Reserved
# Unauthorized copying of this file via any medium is strictly prohibited
# Proprietary and confidential
# Written by Ananth Suryanarayana <ananth@camphornetworks.com>, June 2021
# https://camphornetworks.com/camphor-networks-platform-terms-of-use-and-privacy-policy/
# mailto:info@camphornetworks.com?subject=copyright
#
# yaml-language-server: $schema=/var/lib/camphor/camphor_project_schema.json
#
# Run this command from any camphor cluster node to load this topology!
# export CAMPHOR_PASSWORD='<CamphorPassword>'
# python3 /var/lib/camphor/camphor_api/camphor_manage_device.pyc --oper=load-deployment <yaml-file>
#
---
devices:
item:
- attributes:
image:
file:
- master:///local/camphor/vm_image.qcow2
md5sum:
- deadbeef
os: SONiC
resource:
cpu:
- 4
disk:
- 200
memory:
- 4096
type: dedicatedVM
name: router1
- attributes:
image:
file:
- master:///local/camphor/vm_image.qcow2
md5sum:
- deadbeef
os: SONiC
resource:
cpu:
- 4
disk:
- 200
memory:
- 4096
type: dedicatedVM
name: router2
- attributes:
image:
file:
- master:///local/camphor/vm_image.qcow2
md5sum:
- deadbeef
os: SONiC
resource:
cpu:
- 4
disk:
- 200
memory:
- 4096
type: dedicatedVM
name: router3
- attributes:
image:
file:
- master:///local/camphor/vm_image.qcow2
md5sum:
- deadbeef
os: SONiC
resource:
cpu:
- 4
disk:
- 200
memory:
- 4096
type: dedicatedVM
name: router4
networks:
item:
- attributes:
ports:
item:
- device: router1
- device: router2
name: network1
- attributes:
ports:
item:
- device: router2
- device: router3
name: network2
- attributes:
ports:
item:
- device: router3
- device: router4
name: network3
Definition at line 96 of file camphor_api_test.py.
def camphor_api.camphor_api_test.test3_custom_topology | ( | ) |
Create a customized network topology.
Create routers by customizing image, resource and other attributes. Connect the routers together via specific network interfaces to build a custom topology. You can see the auto-generated topology in the camphor dashboard. e.g. https://camphor-k8-master/#/camphorTopology/camphor-administrator-default/autogenerated?namespace=camphor-administrator-default
#
# Copyright (C) Camphor Networks, Inc - All Rights Reserved
# Unauthorized copying of this file via any medium is strictly prohibited
# Proprietary and confidential
# Written by Ananth Suryanarayana <ananth@camphornetworks.com>, June 2021
# https://camphornetworks.com/camphor-networks-platform-terms-of-use-and-privacy-policy/
# mailto:info@camphornetworks.com?subject=copyright
#
# yaml-language-server: $schema=/var/lib/camphor/camphor_project_schema.json
#
# Run this command from any camphor cluster node to load this topology!
# export CAMPHOR_PASSWORD='<CamphorPassword>'
# python3 /var/lib/camphor/camphor_api/camphor_manage_device.pyc --oper=load-deployment <yaml-file>
#
---
applications:
item:
- attributes:
name: novnc
name: a1
- attributes:
name: jupyter
name: a2
devices:
attributes:
os: LINUX_ALPINE
resource:
cpu:
- 2
disk:
- 50
memory:
- 1024
item:
- attributes:
image:
file:
- master:///local/camphor/customer/vms/vm_image.qcow2
md5sum:
- deadbeef
os: SONiC
resource:
cpu:
- 4
disk:
- 100
memory:
- 2048
name: router1
- attributes:
conf: master:///local/camphor/$CAMPHOR_CLUSTER/$CAMPHOR_USERNAME/$CAMPHOR_PROJECT/$CAMPHOR_DEVICE/device.conf
image:
file:
- master:///local/camphor/customer/vms/vm_re_image.qcow2
- master:///local/camphor/customer/vms/vm_pfe_image.qcow2
md5sum:
- deadbeef
- beefbeef
os: MX
resource:
cpu:
- 4
disk:
- 100
memory:
- 4096
name: router2
- name: router3
networks:
attributes:
portAttributes:
interface: autoAssign
item:
- attributes:
ports:
item:
- device: router1
- device: router2
name: net1
- attributes:
ports:
item:
- attributes:
interface: ge-0/0/2
device: router2
- attributes:
interface: ge-0/0/4
device: router3
name: net2
- attributes:
ports:
item:
- device: router1
- device: router3
name: net3
Definition at line 146 of file camphor_api_test.py.
def camphor_api.camphor_api_test.test4_circular_topology | ( | int | count = 10 | ) |
Create a simple circular topology of NXOS Devices.
NXOS Routers are created and chained in a circular manner. Generated yaml is loaded onto the camphor controller.
You can see the autogenerated topology at Camphor Networks Platform Dashboard
#
# Copyright (C) Camphor Networks, Inc - All Rights Reserved
# Unauthorized copying of this file via any medium is strictly prohibited
# Proprietary and confidential
# Written by Ananth Suryanarayana <ananth@camphornetworks.com>, June 2021
# https://camphornetworks.com/camphor-networks-platform-terms-of-use-and-privacy-policy/
# mailto:info@camphornetworks.com?subject=copyright
#
# yaml-language-server: $schema=/var/lib/camphor/camphor_project_schema.json
#
# Run this command from any camphor cluster node to load this topology!
# export CAMPHOR_PASSWORD='<CamphorPassword>'
# python3 /var/lib/camphor/camphor_api/camphor_manage_device.pyc --oper=load-deployment <yaml-file>
#
---
devices:
attributes:
conf: |2
hostname nxos
snmp-server user admin
username admin password 5 $5$j7tkn468$cxNfE/jPpWmeIjJUOTNdSHcfr47N7pSK.S4h8SGGwe. role network-admin
username admin sshkey ssh-rsa ssh-rsa AAAAB3NzaC1yc2EA
feature bash
feature scp-server
feature bgp
feature ospf
ip domain-lookup
ip name-server 10.0.2.3 use-vrf management
vlan 1
vrf context management
ip domain-name camphor-administrator-default
ip name-server 10.0.2.3
ip route 0.0.0.0/0 10.0.2.2
interface mgmt0
ip address dhcp
vrf member management
interface Eth1/1
no description
switchport
line console
line vty
boot nxos bootflash:/boot nxos bootflash:/nxos64-cs.10.2.3.F.bin
image:
file:
- master:///local/camphor/customer/vms/500v64.10.2.3.F.qcow2
md5sum:
- 4d541a673a097ababec96b016f9ba237
os: NXOS
resource:
cpu:
- 4
disk:
- 200
memory:
- 4048
item:
- name: router1
- name: router2
- name: router3
- name: router4
- name: router5
- name: router6
- name: router7
- name: router8
- name: router9
- name: router10
networks:
item:
- attributes:
ports:
item:
- device: router1
- device: router2
name: network1
- attributes:
ports:
item:
- device: router2
- device: router3
name: network2
- attributes:
ports:
item:
- device: router3
- device: router4
name: network3
- attributes:
ports:
item:
- device: router4
- device: router5
name: network4
- attributes:
ports:
item:
- device: router5
- device: router6
name: network5
- attributes:
ports:
item:
- device: router6
- device: router7
name: network6
- attributes:
ports:
item:
- device: router7
- device: router8
name: network7
- attributes:
ports:
item:
- device: router8
- device: router9
name: network8
- attributes:
ports:
item:
- device: router9
- device: router10
name: network9
- attributes:
ports:
item:
- device: router10
- device: router1
name: network10
Definition at line 224 of file camphor_api_test.py.
def camphor_api.camphor_api_test.test5_device_for_analytics | ( | int | device_count = 4 , |
int | network_count = 2 |
||
) |
Create a network with better management traffic capable devices.
Using an option
#
# Copyright (C) Camphor Networks, Inc - All Rights Reserved
# Unauthorized copying of this file via any medium is strictly prohibited
# Proprietary and confidential
# Written by Ananth Suryanarayana <ananth@camphornetworks.com>, June 2021
# https://camphornetworks.com/camphor-networks-platform-terms-of-use-and-privacy-policy/
# mailto:info@camphornetworks.com?subject=copyright
#
# yaml-language-server: $schema=/var/lib/camphor/camphor_project_schema.json
#
# Run this command from any camphor cluster node to load this topology!
# export CAMPHOR_PASSWORD='<CamphorPassword>'
# python3 /var/lib/camphor/camphor_api/camphor_manage_device.pyc --oper=load-deployment <yaml-file>
#
---
devices:
attributes:
conf: |2
hostname nxos
snmp-server user admin
username admin password 5 $5$j7tkn468$cxNfE/jPpWmeIjJUOTNdSHcfr47N7pSK.S4h8SGGwe. role network-admin
username admin sshkey ssh-rsa ssh-rsa AAAAB3NzaC1yc2EA
feature bash
feature scp-server
feature bgp
feature ospf
ip domain-lookup
ip name-server 10.0.2.3 use-vrf management
vlan 1
vrf context management
ip domain-name camphor-administrator-default
ip name-server 10.0.2.3
ip route 0.0.0.0/0 10.0.2.2
interface mgmt0
mtu 1376
ip address dhcp
vrf member management
interface Eth1/1
no description
switchport
line console
line vty
boot nxos bootflash:/boot nxos bootflash:/nxos64-cs.10.2.3.F.bin
os: NXOS
passThroughInterface: true
item:
- name: router1
- name: router2
- name: router3
- name: router4
networks:
item:
- attributes:
ports:
item:
- device: router1
- device: router2
- device: router3
- device: router4
name: network1
- attributes:
ports:
item:
- device: router1
- device: router2
- device: router3
- device: router4
name: network2
Definition at line 291 of file camphor_api_test.py.
def camphor_api.camphor_api_test.test6_multi_device_networks | ( | int | device_count = 4 , |
int | network_count = 4 |
||
) |
Create a network with better management traffic capable devices.
Create a topology where same set of devices are created using multiple different networks. Also more than two devices are connected within each camphor network (aka connection)
#
# Copyright (C) Camphor Networks, Inc - All Rights Reserved
# Unauthorized copying of this file via any medium is strictly prohibited
# Proprietary and confidential
# Written by Ananth Suryanarayana <ananth@camphornetworks.com>, June 2021
# https://camphornetworks.com/camphor-networks-platform-terms-of-use-and-privacy-policy/
# mailto:info@camphornetworks.com?subject=copyright
#
# yaml-language-server: $schema=/var/lib/camphor/camphor_project_schema.json
#
# Run this command from any camphor cluster node to load this topology!
# export CAMPHOR_PASSWORD='<CamphorPassword>'
# python3 /var/lib/camphor/camphor_api/camphor_manage_device.pyc --oper=load-deployment <yaml-file>
#
---
devices:
attributes:
os: SONiC
item:
- name: router1
- name: router2
- name: router3
- name: router4
networks:
item:
- attributes:
ports:
item:
- device: router1
- device: router2
- device: router3
- device: router4
name: network1
- attributes:
ports:
item:
- device: router1
- device: router2
- device: router3
- device: router4
name: network2
- attributes:
ports:
item:
- device: router1
- device: router2
- device: router3
- device: router4
name: network3
- attributes:
ports:
item:
- device: router1
- device: router2
- device: router3
- device: router4
name: network4
Definition at line 353 of file camphor_api_test.py.
def camphor_api.camphor_api_test.test7_camphor_topology_file | ( | ) |
Load a camphor network topology from an external yaml file.
#
# Copyright (C) Camphor Networks, Inc - All Rights Reserved
# Unauthorized copying of this file via any medium is strictly prohibited
# Proprietary and confidential
# Written by Ananth Suryanarayana <ananth@camphornetworks.com>, June 2021
# https://camphornetworks.com/camphor-networks-platform-terms-of-use-and-privacy-policy/
# mailto:info@camphornetworks.com?subject=copyright
#
# yaml-language-server: $schema=/var/lib/camphor/camphor_project_schema.json
#
# Run this command from any camphor cluster node to load this topology!
# export CAMPHOR_PASSWORD='<CamphorPassword>'
# python3 /var/lib/camphor/camphor_api/camphor_manage_device.pyc --oper=load-deployment <yaml-file>
#
---
applications:
item:
- attributes:
name: minimal
name: minimal
devices:
attributes:
interfaces: 16
lineCards: 1
location:
address1: '1957'
address2: Limewood Dr
city: San Jose
country: USA
state: California
zip: '95132'
os: cRPD
resource:
cpu:
- 1
- 3
disk:
- 100
- 200
memory:
- 512
- 2048
routingEngines: 1
type: dedicatedVM
version: latest
item:
- attributes:
conf: |
system {
host-name $CAMPHOR_DEVICE;
root-authentication {
encrypted-password "$CAMPHOR_PASSWORD"; ## SECRET-DATA
ssh-rsa "$CAMPHOR_ID_RSA_PUB"; ## SECRET-DATA
}
login {
user admin {
uid 2000;
class super-user;
authentication {
encrypted-password "$CAMPHOR_PASSWORD"; ## SECRET-DATA
ssh-rsa "$CAMPHOR_ID_RSA_PUB"; ## SECRET-DATA
}
}
}
services {
ssh {
root-login allow;
}
netconf {
ssh;
}
}
domain-search [ $CAMPHOR_NAMESPACE ];
name-server {
$CAMPHOR_MGMT_NAMESERVER;
}
}
interfaces {
em0 {
unit 0 {
description "mgmt Network";
family inet {
address $CAMPHOR_MGMT_SUBNET;
}
}
}
}
routing-options {
static {
route 0.0.0.0/0 next-hop $CAMPHOR_MGMT_DEFAULT_GW;
}
}
image:
file:
- master:///root/vmx_image.qcow2
md5sum:
- deadbeef
objectMeta:
count: 4
disable: true
os: MX
synchronize: true
name: router
networks:
item:
- attributes:
monitor: true
objectMeta:
count: -1
ports:
item:
- attributes:
igp: ospf
interface: ge-0/0/1
ipv4Prefix: autoAssign
mtu: 1500
device: router1
- attributes:
igp: ospf
interface: ge-0/0/2
ipv4Prefix: autoAssign
device: router2
name: network1
- attributes:
objectMeta:
count: -1
ports:
item:
- attributes:
igp: ospf
interface: ge-0/0/3
ipv4Prefix: autoAssign
device: router2
- attributes:
igp: ospf
interface: ge-0/0/4
ipv4Prefix: autoAssign
device: router3
name: network2
- attributes:
objectMeta:
count: -1
ports:
item:
- attributes:
igp: ospf
interface: ge-0/0/5
ipv4Prefix: autoAssign
device: router3
- attributes:
igp: ospf
interface: ge-0/0/6
ipv4Prefix: autoAssign
device: router4
name: network3
projects:
item:
- name: default
Definition at line 381 of file camphor_api_test.py.
def camphor_api.camphor_api_test.test8_small_datacenter | ( | ) |
Create a small data center network.
A small data center with pods, racks, leafs, spines and servers are created as shown below.
#
# Copyright (C) Camphor Networks, Inc - All Rights Reserved
# Unauthorized copying of this file via any medium is strictly prohibited
# Proprietary and confidential
# Written by Ananth Suryanarayana <ananth@camphornetworks.com>, June 2021
# https://camphornetworks.com/camphor-networks-platform-terms-of-use-and-privacy-policy/
# mailto:info@camphornetworks.com?subject=copyright
#
# yaml-language-server: $schema=/var/lib/camphor/camphor_project_schema.json
#
# Run this command from any camphor cluster node to load this topology!
# export CAMPHOR_PASSWORD='<CamphorPassword>'
# python3 /var/lib/camphor/camphor_api/camphor_manage_device.pyc --oper=load-deployment <yaml-file>
#
---
deployments:
attributes:
deviceAttributes:
os: SONiC
leafAttributes:
leafs: 2
podAttributes:
pods: 1
rackAttributes:
racks: 2
serverAttributes:
deviceAttributes:
os: ALPINE
servers: 2
spineAttributes:
spines: 2
item:
- attributes:
deploymentAttributes:
type: datacenter
name: dc
Definition at line 398 of file camphor_api_test.py.
def camphor_api.camphor_api_test.test9_medium_datacenter | ( | ) |
Create a medium sized data center network.
A medium sized data center with pods, racks, leafs, spines and servers are created as shown below.
#
# Copyright (C) Camphor Networks, Inc - All Rights Reserved
# Unauthorized copying of this file via any medium is strictly prohibited
# Proprietary and confidential
# Written by Ananth Suryanarayana <ananth@camphornetworks.com>, June 2021
# https://camphornetworks.com/camphor-networks-platform-terms-of-use-and-privacy-policy/
# mailto:info@camphornetworks.com?subject=copyright
#
# yaml-language-server: $schema=/var/lib/camphor/camphor_project_schema.json
#
# Run this command from any camphor cluster node to load this topology!
# export CAMPHOR_PASSWORD='<CamphorPassword>'
# python3 /var/lib/camphor/camphor_api/camphor_manage_device.pyc --oper=load-deployment <yaml-file>
#
---
deployments:
attributes:
deviceAttributes:
os: SONiC
leafAttributes:
leafs: 2
podAttributes:
pods: 2
rackAttributes:
racks: 4
serverAttributes:
deviceAttributes:
os: ALPINE
servers: 4
spineAttributes:
spines: 4
superSpineAttributes:
superSpines: 2
item:
- attributes:
deploymentAttributes:
type: datacenter
name: dc
Definition at line 417 of file camphor_api_test.py.
def camphor_api.camphor_api_test.test10_large_datacenter | ( | ) |
Create a large sized data center network.
A large sized data center with pods, racks, leafs, spines and servers are created as shown below.
#
# Copyright (C) Camphor Networks, Inc - All Rights Reserved
# Unauthorized copying of this file via any medium is strictly prohibited
# Proprietary and confidential
# Written by Ananth Suryanarayana <ananth@camphornetworks.com>, June 2021
# https://camphornetworks.com/camphor-networks-platform-terms-of-use-and-privacy-policy/
# mailto:info@camphornetworks.com?subject=copyright
#
# yaml-language-server: $schema=/var/lib/camphor/camphor_project_schema.json
#
# Run this command from any camphor cluster node to load this topology!
# export CAMPHOR_PASSWORD='<CamphorPassword>'
# python3 /var/lib/camphor/camphor_api/camphor_manage_device.pyc --oper=load-deployment <yaml-file>
#
---
deployments:
attributes:
borderLeafAttributes:
borderLeafs: 2
deviceAttributes:
os: SONiC
leafAttributes:
leafs: 2
podAttributes:
pods: 2
rackAttributes:
racks: 8
serverAttributes:
deviceAttributes:
os: ALPINE
servers: 8
spineAttributes:
spines: 8
superSpineAttributes:
superSpines: 4
item:
- attributes:
deploymentAttributes:
type: datacenter
name: dc
Definition at line 435 of file camphor_api_test.py.
def camphor_api.camphor_api_test.test11_customized_datacenter | ( | ) |
Create a customized data center network.
A large sized data center with pods, racks, leafs, spines and servers are created as shown below.
#
# Copyright (C) Camphor Networks, Inc - All Rights Reserved
# Unauthorized copying of this file via any medium is strictly prohibited
# Proprietary and confidential
# Written by Ananth Suryanarayana <ananth@camphornetworks.com>, June 2021
# https://camphornetworks.com/camphor-networks-platform-terms-of-use-and-privacy-policy/
# mailto:info@camphornetworks.com?subject=copyright
#
# yaml-language-server: $schema=/var/lib/camphor/camphor_project_schema.json
#
# Run this command from any camphor cluster node to load this topology!
# export CAMPHOR_PASSWORD='<CamphorPassword>'
# python3 /var/lib/camphor/camphor_api/camphor_manage_device.pyc --oper=load-deployment <yaml-file>
#
---
deployments:
attributes:
borderLeafAttributes:
borderLeafs: 2
coreAttributes:
cores: 2
deviceAttributes:
os: SONiC
leafAttributes:
leafs: 2
podAttributes:
pods: 2
rackAttributes:
racks: 2
serverAttributes:
deviceAttributes:
os: LINUX
servers: 2
spineAttributes:
spines: 4
superSpineAttributes:
superSpines: 4
vpnAttributes:
addresses: 2
evpns: 2
hosts: 2
vpns: 1
item:
- attributes:
deploymentAttributes:
type: datacenter
name: router
pods:
item:
- attributes:
rackAttributes:
racks: 4
serverAttributes:
servers: 4
name: pod1
Definition at line 454 of file camphor_api_test.py.
def camphor_api.camphor_api_test.test12_ospf_basic | ( | bool | synchronize = False | ) |
Create a simple OSPF Topology of JUNOS Routers.
JUNOS Routers are connected serially
You can see the autogenerated topology at Camphor Networks Platform Dashboard
#
# Copyright (C) Camphor Networks, Inc - All Rights Reserved
# Unauthorized copying of this file via any medium is strictly prohibited
# Proprietary and confidential
# Written by Ananth Suryanarayana <ananth@camphornetworks.com>, June 2021
# https://camphornetworks.com/camphor-networks-platform-terms-of-use-and-privacy-policy/
# mailto:info@camphornetworks.com?subject=copyright
#
# yaml-language-server: $schema=/var/lib/camphor/camphor_project_schema.json
#
# Run this command from any camphor cluster node to load this topology!
# export CAMPHOR_PASSWORD='<CamphorPassword>'
# python3 /var/lib/camphor/camphor_api/camphor_manage_device.pyc --oper=load-deployment <yaml-file>
#
---
devices:
item:
- attributes:
conf: |2
system {
host-name $CAMPHOR_DEVICE;
root-authentication {
encrypted-password "$CAMPHOR_PASSWORD"; ## SECRET-DATA
ssh-rsa "$CAMPHOR_ID_RSA_PUB"; ## SECRET-DATA
}
login {
user admin {
uid 2000;
class super-user;
authentication {
encrypted-password "$CAMPHOR_PASSWORD"; ## SECRET-DATA
ssh-rsa "$CAMPHOR_ID_RSA_PUB"; ## SECRET-DATA
}
}
}
services {
ssh {
root-login allow;
}
netconf {
ssh;
}
}
domain-search [ $CAMPHOR_NAMESPACE ];
name-server {
$CAMPHOR_MGMT_NAMESERVER;
}
}
interfaces {
em0 {
unit 0 {
description "mgmt Network";
family inet {
address $CAMPHOR_MGMT_SUBNET;
}
}
}
ge-0/0/3 {
unit 0 {
description "ospf interface1";
family inet {
address 1.1.1.1/24;
}
}
}
ge-0/0/4 {
unit 0 {
description "ospf interface2";
family inet {
address 1.1.2.1/24;
}
}
}
lo0 {
unit 0 {
description "mgmt Network";
family inet {
address 100.100.0.1;
}
}
}
}
protocols {
ospf {
area 0.0.0.0 {
interface ge-0/0/3.0;
interface ge-0/0/4.0;
interface lo0.0;
}
}
}
routing-options {
static{
route 0.0.0.0/0 next-hop $CAMPHOR_MGMT_DEFAULT_GW;
}
}
os: OLIVE
version: latest
name: router1
- attributes:
conf: |2
system {
host-name $CAMPHOR_DEVICE;
root-authentication {
encrypted-password "$CAMPHOR_PASSWORD"; ## SECRET-DATA
ssh-rsa "$CAMPHOR_ID_RSA_PUB"; ## SECRET-DATA
}
login {
user admin {
uid 2000;
class super-user;
authentication {
encrypted-password "$CAMPHOR_PASSWORD"; ## SECRET-DATA
ssh-rsa "$CAMPHOR_ID_RSA_PUB"; ## SECRET-DATA
}
}
}
services {
ssh {
root-login allow;
}
netconf {
ssh;
}
}
domain-search [ $CAMPHOR_NAMESPACE ];
name-server {
$CAMPHOR_MGMT_NAMESERVER;
}
}
interfaces {
em0 {
unit 0 {
description "mgmt Network";
family inet {
address $CAMPHOR_MGMT_SUBNET;
}
}
}
ge-0/0/3 {
unit 0 {
description "ospf interface1";
family inet {
address 1.1.2.2/24;
}
}
}
ge-0/0/4 {
unit 0 {
description "ospf interface2";
family inet {
address 1.1.3.2/24;
}
}
}
lo0 {
unit 0 {
description "mgmt Network";
family inet {
address 100.100.0.2;
}
}
}
}
protocols {
ospf {
area 0.0.0.0 {
interface ge-0/0/3.0;
interface ge-0/0/4.0;
interface lo0.0;
}
}
}
routing-options {
static{
route 0.0.0.0/0 next-hop $CAMPHOR_MGMT_DEFAULT_GW;
}
}
os: OLIVE
version: latest
name: router2
- attributes:
conf: |2
system {
host-name $CAMPHOR_DEVICE;
root-authentication {
encrypted-password "$CAMPHOR_PASSWORD"; ## SECRET-DATA
ssh-rsa "$CAMPHOR_ID_RSA_PUB"; ## SECRET-DATA
}
login {
user admin {
uid 2000;
class super-user;
authentication {
encrypted-password "$CAMPHOR_PASSWORD"; ## SECRET-DATA
ssh-rsa "$CAMPHOR_ID_RSA_PUB"; ## SECRET-DATA
}
}
}
services {
ssh {
root-login allow;
}
netconf {
ssh;
}
}
domain-search [ $CAMPHOR_NAMESPACE ];
name-server {
$CAMPHOR_MGMT_NAMESERVER;
}
}
interfaces {
em0 {
unit 0 {
description "mgmt Network";
family inet {
address $CAMPHOR_MGMT_SUBNET;
}
}
}
ge-0/0/3 {
unit 0 {
description "ospf interface1";
family inet {
address 1.1.3.3/24;
}
}
}
ge-0/0/4 {
unit 0 {
description "ospf interface2";
family inet {
address 1.1.4.3/24;
}
}
}
lo0 {
unit 0 {
description "mgmt Network";
family inet {
address 100.100.0.3;
}
}
}
}
protocols {
ospf {
area 0.0.0.0 {
interface ge-0/0/3.0;
interface ge-0/0/4.0;
interface lo0.0;
}
}
}
routing-options {
static{
route 0.0.0.0/0 next-hop $CAMPHOR_MGMT_DEFAULT_GW;
}
}
os: OLIVE
version: latest
name: router3
networks:
item:
- attributes:
ports:
item:
- attributes:
interface: ge-0/0/4
device: router1
- attributes:
interface: ge-0/0/3
device: router2
name: router1--router2
- attributes:
ports:
item:
- attributes:
interface: ge-0/0/4
device: router2
- attributes:
interface: ge-0/0/3
device: router3
name: router2--router3
Definition at line 494 of file camphor_api_test.py.
def camphor_api.camphor_api_test.test13_device_with_pci_passthrough | ( | int | device_count = 4 | ) |
Create devices with PCI Cards pass through from underlying host such as GPUs, NPUs and IPUs.
Seamlessly pass PCI devices all the way into the virtualized servers so that those devices can be readily availed even though the entire environment could be completely virtual.
#
# Copyright (C) Camphor Networks, Inc - All Rights Reserved
# Unauthorized copying of this file via any medium is strictly prohibited
# Proprietary and confidential
# Written by Ananth Suryanarayana <ananth@camphornetworks.com>, June 2021
# https://camphornetworks.com/camphor-networks-platform-terms-of-use-and-privacy-policy/
# mailto:info@camphornetworks.com?subject=copyright
#
# yaml-language-server: $schema=/var/lib/camphor/camphor_project_schema.json
#
# Run this command from any camphor cluster node to load this topology!
# export CAMPHOR_PASSWORD='<CamphorPassword>'
# python3 /var/lib/camphor/camphor_api/camphor_manage_device.pyc --oper=load-deployment <yaml-file>
#
---
devices:
attributes:
os: LINUX_UBUNTU
item:
- name: server1
- name: server2
- name: server3
- name: server4
- attributes:
passThroughPCIDevices:
- 7d:00.0
- 7f:00.0
name: server-gpu1
- attributes:
passThroughPCIDevices:
- 8d:00.0:compute1
- 8f:00.0:compute1
name: server-gpu2
Definition at line 550 of file camphor_api_test.py.
def camphor_api.camphor_api_test.test14_device_with_k8_pods | ( | int | device_count = int(environ.get('CAMPHOR_TEST_DEVICE_COUNT', '4')) , |
int | network_count = int(environ.get('CAMPHOR_TEST_NETWORK_COUNT', '4')) , |
||
bool | synchronize = environ.get('CAMPHOR_TEST_SYNCHRONIZE', '').upper() == 'TRUE' |
||
) |
Create a network of devices and verify wih K8.
In camphor, for each device (VM/Container) created, Kubernetes resources are automatically created and managed. Walk through such K8 resources and verify.
#
# Copyright (C) Camphor Networks, Inc - All Rights Reserved
# Unauthorized copying of this file via any medium is strictly prohibited
# Proprietary and confidential
# Written by Ananth Suryanarayana <ananth@camphornetworks.com>, June 2021
# https://camphornetworks.com/camphor-networks-platform-terms-of-use-and-privacy-policy/
# mailto:info@camphornetworks.com?subject=copyright
#
# yaml-language-server: $schema=/var/lib/camphor/camphor_project_schema.json
#
# Run this command from any camphor cluster node to load this topology!
# export CAMPHOR_PASSWORD='<CamphorPassword>'
# python3 /var/lib/camphor/camphor_api/camphor_manage_device.pyc --oper=load-deployment <yaml-file>
#
---
devices:
item:
- attributes:
os: SONiC
type: dedicatedVM
name: router1
- attributes:
os: SONiC
type: dedicatedVM
name: router2
- attributes:
os: SONiC
type: dedicatedVM
name: router3
- attributes:
os: SONiC
type: dedicatedVM
name: router4
networks:
item:
- attributes:
ports:
item:
- device: router1
- device: router2
- device: router3
- device: router4
name: network1
- attributes:
ports:
item:
- device: router1
- device: router2
- device: router3
- device: router4
name: network2
- attributes:
ports:
item:
- device: router1
- device: router2
- device: router3
- device: router4
name: network3
- attributes:
ports:
item:
- device: router1
- device: router2
- device: router3
- device: router4
name: network4
Definition at line 580 of file camphor_api_test.py.
def camphor_api.camphor_api_test.test15_device_pause | ( | str | name = 'router' , |
int | count = 4 |
||
) |
Pause devices.
Pause the VM devices by informing the camphor controller.
[in] | name | Name of the device, prefix if {count} > 0 |
[in] | count | Number of devices |
Definition at line 600 of file camphor_api_test.py.
def camphor_api.camphor_api_test.test16_device_resume | ( | str | name = 'router' , |
int | count = 4 |
||
) |
Resume devices.
Resume the VM devices (which were paused before) by informing the camphor controller.
[in] | name | Name of the device, prefix if {count} > 0 |
[in] | count | Number of devices |
Definition at line 614 of file camphor_api_test.py.
def camphor_api.camphor_api_test.test17_device_shutdown | ( | str | name = 'router' , |
int | count = 4 |
||
) |
Shutdown devices.
Shutdown the VM devices by informing the camphor controller.
[in] | name | Name of the device, prefix if {count} > 0 |
[in] | count | Number of devices |
Definition at line 628 of file camphor_api_test.py.
def camphor_api.camphor_api_test.test18_device_restart | ( | str | name = 'router' , |
int | count = 4 |
||
) |
Restart devices.
Restart VM devices by informing the camphor controller.
[in] | count | Number of devices |
Definition at line 641 of file camphor_api_test.py.
def camphor_api.camphor_api_test.test19_device_recreate | ( | str | name = 'router' , |
int | count = 4 |
||
) |
Recreate devices.
Recreate devices by recreating associated Kubernetes pods
[in] | name | Name of the device, prefix if {count} > 0 |
[in] | count | Number of devices |
Definition at line 655 of file camphor_api_test.py.
def camphor_api.camphor_api_test.test20_device_pullconf | ( | str | name = 'router' , |
int | count = 4 |
||
) |
Pull Configuration from devices.
Pull configuration from devices and save them under camphor device configuration
[in] | name | Name of the device, prefix if {count} > 0 |
[in] | count | Number of devices |
Definition at line 669 of file camphor_api_test.py.
def camphor_api.camphor_api_test.test21_device_pushconf | ( | str | name = 'router' , |
int | count = 4 |
||
) |
Push Configuration to devices.
Push camphor device configuration to devices
[in] | name | Name of the device, prefix if {count} > 0 |
[in] | count | Number of devices |
Definition at line 683 of file camphor_api_test.py.
def camphor_api.camphor_api_test.test22_device_interface_link_down | ( | str | name = 'router' , |
int | count = 4 |
||
) |
Turn down interface link state.
Turn interface link state down so that the device detects and takes appropriate actions.
[in] | name | Name of the device, prefix if {count} > 0 |
[in] | count | Number of devices |
Definition at line 697 of file camphor_api_test.py.
def camphor_api.camphor_api_test.test23_device_interface_link_up | ( | str | name = 'router' , |
int | count = 4 |
||
) |
Turn up interface link state.
Turn interface link state up so that the device detects and takes appropriate actions.
[in] | name | Name of the device, prefix if {count} > 0 |
[in] | count | Number of devices |
Definition at line 712 of file camphor_api_test.py.
def camphor_api.camphor_api_test.test24_device_interface_admin_down | ( | str | name = 'router' , |
int | count = 4 |
||
) |
Turn down interface admin state.
Turn interface admin state down so that all inbound and outbound packets get dropped
[in] | name | Name of the device, prefix if {count} > 0 |
[in] | count | Number of devices |
Definition at line 727 of file camphor_api_test.py.
def camphor_api.camphor_api_test.test25_device_interface_admin_up | ( | str | name = 'router' , |
int | count = 4 |
||
) |
Turn up interface admin state.
Turn interface admin state up so that all inbound and outbound packets get forwarded
[in] | name | Name of the device, prefix if {count} > 0 |
[in] | count | Number of devices |
Definition at line 742 of file camphor_api_test.py.
def camphor_api.camphor_api_test.test26_application_drawio | ( | ) |
Create application DrawIO Diagrams Editor.
drawio is a great diagram editing web application. It lets users create network and other diagrams easily. Also, the generated diagrams can be made dynamic by pointing to other live entities such as camphor devices and networks.
Definition at line 755 of file camphor_api_test.py.
def camphor_api.camphor_api_test.test27_application_grafana | ( | ) |
Create application Grafana Graphs Generator.
grafana is a graph and charts rendering application. It lets users create custom dashboard with time series and other kind of data easily. Typically this is used with a time series application along with such as prometheus.
Definition at line 767 of file camphor_api_test.py.
def camphor_api.camphor_api_test.test28_application_jenkins | ( | ) |
Create application Jenkins Jobs Manager.
Jenkins is a job manager. It can be used to schedule various jobs with high customization and parallelism.
Definition at line 778 of file camphor_api_test.py.
def camphor_api.camphor_api_test.test29_application_jupyter_notebook | ( | ) |
Create application Jupyter Notebook for Easy Automation.
Jupyter Notebook is a great automation framework for python and ruby. Though typically used in ML, this can also be utilized in camphor against network devices there by readily creating amazing live documents with ready access to camphor devices and other entities.
Definition at line 791 of file camphor_api_test.py.
def camphor_api.camphor_api_test.test30_application_kibana | ( | ) |
Create application Elastic Search Based Kibana Logs Analyzer.
Kibana aka ELK Stack (ElasticSearch Database, Logstash Logs Manager and Kibana Dashboard) works amazingly together to give users single plane of glass to analyze logs and other metrics from multiple sources in a highly scalable and efficient manner.
Definition at line 804 of file camphor_api_test.py.
def camphor_api.camphor_api_test.test31_application_novnc | ( | ) |
Create application noVNC Remote Desktop for Ubuntu Linux.
noVNC is a generic ubuntu based image with remote access via VNC and RDP. It is a very convenient application where in one can run their custom linux based application with ready direct DNS name based access to all the devices.
Definition at line 816 of file camphor_api_test.py.
def camphor_api.camphor_api_test.test32_application_opennms | ( | ) |
Create application OpenNMS Network Management Station.
opennms is a popular and highly feature rich network management station. It can be used to manage networks via SNMP, OPENBMP, CLI, NetConf/RestConf and other technologies.
Definition at line 828 of file camphor_api_test.py.
def camphor_api.camphor_api_test.test33_application_suzieq | ( | ) |
Create application SuzieQ Network Analytics Manager, especially for Data Centers.
SuzieQ is network management application that can track routing protocols, interfaces, address, etc. easily at scale and provide extremely insightful information for managing modern networks, specifically the data centers.
Definition at line 840 of file camphor_api_test.py.
def camphor_api.camphor_api_test.test34_application_wordpress | ( | ) |
Create application WordPress WebSite Hosting Platform.
WordPress is the most popular web site hosting application. In camphor, users can readily instantiate wordpress.
Definition at line 851 of file camphor_api_test.py.
def camphor_api.camphor_api_test.test35_datacenter_cisco | ( | ) |
Load a cisco network topology from an external yaml file.
#
# Copyright (C) Camphor Networks, Inc - All Rights Reserved
# Unauthorized copying of this file via any medium is strictly prohibited
# Proprietary and confidential
# Written by Ananth Suryanarayana <ananth@camphornetworks.com>, June 2021
# https://camphornetworks.com/camphor-networks-platform-terms-of-use-and-privacy-policy/
# mailto:info@camphornetworks.com?subject=copyright
#
# yaml-language-server: $schema=/var/lib/camphor/camphor_project_schema.json
#
# Run this command from any camphor cluster node to load this topology!
# export CAMPHOR_PASSWORD='<CamphorPassword>'
# python3 /var/lib/camphor/camphor_api/camphor_manage_device.pyc --oper=load-deployment <yaml-file>
#
---
applications:
item:
- attributes:
name: novnc
name: ap
deployments:
attributes:
leafAttributes:
interLinks: 3
leafPortStart: 1
leafs: 1
podAttributes:
pods: 1
rackAttributes:
racks: 1
routeReflectorAttributes:
peer: pod1-rack1-leaf1
serverAttributes:
eses: 1
servers: 1
spineAttributes:
leafPortStart: 1
spineGroups: 1
spines: 1
superSpineAttributes:
superSpineGroups: 1
vpnAttributes:
addresses: 10
enablePinger: true
evpns: 1
hosts: 10
vpns: 1
item:
- attributes:
deploymentAttributes:
type: datacenter
cores:
item:
- attributes:
deviceAttributes:
os: LINUX
name: core2
leafs:
attributes:
deviceAttributes:
image:
file:
- master:///local/cisco/camphor/nexus9500v64.10.2.3.F.qcow2
md5sum:
- d3e08d16c50a6f5b442aa4dc7eb7d08c
mgmtDomain: cisco.com
mgmtGateway: 172.16.16.1
mgmtInterfaceBridge: enp125s0
mgmtNameServer: 172.16.0.2
os: NXOS
version: '10.2'
leafAttributes:
serverPortStart: 11
spinePortStart: 21
name: datacenter1
pods:
item:
- attributes:
rackAttributes:
racks: 6
spineAttributes:
spines: 2
name: pod1
racks:
item:
- attributes:
serverAttributes:
eses: 10
name: pod1-rack1
- attributes:
leafAttributes:
leafs: 2
serverAttributes:
eses: 10
name: pod1-rack2
- attributes:
leafAttributes:
leafs: 2
name: pod1-rack5
servers:
attributes:
deviceAttributes:
generateDefaultConf: true
livenessProbeFailureThreshold: 4
livenessProbeInitialDelay: 180
livenessProbePeriod: 30
livenessProbeTimeout: 30
os: LINUX_ALPINE
resource:
cpu:
- 1
disk:
- 50
memory:
- 512
synchronize: true
serverAttributes:
leafPortStart: 1
item:
- attributes:
deviceAttributes:
objectMeta:
description: Custom description for pod1-rack3-server1
name: pod1-rack3-server1
spines:
attributes:
deviceAttributes:
image:
file:
- master:///local/cisco/camphor/nexus9500v64.10.2.3.F.qcow2
md5sum:
- d3e08d16c50a6f5b442aa4dc7eb7d08c
mgmtDomain: cisco.com
mgmtGateway: 172.16.16.1
mgmtInterfaceBridge: enp125s0
mgmtNameServer: 172.16.0.2
os: NXOS
version: '10.2'
devices:
attributes:
conf: master:///local/cisco/camphor/$CAMPHOR_USERNAME/$CAMPHOR_PROJECT/Device/$CAMPHOR_DEVICE/device.conf
interfaces: 24
livenessProbeFailureThreshold: 40
livenessProbeInitialDelay: 1200
livenessProbePeriod: 30
livenessProbeTimeout: 30
os: NXOS
resource:
cpu:
- 2
disk:
- 100
memory:
- 8096
type: dedicatedVM
item:
- attributes:
mgmtAddress: 172.16.18.101/22
mgmtMacAddress: 02:02:AC:10:12:65
name: pod1-spinegroup1-spine1
- attributes:
mgmtAddress: 172.16.18.102/22
mgmtMacAddress: 02:02:AC:10:12:66
name: pod1-spinegroup1-spine2
- attributes:
mgmtAddress: 172.16.18.103/22
mgmtMacAddress: 02:02:AC:10:12:67
name: pod1-rack1-leaf1
- attributes:
mgmtAddress: 172.16.18.104/22
mgmtMacAddress: 02:02:AC:10:12:68
name: pod1-rack2-leaf1
- attributes:
mgmtAddress: 172.16.18.105/22
mgmtMacAddress: 02:02:AC:10:12:69
name: pod1-rack2-leaf2
- attributes:
mgmtAddress: 172.16.18.106/22
mgmtMacAddress: 02:02:AC:10:12:6A
name: pod1-rack3-leaf1
- attributes:
mgmtAddress: 172.16.18.107/22
mgmtMacAddress: 02:02:AC:10:12:6B
name: pod1-rack4-leaf1
- attributes:
mgmtAddress: 172.16.18.108/22
mgmtMacAddress: 02:02:AC:10:12:6C
name: pod1-rack5-leaf1
- attributes:
mgmtAddress: 172.16.18.109/22
mgmtMacAddress: 02:02:AC:10:12:6D
name: pod1-rack5-leaf2
- attributes:
mgmtAddress: 172.16.18.110/22
mgmtMacAddress: 02:02:AC:10:12:6E
name: pod1-rack6-leaf1
drawings:
item:
- attributes:
file: "/var/lib/camphor/topologies/datacenter_cisco.drawio"
name: datacenter_cisco
topologys:
item:
- attributes:
imageFile: "/var/lib/camphor/topologies/datacenter_cisco.svg"
imageMapFile: "/var/lib/camphor/topologies/datacenter_cisco.cmapx"
name: datacentre_cisco
Definition at line 863 of file camphor_api_test.py.
def camphor_api.camphor_api_test.test36_datacenter_convergeone | ( | ) |
Load a convergeone network topology from an external yaml file.
#
# Copyright (C) Camphor Networks, Inc - All Rights Reserved
# Unauthorized copying of this file via any medium is strictly prohibited
# Proprietary and confidential
# Written by Ananth Suryanarayana <ananth@camphornetworks.com>, June 2021
# https://camphornetworks.com/camphor-networks-platform-terms-of-use-and-privacy-policy/
# mailto:info@camphornetworks.com?subject=copyright
#
# yaml-language-server: $schema=/var/lib/camphor/camphor_project_schema.json
#
# Run this command from any camphor cluster node to load this topology!
# export CAMPHOR_PASSWORD='<CamphorPassword>'
# python3 /var/lib/camphor/camphor_api/camphor_manage_device.pyc --oper=load-deployment <yaml-file>
#
---
deployments:
attributes:
borderLeafAttributes:
borderLeafs: 1
deviceAttributes:
image:
file:
- master:///local/camphor/convergeone/junos-media-vsrx-x86-64-vmdisk-22.3R1.11.qcow2
md5sum:
- 2fcb59fc6a9c36b8350561e7e21fad5a
os: SRX
deploymentAttributes:
type: datacenter
leafAttributes:
deviceAttributes:
image:
file:
- master:///local/camphor/convergeone/vJunos-switch-23.2R1.14.qcow2
md5sum:
- 256039b658a8ddce0b955d4cb8fb3048
os: vJUNOS_SWITCH
leafs: 1
podAttributes:
pods: 1
rackAttributes:
racks: 2
serverAttributes:
servers: 2
spineAttributes:
deviceAttributes:
image:
file:
- master:///local/camphor/convergeone/vJunos-switch-23.2R1.14.qcow2
md5sum:
- 256039b658a8ddce0b955d4cb8fb3048
os: vJUNOS_SWITCH
spineGroups: 1
spines: 1
item:
- name: dc1
devices:
attributes:
conf: |
set system services ssh protocol-version v2
set system authentication-order password
set system login user mist class super-user
set system login user mist authentication encrypted-password $6$PDR2mZhDvgn9emz2$AjRXWo6F6KaGzLLoCjvBGFjnlYZGFyR95kW/THDIZ94dGLehJUAItavLdX8PpmL0GKz8ZtFIWvytMQKKTYYFp/
set system login user mist authentication ssh-rsa "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDCX/umzDwMMhoFEFTJO/G19fU5STIXjrhU0XC8lniIeY/e4mghJ6up3f/eMB2X5GRNuGimcnwv+p/WMgaUrMRpBLZSf1SzlJrffHAmXO++9VoKkSvIU5L90LyHgE8SARygJmQLZXkQvlWN2ozUmorjDePBaLalvkZ/bA+J2k3MYn1qBD8vwq/I4etQeBL4p/vL+3bqc8h6+6Izs3swJVHoV5Y6ce8kznqDijDnsqo9UdpqRV1Kry13vKDcT0oezrovVRwxc7ZRYngxGps83KOlGKPI+BP/sMqEaZppQoaqmqP6GSdFvKMytCWXVva7u/VxXb9TFM3Vq4Dk2vCBINS9ywyWTS1CikAxVqxEbWhnjHO5HHHjtjnoW51yzrV0qAd5cBezA+fv6IHADN78TM8yA88m0fJRF+K27KXuIu0usg/CiJi6h74GFqUf8+epsTFYaeij6BV0p3m6YlmMxwKSOMB+NHC40wvXP59CHpUDoZwWQ2HVavguKXw4b8pw6uM= mist@775954af-5a1c-4203-a4b0-25f622f6f088"
set system services outbound-ssh client mist device-id 775954af-5a1c-4203-a4b0-25f622f6f088
set system services outbound-ssh client mist secret 4eb74b3c1a75b36c22e594a19c0d0e7af069e752bd74d4147a5d6b2ab378e118e258d4c1e573b1d729eedc00780e2860f74f9ed07196e5ef82cc2869f665054a
set system services outbound-ssh client mist services netconf keep-alive retry 12 timeout 5
set system services outbound-ssh client mist oc-term.mistsys.net port 2200 timeout 60 retry 1000
generateDefaultConf: true
os: LINUX_ALPINE
synchronize: true
type: dedicatedVM
Definition at line 878 of file camphor_api_test.py.
def camphor_api.camphor_api_test.test37_datacenter_aviz | ( | ) |
Load a aviz network topology from an external yaml file.
#
# Copyright (C) Camphor Networks, Inc - All Rights Reserved
# Unauthorized copying of this file via any medium is strictly prohibited
# Proprietary and confidential
# Written by Ananth Suryanarayana <ananth@camphornetworks.com>, June 2021
# https://camphornetworks.com/camphor-networks-platform-terms-of-use-and-privacy-policy/
# mailto:info@camphornetworks.com?subject=copyright
#
# yaml-language-server: $schema=/var/lib/camphor/camphor_project_schema.json
#
# Run this command from any camphor cluster node to load this topology!
# export CAMPHOR_PASSWORD='<CamphorPassword>'
# python3 /var/lib/camphor/camphor_api/camphor_manage_device.pyc --oper=load-deployment <yaml-file>
#
---
applications:
item:
- attributes:
name: novnc
name: a1
deployments:
attributes:
borderLeafAttributes:
deviceAttributes:
interfaces: 8
interLinks: 2
deploymentAttributes:
overlay: evpn
type: datacenter
underlay: ebgp
leafAttributes:
deviceAttributes:
interfaces: 8
interLinks: 2
leafs: 2
podAttributes:
pods: 2
rackAttributes:
racks: 1
serverAttributes:
deviceAttributes:
interfaces: 3
os: LINUX_ALPINE
eses: 1
servers: 2
spineAttributes:
deviceAttributes:
interfaces: 8
spineGroups: 1
spines: 1
superSpineAttributes:
deviceAttributes:
interfaces: 8
superSpineGroups: 1
superSpines: 1
vpnAttributes:
addresses: 2
enablePinger: true
evpns: 2
hosts: 2
vpns: 2
item:
- name: dc1
devices:
attributes:
generateDefaultConf: true
os: SONiC
passThroughInterface: true
resource:
cpu:
- 4
- 4
disk:
- 100
- 100
memory:
- 2048
- 2048
synchronize: true
type: dedicatedVM
uniqueManagementAddress: true
version: 4.1.1-Ones-VS_v2.0.0
item:
- attributes:
interfaces: 2
os: LINUX_UBUNTU
resource:
cpu:
- 4
disk:
- 200
memory:
- 8096
serialNumber: 99c5cd10-7934-44ec-acc3-3d4ac053bc3c
servicePorts:
- '443'
type: dedicatedVM
name: aviz-ones-app
networks:
attributes:
portAttributes:
interface: autoAssign
ipv4Prefix: autoAssign
mtu: 1500
Definition at line 893 of file camphor_api_test.py.
def camphor_api.camphor_api_test.test38_datacenter_augtera | ( | ) |
Load a augtera network topology from an external yaml file.
#
# Copyright (C) Camphor Networks, Inc - All Rights Reserved
# Unauthorized copying of this file via any medium is strictly prohibited
# Proprietary and confidential
# Written by Ananth Suryanarayana <ananth@camphornetworks.com>, June 2021
# https://camphornetworks.com/camphor-networks-platform-terms-of-use-and-privacy-policy/
# mailto:info@camphornetworks.com?subject=copyright
#
# yaml-language-server: $schema=/var/lib/camphor/camphor_project_schema.json
#
# Run this command from any camphor cluster node to load this topology!
# export CAMPHOR_PASSWORD='<CamphorPassword>'
# python3 /var/lib/camphor/camphor_api/camphor_manage_device.pyc --oper=load-deployment <yaml-file>
#
---
applications:
item:
- attributes:
name: novnc
name: novnc
deployments:
attributes:
borderLeafAttributes:
borderLeafs: 1
coreAttributes:
cores: 1
deploymentAttributes:
type: datacenter
leafAttributes:
leafs: 1
podAttributes:
pods: 1
rackAttributes:
racks: 2
serverAttributes:
eses: 1
servers: 2
spineAttributes:
spines: 2
item:
- attributes:
deviceAttributes:
interfaces: 4
borderLeafs:
attributes:
deviceAttributes:
interfaces: 4
os: MX
cores:
attributes:
deviceAttributes:
interfaces: 4
os: IOSXR
leafs:
attributes:
deviceAttributes:
interfaces: 8
os: EOS
name: datacenter1
servers:
attributes:
deviceAttributes:
generateDefaultConf: true
interfaces: 1
os: LINUX_UBUNTU
spines:
attributes:
deviceAttributes:
interfaces: 4
os: NXOS
devices:
attributes:
livenessProbeFailureThreshold: 40
livenessProbeInitialDelay: 1200
livenessProbePeriod: 30
livenessProbeTimeout: 30
synchronize: true
type: dedicatedVM
item:
- attributes:
os: SONiC
name: pod1-spinegroup1-spine2
- attributes:
os: QFX
name: pod1-rack2-leaf1
- attributes:
interfaces: 1
os: FRR
type: external
name: dc1-core1
- attributes:
os: LINUX_UBUNTU
passThroughInterface: true
resource:
cpu:
- 4
disk:
- 100
memory:
- 8096
servicePorts:
- udp-514
type: dedicatedVM
name: augtera-onpremise-controller
drawings:
item:
- attributes:
file: "/var/lib/camphor/topologies/datacenter_augtera.drawio"
name: datacenter_augtera
networks:
attributes:
portAttributes:
igp: ospf
interface: autoAssign
ipv4Prefix: autoAssign
mtu: 1500
item:
- attributes:
ports:
item:
- attributes:
interface: ge-0/0/1
device: dc1-core1
- device: core1
name: camphor1-core1-dc1-core1
topologys:
item:
- attributes:
imageFile: "/var/lib/camphor/topologies/datacenter_augtera.svg"
imageMapFile: "/var/lib/camphor/topologies/datacenter_augtera.cmapx"
name: datacenter_augtera
Definition at line 908 of file camphor_api_test.py.
def camphor_api.camphor_api_test.test39_datacenter_junos | ( | ) |
Load a junos network topology from an external yaml file.
#
# Copyright (C) Camphor Networks, Inc - All Rights Reserved
# Unauthorized copying of this file via any medium is strictly prohibited
# Proprietary and confidential
# Written by Ananth Suryanarayana <ananth@camphornetworks.com>, June 2021
# https://camphornetworks.com/camphor-networks-platform-terms-of-use-and-privacy-policy/
# mailto:info@camphornetworks.com?subject=copyright
#
# yaml-language-server: $schema=/var/lib/camphor/camphor_project_schema.json
#
# Run this command from any camphor cluster node to load this topology!
# export CAMPHOR_PASSWORD='<CamphorPassword>'
# python3 /var/lib/camphor/camphor_api/camphor_manage_device.pyc --oper=load-deployment <yaml-file>
#
---
applications:
item:
- attributes:
name: novnc
name: a1
- attributes:
name: suzieq
name: a2
deployments:
attributes:
borderLeafAttributes:
deviceAttributes:
interfaces: 8
interLinks: 2
deploymentAttributes:
overlay: evpn
type: datacenter
underlay: ebgp
leafAttributes:
deviceAttributes:
interfaces: 8
interLinks: 2
leafs: 2
podAttributes:
pods: 2
rackAttributes:
racks: 1
serverAttributes:
deviceAttributes:
interfaces: 2
os: LINUX_ALPINE
eses: 1
servers: 2
spineAttributes:
deviceAttributes:
interfaces: 8
spineGroups: 1
spines: 1
superSpineAttributes:
deviceAttributes:
interfaces: 8
superSpineGroups: 1
superSpines: 1
vpnAttributes:
addresses: 2
enablePinger: true
evpns: 2
hosts: 2
vpns: 2
item:
- leafs:
item:
- attributes:
deviceAttributes:
monitor: true
resource:
cpu:
- 4
memory:
- 8096
name: pod1-rack1-leaf1
name: dc1
servers:
item:
- attributes:
deviceAttributes:
os: LINUX_UBUNTU
resource:
cpu:
- 4
disk:
- 50
memory:
- 8096
servicePorts:
- '443'
- '8443'
- '8080'
name: pod1-rack1-server1
- attributes:
deviceAttributes:
os: LINUX_UBUNTU
resource:
cpu:
- 2
disk:
- 50
memory:
- 2048
name: pod1-rack1-server2
- attributes:
deviceAttributes:
os: LINUX_UBUNTU
resource:
cpu:
- 2
disk:
- 50
memory:
- 2048
name: pod2-rack1-server1
- attributes:
deviceAttributes:
os: LINUX_UBUNTU
resource:
cpu:
- 2
disk:
- 50
memory:
- 2048
name: pod2-rack1-server2
devices:
attributes:
generateDefaultConf: true
os: QFX
resource:
cpu:
- 4
- 4
disk:
- 100
- 100
memory:
- 2048
- 2048
synchronize: true
type: dedicatedVM
networks:
attributes:
portAttributes:
interface: autoAssign
ipv4Prefix: autoAssign
mtu: 1500
profiles:
item:
- attributes:
trafficProfiles:
item:
- attributes:
destinationAddress: 51.1.1.4
destinationDevice: pod2-rack1-sever1
sourceAddress: 51.1.1.0
sourceContainer: cnb1-101-1-n
sourceDevice: pod1-rack1-server1
trafficProfileName: tcp1
- attributes:
destinationAddress: 51.2.1.4
destinationDevice: pod2-rack1-sever1
sourceAddress: 51.1.1.1
sourceContainer: cnb1-101-1-n
sourceDevice: pod1-rack1-server1
trafficProfileName: tcp2
type: trafficProfile
name: profile1
Definition at line 923 of file camphor_api_test.py.
def camphor_api.camphor_api_test.test40_datacenter_arrcus | ( | ) |
Load a arrcus network topology from an external yaml file.
#
# Copyright (C) Camphor Networks, Inc - All Rights Reserved
# Unauthorized copying of this file via any medium is strictly prohibited
# Proprietary and confidential
# Written by Ananth Suryanarayana <ananth@camphornetworks.com>, June 2021
# https://camphornetworks.com/camphor-networks-platform-terms-of-use-and-privacy-policy/
# mailto:info@camphornetworks.com?subject=copyright
#
# yaml-language-server: $schema=/var/lib/camphor/camphor_project_schema.json
#
# Run this command from any camphor cluster node to load this topology!
# export CAMPHOR_PASSWORD='<CamphorPassword>'
# python3 /var/lib/camphor/camphor_api/camphor_manage_device.pyc --oper=load-deployment <yaml-file>
#
---
applications:
item:
- attributes:
name: none
name: a1
deployments:
attributes:
borderLeafAttributes:
borderLeafs: 2
deviceAttributes:
interfaces: 8
os: cARCEDGE
interLinks: 2
deploymentAttributes:
type: datacenter
leafAttributes:
deviceAttributes:
interfaces: 8
os: ARCEDGE
type: dedicatedVM
interLinks: 2
leafs: 1
podAttributes:
pods: 2
rackAttributes:
racks: 1
routeReflectorAttributes:
routeReflectors: 1
serverAttributes:
deviceAttributes:
interfaces: 2
os: LINUX_ALPINE
type: dedicatedVM
eses: 1
servers: 1
spineAttributes:
deviceAttributes:
interfaces: 8
os: ARCOS
type: dedicatedVM
spineGroups: 1
spines: 1
superSpineAttributes:
deviceAttributes:
interfaces: 8
os: cARCOS
superSpineGroups: 1
superSpines: 1
vpnAttributes:
addresses: 1
evpns: 1
hosts: 1
vpns: 1
item:
- name: dc1
routeReflectors:
item:
- attributes:
deviceAttributes:
os: ARCOS
name: rr1
devices:
attributes:
generateDefaultConf: true
os: ARCOS
synchronize: true
type: dedicatedVM
networks:
attributes:
portAttributes:
igp: ospf
interface: autoAssign
ipv4Prefix: autoAssign
mtu: 1336
Definition at line 938 of file camphor_api_test.py.
def camphor_api.camphor_api_test.test41_datacenter_arista | ( | ) |
Load a arista network topology from an external yaml file.
#
# Copyright (C) Camphor Networks, Inc - All Rights Reserved
# Unauthorized copying of this file via any medium is strictly prohibited
# Proprietary and confidential
# Written by Ananth Suryanarayana <ananth@camphornetworks.com>, June 2021
# https://camphornetworks.com/camphor-networks-platform-terms-of-use-and-privacy-policy/
# mailto:info@camphornetworks.com?subject=copyright
#
# yaml-language-server: $schema=/var/lib/camphor/camphor_project_schema.json
#
# Run this command from any camphor cluster node to load this topology!
# export CAMPHOR_PASSWORD='<CamphorPassword>'
# python3 /var/lib/camphor/camphor_api/camphor_manage_device.pyc --oper=load-deployment <yaml-file>
#
---
applications:
item:
- attributes:
name: novnc
name: a1
- attributes:
name: suzieq
name: a2
deployments:
attributes:
borderLeafAttributes:
deviceAttributes:
interfaces: 8
interLinks: 2
deploymentAttributes:
overlay: evpn
type: datacenter
underlay: ebgp
leafAttributes:
deviceAttributes:
interfaces: 8
interLinks: 2
leafs: 2
podAttributes:
pods: 2
rackAttributes:
racks: 1
serverAttributes:
deviceAttributes:
interfaces: 2
os: LINUX_ALPINE
eses: 1
servers: 2
spineAttributes:
deviceAttributes:
interfaces: 8
spineGroups: 1
spines: 1
superSpineAttributes:
deviceAttributes:
interfaces: 8
superSpineGroups: 1
superSpines: 1
vpnAttributes:
addresses: 2
enablePinger: true
evpns: 2
hosts: 2
vpns: 2
item:
- leafs:
item:
- attributes:
deviceAttributes:
type: external
name: pod1-rack1-leaf1
- attributes:
deviceAttributes:
type: external
name: pod1-rack1-leaf2
- attributes:
deviceAttributes:
type: external
name: pod2-rack1-leaf1
- attributes:
deviceAttributes:
type: external
name: pod2-rack1-leaf2
name: dc1
servers:
item:
- attributes:
deviceAttributes:
os: LINUX_UBUNTU
resource:
cpu:
- 4
disk:
- 50
memory:
- 8096
servicePorts:
- '443'
- '8443'
- '8080'
name: pod1-rack1-server1
- attributes:
deviceAttributes:
os: LINUX_UBUNTU
resource:
cpu:
- 2
disk:
- 50
memory:
- 2048
name: pod1-rack1-server2
- attributes:
deviceAttributes:
os: LINUX_UBUNTU
resource:
cpu:
- 2
disk:
- 50
memory:
- 2048
name: pod2-rack1-server1
- attributes:
deviceAttributes:
os: LINUX_UBUNTU
resource:
cpu:
- 2
disk:
- 50
memory:
- 2048
name: pod2-rack1-server2
devices:
attributes:
generateDefaultConf: true
os: EOS
resource:
cpu:
- 4
- 4
disk:
- 100
- 100
memory:
- 2048
- 2048
synchronize: true
type: dedicatedVM
networks:
attributes:
portAttributes:
interface: autoAssign
ipv4Prefix: autoAssign
mtu: 1500
profiles:
item:
- attributes:
trafficProfiles:
item:
- attributes:
destinationAddress: 51.1.1.4
destinationDevice: pod2-rack1-sever1
sourceAddress: 51.1.1.0
sourceContainer: cnb1-101-1-n
sourceDevice: pod1-rack1-server1
trafficProfileName: tcp1
- attributes:
destinationAddress: 51.2.1.4
destinationDevice: pod2-rack1-sever1
sourceAddress: 51.1.1.1
sourceContainer: cnb1-101-1-n
sourceDevice: pod1-rack1-server1
trafficProfileName: tcp2
type: trafficProfile
name: profile1
Definition at line 953 of file camphor_api_test.py.
def camphor_api.camphor_api_test.test42_datacenter_sonic | ( | ) |
Load a sonic network topology from an external yaml file.
#
# Copyright (C) Camphor Networks, Inc - All Rights Reserved
# Unauthorized copying of this file via any medium is strictly prohibited
# Proprietary and confidential
# Written by Ananth Suryanarayana <ananth@camphornetworks.com>, June 2021
# https://camphornetworks.com/camphor-networks-platform-terms-of-use-and-privacy-policy/
# mailto:info@camphornetworks.com?subject=copyright
#
# yaml-language-server: $schema=/var/lib/camphor/camphor_project_schema.json
#
# Run this command from any camphor cluster node to load this topology!
# export CAMPHOR_PASSWORD='<CamphorPassword>'
# python3 /var/lib/camphor/camphor_api/camphor_manage_device.pyc --oper=load-deployment <yaml-file>
#
---
applications:
item:
- attributes:
name: novnc
name: a1
- attributes:
name: suzieq
name: a2
deployments:
attributes:
borderLeafAttributes:
deviceAttributes:
interfaces: 8
interLinks: 2
deploymentAttributes:
overlay: evpn
type: datacenter
underlay: ebgp
leafAttributes:
deviceAttributes:
interfaces: 8
interLinks: 2
leafs: 2
podAttributes:
pods: 2
rackAttributes:
racks: 1
serverAttributes:
deviceAttributes:
interfaces: 2
os: LINUX_ALPINE
eses: 1
servers: 2
spineAttributes:
deviceAttributes:
interfaces: 8
spineGroups: 1
spines: 1
superSpineAttributes:
deviceAttributes:
interfaces: 8
superSpineGroups: 1
superSpines: 1
vpnAttributes:
addresses: 2
enablePinger: true
evpns: 2
hosts: 2
vpns: 2
item:
- leafs:
item:
- attributes:
deviceAttributes:
monitor: true
resource:
cpu:
- 4
memory:
- 8096
name: pod1-rack1-leaf1
name: dc1
servers:
item:
- attributes:
deviceAttributes:
os: LINUX_UBUNTU
resource:
cpu:
- 4
disk:
- 50
memory:
- 8096
servicePorts:
- '443'
- '8443'
- '8080'
name: pod1-rack1-server1
- attributes:
deviceAttributes:
os: LINUX_UBUNTU
resource:
cpu:
- 2
disk:
- 50
memory:
- 2048
name: pod1-rack1-server2
- attributes:
deviceAttributes:
os: LINUX_UBUNTU
resource:
cpu:
- 2
disk:
- 50
memory:
- 2048
name: pod2-rack1-server1
- attributes:
deviceAttributes:
os: LINUX_UBUNTU
resource:
cpu:
- 2
disk:
- 50
memory:
- 2048
name: pod2-rack1-server2
devices:
attributes:
generateDefaultConf: true
os: SONiC
resource:
cpu:
- 4
- 4
disk:
- 100
- 100
memory:
- 2048
- 2048
synchronize: true
type: dedicatedVM
networks:
attributes:
portAttributes:
interface: autoAssign
ipv4Prefix: autoAssign
mtu: 1500
profiles:
item:
- attributes:
trafficProfiles:
item:
- attributes:
destinationAddress: 51.1.1.4
destinationDevice: pod2-rack1-sever1
sourceAddress: 51.1.1.0
sourceContainer: cnb1-101-1-n
sourceDevice: pod1-rack1-server1
trafficProfileName: tcp1
- attributes:
destinationAddress: 51.2.1.4
destinationDevice: pod2-rack1-sever1
sourceAddress: 51.1.1.1
sourceContainer: cnb1-101-1-n
sourceDevice: pod1-rack1-server1
trafficProfileName: tcp2
type: trafficProfile
name: profile1
Definition at line 968 of file camphor_api_test.py.
def camphor_api.camphor_api_test.test43_kubernetes_cluster1 | ( | int | masters = -1 , |
int | computes = 3 |
||
) |
Create a Kubernetes Cluster.
Create and configure kubernetes cluster so that it is ready for further deployments right away for the applications. You can see the autogenerated topology at Camphor Networks Platform Dashboard
#
# Copyright (C) Camphor Networks, Inc - All Rights Reserved
# Unauthorized copying of this file via any medium is strictly prohibited
# Proprietary and confidential
# Written by Ananth Suryanarayana <ananth@camphornetworks.com>, June 2021
# https://camphornetworks.com/camphor-networks-platform-terms-of-use-and-privacy-policy/
# mailto:info@camphornetworks.com?subject=copyright
#
# yaml-language-server: $schema=/var/lib/camphor/camphor_project_schema.json
#
# Run this command from any camphor cluster node to load this topology!
# export CAMPHOR_PASSWORD='<CamphorPassword>'
# python3 /var/lib/camphor/camphor_api/camphor_manage_device.pyc --oper=load-deployment <yaml-file>
#
---
devices:
attributes:
interfaces: 1
job: "/var/lib/camphor/camphor_k8_setup.rb AutoDetect"
os: LINUX_UBUNTU
passThroughInterface: true
resource:
cpu:
- 2
disk:
- 100
memory:
- 2048
version: 22.04-K8-1.28.6
item:
- attributes:
resource:
cpu:
- 4
disk:
- 200
memory:
- 4096
servicePorts:
- '6443'
- '30443'
- '30001'
name: master
- name: compute1
- name: compute2
- name: compute3
Definition at line 986 of file camphor_api_test.py.
def camphor_api.camphor_api_test.test44_aviz_ones_controller_based_datacenter | ( | ) |
Create a Aviz-Ones-Controller driven Virtual Data Center.
Create and setup a data center along with Aviz-Ones-Controller. You can see the autogenerated topology at Camphor Networks Platform Dashboard
#
# Copyright (C) Camphor Networks, Inc - All Rights Reserved
# Unauthorized copying of this file via any medium is strictly prohibited
# Proprietary and confidential
# Written by Ananth Suryanarayana <ananth@camphornetworks.com>, June 2021
# https://camphornetworks.com/camphor-networks-platform-terms-of-use-and-privacy-policy/
# mailto:info@camphornetworks.com?subject=copyright
#
# yaml-language-server: $schema=/var/lib/camphor/camphor_project_schema.json
#
# Run this command from any camphor cluster node to load this topology!
# export CAMPHOR_PASSWORD='<CamphorPassword>'
# python3 /var/lib/camphor/camphor_api/camphor_manage_device.pyc --oper=load-deployment <yaml-file>
#
---
deployments:
attributes:
deviceAttributes:
generateDefaultConf: true
os: SONiC
synchronize: true
version: 4.1.1-Ones-VS_v2.0.0
leafAttributes:
leafs: 2
podAttributes:
pods: 1
rackAttributes:
racks: 2
serverAttributes:
deviceAttributes:
os: ALPINE
servers: 2
spineAttributes:
spines: 2
vpnAttributes:
addresses: 2
evpns: 2
hosts: 2
vpns: 2
item:
- attributes:
deploymentAttributes:
overlay: evpn
type: datacenter
underlay: ebgp
name: dc
devices:
attributes:
passThroughInterface: true
item:
- attributes:
interfaces: 1
job: python3 /var/lib/camphor/aviz_ones_setup.pyc
os: LINUX_UBUNTU
resource:
cpu:
- 4
disk:
- 200
memory:
- 8192
servicePorts:
- '443'
version: 22.04-K8-1.28.6
name: aviz-ones-controller
networks:
attributes:
portAttributes:
ipv4Prefix: autoAssign
Definition at line 1034 of file camphor_api_test.py.