Sample neutron-cisco-vts.yaml Configuration

This appendix provides typical sample configuration for different Cisco VTS deployment modes.

Sample “neutron-cisco-vts.yaml” for Deploying Cisco VTS Plugin with OVS Agent

resource_registry:

  OS::TripleO::Services::NeutronCorePluginVTS: /usr/share/openstack-tripleo-heat-templates/puppet/services/neutron-plugin-ml2-cisco-vts.yaml
  OS::TripleO::Services::NeutronCorePlugin: OS::TripleO::Services::NeutronCorePluginVTS

  ## Comment out below line when deploying VTS Agent on compute nodes instead of VPP/VPFA
  OS::TripleO::Services::ComputeNeutronCorePlugin: OS::Heat::None

parameter_defaults:

  ###################
  ### VTS General ###
  ###################

  VTSUsername: 'admin'
  VTSPassword: 'YLdKnf3qSsKA2JWQT9a0Sg=='
  VTSServer: '10.194.132.26'
  VTSVMMID: '691ce4a4-dfa3-4b63-855c-5813519498da'

  ###################
  ### Neutron ML2 ###
  ###################

  NeutronCorePlugin: 'neutron.plugins.ml2.plugin.Ml2Plugin'
  NeutronMechanismDrivers: 'sriovnicswitch,cisco_vts'
  NeutronTypeDrivers: 'vxlan,vlan,flat'
  NeutronServicePlugins: 'cisco_vts_router,trunk'

  ########################
  ### VTS Agent Config ###
  ########################

  VTSPhysicalNet: 'phys_tenant'
  #VTSRetries: 15
  #VTSTimeout:
  #VTSPollingInterval: 6

Sample “neutron-cisco-vts.yaml” for Deploying Cisco VTS Plugin with Cisco VTS Agent

# A Heat environment file which can be used to enable Cisco VTS extensions, configured via puppet

# By default the configuration has items required to deploy VPP/VPFA on all nodes + the cisco ML2 VTS driver

resource_registry:

		OS::TripleO::Services::NeutronCorePluginVTS: /usr/share/openstack-tripleo-heat-templates/puppet/services/neutron-plugin-ml2-cisco-vts.yaml
  OS::TripleO::Services::NeutronCorePlugin: OS::TripleO::Services::NeutronCorePluginVTS

  ## Comment out below line when deploying VTS Agent on compute nodes instead of VPP/VPFA
  #OS::TripleO::Services::ComputeNeutronCorePlugin: OS::Heat::None

  ## Disable Neutron L3 agent that conflict with VPFA
  OS::TripleO::Services::NeutronL3Agent: OS::Heat::None

  ## OVS and VTS Agent sub-section ##

  ## Disable/enable the default OVS Agent for compute and controller
  OS::TripleO::Services::ComputeNeutronOvsAgent: OS::Heat::None
  OS::TripleO::Services::NeutronOvsAgent: OS::Heat::None

  ## Disable/enable VTS agent service. VTS agent and OVS agent are mutually exclusive
  ## NOTE: The OS::TripleO::Services::VTSAgent needs to be added to the deployment role file
  OS::TripleO::Services::VTSAgent: /usr/share/openstack-tripleo-heat-templates/puppet/services/neutron-cisco-vts-agent.yaml

parameter_defaults:

  ###################
  ### VTS General ###
  ###################

  VTSUsername: 'admin'
  VTSPassword: 'YLdKnf3qSsKA2JWQT9a0Sg=='
  VTSServer: '10.194.132.26'
  VTSVMMID: '691ce4a4-dfa3-4b63-855c-5813519498da'

  ###################
  ### Neutron ML2 ###
  ###################

  NeutronCorePlugin: 'neutron.plugins.ml2.plugin.Ml2Plugin'
  NeutronMechanismDrivers: 'sriovnicswitch,cisco_vts'
  NeutronTypeDrivers: 'vxlan,vlan,flat'
  NeutronServicePlugins: 'cisco_vts_router,trunk'
  NeutronOVSFirewallDriver: 'neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver'

  ########################
  ### VTS Agent Config ###
  ########################

  VTSPhysicalNet: 'phys_tenant'
  #VTSRetries: 15
  #VTSTimeout:
  #VTSPollingInterval: 6

Sample “neutron-cisco-vts.yaml” for Deploying Cisco VTS Plugin with VTF

# A Heat environment file which can be used to enable Cisco VTS extensions, configured via puppet

# By default the configuration has items required to deploy VPP/VPFA on all nodes + the cisco ML2 VTS driver

