diff --git a/README.rst b/README.rst
index b2c74ee..8b5bd3c 100644
--- a/README.rst
+++ b/README.rst
@@ -1,4 +1,7 @@
-========================
+======================
+Octavia Tempest Plugin
+======================
+
 Team and repository tags
 ========================
 
@@ -7,7 +10,6 @@
 
 .. Change things from this point on
 
-==============================
 Tempest integration of Octavia
 ==============================
 
diff --git a/doc/requirements.txt b/doc/requirements.txt
index ddf8411..90ae115 100644
--- a/doc/requirements.txt
+++ b/doc/requirements.txt
@@ -9,3 +9,6 @@
 
 # releasenotes
 reno>=2.5.0 # Apache-2.0
+
+# PDF Docs
+sphinxcontrib-svg2pdfconverter>=0.1.0 # BSD
diff --git a/doc/source/conf.py b/doc/source/conf.py
index 2d5c49f..5bbe295 100755
--- a/doc/source/conf.py
+++ b/doc/source/conf.py
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+import datetime
 import os
 import sys
 
@@ -29,7 +30,8 @@
     'sphinx.ext.viewcode',
     'openstackdocstheme',
     'oslo_config.sphinxext',
-    'sphinxcontrib.apidoc'
+    'sphinxcontrib.apidoc',
+    'sphinxcontrib.rsvgconverter'
 ]
 
 # autodoc generation is a bit aggressive and a nuisance when doing heavy
@@ -45,7 +47,17 @@
 
 # General information about the project.
 project = u'octavia-tempest-plugin'
-copyright = u'2017, OpenStack Foundation'
+copyright = u'2017-2019, OpenStack Foundation'
+
+# 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.
+#
+# Version info
+from octavia_tempest_plugin.version import version_info as octavia_tempest_ver
+release = octavia_tempest_ver.release_string()
+# The short X.Y version.
+version = octavia_tempest_ver.version_string()
 
 # If true, '()' will be appended to :func: etc. cross-reference text.
 add_function_parentheses = True
@@ -60,6 +72,14 @@
 # A list of ignored prefixes for module index sorting.
 modindex_common_prefix = ['octavia_tempest_plugin.']
 
+repository_name = 'openstack/octavia-tempest-plugin'
+bug_project = '910'
+bug_tag = 'docs'
+
+apidoc_output_dir = '_build/modules'
+apidoc_module_dir = '../../octavia_tempest_plugin'
+apidoc_excluded_paths = []
+
 # -- Options for HTML output --------------------------------------------------
 
 # The theme to use for HTML and HTML Help pages.  Major themes that come with
@@ -81,23 +101,66 @@
 # If false, no index is generated.
 html_use_index = True
 
+# -- Options for LaTeX output -------------------------------------------------
+
+# Fix Unicode character for sphinx_feature_classification
+# Sphinx default latex engine (pdflatex) doesn't know much unicode
+latex_preamble = r"""
+\usepackage{newunicodechar}
+\newunicodechar{✖}{\sffamily X}
+\setcounter{tocdepth}{2}
+\authoraddress{\textcopyright %s OpenStack Foundation}
+""" % datetime.datetime.now().year
+
+latex_elements = {
+    # The paper size ('letterpaper' or 'a4paper').
+    # 'papersize': 'letterpaper',
+
+    # The font size ('10pt', '11pt' or '12pt').
+    # 'pointsize': '10pt',
+
+    # Additional stuff for the LaTeX preamble.
+    # openany: Skip blank pages in generated PDFs
+    'extraclassoptions': 'openany,oneside',
+    'makeindex': '',
+    'printindex': '',
+    'preamble': latex_preamble
+}
+
+# Disable usage of xindy https://bugzilla.redhat.com/show_bug.cgi?id=1643664
+# Some distros are missing xindy
+latex_use_xindy = False
+
+# Fix missing apostrophe
+smartquotes_excludes = {'builders': ['latex']}
+
 # Grouping the document tree into LaTeX files. List of tuples
 # (source start file, target name, title, author, documentclass
 # [howto/manual]).
