diff --git a/patrole_tempest_plugin/README.rst b/patrole_tempest_plugin/README.rst
new file mode 100644
index 0000000..b016b88
--- /dev/null
+++ b/patrole_tempest_plugin/README.rst
@@ -0,0 +1,6 @@
+===============================================
+Tempest Integration of patrole
+===============================================
+
+This directory contains Tempest tests to cover the patrole project.
+
diff --git a/patrole_tempest_plugin/__init__.py b/patrole_tempest_plugin/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/patrole_tempest_plugin/__init__.py
diff --git a/patrole_tempest_plugin/config.py b/patrole_tempest_plugin/config.py
new file mode 100644
index 0000000..b0f25fd
--- /dev/null
+++ b/patrole_tempest_plugin/config.py
@@ -0,0 +1,19 @@
+#    Copyright (c) 2016 AT&T inc.
+#    All Rights Reserved.
+#
+#    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.
+
+from oslo_config import cfg
+
+rbac_group = cfg.OptGroup(name='rbac',
+                          title='RBAC testing options')
diff --git a/patrole_tempest_plugin/plugin.py b/patrole_tempest_plugin/plugin.py
new file mode 100644
index 0000000..62f4f15
--- /dev/null
+++ b/patrole_tempest_plugin/plugin.py
@@ -0,0 +1,40 @@
+#    Copyright (c) 2016 AT&T inc.
+#    All Rights Reserved.
+#
+#    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 os
+
+from tempest import config
+from tempest.test_discover import plugins
+
+from patrole_tempest_plugin import config as project_config
+
+
+class PatroleTempestPlugin(plugins.TempestPlugin):
+    def load_tests(self):
+        base_path = os.path.split(os.path.dirname(
+            os.path.abspath(__file__)))[0]
+        test_dir = "patrole_tempest_plugin/tests"
+        full_test_dir = os.path.join(base_path, test_dir)
+        return full_test_dir, base_path
+
+    def register_opts(self, conf):
+        config.register_opt_group(
+            conf,
+            project_config.rbac_group,
+            project_config.RbacGroup)
+
+    def get_opt_lists(self):
+        return []
diff --git a/patrole_tempest_plugin/services/__init__.py b/patrole_tempest_plugin/services/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/patrole_tempest_plugin/services/__init__.py
diff --git a/patrole_tempest_plugin/tests/__init__.py b/patrole_tempest_plugin/tests/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/patrole_tempest_plugin/tests/__init__.py
diff --git a/patrole_tempest_plugin/tests/api/__init__.py b/patrole_tempest_plugin/tests/api/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/patrole_tempest_plugin/tests/api/__init__.py
diff --git a/patrole_tempest_plugin/tests/scenario/__init__.py b/patrole_tempest_plugin/tests/scenario/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/patrole_tempest_plugin/tests/scenario/__init__.py
