Added documentation

Change-Id: I4cb4c8c56642337899d0865c147b54df72b2c1fa
diff --git a/doc/requirements.txt b/doc/requirements.txt
new file mode 100644
index 0000000..5a1ebd7
--- /dev/null
+++ b/doc/requirements.txt
@@ -0,0 +1,5 @@
+sphinx
+sphinx_rtd_theme
+reno[sphinx]
+https://github.com/ypid/yaml4rst/archive/master.tar.gz
+https://github.com/debops/yaml2rst/archive/master.tar.gz
\ No newline at end of file
diff --git a/doc/source/_static/.gitkeep b/doc/source/_static/.gitkeep
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/doc/source/_static/.gitkeep
diff --git a/doc/source/_templates/yaml4rst/defaults_header.j2 b/doc/source/_templates/yaml4rst/defaults_header.j2
new file mode 100644
index 0000000..b15a2e1
--- /dev/null
+++ b/doc/source/_templates/yaml4rst/defaults_header.j2
@@ -0,0 +1,11 @@
+---
+# .. vim: foldmarker=[[[,]]]:foldmethod=marker
+
+# .. Copyright (C) 2022 VEXXHOST, Inc.
+# .. SPDX-License-Identifier: Apache-2.0
+
+# Default variables
+# =================
+
+# .. contents:: Sections
+#    :local:
\ No newline at end of file
diff --git a/doc/source/conf.py b/doc/source/conf.py
new file mode 100644
index 0000000..ce1d48d
--- /dev/null
+++ b/doc/source/conf.py
@@ -0,0 +1,110 @@
+# Copyright (c) 2022 VEXXHOST, Inc.
+#
+# 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.
+
+# -- Path setup --------------------------------------------------------------
+
+# 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.
+#
+# import os
+# import sys
+# sys.path.insert(0, os.path.abspath('.'))
+
+# -- yaml2rst ----------------------------------------------------------------
+import os
+import glob
+import yaml2rst
+from yaml4rst.reformatter import YamlRstReformatter
+import pathlib
+
+for defaults_file in glob.glob("../../roles/*/defaults/main.yml"):
+    role_name = defaults_file.split("/")[-3]
+
+    YamlRstReformatter._HEADER_END_LINES = {
+        'yaml4rst': [
+            '# Default variables',
+            '#    :local:',
+            '# .. contents:: Sections',
+            '# .. include:: includes/all.rst',
+            '# .. include:: includes/role.rst',
+            '# .. include:: ../../../includes/global.rst',
+            '# -----------------',
+        ],
+    }
+
+    reformatter = YamlRstReformatter(
+        preset='yaml4rst',
+        template_path=os.path.join(
+            os.path.abspath(os.path.dirname(__file__)),
+            '_templates',
+        ),
+        config={
+            'ansible_full_role_name': f"vexxhost.atmosphere.{role_name}",
+            'ansible_role_name': role_name,
+        }
+    )
+    reformatter.read_file(defaults_file)
+    reformatter.reformat()
+    reformatter.write_file(
+        output_file=defaults_file,
+        only_if_changed=True,
+    )
+
+    pathlib.Path(f"roles/{role_name}/defaults").mkdir(parents=True, exist_ok=True)
+
+    rst_content = yaml2rst.convert_file(
+        defaults_file,
+        f"roles/{role_name}/defaults/main.rst",
+        strip_regex=r'\s*(:?\[{3}|\]{3})\d?$',
+        yaml_strip_regex=r'^\s{66,67}#\s\]{3}\d?$',
+    )
+
+
+# -- Project information -----------------------------------------------------
+
+project = 'Atmosphere'
+copyright = '2022, VEXXHOST, Inc.'
+author = 'VEXXHOST, Inc.'
+
+
+# -- General configuration ---------------------------------------------------
+
+# Add any Sphinx extension module names here, as strings. They can be
+# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
+# ones.
+extensions = [
+    'reno.sphinxext',
+]
+
+# Add any paths that contain templates here, relative to this directory.
+templates_path = ['_templates']
+
+# List of patterns, relative to source directory, that match files and
+# directories to ignore when looking for source files.
+# This pattern also affects html_static_path and html_extra_path.
+exclude_patterns = []
+
+
+# -- 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 = 'sphinx_rtd_theme'
+
+# 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']
diff --git a/doc/source/index.rst b/doc/source/index.rst
new file mode 100644
index 0000000..df83fbc
--- /dev/null
+++ b/doc/source/index.rst
@@ -0,0 +1,22 @@
+.. Atmosphere documentation master file, created by
+   sphinx-quickstart on Sun Mar 13 17:40:34 2022.
+   You can adapt this file completely to your liking, but it should at least
+   contain the root `toctree` directive.
+
+Welcome to Atmosphere's documentation!
+======================================
+
+.. toctree::
+   :maxdepth: 1
+   :caption: Contents:
+
+   roles/index
+   releasenotes
+
+
+Indices and tables
+==================
+
+* :ref:`genindex`
+* :ref:`modindex`
+* :ref:`search`
diff --git a/doc/source/releasenotes.rst b/doc/source/releasenotes.rst
new file mode 100644
index 0000000..f182f00
--- /dev/null
+++ b/doc/source/releasenotes.rst
@@ -0,0 +1,4 @@
+Release Notes
+=============
+
+.. release-notes::
\ No newline at end of file
diff --git a/doc/source/roles/ceph_csi_rbd/index.rst b/doc/source/roles/ceph_csi_rbd/index.rst
new file mode 100644
index 0000000..3cf76af
--- /dev/null
+++ b/doc/source/roles/ceph_csi_rbd/index.rst
@@ -0,0 +1,10 @@
+.. Copyright (C) 2022 VEXXHOST, Inc.
+.. SPDX-License-Identifier: Apache-2.0
+
+``ceph_csi_rbd``
+================
+
+.. toctree::
+   :maxdepth: 2
+
+   defaults/main
\ No newline at end of file
diff --git a/doc/source/roles/ceph_mon/index.rst b/doc/source/roles/ceph_mon/index.rst
new file mode 100644
index 0000000..3cdec24
--- /dev/null
+++ b/doc/source/roles/ceph_mon/index.rst
@@ -0,0 +1,10 @@
+.. Copyright (C) 2022 VEXXHOST, Inc.
+.. SPDX-License-Identifier: Apache-2.0
+
+``ceph_mon``
+============
+
+.. toctree::
+   :maxdepth: 2
+
+   defaults/main
\ No newline at end of file
diff --git a/doc/source/roles/ceph_osd/index.rst b/doc/source/roles/ceph_osd/index.rst
new file mode 100644
index 0000000..3591ee1
--- /dev/null
+++ b/doc/source/roles/ceph_osd/index.rst
@@ -0,0 +1,10 @@
+.. Copyright (C) 2022 VEXXHOST, Inc.
+.. SPDX-License-Identifier: Apache-2.0
+
+``ceph_osd``
+============
+
+.. toctree::
+   :maxdepth: 2
+
+   defaults/main
\ No newline at end of file
diff --git a/doc/source/roles/ceph_repository/index.rst b/doc/source/roles/ceph_repository/index.rst
new file mode 100644
index 0000000..090527f
--- /dev/null
+++ b/doc/source/roles/ceph_repository/index.rst
@@ -0,0 +1,10 @@
+.. Copyright (C) 2022 VEXXHOST, Inc.
+.. SPDX-License-Identifier: Apache-2.0
+
+``ceph_repository``
+===================
+
+.. toctree::
+   :maxdepth: 2
+
+   defaults/main
\ No newline at end of file
diff --git a/doc/source/roles/cert_manager/index.rst b/doc/source/roles/cert_manager/index.rst
new file mode 100644
index 0000000..81a18b8
--- /dev/null
+++ b/doc/source/roles/cert_manager/index.rst
@@ -0,0 +1,10 @@
+.. Copyright (C) 2022 VEXXHOST, Inc.
+.. SPDX-License-Identifier: Apache-2.0
+
+``cert_manager``
+================
+
+.. toctree::
+   :maxdepth: 2
+
+   defaults/main
\ No newline at end of file
diff --git a/doc/source/roles/containerd/index.rst b/doc/source/roles/containerd/index.rst
new file mode 100644
index 0000000..0ebf780
--- /dev/null
+++ b/doc/source/roles/containerd/index.rst
@@ -0,0 +1,10 @@
+.. Copyright (C) 2022 VEXXHOST, Inc.
+.. SPDX-License-Identifier: Apache-2.0
+
+``containerd``
+==============
+
+.. toctree::
+   :maxdepth: 2
+
+   defaults/main
\ No newline at end of file
diff --git a/doc/source/roles/helm/index.rst b/doc/source/roles/helm/index.rst
new file mode 100644
index 0000000..6c8de12
--- /dev/null
+++ b/doc/source/roles/helm/index.rst
@@ -0,0 +1,10 @@
+.. Copyright (C) 2022 VEXXHOST, Inc.
+.. SPDX-License-Identifier: Apache-2.0
+
+``helm``
+========
+
+.. toctree::
+   :maxdepth: 2
+
+   defaults/main
\ No newline at end of file
diff --git a/doc/source/roles/index.rst b/doc/source/roles/index.rst
new file mode 100644
index 0000000..a55c879
--- /dev/null
+++ b/doc/source/roles/index.rst
@@ -0,0 +1,11 @@
+.. Copyright (C) 2022 VEXXHOST, Inc.
+.. SPDX-License-Identifier: Apache-2.0
+
+Role reference
+==============
+
+.. toctree::
+   :maxdepth: 1
+   :glob:
+
+   */index
diff --git a/doc/source/roles/kubernetes/index.rst b/doc/source/roles/kubernetes/index.rst
new file mode 100644
index 0000000..a8b9bcc
--- /dev/null
+++ b/doc/source/roles/kubernetes/index.rst
@@ -0,0 +1,10 @@
+.. Copyright (C) 2022 VEXXHOST, Inc.
+.. SPDX-License-Identifier: Apache-2.0
+
+``kubernetes``
+==============
+
+.. toctree::
+   :maxdepth: 2
+
+   defaults/main
\ No newline at end of file
diff --git a/doc/source/roles/openstack_cli/index.rst b/doc/source/roles/openstack_cli/index.rst
new file mode 100644
index 0000000..246af3b
--- /dev/null
+++ b/doc/source/roles/openstack_cli/index.rst
@@ -0,0 +1,10 @@
+.. Copyright (C) 2022 VEXXHOST, Inc.
+.. SPDX-License-Identifier: Apache-2.0
+
+``openstack_cli``
+=================
+
+.. toctree::
+   :maxdepth: 2
+
+   defaults/main
\ No newline at end of file
diff --git a/doc/source/roles/openstack_helm_cinder/index.rst b/doc/source/roles/openstack_helm_cinder/index.rst
new file mode 100644
index 0000000..f9fb91c
--- /dev/null
+++ b/doc/source/roles/openstack_helm_cinder/index.rst
@@ -0,0 +1,10 @@
+.. Copyright (C) 2022 VEXXHOST, Inc.
+.. SPDX-License-Identifier: Apache-2.0
+
+``openstack_helm_cinder``
+=========================
+
+.. toctree::
+   :maxdepth: 2
+
+   defaults/main
\ No newline at end of file
diff --git a/doc/source/roles/openstack_helm_endpoints/index.rst b/doc/source/roles/openstack_helm_endpoints/index.rst
new file mode 100644
index 0000000..aad51b7
--- /dev/null
+++ b/doc/source/roles/openstack_helm_endpoints/index.rst
@@ -0,0 +1,10 @@
+.. Copyright (C) 2022 VEXXHOST, Inc.
+.. SPDX-License-Identifier: Apache-2.0
+
+``openstack_helm_endpoints``
+============================
+
+.. toctree::
+   :maxdepth: 2
+
+   defaults/main
\ No newline at end of file
diff --git a/doc/source/roles/openstack_helm_glance/index.rst b/doc/source/roles/openstack_helm_glance/index.rst
new file mode 100644
index 0000000..a9868c6
--- /dev/null
+++ b/doc/source/roles/openstack_helm_glance/index.rst
@@ -0,0 +1,10 @@
+.. Copyright (C) 2022 VEXXHOST, Inc.
+.. SPDX-License-Identifier: Apache-2.0
+
+``openstack_helm_glance``
+=========================
+
+.. toctree::
+   :maxdepth: 2
+
+   defaults/main
\ No newline at end of file
diff --git a/doc/source/roles/openstack_helm_heat/index.rst b/doc/source/roles/openstack_helm_heat/index.rst
new file mode 100644
index 0000000..c77c442
--- /dev/null
+++ b/doc/source/roles/openstack_helm_heat/index.rst
@@ -0,0 +1,10 @@
+.. Copyright (C) 2022 VEXXHOST, Inc.
+.. SPDX-License-Identifier: Apache-2.0
+
+``openstack_helm_heat``
+=======================
+
+.. toctree::
+   :maxdepth: 2
+
+   defaults/main
\ No newline at end of file
diff --git a/doc/source/roles/openstack_helm_horizon/index.rst b/doc/source/roles/openstack_helm_horizon/index.rst
new file mode 100644
index 0000000..c017ea4
--- /dev/null
+++ b/doc/source/roles/openstack_helm_horizon/index.rst
@@ -0,0 +1,10 @@
+.. Copyright (C) 2022 VEXXHOST, Inc.
+.. SPDX-License-Identifier: Apache-2.0
+
+``openstack_helm_horizon``
+==========================
+
+.. toctree::
+   :maxdepth: 2
+
+   defaults/main
\ No newline at end of file
diff --git a/doc/source/roles/openstack_helm_infra_ceph_provisioners/index.rst b/doc/source/roles/openstack_helm_infra_ceph_provisioners/index.rst
new file mode 100644
index 0000000..83a0d64
--- /dev/null
+++ b/doc/source/roles/openstack_helm_infra_ceph_provisioners/index.rst
@@ -0,0 +1,10 @@
+.. Copyright (C) 2022 VEXXHOST, Inc.
+.. SPDX-License-Identifier: Apache-2.0
+
+``openstack_helm_infra_ceph_provisioners``
+==========================================
+
+.. toctree::
+   :maxdepth: 2
+
+   defaults/main
\ No newline at end of file
diff --git a/doc/source/roles/openstack_helm_infra_libvirt/index.rst b/doc/source/roles/openstack_helm_infra_libvirt/index.rst
new file mode 100644
index 0000000..355ff12
--- /dev/null
+++ b/doc/source/roles/openstack_helm_infra_libvirt/index.rst
@@ -0,0 +1,10 @@
+.. Copyright (C) 2022 VEXXHOST, Inc.
+.. SPDX-License-Identifier: Apache-2.0
+
+``openstack_helm_infra_libvirt``
+================================
+
+.. toctree::
+   :maxdepth: 2
+
+   defaults/main
\ No newline at end of file
diff --git a/doc/source/roles/openstack_helm_infra_memcached/index.rst b/doc/source/roles/openstack_helm_infra_memcached/index.rst
new file mode 100644
index 0000000..8e39b8e
--- /dev/null
+++ b/doc/source/roles/openstack_helm_infra_memcached/index.rst
@@ -0,0 +1,10 @@
+.. Copyright (C) 2022 VEXXHOST, Inc.
+.. SPDX-License-Identifier: Apache-2.0
+
+``openstack_helm_infra_memcached``
+==================================
+
+.. toctree::
+   :maxdepth: 2
+
+   defaults/main
\ No newline at end of file
diff --git a/doc/source/roles/openstack_helm_infra_openvswitch/index.rst b/doc/source/roles/openstack_helm_infra_openvswitch/index.rst
new file mode 100644
index 0000000..6f7e857
--- /dev/null
+++ b/doc/source/roles/openstack_helm_infra_openvswitch/index.rst
@@ -0,0 +1,10 @@
+.. Copyright (C) 2022 VEXXHOST, Inc.
+.. SPDX-License-Identifier: Apache-2.0
+
+``openstack_helm_infra_openvswitch``
+====================================
+
+.. toctree::
+   :maxdepth: 2
+
+   defaults/main
\ No newline at end of file
diff --git a/doc/source/roles/openstack_helm_infra_rabbitmq/index.rst b/doc/source/roles/openstack_helm_infra_rabbitmq/index.rst
new file mode 100644
index 0000000..4ab8e1f
--- /dev/null
+++ b/doc/source/roles/openstack_helm_infra_rabbitmq/index.rst
@@ -0,0 +1,10 @@
+.. Copyright (C) 2022 VEXXHOST, Inc.
+.. SPDX-License-Identifier: Apache-2.0
+
+``openstack_helm_infra_rabbitmq``
+=================================
+
+.. toctree::
+   :maxdepth: 2
+
+   defaults/main
\ No newline at end of file
diff --git a/doc/source/roles/openstack_helm_ingress/index.rst b/doc/source/roles/openstack_helm_ingress/index.rst
new file mode 100644
index 0000000..b068625
--- /dev/null
+++ b/doc/source/roles/openstack_helm_ingress/index.rst
@@ -0,0 +1,10 @@
+.. Copyright (C) 2022 VEXXHOST, Inc.
+.. SPDX-License-Identifier: Apache-2.0
+
+``openstack_helm_ingress``
+==========================
+
+.. toctree::
+   :maxdepth: 2
+
+   defaults/main
\ No newline at end of file
diff --git a/doc/source/roles/openstack_helm_keystone/index.rst b/doc/source/roles/openstack_helm_keystone/index.rst
new file mode 100644
index 0000000..bb37000
--- /dev/null
+++ b/doc/source/roles/openstack_helm_keystone/index.rst
@@ -0,0 +1,10 @@
+.. Copyright (C) 2022 VEXXHOST, Inc.
+.. SPDX-License-Identifier: Apache-2.0
+
+``openstack_helm_keystone``
+===========================
+
+.. toctree::
+   :maxdepth: 2
+
+   defaults/main
\ No newline at end of file
diff --git a/doc/source/roles/openstack_helm_neutron/index.rst b/doc/source/roles/openstack_helm_neutron/index.rst
new file mode 100644
index 0000000..a84eff8
--- /dev/null
+++ b/doc/source/roles/openstack_helm_neutron/index.rst
@@ -0,0 +1,10 @@
+.. Copyright (C) 2022 VEXXHOST, Inc.
+.. SPDX-License-Identifier: Apache-2.0
+
+``openstack_helm_neutron``
+==========================
+
+.. toctree::
+   :maxdepth: 2
+
+   defaults/main
\ No newline at end of file
diff --git a/doc/source/roles/openstack_helm_nova/index.rst b/doc/source/roles/openstack_helm_nova/index.rst
new file mode 100644
index 0000000..5fbfafb
--- /dev/null
+++ b/doc/source/roles/openstack_helm_nova/index.rst
@@ -0,0 +1,10 @@
+.. Copyright (C) 2022 VEXXHOST, Inc.
+.. SPDX-License-Identifier: Apache-2.0
+
+``openstack_helm_nova``
+=======================
+
+.. toctree::
+   :maxdepth: 2
+
+   defaults/main
\ No newline at end of file
diff --git a/doc/source/roles/openstack_helm_placement/index.rst b/doc/source/roles/openstack_helm_placement/index.rst
new file mode 100644
index 0000000..f5f67e3
--- /dev/null
+++ b/doc/source/roles/openstack_helm_placement/index.rst
@@ -0,0 +1,10 @@
+.. Copyright (C) 2022 VEXXHOST, Inc.
+.. SPDX-License-Identifier: Apache-2.0
+
+``openstack_helm_placement``
+============================
+
+.. toctree::
+   :maxdepth: 2
+
+   defaults/main
\ No newline at end of file
diff --git a/doc/source/roles/openstack_helm_senlin/index.rst b/doc/source/roles/openstack_helm_senlin/index.rst
new file mode 100644
index 0000000..982967e
--- /dev/null
+++ b/doc/source/roles/openstack_helm_senlin/index.rst
@@ -0,0 +1,10 @@
+.. Copyright (C) 2022 VEXXHOST, Inc.
+.. SPDX-License-Identifier: Apache-2.0
+
+``openstack_helm_senlin``
+=========================
+
+.. toctree::
+   :maxdepth: 2
+
+   defaults/main
\ No newline at end of file