resource_registry:

		OS::TripleO::Services::NeutronCorePluginVTS: /usr/share/openstack-tripleo-heat-templates/puppet/services/neutron-plugin-ml2-cisco-vts.yaml
  OS::TripleO::Services::NeutronCorePlugin: OS::TripleO::Services::NeutronCorePluginVTS

  ## Comment out below line when deploying VTS Agent on compute nodes instead of VPP/VPFA
  OS::TripleO::Services::ComputeNeutronCorePlugin: OS::Heat::None

  ## Disable Neutron L3 agent that conflict with VPFA
  OS::TripleO::Services::NeutronL3Agent: OS::Heat::None

  ## OVS and VTS Agent sub-section ##

  ## Disable/enable the default OVS Agent for compute and controller
  OS::TripleO::Services::ComputeNeutronOvsAgent: OS::Heat::None
  OS::TripleO::Services::NeutronOvsAgent: OS::Heat::None

  ## Disable/enable VTS agent service. VTS agent and OVS agent are mutually exclusive
  ## NOTE: The OS::TripleO::Services::VTSAgent needs to be added to the deployment role file
  #OS::TripleO::Services::VTSAgent: /usr/share/openstack-tripleo-heat-templates/puppet/services/neutron-cisco-vts-agent.yaml

  ## VPFA Configuration Hook scripts
  #OS::TripleO::ComputeExtraConfigPre: /usr/share/openstack-tripleo-heat-templates/puppet/extraconfig/pre_deploy/cisco_vts_vpfa.yaml

  ## Additional hook scripts for controller. Enable/disable as disctated by the scope of the deployment
  #OS::TripleO::ControllerExtraConfigPre: /usr/share/openstack-tripleo-heat-templates/puppet/extraconfig/pre_deploy/cisco_vts_vpfa.yaml

  ## Same hook scripts as above for all nodes in one. Enable/disable as disctated by the scope of the deployment.
  OS::TripleO::NodeExtraConfig: /usr/share/openstack-tripleo-heat-templates/puppet/extraconfig/pre_deploy/cisco_vts_vpfa.yaml

  ## Rsyslog client
  OS::TripleO::Services::RSyslogClient: /usr/share/openstack-tripleo-heat-templates/puppet/services/rsyslog-client.yaml
  OS::TripleO::Services::Vpp: OS::Heat::None
  OS::TripleO::Services::VppCompute: /usr/share/openstack-tripleo-heat-templates/puppet/services/vpp-compute.yaml
  OS::TripleO::Services::VppController: /usr/share/openstack-tripleo-heat-templates/puppet/services/vpp-controller.yaml
  OS::TripleO::Services::CiscoVpfaCompute: /usr/share/openstack-tripleo-heat-templates/puppet/services/cisco-vpfa-compute.yaml
  OS::TripleO::Services::CiscoVpfaController: /usr/share/openstack-tripleo-heat-templates/puppet/services/cisco-vpfa-controller.yaml



parameter_defaults:

  ###################
  ### VTS General ###
  ###################

  VTSUsername: 'admin'
  VTSPassword: 'YLdKnf3qSsKA2JWQT9a0Sg=='
  VTSServer: '10.194.132.26'
  VTSVMMID: '691ce4a4-dfa3-4b63-855c-5813519498da'

  ###################
  ### Neutron ML2 ###
  ###################

  NeutronCorePlugin: 'neutron.plugins.ml2.plugin.Ml2Plugin'
  NeutronMechanismDrivers: 'sriovnicswitch,cisco_vts'
  NeutronTypeDrivers: 'vxlan,vlan,flat'
  NeutronServicePlugins: 'cisco_vts_router,trunk'

  ## DHCP Agent interface driver. Uncomment ONLY if/when deploying VPP on the controller node(s).
  NeutronInterfaceDriver: 'cisco_controller.drivers.agent.linux.interface.NamespaceDriver'

  ########################
  ### VTS Agent Config ###
  ########################

  VTSPhysicalNet: 'phys_tenant'
  #VTSRetries: 15
  #VTSTimeout:
  #VTSPollingInterval: 6

  ###################
  ### VPFA Config ###
  ###################

  UnderlayIpNewtorksList: '21.0.0.0/8'
  VTSR_u_IpAddressList: '21.1.1.5'
  #VPFAHostname: 'foo'
  #NetworkConfigMethod: 'static'
  #NetworkNameServerIP: ''
  VifTypeCompute: 'vhostuser'
  VifTypeController: 'tap'

  # Set common VTS Network Gateway address or set/override it in PerNodeData below
  VTSNetworkIPv4Gateway: '21.1.1.1'

  PerNodeData: |
    {
      "A73EB684-FE95-084D-8260-9052DFD50EEA": {
          "cisco_vpfa::vtf_underlay_ip_v4": "21.1.1.11",
          "cisco_vpfa::vtf_underlay_mask_v4": "24",
          "cisco_vpfa::network_ipv4_gateway": "21.1.1.1"},
      "90117168-52E8-074F-A159-8186CFBF7B5C": {
          "cisco_vpfa::vtf_underlay_ip_v4": "21.1.1.12",
          "cisco_vpfa::vtf_underlay_mask_v4": "24",
          "cisco_vpfa::network_ipv4_gateway": "21.1.1.1"}
    }

  #####################################
  ### VPP Configuration Parameters  ###
  #####################################

  ## MTU for Tun/tap interfaces
  VppTunTapMtu: '9000'

  ##The CPUs listed below need to be part of the grub isol CPU list (configured elsewhere)
  VppCpuMainCoreController: '6'
  VppCpuMainCoreCompute: '6'

  ## Comma delimited workers list
  VppCpuCorelistWorkersCompute: '7,8,9'
  VppCpuCorelistWorkersController: '7,8,9'

  ## Avoid dumping vhost-user shared memory segments to core files
  #VppVhostUserDontDumpMem: True


########################
      ### VTS Update Info  ###
      ########################

  VTSUpdate: 'true'

  RepoProxy: 'http://<>:80/'
  VTSUpgradeNewPackages: |
        "cisco-vts-puppet-tripleo", "cisco-vts-puppet-neutron",
        "monit", "cisco-vpfa-collectd-plugin", "cisco-vts-os-net-config",
        "vpp", "vpp-plugins", "vpfa", "cisco-vts-puppet-vpfa", "cisco-vts-puppet-fdio",
        "cisco-vts-os-util"

  VTSUpgradeNewForgePackages: |
       "wdec-monit --version 1.1.2", "puppetlabs-limits --version 0.1.0", "saz-rsyslog --version 5.0.0"

Node Depolyment Resources and Parameters

Table 1. Node Depolyment Resources and Parameters

Enable resource type in "neutron-cisco-vts.yaml" environment file

Config changes to Node Roles (/usr/share/openstack-tripleo- heat-templates/roles_data.yaml)

Cisco VTS plugin with OVS agent

OS::TripleO::Services::NeutronCorePlugin: OS::TripleO::Services::NeutronCorePluginVTS

None

Cisco VTS plugin with Cisco VTS agent

OS::TripleO::Services::NeutronCorePlugin: OS::TripleO::Services::NeutronCorePluginVTSOS::TripleO::Services:: NeutronL3Agent: OS::Heat::NoneOS::TripleO::Services::ComputeNeutronOvsAgent: OS::Heat::NoneOS::TripleO::Services::NeutronOvsAgent: OS::Heat::NoneOS::TripleO::Services::VTSAgent: /usr/share/openstack-tripleo-heat-templates/puppet/services /neutron-cisco-vts-agent.yaml

OS::TripleO::Services::NeutronCorePlugin: OS::TripleO::Services::NeutronCorePluginVTSOS:: TripleO::Services::ComputeNeutronCorePlugin: OS::Heat::NoneOS::TripleO::Services::NeutronL3Agent: OS::Heat::NoneOS::TripleO::Services::ComputeNeutronOvsAgent: OS::Heat::NoneOS::TripleO::Services::NeutronOvsAgent: OS::Heat::NoneOS::TripleO::Services::RSyslogClient: /usr/share/openstack-tripleo-heat-templates/puppet/services/ rsyslog-client.yaml

#Add VTS agent role for Controller- OS::TripleO::Services::VTSAgent #Add VTS agent role for Compute- OS::TripleO::Services::VTSAgent

Cisco VTS plugin with VTF

Cisco VTS plugin with VTF#Enable VPFA only on controller OS::TripleO::ControllerExtraConfigPre: /usr/share/openstack-tripleo-heat-templates/puppet/extraconfig/ pre_deploy/cisco_vts_vpfa.yaml #Enable VPFA only on compute OS::TripleO::ComputeExtraConfigPre: /usr/share/openstack-tripleo-heat-templates/puppet/extraconfig/ pre_deploy/cisco_vts_vpfa.yaml #Enable VPFA on all nodes - Can be used instead of the above two options. OS::TripleO::NodeExtraConfig: /usr/share/openstack-tripleo-heat-templates/puppet/extraconfig/ pre_deploy/cisco_vts_vpfa.yaml

#Add VTFA+VPP+Rsyslog roles for Controller- OS::TripleO::Services:: VppController- OS::TripleO::Services:: CiscoVpfaController- OS::TripleO::Services:: RSyslogClient #Add VTFA+VPP+Rsyslog roles for Compute- OS::TripleO::Services:: VppCompute- OS::TripleO::Services:: CiscoVpfaCompute- OS::TripleO::Services:: RSyslogClient

Table 2. Parameters/Values to Populate

Populate parameters in "neutron-cisco-vts.yaml"