-latex_documents = [
-    ('index',
-     '%s.tex' % project,
-     u'%s Documentation' % project,
-     u'OpenStack Foundation', 'manual'),
-]
+latex_documents = [(
+    'index',
+    'doc-octavia-tempest-plugin.tex',
+    u'Octavia Tempest Plugin Documentation',
+    u'OpenStack Octavia Team',
+    'manual'
+)]
 
-# Example configuration for intersphinx: refer to the Python standard library.
-#intersphinx_mapping = {'http://docs.python.org/': None}
+# The name of an image file (relative to this directory) to place at the top of
+# the title page.
+# latex_logo = None
 
-repository_name = 'openstack/octavia-tempest-plugin'
-bug_project = '910'
-bug_tag = 'docs'
+# For "manual" documents, if this is true, then toplevel headings are parts,
+# not chapters.
+# latex_use_parts = False
 
-apidoc_output_dir = '_build/modules'
-apidoc_module_dir = '../../octavia_tempest_plugin'
-apidoc_excluded_paths = []
+# 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 = False
diff --git a/doc/source/index.rst b/doc/source/index.rst
index 494a0b6..b991832 100644
--- a/doc/source/index.rst
+++ b/doc/source/index.rst
@@ -6,8 +6,6 @@
 Welcome to octavia-tempest-plugin's documentation!
 ==================================================
 
-Contents:
-
 .. toctree::
    :maxdepth: 2
 
@@ -16,14 +14,16 @@
    contributing
    configref
 
-Indices and tables
-==================
+.. only:: html
 
-.. toctree::
-   :hidden:
+   Indices and tables
+   ------------------
 
-   _build/modules/modules
+   .. toctree::
+      :hidden:
 
