fuel-plugin-nsx-t/spec/nsx-t-1.0.0-spec.rst

4.1 KiB

Fuel NSX-T plugin v1.0.0

NSX-T plugin for Fuel provides an ability to deploy OpenStack cluster that uses NSX Transformers SDN platform as backend for Neutron server.

Proposed change

Requirements

  • the plugin must be compatible with Fuel 9.0
  • NSX Transformers platform is correctly configured and is running before plugin starts deployment process
  • the plugin is not hot pluggable, i.e. it cannot be added later after OpenStack cluster was deployed
  • overlay (STT) traffic must reside in Fuel Private network

NSX Transformers platform provides NSX agents that provide STT support for OpenStack nodes (controller, compute). It also supports ESXi hypervisor.

Plugin component

Plugin reuses network:neutron:core:nsx component (component-registry1) that is also declared by Fuel NSXv plugin2. This means that these two plugins cannot be installed together on fuel master node. This is a limitation of Fuel UI3.

Incompatible roles

Plugin is not compatible with following roles:

  • Ironic

NSX Transformers packages for Linux

Linux packages are provided together with NSX distribution. It is not possible to distribute them inside plugin package, due to license requirements. Operator will be required to upload them into plugin's directory, only after that it will be possible to start cluster deployment.

During deployment packages will be copied to node's local disk, local repository with highest priority will be formed and packages will be pinned.

Plugin deployment workflow

  1. Install OVS package provided with NSX Transformers distribution
  2. Install dependencies for OVS and NSX-T packages
  3. Install NSX plugin on controller
  4. Add node to NSX fabric (aka management plane)
  5. Register node as transport node in NSX-T Manager (aka control plane)
  6. Add permit rule for STT traffic
  7. Stop and disable neutron-openvswitch-agent
  8. Configure neutron-server to use NSX plugin (nsx_v3)
  9. Configure neutron dhcp agent
  10. Configure neutron metadata agent
  11. Configure nova to NSX managed OVS bridge

Data model impact

Plugin will produce following array of settings into astute.yaml:

nsx:
  nsx_api_managers:
    value: 172.16.0.249
  nsx_api_user:
    value: admin
  nsx_api_password:
    value: r00tme
  nsx_default_overlay_tz:
    value: a1ed818c-3580-45ac-a1bc-8fd4bf045cff
  nsx_default_vlan_tz:
    value: 59919e1c-9689-4335-97cd-758d27204287
  nsx_default_tier0_router:
    value: 0785e4bc-10d0-4744-8088-9cb26b38f23f

Upgrade impact

None.

Other end user impact

None.

Implementation

Assignee(s)

Primary assignee:

Other contributors:

Project manager:

Quality assurance:

Work items

  • Create pre-dev environment and manually deploy NSX Transformers
  • Create Fuel plugin bundle, which contains deployments scripts, puppet modules and metadata
  • Implement puppet module
  • Create system tests for the plugin
  • Prepare user guide

Dependencies

  • Fuel 9.0
  • VMware NSX Transformers 1.0

Testing

  • Sanity checks including plugin build
  • Syntax check
  • Functional testing
  • Non-functional testing
  • Destructive testing

Documentation impact

  • User guide
  • Test plan

References


  1. Component registry specification https://github.com/openstack/fuel-specs/blob/master/specs/8.0/component-registry.rst↩︎

  2. Fuel NSXv plugin component https://github.com/openstack/fuel-plugin-nsxv/blob/master/components.yaml↩︎

  3. Fuel UI component binding https://github.com/openstack/fuel-ui/blob/stable/mitaka/static/views/wizard.js#L348↩︎