Cisco VTS plugin with OVS agent

VTSUsername: '<username>'

VTSPassword: '<encrypted passphrase>'

VTSServer: '<IP-address>'

VTSVMMID: '<UUID>'

NeutronCorePlugin: 'neutron.plugins.ml2.plugin.Ml2Plugin'

NeutronMechanismDrivers: 'sriovnicswitch,cisco_vts'

NeutronTypeDrivers: 'vxlan,vlan,flat'

NeutronServicePlugins: 'cisco_vts_router,trunk'

VTSPhysicalNet: '<physnet name>'

VTSUsername: '<username>'

VTSPassword: '<encrypted passphrase>'

VTSServer: '<IP-address>'

VTSVMMID: '<UUID>'

Cisco VTS plugin with Cisco VTS agent

NeutronCorePlugin: 'neutron.plugins.ml2.plugin.Ml2Plugin'

NeutronMechanismDrivers: 'sriovnicswitch,cisco_vts'

NeutronTypeDrivers: 'vxlan,vlan,flat'

NeutronServicePlugins: 'cisco_vts_router,trunk'

NeutronOVSFirewallDriver: 'neutron.agent.linux.iptables_firewall.OVSHybrid IptablesFirewallDriver'

VTSPhysicalNet: '<physnet name>'

VTSUsername: '<username>'

VTSPassword: '<encrypted passphrase>'

VTSServer: '<IP-address>'

VTSVMMID: '<UUID>'

NeutronCorePlugin: 'neutron.plugins.ml2.plugin.Ml2Plugin'

NeutronMechanismDrivers: 'sriovnicswitch,cisco_vts'

NeutronTypeDrivers: 'vxlan,vlan,flat'

NeutronServicePlugins: 'cisco_vts_router,trunk'

NeutronInterfaceDriver: 'cisco_controller.drivers.agent.linux. interface.NamespaceDriver'

VTSPhysicalNet: '<physnet name>'

UnderlayIpNewtorksList: '10.10.10.0/24,50.50.0.0/16,40.40.0.0/16,42.42.42.0/24'

VTSR_u_IpAddressList: '10.10.10.133,10.10.10.134'

# VPFA Configuration requires the assignment of an underlay IP address for the VPFA per node.

# This needs to be specified against the UUID of the target node in a JSON data blob.

# To derive the UUID, after node introspection execute the following CLI command steps:

# 1. 'ironic node-list'. Note Openstack ID of the target node

# 2. 'openstack baremetal introspection data save <Openstack ID from step1> | jq .extra.system.product.uuid

# 3. Note the Node UUID and use it in the json configuration blob below. Multiple nodes can be specified.

Cisco VTS plugin with VTF

PerNodeData: |
    {
      "01289991-C0F5-204C-9A71-43A2843F225B": {
          "cisco_vpfa::vtf_underlay_ip_v4": "10.123.10.10",
          "cisco_vpfa::vtf_underlay_mask_v4": "24",
          "cisco_vpfa::network_ipv4_gateway": "10.123.10.1"},
      "37B32CF6-FB12-3742-B709-7605835C33C8": {
          "cisco_vpfa::vtf_underlay_ip_v4": "31.31.31.30",
          "cisco_vpfa::vtf_underlay_mask_v4": "24",
          "cisco_vpfa::network_ipv4_gateway": "31.31.31.1"},
      "5F107171-A2C9-0540-BF5D-D1D904E87039": {
          "cisco_vpfa::vtf_underlay_ip_v4": "10.123.35.13",
          "cisco_vpfa::vtf_underlay_mask_v4": "24",
          "cisco_vpfa::network_ipv4_gateway": "10.123.35.1"}
    }
VppTunTapMtu: '8936'
VppCpuMainCoreController: '6'
VppCpuMainCoreCompute: '6'
VppCpuCorelistWorkersCompute: '7,8,9'
VppCpuCorelistWorkersController: '7,8,9'

  ClientLogFilters: |
    [
      {
        "expression": "$syslogfacility-text == 'local3' and $syslogseverity-text == 'crit'",
        "action": "@[<IP ADDRESS>]:514;forwardFormat"
      },
      
{ "expression": "$syslogfacility-text 
== 'local3' and $syslogseverity-text == 'err'", 
        "action": "@[<IP ADDRESS>]:514;forwardFormat" 
    }, 
    { "expression": "$syslogfacility-text 
== 'local3' and $syslogseverity-text == 'warning'", 
        "action": "@[<IP ADDRESS>]:514;forwardFormat" 
    }, 
    { "expression": "$syslogfacility-text 
== 'local3' and $syslogseverity-text == 'info'", 
        "action": "@[<IP ADDRESS>]:514;forwardFormat" 
    } 
]