-* :ref:`genindex`
-* :ref:`modindex`
-* :ref:`search`
+      _build/modules/modules
+
+   * :ref:`genindex`
+   * :ref:`modindex`
+   * :ref:`search`
diff --git a/octavia_tempest_plugin/clients.py b/octavia_tempest_plugin/clients.py
index f85404c..f2a7767 100644
--- a/octavia_tempest_plugin/clients.py
+++ b/octavia_tempest_plugin/clients.py
@@ -52,7 +52,7 @@
         params.update({
             'auth_provider': self.auth_provider,
             'service': CONF.load_balancer.catalog_type,
-            'region': CONF.load_balancer.region,
+            'region': CONF.load_balancer.region or CONF.identity.region,
             'endpoint_type': CONF.load_balancer.endpoint_type,
             'build_interval': CONF.load_balancer.build_interval,
             'build_timeout': CONF.load_balancer.build_timeout
diff --git a/octavia_tempest_plugin/config.py b/octavia_tempest_plugin/config.py
index 63c292b..6d50c89 100644
--- a/octavia_tempest_plugin/config.py
+++ b/octavia_tempest_plugin/config.py
@@ -209,10 +209,10 @@
                default="TCP",
                help="The type of L4 Protocol which is supported with the "
                     "provider driver."),
-    cfg.StrOpt('spare_pool_enabled',
-               default=False,
-               help="Wether spare pool is available with amphora provider "
-                    "driver or not."),
+    cfg.BoolOpt('spare_pool_enabled',
+                default=False,
+                help="Wether spare pool is available with amphora provider "
+                "driver or not."),
     cfg.BoolOpt('session_persistence_enabled',
                 default=True,
                 help="Whether session persistence is supported with the "
diff --git a/octavia_tempest_plugin/tests/scenario/v2/test_traffic_ops.py b/octavia_tempest_plugin/tests/scenario/v2/test_traffic_ops.py
index eba7e38..5b6d99b 100644
--- a/octavia_tempest_plugin/tests/scenario/v2/test_traffic_ops.py
+++ b/octavia_tempest_plugin/tests/scenario/v2/test_traffic_ops.py
@@ -51,6 +51,12 @@
             cls.mem_lb_client.cleanup_loadbalancer,
             cls.lb_id)
 
+        waiters.wait_for_status(cls.mem_lb_client.show_loadbalancer,
+                                cls.lb_id, const.PROVISIONING_STATUS,
+                                const.ACTIVE,
+                                CONF.load_balancer.lb_build_interval,
+                                CONF.load_balancer.lb_build_timeout)
+
         if CONF.validation.connect_method == 'floating':
             port_id = lb[const.VIP_PORT_ID]
             result = cls.lb_mem_float_ip_client.create_floatingip(
@@ -67,12 +73,6 @@
         else:
             cls.lb_vip_address = lb[const.VIP_ADDRESS]
 
-        waiters.wait_for_status(cls.mem_lb_client.show_loadbalancer,
-                                cls.lb_id, const.PROVISIONING_STATUS,
-                                const.ACTIVE,
-                                CONF.load_balancer.lb_build_interval,
-                                CONF.load_balancer.lb_build_timeout)
-
         protocol = const.HTTP
         lb_feature_enabled = CONF.loadbalancer_feature_enabled
         if not lb_feature_enabled.l7_protocol_enabled:
diff --git a/octavia_tempest_plugin/tests/test_base.py b/octavia_tempest_plugin/tests/test_base.py
index c26b675..0e8a909 100644
--- a/octavia_tempest_plugin/tests/test_base.py
+++ b/octavia_tempest_plugin/tests/test_base.py
@@ -806,6 +806,17 @@
             if proc.returncode != 0:
                 raise exceptions.CommandFailed(proc.returncode, cmd,
                                                stdout, stderr)
+
+        # Enabling memory overcommit allows to run golang static binaries
+        # compiled with a recent golang toolchain (>=1.11). Those binaries
+        # allocate a large amount of virtual memory at init time, and this
+        # allocation fails in tempest's nano flavor (64MB of RAM)
+        # (golang issue reported in https://github.com/golang/go/issues/28114,
+        # follow-up: https://github.com/golang/go/issues/28081)
+        # TODO(gthiemonge): Remove this call when golang issue is resolved.
+        linux_client.exec_command('sudo sh -c "echo 1 > '
+                                  '/proc/sys/vm/overcommit_memory"')
+
         linux_client.exec_command('sudo screen -d -m {0} -port 80 '
                                   '-id {1}'.format(dest_file, start_id))
         linux_client.exec_command('sudo screen -d -m {0} -port 81 '
diff --git a/octavia_tempest_plugin/version.py b/octavia_tempest_plugin/version.py
new file mode 100644
index 0000000..0f2cf15
--- /dev/null
+++ b/octavia_tempest_plugin/version.py
@@ -0,0 +1,32 @@
+#    Copyright 2011-2014 OpenStack Foundation
+#
+#    Licensed under the Apache License, Version 2.0 (the "License"); you may
+#    not use this file except in compliance with the License. You may obtain
+#    a copy of the License at
+#
+#         http://www.apache.org/licenses/LICENSE-2.0
+#
+#    Unless required by applicable law or agreed to in writing, software
+#    distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+#    License for the specific language governing permissions and limitations
+#    under the License.
+
+import pbr.version
+
+OCTAVIA_TEMPEST_VENDOR = "OpenStack Foundation"
+OCTAVIA_TEMPEST_PRODUCT = "OpenStack Octavia tempest plugin"
+
+version_info = pbr.version.VersionInfo('octavia-tempest-plugin')
+
+
+def vendor_string():
+    return OCTAVIA_TEMPEST_VENDOR
+
+
+def product_string():
+    return OCTAVIA_TEMPEST_PRODUCT
+
+
+def version_string_with_package():
+    return version_info.version_string()
diff --git a/tox.ini b/tox.ini
index 1ca36b7..33b941c 100644
--- a/tox.ini
+++ b/tox.ini
@@ -49,6 +49,17 @@
   rm -rf doc/build
   sphinx-build -W -b html doc/source doc/build/html
 
+[testenv:pdf-docs]
+basepython = python3
+deps = {[testenv:docs]deps}
+whitelist_externals =
+  make
+  rm
+commands =
+  rm -rf doc/build/pdf
+  sphinx-build -W -b latex doc/source doc/build/pdf
+  make -C doc/build/pdf
+
 [testenv:releasenotes]
 basepython = python3
 deps =
diff --git a/zuul.d/jobs.yaml b/zuul.d/jobs.yaml
index aac2460..0548cab 100644
--- a/zuul.d/jobs.yaml
+++ b/zuul.d/jobs.yaml
@@ -97,10 +97,15 @@
           $OCTAVIA_CONF:
             haproxy_amphora:
               # Set these higher for non-nested virt nodepool instances
-              connection_max_retries: 300
+              connection_max_retries: 1200
               build_active_retries: 300
             amphora_agent:
               forward_all_logs: True
+        test-config:
+          "$TEMPEST_CONFIG":
+            load_balancer:
+              check_interval: 1
+              check_timeout: 180
       devstack_services:
         neutron-qos: true
       devstack_plugins:
@@ -425,12 +430,6 @@
         OCTAVIA_AMP_BASE_OS: centos
         OCTAVIA_AMP_DISTRIBUTION_RELEASE_ID: 7
         OCTAVIA_AMP_IMAGE_SIZE: 3
-      devstack_local_conf:
-        post-config:
-          $OCTAVIA_CONF:
-            haproxy_amphora:
-              # Set these higher for non-nested virt nodepool instances
-              connection_max_retries: 480
 
 - job:
     name: octavia-v2-dsvm-scenario-ubuntu-bionic
@@ -525,6 +524,49 @@
     parent: octavia-v2-dsvm-py2-spare-pool
     override-checkout: stable/queens
 
+- job:
+    name: octavia-v2-dsvm-cinder-amphora
+    parent: octavia-v2-dsvm-scenario
+    required-projects:
+      - openstack/cinder
+      - openstack/diskimage-builder
+      - openstack/octavia
+      - openstack/octavia-lib
+      - openstack/python-cinderclient
+      - openstack/python-octaviaclient
+    vars:
+      devstack_local_conf:
+        post-config:
+          $OCTAVIA_CONF:
+            controller_worker:
+              volume_driver: volume_cinder_driver
+            cinder:
+              volume_size: 2
+      devstack_services:
+        c-bak: true
+        ceilometer-acentral: false
+        ceilometer-acompute: false
+        ceilometer-alarm-evaluator: false
+        ceilometer-alarm-notifier: false
+        ceilometer-anotification: false
+        ceilometer-api: false
+        ceilometer-collector: false
+        c-sch: true
+        c-api: true
+        c-vol: true
+        cinder: true
+        octavia: true
+        o-api: true
+        o-cw: true
+        o-hm: true
+        o-hk: true
+        swift: false
+        s-account: false
+        s-container: false
+        s-object: false
+        s-proxy: false
+        tempest: true
+
 # Temporary transitional aliases for gates used in other repos
 # Remove once octavia has transitioned job names
 - job:
@@ -583,11 +625,6 @@
         OCTAVIA_AMP_DISTRIBUTION_RELEASE_ID: 7
         OCTAVIA_AMP_IMAGE_SIZE: 3
       devstack_local_conf:
-        post-config:
-          $OCTAVIA_CONF:
-            haproxy_amphora:
-              # Set these higher for non-nested virt nodepool instances
-              connection_max_retries: 480
         test-config:
           "$TEMPEST_CONFIG":
             load_balancer:
diff --git a/zuul.d/projects.yaml b/zuul.d/projects.yaml
index 4b36f01..79f0c3d 100644
--- a/zuul.d/projects.yaml
+++ b/zuul.d/projects.yaml
@@ -62,6 +62,8 @@
             voting: false
         - octavia-v2-dsvm-py2-spare-pool-stable-queens:
             voting: false
+        - octavia-v2-dsvm-cinder-amphora:
+            voting: false
     gate:
       queue: octavia
       jobs:
