Update spec and user guide
Change-Id: I1eb8e2b076ec966b08c182c9a4cc8c6296de778a
177
docs/install_guide/Makefile
Normal file
@ -0,0 +1,177 @@
|
||||
# Makefile for Sphinx documentation
|
||||
#
|
||||
|
||||
# You can set these variables from the command line.
|
||||
SPHINXOPTS =
|
||||
SPHINXBUILD = sphinx-build
|
||||
PAPER =
|
||||
BUILDDIR = _build
|
||||
|
||||
# User-friendly check for sphinx-build
|
||||
ifeq ($(shell which $(SPHINXBUILD) >/dev/null 2>&1; echo $$?), 1)
|
||||
$(error The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed, then set the SPHINXBUILD environment variable to point to the full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the executable to your PATH. If you don't have Sphinx installed, grab it from http://sphinx-doc.org/)
|
||||
endif
|
||||
|
||||
# Internal variables.
|
||||
PAPEROPT_a4 = -D latex_paper_size=a4
|
||||
PAPEROPT_letter = -D latex_paper_size=letter
|
||||
ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
|
||||
# the i18n builder cannot share the environment and doctrees with the others
|
||||
I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
|
||||
|
||||
.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest gettext
|
||||
|
||||
help:
|
||||
@echo "Please use \`make <target>' where <target> is one of"
|
||||
@echo " html to make standalone HTML files"
|
||||
@echo " dirhtml to make HTML files named index.html in directories"
|
||||
@echo " singlehtml to make a single large HTML file"
|
||||
@echo " pickle to make pickle files"
|
||||
@echo " json to make JSON files"
|
||||
@echo " htmlhelp to make HTML files and a HTML help project"
|
||||
@echo " qthelp to make HTML files and a qthelp project"
|
||||
@echo " devhelp to make HTML files and a Devhelp project"
|
||||
@echo " epub to make an epub"
|
||||
@echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
|
||||
@echo " latexpdf to make LaTeX files and run them through pdflatex"
|
||||
@echo " latexpdfja to make LaTeX files and run them through platex/dvipdfmx"
|
||||
@echo " text to make text files"
|
||||
@echo " man to make manual pages"
|
||||
@echo " texinfo to make Texinfo files"
|
||||
@echo " info to make Texinfo files and run them through makeinfo"
|
||||
@echo " gettext to make PO message catalogs"
|
||||
@echo " changes to make an overview of all changed/added/deprecated items"
|
||||
@echo " xml to make Docutils-native XML files"
|
||||
@echo " pseudoxml to make pseudoxml-XML files for display purposes"
|
||||
@echo " linkcheck to check all external links for integrity"
|
||||
@echo " doctest to run all doctests embedded in the documentation (if enabled)"
|
||||
|
||||
clean:
|
||||
rm -rf $(BUILDDIR)/*
|
||||
|
||||
html:
|
||||
$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
|
||||
@echo
|
||||
@echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
|
||||
|
||||
dirhtml:
|
||||
$(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml
|
||||
@echo
|
||||
@echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml."
|
||||
|
||||
singlehtml:
|
||||
$(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml
|
||||
@echo
|
||||
@echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml."
|
||||
|
||||
pickle:
|
||||
$(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle
|
||||
@echo
|
||||
@echo "Build finished; now you can process the pickle files."
|
||||
|
||||
json:
|
||||
$(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json
|
||||
@echo
|
||||
@echo "Build finished; now you can process the JSON files."
|
||||
|
||||
htmlhelp:
|
||||
$(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp
|
||||
@echo
|
||||
@echo "Build finished; now you can run HTML Help Workshop with the" \
|
||||
".hhp project file in $(BUILDDIR)/htmlhelp."
|
||||
|
||||
qthelp:
|
||||
$(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp
|
||||
@echo
|
||||
@echo "Build finished; now you can run "qcollectiongenerator" with the" \
|
||||
".qhcp project file in $(BUILDDIR)/qthelp, like this:"
|
||||
@echo "# qcollectiongenerator $(BUILDDIR)/qthelp/FuelVMwareDVSplugin.qhcp"
|
||||
@echo "To view the help file:"
|
||||
@echo "# assistant -collectionFile $(BUILDDIR)/qthelp/FuelVMwareDVSplugin.qhc"
|
||||
|
||||
devhelp:
|
||||
$(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp
|
||||
@echo
|
||||
@echo "Build finished."
|
||||
@echo "To view the help file:"
|
||||
@echo "# mkdir -p $$HOME/.local/share/devhelp/FuelVMwareDVSplugin"
|
||||
@echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/FuelVMwareDVSplugin"
|
||||
@echo "# devhelp"
|
||||
|
||||
epub:
|
||||
$(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub
|
||||
@echo
|
||||
@echo "Build finished. The epub file is in $(BUILDDIR)/epub."
|
||||
|
||||
latex:
|
||||
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
|
||||
@echo
|
||||
@echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex."
|
||||
@echo "Run \`make' in that directory to run these through (pdf)latex" \
|
||||
"(use \`make latexpdf' here to do that automatically)."
|
||||
|
||||
latexpdf:
|
||||
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
|
||||
@echo "Running LaTeX files through pdflatex..."
|
||||
$(MAKE) -C $(BUILDDIR)/latex all-pdf
|
||||
@echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
|
||||
|
||||
latexpdfja:
|
||||
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
|
||||
@echo "Running LaTeX files through platex and dvipdfmx..."
|
||||
$(MAKE) -C $(BUILDDIR)/latex all-pdf-ja
|
||||
@echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
|
||||
|
||||
text:
|
||||
$(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text
|
||||
@echo
|
||||
@echo "Build finished. The text files are in $(BUILDDIR)/text."
|
||||
|
||||
man:
|
||||
$(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man
|
||||
@echo
|
||||
@echo "Build finished. The manual pages are in $(BUILDDIR)/man."
|
||||
|
||||
texinfo:
|
||||
$(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
|
||||
@echo
|
||||
@echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo."
|
||||
@echo "Run \`make' in that directory to run these through makeinfo" \
|
||||
"(use \`make info' here to do that automatically)."
|
||||
|
||||
info:
|
||||
$(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
|
||||
@echo "Running Texinfo files through makeinfo..."
|
||||
make -C $(BUILDDIR)/texinfo info
|
||||
@echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo."
|
||||
|
||||
gettext:
|
||||
$(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale
|
||||
@echo
|
||||
@echo "Build finished. The message catalogs are in $(BUILDDIR)/locale."
|
||||
|
||||
changes:
|
||||
$(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes
|
||||
@echo
|
||||
@echo "The overview file is in $(BUILDDIR)/changes."
|
||||
|
||||
linkcheck:
|
||||
$(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck
|
||||
@echo
|
||||
@echo "Link check complete; look for any errors in the above output " \
|
||||
"or in $(BUILDDIR)/linkcheck/output.txt."
|
||||
|
||||
doctest:
|
||||
$(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest
|
||||
@echo "Testing of doctests in the sources finished, look at the " \
|
||||
"results in $(BUILDDIR)/doctest/output.txt."
|
||||
|
||||
xml:
|
||||
$(SPHINXBUILD) -b xml $(ALLSPHINXOPTS) $(BUILDDIR)/xml
|
||||
@echo
|
||||
@echo "Build finished. The XML files are in $(BUILDDIR)/xml."
|
||||
|
||||
pseudoxml:
|
||||
$(SPHINXBUILD) -b pseudoxml $(ALLSPHINXOPTS) $(BUILDDIR)/pseudoxml
|
||||
@echo
|
||||
@echo "Build finished. The pseudo-XML files are in $(BUILDDIR)/pseudoxml."
|
BIN
docs/install_guide/_static/compute.png
Normal file
After Width: | Height: | Size: 28 KiB |
BIN
docs/install_guide/_static/create.png
Normal file
After Width: | Height: | Size: 48 KiB |
BIN
docs/install_guide/_static/net.png
Normal file
After Width: | Height: | Size: 47 KiB |
BIN
docs/install_guide/_static/net04pg.png
Normal file
After Width: | Height: | Size: 203 KiB |
BIN
docs/install_guide/_static/nodes-controller.png
Normal file
After Width: | Height: | Size: 20 KiB |
BIN
docs/install_guide/_static/nodes-vmware.png
Normal file
After Width: | Height: | Size: 6.9 KiB |
BIN
docs/install_guide/_static/settings.png
Normal file
After Width: | Height: | Size: 27 KiB |
BIN
docs/install_guide/_static/topology.png
Normal file
After Width: | Height: | Size: 49 KiB |
BIN
docs/install_guide/_static/vmware.png
Normal file
After Width: | Height: | Size: 54 KiB |
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 13 KiB |
253
docs/install_guide/conf.py
Normal file
@ -0,0 +1,253 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# Fuel VMware DVS plugin documentation build configuration file, created by
|
||||
# sphinx-quickstart on Fri Aug 14 12:14:29 2015.
|
||||
#
|
||||
# This file is execfile()d with the current directory set to its
|
||||
# containing dir.
|
||||
#
|
||||
# Note that not all possible configuration values are present in this
|
||||
# autogenerated file.
|
||||
#
|
||||
# All configuration values have a default; values that are commented out
|
||||
# serve to show the default.
|
||||
|
||||
import sys
|
||||
import os
|
||||
|
||||
# If extensions (or modules to document with autodoc) are in another directory,
|
||||
# add these directories to sys.path here. If the directory is relative to the
|
||||
# documentation root, use os.path.abspath to make it absolute, like shown here.
|
||||
#sys.path.insert(0, os.path.abspath('.'))
|
||||
|
||||
# -- General configuration ------------------------------------------------
|
||||
|
||||
# If your documentation needs a minimal Sphinx version, state it here.
|
||||
#needs_sphinx = '1.0'
|
||||
|
||||
# Add any Sphinx extension module names here, as strings. They can be
|
||||
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
|
||||
# ones.
|
||||
extensions = [ ]
|
||||
|
||||
# Add any paths that contain templates here, relative to this directory.
|
||||
templates_path = ['_templates']
|
||||
|
||||
# The suffix of source filenames.
|
||||
source_suffix = '.rst'
|
||||
|
||||
# The encoding of source files.
|
||||
#source_encoding = 'utf-8-sig'
|
||||
|
||||
# The master toctree document.
|
||||
master_doc = 'index'
|
||||
|
||||
# General information about the project.
|
||||
project = u'Fuel VMware DVS plugin'
|
||||
copyright = u'2015, Mirantis Inc.'
|
||||
|
||||
# The version info for the project you're documenting, acts as replacement for
|
||||
# |version| and |release|, also used in various other places throughout the
|
||||
# built documents.
|
||||
#
|
||||
# The short X.Y version.
|
||||
version = '2.1.0'
|
||||
# The full version, including alpha/beta/rc tags.
|
||||
release = '2.1.0'
|
||||
|
||||
# The language for content autogenerated by Sphinx. Refer to documentation
|
||||
# for a list of supported languages.
|
||||
#language = None
|
||||
|
||||
# There are two options for replacing |today|: either, you set today to some
|
||||
# non-false value, then it is used:
|
||||
#today = ''
|
||||
# Else, today_fmt is used as the format for a strftime call.
|
||||
#today_fmt = '%B %d, %Y'
|
||||
|
||||
# List of patterns, relative to source directory, that match files and
|
||||
# directories to ignore when looking for source files.
|
||||
#exclude_patterns = []
|
||||
|
||||
# The reST default role (used for this markup: `text`) to use for all
|
||||
# documents.
|
||||
#default_role = None
|
||||
|
||||
# If true, '()' will be appended to :func: etc. cross-reference text.
|
||||
#add_function_parentheses = True
|
||||
|
||||
# If true, the current module name will be prepended to all description
|
||||
# unit titles (such as .. function::).
|
||||
#add_module_names = True
|
||||
|
||||
# If true, sectionauthor and moduleauthor directives will be shown in the
|
||||
# output. They are ignored by default.
|
||||
#show_authors = False
|
||||
|
||||
# The name of the Pygments (syntax highlighting) style to use.
|
||||
pygments_style = 'sphinx'
|
||||
|
||||
# A list of ignored prefixes for module index sorting.
|
||||
#modindex_common_prefix = []
|
||||
|
||||
# If true, keep warnings as "system message" paragraphs in the built documents.
|
||||
#keep_warnings = False
|
||||
|
||||
|
||||
# -- Options for HTML output ----------------------------------------------
|
||||
|
||||
# The theme to use for HTML and HTML Help pages. See the documentation for
|
||||
# a list of builtin themes.
|
||||
html_theme = 'default'
|
||||
|
||||
# Theme options are theme-specific and customize the look and feel of a theme
|
||||
# further. For a list of options available for each theme, see the
|
||||
# documentation.
|
||||
#html_theme_options = {}
|
||||
|
||||
# Add any paths that contain custom themes here, relative to this directory.
|
||||
#html_theme_path = []
|
||||
|
||||
# The name for this set of Sphinx documents. If None, it defaults to
|
||||
# "<project> v<release> documentation".
|
||||
#html_title = None
|
||||
|
||||
# A shorter title for the navigation bar. Default is the same as html_title.
|
||||
#html_short_title = None
|
||||
|
||||
# The name of an image file (relative to this directory) to place at the top
|
||||
# of the sidebar.
|
||||
#html_logo = None
|
||||
|
||||
# The name of an image file (within the static path) to use as favicon of the
|
||||
# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32
|
||||
# pixels large.
|
||||
#html_favicon = None
|
||||
|
||||
# Add any paths that contain custom static files (such as style sheets) here,
|
||||
# relative to this directory. They are copied after the builtin static files,
|
||||
# so a file named "default.css" will overwrite the builtin "default.css".
|
||||
#html_static_path = ['_static']
|
||||
|
||||
# Add any extra paths that contain custom files (such as robots.txt or
|
||||
# .htaccess) here, relative to this directory. These files are copied
|
||||
# directly to the root of the documentation.
|
||||
#html_extra_path = []
|
||||
|
||||
# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
|
||||
# using the given strftime format.
|
||||
#html_last_updated_fmt = '%b %d, %Y'
|
||||
|
||||
# If true, SmartyPants will be used to convert quotes and dashes to
|
||||
# typographically correct entities.
|
||||
#html_use_smartypants = True
|
||||
|
||||
# Custom sidebar templates, maps document names to template names.
|
||||
#html_sidebars = {}
|
||||
|
||||
# Additional templates that should be rendered to pages, maps page names to
|
||||
# template names.
|
||||
#html_additional_pages = {}
|
||||
|
||||
# If false, no module index is generated.
|
||||
#html_domain_indices = True
|
||||
|
||||
# If false, no index is generated.
|
||||
#html_use_index = True
|
||||
|
||||
# If true, the index is split into individual pages for each letter.
|
||||
#html_split_index = False
|
||||
|
||||
# If true, links to the reST sources are added to the pages.
|
||||
#html_show_sourcelink = True
|
||||
|
||||
# If true, "Created using Sphinx" is shown in the HTML footer. Default is True.
|
||||
#html_show_sphinx = True
|
||||
|
||||
# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True.
|
||||
#html_show_copyright = True
|
||||
|
||||
# If true, an OpenSearch description file will be output, and all pages will
|
||||
# contain a <link> tag referring to it. The value of this option must be the
|
||||
# base URL from which the finished HTML is served.
|
||||
#html_use_opensearch = ''
|
||||
|
||||
# This is the file name suffix for HTML files (e.g. ".xhtml").
|
||||
#html_file_suffix = None
|
||||
|
||||
# Output file base name for HTML help builder.
|
||||
htmlhelp_basename = 'FuelVMwareDVSplugindoc'
|
||||
|
||||
|
||||
# -- Options for LaTeX output ---------------------------------------------
|
||||
|
||||
latex_elements = { 'classoptions': ',openany,oneside', 'babel': '\\usepackage[english]{babel}'
|
||||
}
|
||||
|
||||
# Grouping the document tree into LaTeX files. List of tuples
|
||||
# (source start file, target name, title,
|
||||
# author, documentclass [howto, manual, or own class]).
|
||||
latex_documents = [
|
||||
('index', 'FuelVMwareDVSvplugin.tex', u'Fuel VMware DVS plugin user\
|
||||
guide', u'Mirantis Inc.', 'manual'),
|
||||
]
|
||||
|
||||
# The name of an image file (relative to this directory) to place at the top of
|
||||
# the title page.
|
||||
#latex_logo = None
|
||||
|
||||
# For "manual" documents, if this is true, then toplevel headings are parts,
|
||||
# not chapters.
|
||||
#latex_use_parts = False
|
||||
|
||||
# If true, show page references after internal links.
|
||||
#latex_show_pagerefs = False
|
||||
|
||||
# If true, show URL addresses after external links.
|
||||
#latex_show_urls = False
|
||||
|
||||
# Documents to append as an appendix to all manuals.
|
||||
#latex_appendices = []
|
||||
|
||||
# If false, no module index is generated.
|
||||
#latex_domain_indices = True
|
||||
|
||||
|
||||
# -- Options for manual page output ---------------------------------------
|
||||
|
||||
# One entry per manual page. List of tuples
|
||||
# (source start file, name, description, authors, manual section).
|
||||
man_pages = [
|
||||
('index', 'fuelvmwaredvsplugin', u'Fuel VMware DVS plugin user\
|
||||
guide', [u'Mirantis Inc.'], 1)
|
||||
]
|
||||
|
||||
# If true, show URL addresses after external links.
|
||||
#man_show_urls = False
|
||||
|
||||
|
||||
# -- Options for Texinfo output -------------------------------------------
|
||||
|
||||
# Grouping the document tree into Texinfo files. List of tuples
|
||||
# (source start file, target name, title, author,
|
||||
# dir menu entry, description, category)
|
||||
texinfo_documents = [
|
||||
('index', 'FuelVMwareDVSplugin', u'Fuel VMware DVS plugin user\
|
||||
guide', u'Mirantis Inc.', 'FuelVMwareDVSplugin',\
|
||||
'One line description of project.', 'Miscellaneous'),
|
||||
]
|
||||
|
||||
# Documents to append as an appendix to all manuals.
|
||||
#texinfo_appendices = []
|
||||
|
||||
# If false, no module index is generated.
|
||||
#texinfo_domain_indices = True
|
||||
|
||||
# How to display URL addresses: 'footnote', 'no', or 'inline'.
|
||||
#texinfo_show_urls = 'footnote'
|
||||
|
||||
# If true, do not generate a @detailmenu in the "Top" node's menu.
|
||||
#texinfo_no_detailmenu = False
|
||||
|
||||
# Insert footnotes where they are defined instead of at the end.
|
||||
pdf_inline_footnotes = True
|
70
docs/install_guide/configure.rst
Normal file
@ -0,0 +1,70 @@
|
||||
Create and Configure an environment with VMware DVS plugin
|
||||
----------------------------------------------------------
|
||||
|
||||
#. `Create a new OpenStack
|
||||
environment <https://docs.mirantis.com/openstack/fuel/fuel-8.0/user-guide.html#create-a-new-openstack-environment>`_
|
||||
with Fuel UI wizard.
|
||||
|
||||
.. image:: _static/create.png
|
||||
|
||||
.. raw:: latex
|
||||
|
||||
\pagebreak
|
||||
|
||||
2. In *Compute* menu, select *vCenter* checkbox:
|
||||
|
||||
.. image:: _static/compute.png
|
||||
|
||||
#. Select *Neutron with VMware DVS* for *Networking Setup*
|
||||
|
||||
.. image:: _static/net.png
|
||||
|
||||
.. raw:: latex
|
||||
|
||||
\pagebreak
|
||||
|
||||
4. Finish environment creation following
|
||||
`documentation <https://docs.mirantis.com/openstack/fuel/fuel-8.0/user-guide.html#create-a-new-openstack-environment>`_.
|
||||
|
||||
#. Open the *Nodes* tab and `add
|
||||
<https://docs.mirantis.com/openstack/fuel/fuel-8.0/user-guide.html#configure-your-environment>`__
|
||||
at least 1 Controller node to the environment:
|
||||
|
||||
.. image:: _static/nodes-controller.png
|
||||
|
||||
(Optional) You can also add 1 dedicated Compute VMware node:
|
||||
|
||||
.. image:: _static/nodes-vmware.png
|
||||
|
||||
#. Open the *Networks* tab of the Fuel Web UI and chose the *Other* subtab. Select the
|
||||
*Neutron VMware DVS ML2 plugin* checkbox and specify the Cluster to VDS mapping :
|
||||
|
||||
.. image:: _static/settings.png
|
||||
|
||||
and set the checkbox "Use the VMware DVS firewall driver" if you want to use
|
||||
security groups on your ports.
|
||||
|
||||
VMware DVS ML2 plugin does not support DVR feature. Keep Neutron DVR
|
||||
checkbox on Neutron Advanced Configuration tab at unchecked state.
|
||||
|
||||
.. raw:: latex
|
||||
|
||||
\pagebreak
|
||||
|
||||
7. Fill in the VMware configuration fields on the *VMware* tab:
|
||||
|
||||
.. image:: _static/vmware.png
|
||||
|
||||
(Optional) Choose Compute VMware node if your environment has the role:
|
||||
|
||||
.. image:: _static/vmware2.png
|
||||
|
||||
#. The rest of configuration is up to you.
|
||||
See `Mirantis OpenStack User Guide <https://docs.mirantis.com/openstack/fuel/fuel-8.0/user-guide.html>`__
|
||||
for instructions.
|
||||
|
||||
#. Click *Deploy changes* button to finish.
|
||||
|
||||
.. raw:: pdf
|
||||
|
||||
PageBreak
|
38
docs/install_guide/index.rst
Normal file
@ -0,0 +1,38 @@
|
||||
=====================================================
|
||||
Guide to the VMware DVS plugin version 2.1.0 for Fuel
|
||||
=====================================================
|
||||
|
||||
Introduction
|
||||
============
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
||||
purpose
|
||||
terms
|
||||
intro
|
||||
license
|
||||
prerequisites
|
||||
requirements
|
||||
limitations
|
||||
release_notes
|
||||
|
||||
Installation and create an environment
|
||||
======================================
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
||||
install
|
||||
remove
|
||||
configure
|
||||
|
||||
User Guide
|
||||
=========
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
||||
user
|
||||
verification
|
||||
troubleshooting
|
47
docs/install_guide/install.rst
Normal file
@ -0,0 +1,47 @@
|
||||
Installing the VMware DVS plugin
|
||||
--------------------------------
|
||||
|
||||
Make sure that:
|
||||
|
||||
* you have the installed the
|
||||
`Fuel Master node <https://docs.mirantis.com/openstack/fuel/fuel-8.0/user-guide.html>`__
|
||||
|
||||
* all the nodes of your future environment are discovered and functional.
|
||||
|
||||
* there is a connectivity to correctly configured vCenter with VDS'es and clusters created.
|
||||
Please, see the
|
||||
`Mirantis OpenStack Planning Guide <https://docs.mirantis.com/openstack/fuel/fuel-8.0/mos-planning-guide.html#plan-the-vsphere-integration>`_,
|
||||
`User Guide <https://docs.mirantis.com/openstack/fuel/fuel-8.0/user-guide.html#vmware-integration-notes>`_
|
||||
and
|
||||
`this plugin's specification <https://github.com/openstack/fuel-plugin-vmware-dvs/blob/master/specs/fuel-plugin-vmware-dvs.rst>`_
|
||||
for information on configuring vCenter.
|
||||
|
||||
#. Download the plugin from the
|
||||
`Fuel Plugin Catalog <https://www.mirantis.com/products/openstack-drivers-and-plugins/fuel-plugins/>`__.
|
||||
|
||||
#. Copy the plugin into Fuel Master node:
|
||||
::
|
||||
|
||||
$ scp fuel-plugin-vmware-dvs-2.1-2.1.0-1.noarch.rpm <Fuel Master node ip>:/tmp
|
||||
|
||||
#. Log into the Fuel Master node and install the plugin:
|
||||
::
|
||||
|
||||
$ ssh root@<Fuel Master node ip>
|
||||
[root@nailgun ~]# fuel plugins --install /
|
||||
/tmp/fuel-plugin-vmware-dvs-2.1-2.1.0-1.noarch.rpm
|
||||
[root@nailgun ]# fuel plugins
|
||||
DEPRECATION WARNING: /etc/fuel/client/config.yaml exists and will
|
||||
be used as the source for settings. This behavior is deprecated.
|
||||
Please specify the path to your custom settings file in the
|
||||
FUELCLIENT_CUSTOM_SETTINGS environment variable.
|
||||
|
||||
+------+--------------------------+-----------+--------------------+
|
||||
| id | name | version | package\_version |
|
||||
+------+--------------------------+-----------+--------------------+
|
||||
| 2 | fuel-plugin-vmware-dvs | 2.1.0 | 4.0.0 |
|
||||
+------+--------------------------+-----------+--------------------+
|
||||
|
||||
.. raw:: latex
|
||||
|
||||
\pagebreak
|
18
docs/install_guide/intro.rst
Normal file
@ -0,0 +1,18 @@
|
||||
The VMware DVS plugin
|
||||
---------------------
|
||||
|
||||
MOS supports using vCenter as a hypervisor in a vCenter-only or
|
||||
heterogeneous, mixed with KVM environments. There is the vmware\_dvs
|
||||
driver for Neutron ML2 plugin which provides usage Neutron for
|
||||
networking in such environments. Thereby environments receives an
|
||||
advanced network features:
|
||||
|
||||
- Ability to create multi-tier networks (e.g., web tier, db tier, app
|
||||
tier).
|
||||
|
||||
- Control over IP addressing and security groups's rules.
|
||||
|
||||
- Ability to insert an configure their own services (e.g., firewall,
|
||||
IPS)
|
||||
|
||||
- VPN/Bridge to remote physical hosting or customer premises.
|
8
docs/install_guide/license.rst
Normal file
@ -0,0 +1,8 @@
|
||||
Licensing information
|
||||
+++++++++++++++++++++
|
||||
|
||||
================= ============
|
||||
**Component** **License**
|
||||
vmware_dvs driver Apache 2.0
|
||||
VMware DVS plugin Apache 2.0
|
||||
================= ============
|
6
docs/install_guide/limitations.rst
Normal file
@ -0,0 +1,6 @@
|
||||
Limitations
|
||||
+++++++++++
|
||||
|
||||
- Only VLANs are supported for tenant network separation.
|
||||
|
||||
- Only vSphere 5.5 & 6.0 are supported.
|
Before Width: | Height: | Size: 43 KiB |
Before Width: | Height: | Size: 63 KiB |
Before Width: | Height: | Size: 70 KiB |
Before Width: | Height: | Size: 111 KiB |
Before Width: | Height: | Size: 34 KiB |
Before Width: | Height: | Size: 26 KiB |
Before Width: | Height: | Size: 55 KiB |
Before Width: | Height: | Size: 29 KiB |
Before Width: | Height: | Size: 68 KiB |
8
docs/install_guide/prerequisites.rst
Normal file
@ -0,0 +1,8 @@
|
||||
Prerequisites
|
||||
++++++++++++
|
||||
|
||||
The VMware DVS plugin works via manipulation resources of a VMware vSphere
|
||||
Distributed Switch. It means that it has to have connectivity to precreated and
|
||||
`well configured
|
||||
<https://www.vmware.com/products/vsphere/features/distributed-switch>`__
|
||||
dvSwitch on the vCenter which will be used in this environment.
|
5
docs/install_guide/puprose.rst
Normal file
@ -0,0 +1,5 @@
|
||||
Document purpose
|
||||
----------------
|
||||
|
||||
The purpose of this document is to describe how to install, configure
|
||||
and use the VMware DVS plugin 2.1.0 for Fuel 8.0.
|
15
docs/install_guide/release_notes.rst
Normal file
@ -0,0 +1,15 @@
|
||||
Release notes
|
||||
+++++++++++++
|
||||
|
||||
Release notes for VMware DVS plugin 2.1.0:
|
||||
|
||||
* New architecture with the vmware-dvs neutron agent.
|
||||
|
||||
* A name of dvSwitches is limited by 44 symbols.
|
||||
|
||||
* Support for remote security groups.
|
||||
|
||||
* Enhancement of stability especially in case of multiple simultenously runned
|
||||
tasks.
|
||||
|
||||
* The performance improvement.
|
19
docs/install_guide/remove.rst
Normal file
@ -0,0 +1,19 @@
|
||||
Removing the VMware DVS plugin
|
||||
------------------------------
|
||||
|
||||
To uninstall VMware DVS plugin, follow these steps:
|
||||
|
||||
#. Delete all environments in which VMware DVS plugin has been enabled.
|
||||
|
||||
#. Uninstall the plugin:
|
||||
::
|
||||
|
||||
# fuel plugins --remove fuel-plugin-vmware-dvs==2.1.0
|
||||
|
||||
#. Check if the plugin was uninstalled successfully:
|
||||
::
|
||||
|
||||
+------+--------+-----------+--------------------+
|
||||
| id | name | version | package_version |
|
||||
+------+--------+-----------+--------------------+
|
||||
+------+--------+-----------+--------------------+
|
10
docs/install_guide/requirements.rst
Normal file
@ -0,0 +1,10 @@
|
||||
Requirements
|
||||
++++++++++++
|
||||
|
||||
The plugin has the following requirements for software:
|
||||
|
||||
================ ===========
|
||||
**Requirement** **Version**
|
||||
Fuel 8.0
|
||||
vCenter 5.5/6.0
|
||||
================ ===========
|
23
docs/install_guide/terms.rst
Normal file
@ -0,0 +1,23 @@
|
||||
Key terms, acronyms and abbreviation
|
||||
-------------------------------------
|
||||
|
||||
.. tabularcolumns:: |p{3cm}|p{12.5cm}|
|
||||
|
||||
===================== ========================================================
|
||||
**Term/abbreviation** **Definition**
|
||||
===================== ========================================================
|
||||
VM Virtual Machine
|
||||
MOS Mirantis OpenStack
|
||||
OVS Open vSwitch
|
||||
Neutron ML2 plugin The Neutron Modular Layer 2 plugin is a framework
|
||||
allowing OpenStack Networking to simultaneously
|
||||
utilize the variety of layer 2 networking technologies
|
||||
vmware_dvs driver The driver in the Neutron ML2 plugin which provides
|
||||
interaction with dvSwitch on vCenter
|
||||
VMware DVS plugin The plugin for Fuel which installs and configures
|
||||
vmware_dvs driver on a MOS environment
|
||||
dvSwitch VMware vSphere® Distributed Switch
|
||||
VMware ESXi bare-metal hypervisor
|
||||
VMware vCenter Server Central control point for VMware vSphere
|
||||
VMware vSphere VMware’s cloud computing virtualization operating system
|
||||
===================== ========================================================
|
45
docs/install_guide/troubleshooting.rst
Normal file
@ -0,0 +1,45 @@
|
||||
Troubleshooting
|
||||
+++++++++++++++
|
||||
|
||||
VMware dvs driver consists from two parts: the mechanism driver of neutron and
|
||||
the agent. Thereby the main source of information for troubleshooting is
|
||||
/var/log/neutron/server.log and /var/log/neutron/vmware-dvs-agent-....log.
|
||||
|
||||
Please to be sure in correctness of configuration in
|
||||
the /etc/neutron/neutron.conf, /etc/neutron/plugin.ini. and
|
||||
/etc/neutron/plugins/ml2/vmware_dvs-.....ini It should contain following
|
||||
values:
|
||||
|
||||
neutron.conf::
|
||||
|
||||
notification_driver=messagingv2
|
||||
|
||||
|
||||
plugin.ini::
|
||||
|
||||
[ml2]
|
||||
mechanism_drivers =openvswitch,l2population,vmware_dvs
|
||||
[ml2_vmware]
|
||||
vsphere_login=<vsphere_user>
|
||||
vsphere_hostname=<vsphere_ip>
|
||||
vsphere_password=<vsphere_password>
|
||||
|
||||
vmware_dvs-<vcenter AZ>-<service name>.ini::
|
||||
[DEFAULT]
|
||||
host=<vcenter AZ>-<service name>
|
||||
|
||||
[securitygroup]
|
||||
enable_security_group = True
|
||||
firewall_driver=mech_vmware_dvs.agentDVS.vCenter_firewall.DVSFirewallDriver
|
||||
|
||||
[ml2_vmware]
|
||||
vsphere_login=<vsphere_user>
|
||||
network_maps=physnet2:<VDS>
|
||||
vsphere_hostname=<vsphere_ip>
|
||||
vsphere_password=<vsphere_password>
|
||||
|
||||
Sure all neutron-dvs-agent should be launched on corresponded nodes. On
|
||||
controllers --- under corosync and on compute-vmware --- via init script.
|
||||
|
||||
Also in case of trouble would be useful to check the
|
||||
connectivity between controller nodes and vCenter.
|
62
docs/install_guide/user.rst
Normal file
@ -0,0 +1,62 @@
|
||||
Using advanced neutron's possibilities with VMware DVS plugin
|
||||
-------------------------------------------------------------
|
||||
|
||||
#. Once OpenStack has been deployed, we can start using Neutron for
|
||||
networking. The port group for admin\_internal\_net should appear
|
||||
on the vCenter:
|
||||
|
||||
.. image:: _static/net04pg.png
|
||||
|
||||
.. raw:: latex
|
||||
|
||||
\pagebreak
|
||||
|
||||
2. In Horizon, the network topology should look like:
|
||||
|
||||
.. image:: _static/topology.png
|
||||
|
||||
where VMware is the name of the instance located on the vCenter.
|
||||
|
||||
#. You can use Neutron for such instance brand the same way as for KVM-located instances.
|
||||
|
||||
#. DVS Security groups functionality differs from KVM implementatin. VMWare DVS does not
|
||||
support stateful firewall properties and ICMP types. DVS Plugin realises emulation logic
|
||||
to support the similar behavior. It installs reverse traffic rule for each SG rule.
|
||||
VMWare DVS plugin state emulation logic uses ephemeral port range filter to rise security
|
||||
of reverse rules implementation.
|
||||
|
||||
Just add only those rules if you want to correctly launch EC2 compatible image with
|
||||
matadata request and DNS access:
|
||||
|
||||
Implement Custom TCP Egress rule to 169.254.169.254/32 CIDR port 80
|
||||
Implement Custom UDP Egress rule to '<DNS server IP or 0.0.0.0/0>' CIDR port 53
|
||||
|
||||
DVS plugin will install four rules:
|
||||
|
||||
1. TCP Egress from any IP ports 32768-65535 to metadata IP port 80
|
||||
|
||||
#. TCP Ingress from metadata IP port 80 to any IP ports 32768-65535
|
||||
|
||||
#. UDP Egress from any IP ports 32768-65535 to DNS IP port 53
|
||||
|
||||
#. UDP Ingress from DNS IP port 53 to any IP ports 32768-65535
|
||||
|
||||
32768-65535 is the useful ethemetal port range for most Linux kernels and Windows hosts.
|
||||
|
||||
Common egress TCP rule looks like this:
|
||||
|
||||
TCP Egress to any ports 0.0.0.0/0 CIDR
|
||||
|
||||
It works like:
|
||||
|
||||
TCP Egress from any IP ports 32768-65535 to any IP any port
|
||||
TCP Ingress from any IP any port to any IP ports 32768-65535
|
||||
|
||||
and private ports of your VM like http or ssh will be closed.
|
||||
|
||||
DVS plugin support only symmectric ICMP interaction. If your host can ping destination host,
|
||||
it means the destination host can ping your host by reverse rules.
|
||||
|
||||
#. Sometimes the error at log files happens "Cannot complete operation due to concurrent
|
||||
modification by another operation." due to absence of concurrent access to modify resources
|
||||
by vSphere. Do not panic. Driver has special wrapper for this exception.
|
5
docs/install_guide/verification.rst
Normal file
@ -0,0 +1,5 @@
|
||||
Verification
|
||||
++++++++++++
|
||||
|
||||
After deployment of an environment with VMware DVS plugin all corresponding
|
||||
OSTF tests should pass.
|
@ -1,260 +0,0 @@
|
||||
*****************************************************
|
||||
Guide to the VMware DVS plugin version 1.1.0 for Fuel
|
||||
*****************************************************
|
||||
|
||||
.. raw:: pdf
|
||||
|
||||
PageBreak
|
||||
|
||||
|
||||
Document purpose
|
||||
----------------
|
||||
|
||||
The purpose of this document is to describe how to install, configure
|
||||
and use the VMware DVS plugin 1.1.0 for Fuel 7.0.
|
||||
|
||||
Key terms, acronyms and abbreviation
|
||||
-------------------------------------
|
||||
|
||||
============================= ========================================================
|
||||
**Term/acronym/abbreviation** **Definition**
|
||||
============================= ========================================================
|
||||
VM Virtual Machine
|
||||
MOS Mirantis OpenStack
|
||||
OVS Open vSwitch
|
||||
Neutron ML2 plugin The Neutron Modular Layer 2 plugin is a framework
|
||||
allowing OpenStack Networking to simultaneously
|
||||
utilize the variety of layer 2 networking technologies
|
||||
vmware_dvs driver The driver in the Neutron ML2 plugin which provides
|
||||
interaction with dvSwitch on vCenter
|
||||
VMware DVS plugin The plugin for Fuel which installs and configures
|
||||
vmware_dvs driver on a MOS environment
|
||||
dvSwitch distributed vSwitch on VMware ESXi
|
||||
VMware ESXi bare-metal hypervisor
|
||||
VMware vCenter Server Central control point for VMware vSphere
|
||||
VMware vSphere VMware’s cloud computing virtualization operating
|
||||
system.
|
||||
============================= ========================================================
|
||||
|
||||
The VMware DVS plugin
|
||||
---------------------
|
||||
|
||||
MOS supports using vCenter as a hypervisor in a vCenter-only or
|
||||
heterogeneous, mixed with KVM environments. There is the vmware\_dvs
|
||||
driver for Neutron ML2 plugin which provides usage Neutron for
|
||||
networking in such environments. Thereby environments receives an
|
||||
advanced network features:
|
||||
|
||||
- Ability to create multi-tier networks (e.g., web tier, db tier, app
|
||||
tier).
|
||||
|
||||
- Control over IP addressing.
|
||||
|
||||
- Ability to insert an configure their own services (e.g., firewall,
|
||||
IPS)
|
||||
|
||||
- VPN/Bridge to remote physical hosting or customer premises.
|
||||
|
||||
Licensing information
|
||||
+++++++++++++++++++++
|
||||
|
||||
================= ============
|
||||
**Component** **License**
|
||||
vmware_dvs driver Apache 2.0
|
||||
VMware DVS plugin Apache 2.0
|
||||
================= ============
|
||||
|
||||
Requirements
|
||||
++++++++++++
|
||||
|
||||
The plugin has the following requirements for software:
|
||||
|
||||
================ ===========
|
||||
**Requirement** **Version**
|
||||
Fuel 7.0
|
||||
vCenter 5.5/6.0
|
||||
================ ===========
|
||||
|
||||
Limitations
|
||||
+++++++++++
|
||||
|
||||
- VMware DVS plugin be enabled only in environments with Neutron as the
|
||||
networking option.
|
||||
|
||||
- Only VLANs are supported for tenant network separation.
|
||||
|
||||
- Only vSphere 5.5 & 6.0 are supported.
|
||||
|
||||
|
||||
Installing the VMware DVS plugin
|
||||
--------------------------------
|
||||
|
||||
Make sure that:
|
||||
|
||||
* you have the installed the
|
||||
`Fuel Master node <https://docs.mirantis.com/openstack/fuel/fuel-7.0/user-guide.html>`__
|
||||
|
||||
* all the nodes of your future environment are discovered and functional.
|
||||
|
||||
* there is a connectivity to correctly configured vCenter with dvSwitch and clusters created. Please,
|
||||
see the `Mirantis OpenStack Planning Guide <https://docs.mirantis.com/openstack/fuel/fuel-7.0/planning-guide.html#vcenter-plan>`_, `User Guide <https://docs.mirantis.com/openstack/fuel/fuel-7/user-guide.html#vmware-integration-notes>`_ and `this plugin's specification <https://github.com/openstack/fuel-plugin-vmware-dvs/blob/master/specs/fuel-plugin-vmware-dvs.rst>`_ for information on configuring vCenter.
|
||||
|
||||
#. Download the plugin from the
|
||||
`Fuel Plugin Catalog <https://www.mirantis.com/products/openstack-drivers-and-plugins/fuel-plugins/>`__.
|
||||
|
||||
#. Copy the plugin into Fuel Master node:
|
||||
::
|
||||
|
||||
$ scp fuel-plugin-vmware-dvs-1.1-1.1.0-1.noarch.rpm <Fuel Master node ip>:/tmp
|
||||
|
||||
#. Log into the Fuel Master node and install the plugin:
|
||||
::
|
||||
|
||||
$ ssh root@<Fuel Master node ip>
|
||||
[root@nailgun ~]# fuel plugins --install /
|
||||
/tmp/fuel-plugin-vmware-dvs-1.1-1.1.0-1.noarch.rpm
|
||||
[root@nailgun ]# fuel plugins
|
||||
DEPRECATION WARNING: /etc/fuel/client/config.yaml exists and will
|
||||
be used as the source for settings. This behavior is deprecated.
|
||||
Please specify the path to your custom settings file in the
|
||||
FUELCLIENT_CUSTOM_SETTINGS environment variable.
|
||||
|
||||
+------+--------------------------+-----------+--------------------+
|
||||
| id | name | version | package\_version |
|
||||
+------+--------------------------+-----------+--------------------+
|
||||
| 2 | fuel-plugin-vmware-dvs | 1.1.0 | 3.0.0 |
|
||||
+------+--------------------------+-----------+--------------------+
|
||||
|
||||
Removing the VMware DVS plugin
|
||||
++++++++++++++++++++++++++++++
|
||||
|
||||
To uninstall VMware DVS plugin, follow these steps:
|
||||
|
||||
#. Delete all environments in which VMware DVS plugin has been enabled.
|
||||
|
||||
#. Uninstall the plugin:
|
||||
::
|
||||
|
||||
# fuel plugins --remove fuel-plugin-vmware-dvs--1.1.0
|
||||
|
||||
#. Check if the plugin was uninstalled successfully:
|
||||
::
|
||||
|
||||
+------+--------+-----------+--------------------+
|
||||
| id | name | version | package_version |
|
||||
+------+--------+-----------+--------------------+
|
||||
+------+--------+-----------+--------------------+
|
||||
|
||||
.. raw:: pdf
|
||||
|
||||
PageBreak
|
||||
|
||||
Configuring VMware DVS plugin
|
||||
-----------------------------
|
||||
|
||||
#. `Create a new OpenStack
|
||||
environment <https://docs.mirantis.com/openstack/fuel/fuel-7.0/user-guide.html#create-a-new-openstack-environment>`_
|
||||
with Fuel UI wizard.
|
||||
|
||||
.. image:: pics/create.png
|
||||
|
||||
#. In *Compute* menu, select *vCenter* checkbox:
|
||||
|
||||
.. image:: pics/compute.png
|
||||
|
||||
#. Select *Neutron with VLAN segmentation* for *Networking Setup* - it is
|
||||
the only networking configuration supported with VMware DVS plugin:
|
||||
|
||||
.. image:: pics/net.png
|
||||
|
||||
#. Finish environment creation following
|
||||
`documentation <https://docs.mirantis.com/openstack/fuel/fuel-7.0/user-guide.html#create-a-new-openstack-environment>`_.
|
||||
|
||||
#. Open the *Nodes* tab and `add
|
||||
<https://docs.mirantis.com/openstack/fuel/fuel-7.0/user-guide.html#configure-your-environment>`__
|
||||
at least 1 Controller and 1 Compute node to the environment:
|
||||
|
||||
.. image:: pics/nodes-compute.png
|
||||
|
||||
(Optional) You can also add 1 dedicated Compute VMware node:
|
||||
|
||||
.. image:: pics/nodes-vmware.png
|
||||
|
||||
#. Open the *Settings* tab of the Fuel Web UI and scroll down the page. Select the
|
||||
*use Neutron VMware DVS ML2 plugin* checkbox and specify correct name of dvSwitch:
|
||||
|
||||
.. image:: pics/settings.png
|
||||
|
||||
VMware DVS ML2 plugin does not support DVR feature. Keep Neutron DVR checkbox on Neutron Advanced Configuration tab at unchecked state.
|
||||
|
||||
#. Fill in the VMware configuration fields on the *VMware* tab:
|
||||
|
||||
.. image:: pics/vmware.png
|
||||
|
||||
(Optional) Choose Compute VMware node if your environment has the role:
|
||||
|
||||
.. image:: pics/vmware2.png
|
||||
|
||||
#. The rest of configuration is up to you.
|
||||
See `Mirantis OpenStack User Guide <https://docs.mirantis.com/openstack/fuel/fuel-7.0/user-guide.html>`__
|
||||
for instructions.
|
||||
|
||||
#. Click *Deploy changes* button to finish.
|
||||
|
||||
.. raw:: pdf
|
||||
|
||||
PageBreak
|
||||
|
||||
User Guide
|
||||
----------
|
||||
|
||||
#. Once OpenStack has been deployed, we can start using Neutron for
|
||||
networking. The net04 port group should appear on the vCenter:
|
||||
|
||||
.. image:: pics/net04pg.png
|
||||
|
||||
#. In Horizon, the network topology should look like:
|
||||
|
||||
.. image:: pics/topology.png
|
||||
|
||||
where VMware is the name of the instance located on the vCenter.
|
||||
|
||||
#. You can use Neutron for such instance brand the same way as for KVM-located instances.
|
||||
|
||||
#. DVS Security groups functionality differs from KVM implementatin. VMWare DVS does not
|
||||
support stateful firewall properties and ICMP types. DVS Plugin realises emulation logic
|
||||
to support the similar behavior. It installs reverse traffic rule for each SG rule.
|
||||
VMWare DVS plugin state emulation logic uses ephemeral port range filter to rise security
|
||||
of reverse rules implementation.
|
||||
|
||||
Does not recommended to use Remote Security Group in your rules. SG engine for DVS ignores
|
||||
those rules.
|
||||
|
||||
Just add only those rules if you want to correctly launch EC2 compatible image with
|
||||
matadata request and DNS access:
|
||||
|
||||
Implement Custom TCP Ergess rule to 169.254.169.254/32 CIDR port 80
|
||||
Implement Custom UDP Egress rule to '<DNS server IP or 0.0.0.0/0>' CIDR port 53
|
||||
|
||||
DVS plugin will install four rules:
|
||||
|
||||
TCP Egress from any IP ports 32768-65535 to metadata IP port 80
|
||||
TCP Ingress from metadata IP port 80 to any IP ports 32768-65535
|
||||
UDP Egress from any IP ports 32768-65535 to DNS IP port 53
|
||||
UDP Ingress from DNS IP port 53 to any IP ports 32768-65535
|
||||
|
||||
32768-65535 is the useful ethemetal port range for most Linux kernels and Windows hosts.
|
||||
|
||||
Common egress TCP rule looks like this:
|
||||
|
||||
TCP Egress to any ports 0.0.0.0/0 CIDR
|
||||
|
||||
It works like:
|
||||
|
||||
TCP Egress from any IP ports 32768-65535 to any IP any port
|
||||
TCP Ingress from any IP any port to any IP ports 32768-65535
|
||||
|
||||
and private ports of your VM like http or ssh will be closed.
|
||||
|
||||
DVS plugin support only symmectric ICMP interaction. If your host can ping destination host,
|
||||
it means the destination host can ping your host by reverse rules.
|
@ -3,7 +3,7 @@ name: fuel-plugin-vmware-dvs
|
||||
# Human-readable name for your plugin
|
||||
title: Neutron VMware DVS ML2 plugin
|
||||
# Plugin version
|
||||
version: '2.1.19'
|
||||
version: '2.1.0'
|
||||
# Description
|
||||
description: Enable to use plugin vmware_dvs for Neutron
|
||||
# Required fuel version
|
||||
|
@ -8,10 +8,13 @@ VMware-related MOS environments.
|
||||
Problem description
|
||||
===================
|
||||
|
||||
Modern facilities to networking in OpenStack is Neutron which replaces obsolete
|
||||
nova-networks. Unfortunately integration with VMware which realized in Fuel 6.1
|
||||
and below doesn't provide the possibilities to using Neutron. It leads that an
|
||||
environment which uses VMware hypervisors is greatly limited. When customers
|
||||
There are several solutions which provide networking for OpenStack with
|
||||
vSphere. Part of them are or were integrated in the Fuel: nova-network and
|
||||
VMware NSXv plugin. Other part --- networking-vsphere -- is the separate
|
||||
upstream project.
|
||||
|
||||
Unfortunately each of them has defects. Nova-network is the obsolete network
|
||||
solution which provides really restricted possibilities. When customers
|
||||
(especially huge customers) want to replicate rich enterprise network
|
||||
topologies:
|
||||
|
||||
@ -31,7 +34,13 @@ Nova-networks can offer:
|
||||
|
||||
* No generic service insertion.
|
||||
|
||||
Such we have the contradiction between customer needs and our solution.
|
||||
This contradiction doesn't allow to use nova-network in big enterprise.
|
||||
|
||||
VMware NSXv and networking-vsphere don't have such restrictions. Both of this
|
||||
solutions are based on the same idea: to create on ESXi's hosts special control
|
||||
VMs and redirect all tenant traffic to them. That approach permits to using all
|
||||
possibilities of Neutron but multiple traffic redirection dramatically affects
|
||||
to network performance. Also NSXv can be used in VMware-only environments.
|
||||
|
||||
Proposed change
|
||||
===============
|
||||
@ -39,100 +48,118 @@ Proposed change
|
||||
The Neutron has pluggable architecture which provides using different backends
|
||||
in different cases simultaneously by using ML2 plugin [0]. There is the
|
||||
vmware_dvs driver [1] which provides using Neutron for networking in
|
||||
vmware-related environments. And it is exactly what we want.
|
||||
vmware-related environments. This driver realizes different way to manage
|
||||
networks on vSphere. Vmware_dvs provides the mechanism driver and the
|
||||
neutron-dvs-agent that uses special vSphere API for direct manipulation virtual
|
||||
distributed switches: creates or deletes port-groups, ports and changes
|
||||
security rules on that ports.
|
||||
|
||||
In that way no unnecessary traffic redirections and the given scheme admits to
|
||||
achieve best performance. Also using modular ML2 architecture provides to
|
||||
usage several network backends simultaneously and hence creating heterogeneous
|
||||
OpenStack environments. And it is exactly what we want.
|
||||
|
||||
This plugin automates installation and configuration the vmware_dvs driver and
|
||||
its dependencies (it carries all of them with it to be independent from public
|
||||
network). After driver installation it changes configuration files
|
||||
/etc/neutron/neutron.conf and /etc/neutron/plugin.ini whereby neutron-server
|
||||
can manage networking on vCenter.
|
||||
/etc/neutron/neutron.conf, /etc/neutron/plugin.ini and
|
||||
/etc/neutron/plugins/ml2/vmware_dvs-$vcenters_az-$service_name.ini whereby
|
||||
neutron-server can manage networking on vCenter.
|
||||
|
||||
::
|
||||
|
||||
| Management | Public
|
||||
| |
|
||||
| |
|
||||
| |
|
||||
+-------------------------+ | |
|
||||
| Controller1 | | |
|
||||
| neutron-server +---------------o--------------+
|
||||
| +--------------------+ | | |
|
||||
| |Pacemaker | | | |
|
||||
| | neutron-...-agent | +---------------+ | +-------------+
|
||||
| +--------------------+ | | | | vCenter |
|
||||
+-------------------------+ | +--------+ |
|
||||
| | | |
|
||||
| | | |
|
||||
| | +-------------+
|
||||
+-------------------------+ | |
|
||||
| Controller2 | | |
|
||||
| neutron-server +---------------o--------------+
|
||||
| +--------------------+ | | |
|
||||
| |Pacemaker | | | |
|
||||
| | neutron-...-agent | +---------------+ |
|
||||
| +--------------------+ | | |
|
||||
+-------------------------+ | |
|
||||
| |
|
||||
| |
|
||||
+----------------------------+ | |
|
||||
|Compute1 | | |
|
||||
| +------------+ |
|
||||
| neutron-openvswitch-agent | | |
|
||||
+----------------------------+ | |
|
||||
| |
|
||||
| |
|
||||
+----------------------------+ | |
|
||||
|Compute2 | | |
|
||||
| +------------+ |
|
||||
| neutron-openvswitch-agent | | |
|
||||
+----------------------------+ | |
|
||||
| |
|
||||
| |
|
||||
| Management | Public
|
||||
| |
|
||||
| |
|
||||
| |
|
||||
+-------------------------+ | |
|
||||
| Controller1 | | |
|
||||
| neutron-server +--------o-------------+ +---------------+
|
||||
| +--------------------+ | | | |vSphere |
|
||||
| |Pacemaker | | | | | |
|
||||
| | neutron-dvs-agent | +--------+ | | +----------+ |
|
||||
| +--------------------+ | | | | | Cluster1 | |
|
||||
+-------------------------+ | | | | | |
|
||||
| | |++--+ | |
|
||||
| +--------+VDS| | |
|
||||
| | |++--+ | |
|
||||
+-------------------------+ | | | +----------+ |
|
||||
| Controller2 | | | | |
|
||||
| neutron-server +--------o-------------+ | |
|
||||
| +--------------------+ | | | | +----------+ |
|
||||
| |Pacemaker | | | | | | Cluster2 | |
|
||||
| | neutron-dvs-agent | +--------+ | | | | |
|
||||
| +--------------------+ | | | |++---+ | |
|
||||
+-------------------------+ | +--------+VDS2| | |
|
||||
| | |++---+ | |
|
||||
| | | +----------+ |
|
||||
+----------------------------+ | | +---------------+
|
||||
|Compute | | |
|
||||
| +-----+ |
|
||||
| neutron-openvswitch-agent | | |
|
||||
+----------------------------+ | |
|
||||
| |
|
||||
| |
|
||||
+----------------------------+ | |
|
||||
|Compute-vmware | | |
|
||||
| +-----o-------------+
|
||||
| neutron-dvs-agent | | |
|
||||
+----------------------------+ | |
|
||||
| |
|
||||
| |
|
||||
| |
|
||||
|
||||
Assumptions:
|
||||
------------
|
||||
|
||||
#. DVS switches must be provisioned by using vCenter firstly and manually
|
||||
#. All VDS'es must be provisioned by using vCenter firstly and manually.
|
||||
|
||||
#. There must be a mapping between physical network and DVS switch:
|
||||
#. There must be a mapping between physical network and VDS'es:
|
||||
|
||||
3. VLANs will be used as a tenant network separation by KVM’s OVS and ESXi’s
|
||||
DVS (must be the same for tenant network regardless which switch type OVS
|
||||
or DVS)
|
||||
VDS (must be the same for tenant network regardless which switch type OVS
|
||||
or VDS)
|
||||
|
||||
#. Each vSphere's Cluster has its own VDS.
|
||||
|
||||
#. There must be an ability to:
|
||||
|
||||
#. create / terminate network on DVS
|
||||
#. create / terminate network on VDS
|
||||
|
||||
#. bind port on DVS to VM
|
||||
#. bind port on VDS to VM
|
||||
|
||||
#. disable state of the neutron network / port on DVS
|
||||
#. disable state of the neutron network / port on VDS
|
||||
|
||||
#. assign multiple vNIC to a single VM deployed on ESXi
|
||||
|
||||
#. add VM to security groups
|
||||
|
||||
5. Name of driver is vmware_dvs
|
||||
|
||||
Limitations:
|
||||
------------
|
||||
|
||||
#. Only VLANs are supported for tenant network separation (VxLAN support can
|
||||
be added later, if project will be continued).
|
||||
#. Only VLANs are supported for tenant network separation.
|
||||
|
||||
#. Only vSphere 5.5 or 6.0 is supported
|
||||
|
||||
Alternatives
|
||||
------------
|
||||
|
||||
Use nova-network or other solution for Neutron and VMware.
|
||||
Use other solution for Neutron and VMware.
|
||||
|
||||
Data model impact
|
||||
-----------------
|
||||
|
||||
There are two changes will appears on the Settings tab:
|
||||
There are serveral changes will appears on the other subtab of Networks tab:
|
||||
|
||||
#. checkbox "Neutron VMware DVS ML2 plugin".
|
||||
|
||||
#. input field for specification dvSwitch's name for clusters.
|
||||
#. radiobutton with plugin's version
|
||||
|
||||
#. checkbox "Use the VMware DVS firewall driver"
|
||||
|
||||
#. input field for specification the cluster to VDS mapping.
|
||||
|
||||
REST API impact
|
||||
---------------
|
||||
@ -142,12 +169,13 @@ None
|
||||
Upgrade impact
|
||||
--------------
|
||||
|
||||
This plugin has to have a special version for an each Fuel's version. For this reason after the Fuel's upgrades plugin also should be upgraded.
|
||||
This plugin has to have a special version for an each Fuel's version. For this
|
||||
reason after the Fuel's upgrades plugin also should be upgraded.
|
||||
|
||||
Security impact
|
||||
---------------
|
||||
|
||||
Neutron provides better isolation between tenantes. Using this plugin increases
|
||||
Neutron provides better isolation between tenants. Using this plugin increases
|
||||
security.
|
||||
|
||||
Notifications impact
|
||||
@ -158,13 +186,9 @@ None
|
||||
Other end user impact
|
||||
---------------------
|
||||
|
||||
In the Fuel 6.1 if using vCenter was chosen on the wizard UI then possibilities
|
||||
of using Neutron for networking are locked. Unfortunately current plugin's
|
||||
architecture doesn't provide the way to pliable unlock it. Instead of it when
|
||||
the plugin is installed it just amend the Nailgun's database and cancel this
|
||||
lock. It will be never return again even the plugin will be remoted. So if user
|
||||
installs and remotes the plugin after that he can deploy environment with
|
||||
Neutron and VMware which will not work normally. User can care about that.
|
||||
After the VMware DVS plugin is installed there is the new checkbox "Neutron
|
||||
with VMware DVS" on the "Networking Setup" step of wizard. UI elements of the
|
||||
plugin are stored on subtab "Other" of tab "Networks" on the Fuel WebUI.
|
||||
|
||||
Performance Impact
|
||||
------------------
|
||||
@ -204,27 +228,18 @@ Assignee(s)
|
||||
:QA: Olesia Tsvigun <otsvigun>
|
||||
|
||||
:Mandatory design review: Vladimir Kuklin <vkuklin>, Bogdan Dobrelia
|
||||
<bogdando>, Sergii Golovatiuk <sgolovatiuk>,
|
||||
Andrzej Skupień <kendriu>
|
||||
<bogdando>, Sergii Golovatiuk <sgolovatiuk>
|
||||
|
||||
|
||||
Work Items
|
||||
----------
|
||||
|
||||
* Create the development and testing environment. Make a repository on github
|
||||
and job for CI on jenkins.
|
||||
* Rewrite puppet manifests, deployment scripts, init and corosync scripts and
|
||||
for working with agents on controller and compute-vmware nodes.
|
||||
|
||||
* Add script for amend the nailgun database.
|
||||
|
||||
* Add puppet manifests for install the driver, upgrade the python library and
|
||||
patch a controller.
|
||||
|
||||
* Add puppet manifests for configure neutron to use vmware_dvs ML2 plugin.
|
||||
|
||||
* Add pacemaker/corosync scripts for additional neutron-server processes.
|
||||
|
||||
* Add ostf-tests. Manual and auto acceptance testing.
|
||||
* Make new tests and build CI.
|
||||
|
||||
* Rewrite the documentation.
|
||||
|
||||
Dependencies
|
||||
============
|
||||
@ -234,63 +249,73 @@ VMware_dvs Neutron ML2 plugin [1]
|
||||
Testing
|
||||
=======
|
||||
|
||||
The existent ostf tests for Neutron good enough however they doesn't have a
|
||||
support for VMware. This lack should be eliminate by writing new tests special
|
||||
for Neutron and VMware. After this new system tests for Jenkins will be
|
||||
written. There is the list of cases for cheking:
|
||||
Target Test Items:
|
||||
------------------
|
||||
|
||||
#. Deploy testing:
|
||||
* Install/uninstall Fuel Vmware-DVS plugin
|
||||
* Deploy Cluster with Fuel Vmware-DVS plugin by Fuel
|
||||
* Roles of nodes
|
||||
* controller
|
||||
* compute
|
||||
* cinder
|
||||
* mongo
|
||||
* compute-vmware
|
||||
* cinder-vmware
|
||||
* Hypervisors:
|
||||
* KVM+Vcenter
|
||||
* Qemu+Vcenter
|
||||
* Storage:
|
||||
* Ceph
|
||||
* Cinder
|
||||
* VMWare vCenter/ESXi datastore for images
|
||||
* Network
|
||||
* Neutron with Vlan segmentation
|
||||
* HA + Neutron with VLAN
|
||||
* Additional components
|
||||
* Ceilometer
|
||||
* Health Check
|
||||
* Upgrade master node
|
||||
* MOS and VMware-DVS plugin
|
||||
* Computes(Nova)
|
||||
* Launch and manage instances
|
||||
* Launch instances in batch
|
||||
* Networks (Neutron)
|
||||
* Create and manage public and private networks.
|
||||
* Create and manage routers.
|
||||
* Port binding / disabling
|
||||
* Port security
|
||||
* Security groups
|
||||
* Assign vNIC to a VM
|
||||
* Connection between instances
|
||||
* Heat
|
||||
* Create stack from template
|
||||
* Delete stack
|
||||
* Keystone
|
||||
* Create and manage roles
|
||||
* Horizon
|
||||
* Create and manage projects
|
||||
* Create and manage users
|
||||
* Glance
|
||||
* Create and manage images
|
||||
* GUI
|
||||
* Fuel UI
|
||||
* CLI
|
||||
* Fuel CLI
|
||||
|
||||
1. Install Fuel plugin for Neutron ML2 vmware_dvs driver.
|
||||
Test approach:
|
||||
--------------
|
||||
|
||||
#. Uninstall Fuel plugin for Neutron ML2 vmware_dvs driver.
|
||||
|
||||
#. Deploy in HA cluster with plugin.
|
||||
|
||||
#. Deploy cluster with plugin and vmware datastore backend.
|
||||
|
||||
#. Deploy cluster with plugin and Ceph backend for Glance and Cinder.
|
||||
|
||||
#. Deploy cluster with plugin on Fuel 6.1 and upgrade to Fuel 7.0.
|
||||
|
||||
#. Functional testing:
|
||||
|
||||
#. Check abilities to create and teminate networks on DVS.
|
||||
|
||||
#. Check abilities to create and delete security groups.
|
||||
|
||||
#. Check abilities to bind port on DVS to VM, disable and enable this port.
|
||||
|
||||
#. Check abilities to assign multiple vNIC to a single VM.
|
||||
|
||||
#. Check connection between VMs in one tenant.
|
||||
|
||||
#. Check connectivity between VMs in one tenant which works in different
|
||||
availability zones: on KVM and on vCenter.
|
||||
|
||||
#. Check connectivity between VMs attached to different networks with and
|
||||
within a router between them.
|
||||
|
||||
#. Check isolation between VMs in different tenants.
|
||||
|
||||
#. Check connectivity to public network.
|
||||
|
||||
#. GUI testing.
|
||||
|
||||
#. Failover testing.
|
||||
|
||||
#. Verify that vmclusters should be migrate after remove controler.
|
||||
|
||||
#. Deploy cluster with plugin, addition and deletion of nodes.
|
||||
The project test approach consists of Smoke, Integration, System, Regression
|
||||
Failover and Acceptance test levels.
|
||||
|
||||
Acceptance criterias:
|
||||
---------------------
|
||||
|
||||
#. Tests with high and medium priority are passed.
|
||||
|
||||
#. All acceptance criteria for user stories are met.
|
||||
#. All test cases are executed. BVT tests are passed.
|
||||
#. Critical and high issues are fixed.
|
||||
|
||||
#. Test Coverage of feature is about 90 %
|
||||
#. All required documents are delivered.
|
||||
#. Release notes including a report on the known errors of that release.
|
||||
|
||||
Documentation Impact
|
||||
====================
|
||||
@ -311,3 +336,6 @@ References
|
||||
* Neutron ML2 wiki page https://wiki.openstack.org/wiki/Neutron/ML2
|
||||
|
||||
* Repository of ML2 driver https://github.com/Mirantis/vmware-dvs
|
||||
|
||||
* The blueprint for component registry
|
||||
https://blueprints.launchpad.net/fuel/+spec/component-registry
|
||||
|