diff --git a/roles/ceph_csi_rbd/defaults/main.yml b/roles/ceph_csi_rbd/defaults/main.yml
index fc16f2d..025bca2 100644
--- a/roles/ceph_csi_rbd/defaults/main.yml
+++ b/roles/ceph_csi_rbd/defaults/main.yml
@@ -1,20 +1,43 @@
-# 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.
+---
+# .. vim: foldmarker=[[[,]]]:foldmethod=marker
 
+# .. Copyright (C) 2022 VEXXHOST, Inc.
+# .. SPDX-License-Identifier: Apache-2.0
+
+# Default variables
+# =================
+
+# .. contents:: Sections
+#    :local:
+
+
+# .. envvar:: ceph_csi_rbd_ceph_fsid [[[
+#
+# Filesystem ID for Ceph cluster
 ceph_csi_rbd_ceph_fsid: "{{ ceph_mon_fsid }}"
+
+                                                                   # ]]]
+# .. envvar:: ceph_csi_rbd_mons_group [[[
+#
+# Ansible group that contains all Ceph monitors
 ceph_csi_rbd_mons_group: ceph_mons
 
+                                                                   # ]]]
+# .. envvar:: ceph_csi_rbd_id [[[
+#
+# ID of the Ceph CSI RBD user
 ceph_csi_rbd_id: kube
+
+                                                                   # ]]]
+# .. envvar:: ceph_csi_rbd_user [[[
+#
+# Name of Ceph user to use for Ceph CSI RBD
 ceph_csi_rbd_user: "client.{{ ceph_csi_rbd_id }}"
+
+                                                                   # ]]]
+# .. envvar:: ceph_csi_rbd_pool [[[
+#
+# Name of Ceph pool to use for Ceph CSI RBD
 ceph_csi_rbd_pool: kube
+
+                                                                   # ]]]
diff --git a/roles/ceph_mon/defaults/main.yml b/roles/ceph_mon/defaults/main.yml
index d8f595b..f001f84 100644
--- a/roles/ceph_mon/defaults/main.yml
+++ b/roles/ceph_mon/defaults/main.yml
@@ -1,16 +1,25 @@
-# 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.
+---
+# .. vim: foldmarker=[[[,]]]:foldmethod=marker
 
+# .. Copyright (C) 2022 VEXXHOST, Inc.
+# .. SPDX-License-Identifier: Apache-2.0
+
+# Default variables
+# =================
+
+# .. contents:: Sections
+#    :local:
+
+
+# .. envvar:: ceph_mon_group [[[
+#
+# Name of Ansible group that contains all Ceph monitors
 ceph_mon_group: ceph_mons
+
+                                                                   # ]]]
+# .. envvar:: ceph_mon_cluster_network [[[
+#
+# Cluster (replication) network used by Ceph
 ceph_mon_cluster_network: "{{ ceph_mon_public_network }}"
+
+                                                                   # ]]]
diff --git a/roles/ceph_osd/defaults/main.yml b/roles/ceph_osd/defaults/main.yml
index 0c6f323..844bdee 100644
--- a/roles/ceph_osd/defaults/main.yml
+++ b/roles/ceph_osd/defaults/main.yml
@@ -1,15 +1,19 @@
-# 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.
+---
+# .. vim: foldmarker=[[[,]]]:foldmethod=marker
 
+# .. Copyright (C) 2022 VEXXHOST, Inc.
+# .. SPDX-License-Identifier: Apache-2.0
+
+# Default variables
+# =================
+
+# .. contents:: Sections
+#    :local:
+
+
+# .. envvar:: ceph_osd_mons_group [[[
+#
+# Name of Ansible group that contains all Ceph monitors
 ceph_osd_mons_group: ceph_mons
+
+                                                                   # ]]]
diff --git a/roles/ceph_repository/defaults/main.yml b/roles/ceph_repository/defaults/main.yml
index a898c6f..85b5d7b 100644
--- a/roles/ceph_repository/defaults/main.yml
+++ b/roles/ceph_repository/defaults/main.yml
@@ -1,17 +1,31 @@
-# 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.
+---
+# .. vim: foldmarker=[[[,]]]:foldmethod=marker
 
+# .. Copyright (C) 2022 VEXXHOST, Inc.
+# .. SPDX-License-Identifier: Apache-2.0
+
+# Default variables
+# =================
+
+# .. contents:: Sections
+#    :local:
+
+
+# .. envvar:: ceph_repository_apt_key [[[
+#
+# Ceph APT repository GPG key
 ceph_repository_apt_key: "https://download.ceph.com/keys/release.asc"
+
+                                                                   # ]]]
+# .. envvar:: ceph_repository_url [[[
+#
+# Ceph APT repository URL
 ceph_repository_url: https://download.ceph.com/debian-pacific/
+
+                                                                   # ]]]
+# .. envvar:: ceph_repository_version [[[
+#
+# Ceph version to pin package manager to
 ceph_repository_version: 16.2.7
+
+                                                                   # ]]]
diff --git a/roles/cert_manager/defaults/main.yml b/roles/cert_manager/defaults/main.yml
index 45415d9..508c527 100644
--- a/roles/cert_manager/defaults/main.yml
+++ b/roles/cert_manager/defaults/main.yml
@@ -1,19 +1,25 @@
-# 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.
+---
+# .. vim: foldmarker=[[[,]]]:foldmethod=marker
 
+# .. Copyright (C) 2022 VEXXHOST, Inc.
+# .. SPDX-License-Identifier: Apache-2.0
+
+# Default variables
+# =================
+
+# .. contents:: Sections
+#    :local:
+
+
+# .. envvar:: cert_manager_acme_server [[[
+#
+# ACME server URL
 cert_manager_acme_server: https://acme-v02.api.letsencrypt.org/directory
 
+                                                                   # ]]]
+# .. envvar:: cert_manager_issuer [[[
+#
+# Definition for the ``cert-manager`` issuer
 cert_manager_issuer:
   acme:
     email: mnaser@vexxhost.com
@@ -24,3 +30,5 @@
       - http01:
           ingress:
             class: openstack
+
+                                                                   # ]]]
diff --git a/roles/containerd/defaults/main.yml b/roles/containerd/defaults/main.yml
index 10c3662..2b742d1 100644
--- a/roles/containerd/defaults/main.yml
+++ b/roles/containerd/defaults/main.yml
@@ -1,15 +1,19 @@
-# 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.
+---
+# .. vim: foldmarker=[[[,]]]:foldmethod=marker
 
+# .. Copyright (C) 2022 VEXXHOST, Inc.
+# .. SPDX-License-Identifier: Apache-2.0
+
+# Default variables
+# =================
+
+# .. contents:: Sections
+#    :local:
+
+
+# .. envvar:: containerd_pause_image [[[
+#
+# Image to use for ``containerd`` pause container
 containerd_pause_image: k8s.gcr.io/pause:3.5
+
+                                                                   # ]]]
diff --git a/roles/helm/defaults/main.yml b/roles/helm/defaults/main.yml
index 61eac60..bd0af99 100644
--- a/roles/helm/defaults/main.yml
+++ b/roles/helm/defaults/main.yml
@@ -1,17 +1,31 @@
-# 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.
+---
+# .. vim: foldmarker=[[[,]]]:foldmethod=marker
 
+# .. Copyright (C) 2022 VEXXHOST, Inc.
+# .. SPDX-License-Identifier: Apache-2.0
+
+# Default variables
+# =================
+
+# .. contents:: Sections
+#    :local:
+
+
+# .. envvar:: helm_repository_apt_key [[[
+#
+# Helm APT repository GPG key
 helm_repository_apt_key: https://baltocdn.com/helm/signing.asc
+
+                                                                   # ]]]
+# .. envvar:: helm_repository_url [[[
+#
+# Helm APT repository URL
 helm_repository_url: https://baltocdn.com/helm/stable/debian/
+
+                                                                   # ]]]
+# .. envvar:: helm_version [[[
+#
+# Helm version to use
 helm_version: 3.8.0
+
+                                                                   # ]]]
diff --git a/roles/kubernetes/defaults/main.yml b/roles/kubernetes/defaults/main.yml
index 74f6c2c..7e0d154 100644
--- a/roles/kubernetes/defaults/main.yml
+++ b/roles/kubernetes/defaults/main.yml
@@ -1,23 +1,38 @@
-# 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.
+---
+# .. vim: foldmarker=[[[,]]]:foldmethod=marker
 
+# .. Copyright (C) 2022 VEXXHOST, Inc.
+# .. SPDX-License-Identifier: Apache-2.0
+
+# Default variables
+# =================
+
+# .. contents:: Sections
+#    :local:
+
+
+# .. envvar:: kubernetes_repo_url [[[
+#
+# Kubernetes repository URL
 kubernetes_repo_url: "{{ _kubernetes_upstream_apt_repository }}"
+
+                                                                   # ]]]
+# .. envvar:: kubernetes_version [[[
+#
+# Kubernetes version
 kubernetes_version: 1.22.7
 
+                                                                   # ]]]
+# .. envvar:: kubernetes_kernel_modules [[[
+#
+# List of kernel modules to be automatically loaded
 kubernetes_kernel_modules:
   - br_netfilter
 
+                                                                   # ]]]
+# .. envvar:: kubernetes_sysctls [[[
+#
+# List of ``sysctl`` parameters to set
 kubernetes_sysctls:
   - name: net.ipv4.ip_forward
     value: 1
@@ -32,4 +47,10 @@
   - name: net.ipv4.conf.all.rp_filter
     value: 0
 
+                                                                   # ]]]
+# .. envvar:: kubernetes_control_plane_group [[[
+#
+# Name of Ansible group containing all control-plane nodes
 kubernetes_control_plane_group: controllers
+
+                                                                   # ]]]
diff --git a/roles/openstack_cli/defaults/main.yml b/roles/openstack_cli/defaults/main.yml
index 8079a74..03d293c 100644
--- a/roles/openstack_cli/defaults/main.yml
+++ b/roles/openstack_cli/defaults/main.yml
@@ -1,16 +1,20 @@
-# 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.
+---
+# .. vim: foldmarker=[[[,]]]:foldmethod=marker
 
+# .. Copyright (C) 2022 VEXXHOST, Inc.
+# .. SPDX-License-Identifier: Apache-2.0
+
+# Default variables
+# =================
+
+# .. contents:: Sections
+#    :local:
+
+
+# .. envvar:: openstack_cli_packages [[[
+#
+# List of packages to install for OpenStack CLI
 openstack_cli_packages:
   - python3-openstackclient
+
+                                                                   # ]]]
diff --git a/roles/openstack_helm_cinder/defaults/main.yml b/roles/openstack_helm_cinder/defaults/main.yml
index 02e5a98..c4f55b5 100644
--- a/roles/openstack_helm_cinder/defaults/main.yml
+++ b/roles/openstack_helm_cinder/defaults/main.yml
@@ -1,23 +1,55 @@
-# 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.
+---
+# .. vim: foldmarker=[[[,]]]:foldmethod=marker
 
+# .. Copyright (C) 2022 VEXXHOST, Inc.
+# .. SPDX-License-Identifier: Apache-2.0
+
+# Default variables
+# =================
+
+# .. contents:: Sections
+#    :local:
+
+
+# .. envvar:: openstack_helm_cinder_chart_repo_name [[[
+#
+# Helm repository name for the chart.
 openstack_helm_cinder_chart_repo_name: openstack-helm
+
+                                                                   # ]]]
+# .. envvar:: openstack_helm_cinder_chart_repo_url [[[
+#
+# Helm repository URL for the chart.
 openstack_helm_cinder_chart_repo_url: https://tarballs.opendev.org/openstack/openstack-helm/
+
+                                                                   # ]]]
+# .. envvar:: openstack_helm_cinder_chart_name [[[
+#
+# Helm chart name (will also be used for release name)
 openstack_helm_cinder_chart_name: cinder
 
+                                                                   # ]]]
+# .. envvar:: openstack_helm_cinder_image_repository [[[
+#
+# Image repository location to be prefixed for all images
 openstack_helm_cinder_image_repository: "{{ atmosphere_image_repository | default('us-docker.pkg.dev/vexxhost-infra/openstack') }}"
+
+                                                                   # ]]]
+# .. envvar:: openstack_helm_cinder_image_tag [[[
+#
+# Image tag for container
 openstack_helm_cinder_image_tag: 18.1.1.dev29-1
+
+                                                                   # ]]]
+# .. envvar:: openstack_helm_cinder_heat_image_tag [[[
+#
+# Image tag for Heat to be used for jobs running via Helm hooks
 openstack_helm_cinder_heat_image_tag: wallaby
 
+                                                                   # ]]]
+# .. envvar:: openstack_helm_cinder_values [[[
+#
+# Overrides for Helm chart values
 openstack_helm_cinder_values: {}
+
+                                                                   # ]]]
diff --git a/roles/openstack_helm_endpoints/defaults/main.yml b/roles/openstack_helm_endpoints/defaults/main.yml
index 721dcc5..56050cb 100644
--- a/roles/openstack_helm_endpoints/defaults/main.yml
+++ b/roles/openstack_helm_endpoints/defaults/main.yml
@@ -1,109 +1,408 @@
-# 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.
+---
+# .. vim: foldmarker=[[[,]]]:foldmethod=marker
 
-# Base configuration
-openstack_helm_endpoints_region_name: "{{ undef(hint='You must specify an OpenStack region name') }}"
+# .. Copyright (C) 2022 VEXXHOST, Inc.
+# .. SPDX-License-Identifier: Apache-2.0
+
+# Default variables
+# =================
+
+# .. contents:: Sections
+#    :local:
+
+# .. envvar:: openstack_helm_endpoints_config [[[
+#
+# Additional overrides for the OpenStack Helm endpoints
 openstack_helm_endpoints_config: {}
 
-# RabbitMQ
+                                                                   # ]]]
+# .. envvar:: openstack_helm_endpoints_region_name [[[
+#
+# Default OpenStack region name
+openstack_helm_endpoints_region_name: "{{ undef(hint='You must specify an OpenStack region name') }}"
+
+                                                                   # ]]]
+# .. envvar:: openstack_helm_endpoints_rabbitmq_erlang_cookie [[[
+#
+# Erlang cookie for RabbitMQ
 openstack_helm_endpoints_rabbitmq_erlang_cookie: "{{ undef(hint='You must specify an RabbitMQ Erlang cookie') }}"
+
+                                                                   # ]]]
+# .. envvar:: openstack_helm_endpoints_rabbitmq_admin_password [[[
+#
+# RabbitMQ administrator password
 openstack_helm_endpoints_rabbitmq_admin_password: "{{ undef(hint='You must specify a RabbitMQ admin password') }}"
 
-# Memcached
+                                                                   # ]]]
+# .. envvar:: openstack_helm_endpoints_memcached_secret_key [[[
+#
+# Memcached secret key for ``oslo.cache``
 openstack_helm_endpoints_memcached_secret_key: "{{ undef(hint='You must specify a Memcached secret key') }}"
 
-# Keystone
+                                                                   # ]]]
+# .. envvar:: openstack_helm_endpoints_keystone_api_host [[[
+#
+# API hostname for OpenStack Identity Service
 openstack_helm_endpoints_keystone_api_host: "{{ undef(hint='You must specify a Keystone API hostname') }}"
+
+                                                                   # ]]]
+# .. envvar:: openstack_helm_endpoints_keystone_region_name [[[
+#
+# Region name for service
 openstack_helm_endpoints_keystone_region_name: "{{ openstack_helm_endpoints_region_name }}"
+
+                                                                   # ]]]
+# .. envvar:: openstack_helm_endpoints_keystone_admin_password [[[
+#
+# Keystone password for ``admin`` user
 openstack_helm_endpoints_keystone_admin_password: "{{ undef(hint='You must specify a Keystone administrator password') }}"
+
+                                                                   # ]]]
+# .. envvar:: openstack_helm_endpoints_keystone_mariadb_password [[[
+#
+# Database password for service
 openstack_helm_endpoints_keystone_mariadb_password: "{{ undef(hint='You must specify a Keystone MariaDB password') }}"
+
+                                                                   # ]]]
+# .. envvar:: openstack_helm_endpoints_keystone_rabbitmq_password [[[
+#
+# RabbitMQ password for service
 openstack_helm_endpoints_keystone_rabbitmq_password: "{{ undef(hint='You must specify a Keystone RabbitMQ password') }}"
 
-# Glance
+                                                                   # ]]]
+# .. envvar:: openstack_helm_endpoints_glance_api_host [[[
+#
+# API hostname for OpenStack Image Service
 openstack_helm_endpoints_glance_api_host: "{{ undef(hint='You must specify a Glance API hostname') }}"
+
+                                                                   # ]]]
+# .. envvar:: openstack_helm_endpoints_glance_region_name [[[
+#
+# Region name for service
 openstack_helm_endpoints_glance_region_name: "{{ openstack_helm_endpoints_region_name }}"
+
+                                                                   # ]]]
+# .. envvar:: openstack_helm_endpoints_glance_keystone_password [[[
+#
+# Keystone password for service
 openstack_helm_endpoints_glance_keystone_password: "{{ undef(hint='You must specify a Glance Keystone password') }}"
+
+                                                                   # ]]]
+# .. envvar:: openstack_helm_endpoints_glance_mariadb_password [[[
+#
+# Database password for service
 openstack_helm_endpoints_glance_mariadb_password: "{{ undef(hint='You must specify a Glance MariaDB password') }}"
+
+                                                                   # ]]]
+# .. envvar:: openstack_helm_endpoints_glance_rabbitmq_password [[[
+#
+# RabbitMQ password for service
 openstack_helm_endpoints_glance_rabbitmq_password: "{{ undef(hint='You must specify a Glance RabbitMQ password') }}"
 
-# Cinder
+                                                                   # ]]]
+# .. envvar:: openstack_helm_endpoints_cinder_api_host [[[
+#
+# API hostname for OpenStack Block Storage Service
 openstack_helm_endpoints_cinder_api_host: "{{ undef(hint='You must specify a Cinder API hostname') }}"
+
+                                                                   # ]]]
+# .. envvar:: openstack_helm_endpoints_cinder_region_name [[[
+#
+# Region name for service
 openstack_helm_endpoints_cinder_region_name: "{{ openstack_helm_endpoints_region_name }}"
+
+                                                                   # ]]]
+# .. envvar:: openstack_helm_endpoints_cinder_keystone_password [[[
+#
+# Keystone password for service
 openstack_helm_endpoints_cinder_keystone_password: "{{ undef(hint='You must specify a Cinder Keystone password') }}"
+
+                                                                   # ]]]
+# .. envvar:: openstack_helm_endpoints_cinder_mariadb_password [[[
+#
+# Database password for service
 openstack_helm_endpoints_cinder_mariadb_password: "{{ undef(hint='You must specify a Cinder MariaDB password') }}"
+
+                                                                   # ]]]
+# .. envvar:: openstack_helm_endpoints_cinder_rabbitmq_password [[[
+#
+# RabbitMQ password for service
 openstack_helm_endpoints_cinder_rabbitmq_password: "{{ undef(hint='You must specify a Cinder RabbitMQ password') }}"
 
-# Placement
+                                                                   # ]]]
+# .. envvar:: openstack_helm_endpoints_placement_api_host [[[
+#
+# API hostname for OpenStack Placement Service
 openstack_helm_endpoints_placement_api_host: "{{ undef(hint='You must specify a Placement API hostname') }}"
+
+                                                                   # ]]]
+# .. envvar:: openstack_helm_endpoints_placement_region_name [[[
+#
+# Region name for service
 openstack_helm_endpoints_placement_region_name: "{{ openstack_helm_endpoints_region_name }}"
+
+                                                                   # ]]]
+# .. envvar:: openstack_helm_endpoints_placement_keystone_password [[[
+#
+# Keystone password for service
 openstack_helm_endpoints_placement_keystone_password: "{{ undef(hint='You must specify a Placement Keystone password') }}"
+
+                                                                   # ]]]
+# .. envvar:: openstack_helm_endpoints_placement_mariadb_password [[[
+#
+# Database password for service
 openstack_helm_endpoints_placement_mariadb_password: "{{ undef(hint='You must specify a Placement MariaDB password') }}"
 
-# Neutron
+                                                                   # ]]]
+# .. envvar:: openstack_helm_endpoints_neutron_api_host [[[
+#
+# API hostname for OpenStack Networking Service
 openstack_helm_endpoints_neutron_api_host: "{{ undef(hint='You must specify a Neutron API hostname') }}"
+
+                                                                   # ]]]
+# .. envvar:: openstack_helm_endpoints_neutron_region_name [[[
+#
+# Region name for service
 openstack_helm_endpoints_neutron_region_name: "{{ openstack_helm_endpoints_region_name }}"
+
+                                                                   # ]]]
+# .. envvar:: openstack_helm_endpoints_neutron_keystone_password [[[
+#
+# Keystone password for service
 openstack_helm_endpoints_neutron_keystone_password: "{{ undef(hint='You must specify a Neutron Keystone password') }}"
+
+                                                                   # ]]]
+# .. envvar:: openstack_helm_endpoints_neutron_mariadb_password [[[
+#
+# Database password for service
 openstack_helm_endpoints_neutron_mariadb_password: "{{ undef(hint='You must specify a Neutron MariaDB password') }}"
+
+                                                                   # ]]]
+# .. envvar:: openstack_helm_endpoints_neutron_rabbitmq_password [[[
+#
+# RabbitMQ password for service
 openstack_helm_endpoints_neutron_rabbitmq_password: "{{ undef(hint='You must specify a Neutron RabbitMQ password') }}"
+
+                                                                   # ]]]
+# .. envvar:: openstack_helm_endpoints_neutron_metadata_secret [[[
+#
+# Shared secret for Nova metadata service
 openstack_helm_endpoints_neutron_metadata_secret: "{{ undef(hint='You must specify a Neutron metadata secret') }}"
 
-# Nova
+                                                                   # ]]]
+# .. envvar:: openstack_helm_endpoints_nova_api_host [[[
+#
+# API hostname for OpenStack Compute Service
 openstack_helm_endpoints_nova_api_host: "{{ undef(hint='You must specify a Nova API hostname') }}"
+
+                                                                   # ]]]
+# .. envvar:: openstack_helm_endpoints_nova_novnc_host [[[
+#
+# API hostname for OpenStack Compute Service (VNC)
 openstack_helm_endpoints_nova_novnc_host: "{{ undef(hint='You must specify a Nova NoVNC hostname') }}"
+
+                                                                   # ]]]
+# .. envvar:: openstack_helm_endpoints_nova_region_name [[[
+#
+# Region name for service
 openstack_helm_endpoints_nova_region_name: "{{ openstack_helm_endpoints_region_name }}"
+
+                                                                   # ]]]
+# .. envvar:: openstack_helm_endpoints_nova_keystone_password [[[
+#
+# Keystone password for service
 openstack_helm_endpoints_nova_keystone_password: "{{ undef(hint='You must specify a Nova Keystone password') }}"
+
+                                                                   # ]]]
+# .. envvar:: openstack_helm_endpoints_nova_mariadb_password [[[
+#
+# Database password for service
 openstack_helm_endpoints_nova_mariadb_password: "{{ undef(hint='You must specify a Nova MariaDB password') }}"
+
+                                                                   # ]]]
+# .. envvar:: openstack_helm_endpoints_nova_rabbitmq_password [[[
+#
+# RabbitMQ password for service
 openstack_helm_endpoints_nova_rabbitmq_password: "{{ undef(hint='You must specify a Nova RabbitMQ password') }}"
 
-# Ironic
+                                                                   # ]]]
+# .. envvar:: openstack_helm_endpoints_ironic_api_host [[[
+#
+# API hostname for OpenStack Bare Metal Service
 openstack_helm_endpoints_ironic_api_host: "{{ undef(hint='You must specify an Ironic API hostname') }}"
+
+                                                                   # ]]]
+# .. envvar:: openstack_helm_endpoints_ironic_region_name [[[
+#
+# Region name for service
 openstack_helm_endpoints_ironic_region_name: "{{ openstack_helm_endpoints_region_name }}"
+
+                                                                   # ]]]
+# .. envvar:: openstack_helm_endpoints_ironic_keystone_password [[[
+#
+# Keystone password for service
 openstack_helm_endpoints_ironic_keystone_password: "{{ undef(hint='You must specify an Ironic Keystone password') }}"
+
+                                                                   # ]]]
+# .. envvar:: openstack_helm_endpoints_ironic_mariadb_password [[[
+#
+# Database password for service
 openstack_helm_endpoints_ironic_mariadb_password: "{{ undef(hint='You must specify an Ironic MariaDB password') }}"
+
+                                                                   # ]]]
+# .. envvar:: openstack_helm_endpoints_ironic_rabbitmq_password [[[
+#
+# RabbitMQ password for service
 openstack_helm_endpoints_ironic_rabbitmq_password: "{{ undef(hint='You must specify an Ironic RabbitMQ password') }}"
 
-# Designate
+                                                                   # ]]]
+# .. envvar:: openstack_helm_endpoints_designate_api_host [[[
+#
+# API hostname for OpenStack DNS Service
 openstack_helm_endpoints_designate_api_host: "{{ undef(hint='You must specify a Designate API hostname') }}"
+
+                                                                   # ]]]
+# .. envvar:: openstack_helm_endpoints_designate_region_name [[[
+#
+# Region name for service
 openstack_helm_endpoints_designate_region_name: "{{ openstack_helm_endpoints_region_name }}"
+
+                                                                   # ]]]
+# .. envvar:: openstack_helm_endpoints_designate_keystone_password [[[
+#
+# Keystone password for service
 openstack_helm_endpoints_designate_keystone_password: "{{ undef(hint='You must specify a Designate Keystone password') }}"
+
+                                                                   # ]]]
+# .. envvar:: openstack_helm_endpoints_designate_mariadb_password [[[
+#
+# Database password for service
 openstack_helm_endpoints_designate_mariadb_password: "{{ undef(hint='You must specify a Designate MariaDB password') }}"
+
+                                                                   # ]]]
+# .. envvar:: openstack_helm_endpoints_designate_rabbitmq_password [[[
+#
+# RabbitMQ password for service
 openstack_helm_endpoints_designate_rabbitmq_password: "{{ undef(hint='You must specify a Designate RabbitMQ password') }}"
 
-# Octavia
+                                                                   # ]]]
+# .. envvar:: openstack_helm_endpoints_octavia_api_host [[[
+#
+# API hostname for OpenStack Load Balancer Service
 openstack_helm_endpoints_octavia_api_host: "{{ undef(hint='You must specify an Octavia API hostname') }}"
+
+                                                                   # ]]]
+# .. envvar:: openstack_helm_endpoints_octavia_region_name [[[
+#
+# Region name for service
 openstack_helm_endpoints_octavia_region_name: "{{ openstack_helm_endpoints_region_name }}"
+
+                                                                   # ]]]
+# .. envvar:: openstack_helm_endpoints_octavia_keystone_password [[[
+#
+# Keystone password for service
 openstack_helm_endpoints_octavia_keystone_password: "{{ undef(hint='You must specify an Octavia Keystone password') }}"
+
+                                                                   # ]]]
+# .. envvar:: openstack_helm_endpoints_octavia_mariadb_password [[[
+#
+# Database password for service
 openstack_helm_endpoints_octavia_mariadb_password: "{{ undef(hint='You must specify an Octavia MariaDB password') }}"
+
+                                                                   # ]]]
+# .. envvar:: openstack_helm_endpoints_octavia_rabbitmq_password [[[
+#
+# RabbitMQ password for service
 openstack_helm_endpoints_octavia_rabbitmq_password: "{{ undef(hint='You must specify an Octavia RabbitMQ password') }}"
 
-# Senlin
+                                                                   # ]]]
+# .. envvar:: openstack_helm_endpoints_senlin_api_host [[[
+#
+# API hostname for OpenStack Clustering Service
 openstack_helm_endpoints_senlin_api_host: "{{ undef(hint='You must specify a Senlin API hostname') }}"
+
+                                                                   # ]]]
+# .. envvar:: openstack_helm_endpoints_senlin_region_name [[[
+#
+# Region name for service
 openstack_helm_endpoints_senlin_region_name: "{{ openstack_helm_endpoints_region_name }}"
+
+                                                                   # ]]]
+# .. envvar:: openstack_helm_endpoints_senlin_keystone_password [[[
+#
+# Keystone password for service
 openstack_helm_endpoints_senlin_keystone_password: "{{ undef(hint='You must specify a Senlin Keystone password') }}"
+
+                                                                   # ]]]
+# .. envvar:: openstack_helm_endpoints_senlin_mariadb_password [[[
+#
+# Database password for service
 openstack_helm_endpoints_senlin_mariadb_password: "{{ undef(hint='You must specify a Senlin MariaDB password') }}"
+
+                                                                   # ]]]
+# .. envvar:: openstack_helm_endpoints_senlin_rabbitmq_password [[[
+#
+# RabbitMQ password for service
 openstack_helm_endpoints_senlin_rabbitmq_password: "{{ undef(hint='You must specify a Senlin RabbitMQ password') }}"
 
-# Heat
+                                                                   # ]]]
+# .. envvar:: openstack_helm_endpoints_heat_api_host [[[
+#
+# API hostname for OpenStack Orchestration Service
 openstack_helm_endpoints_heat_api_host: "{{ undef(hint='You must specify a Heat API hostname') }}"
+
+                                                                   # ]]]
+# .. envvar:: openstack_helm_endpoints_heat_region_name [[[
+#
+# Region name for service
 openstack_helm_endpoints_heat_region_name: "{{ openstack_helm_endpoints_region_name }}"
+
+                                                                   # ]]]
+# .. envvar:: openstack_helm_endpoints_heat_keystone_password [[[
+#
+# Keystone password for service
 openstack_helm_endpoints_heat_keystone_password: "{{ undef(hint='You must specify a Heat Keystone password') }}"
+
+                                                                   # ]]]
+# .. envvar:: openstack_helm_endpoints_heat_trustee_keystone_password [[[
+#
+# Keystone password for service
 openstack_helm_endpoints_heat_trustee_keystone_password: "{{ undef(hint='You must specify a Heat trustee Keystone password') }}"
+
+                                                                   # ]]]
+# .. envvar:: openstack_helm_endpoints_heat_stack_user_keystone_password [[[
+#
+# Keystone password for service
 openstack_helm_endpoints_heat_stack_user_keystone_password: "{{ undef(hint='You must specify a Heat stack user Keystone password') }}"
+
+                                                                   # ]]]
+# .. envvar:: openstack_helm_endpoints_heat_mariadb_password [[[
+#
+# Database password for service
 openstack_helm_endpoints_heat_mariadb_password: "{{ undef(hint='You must specify a Heat MariaDB password') }}"
+
+                                                                   # ]]]
+# .. envvar:: openstack_helm_endpoints_heat_rabbitmq_password [[[
+#
+# RabbitMQ password for service
 openstack_helm_endpoints_heat_rabbitmq_password: "{{ undef(hint='You must specify a Heat RabbitMQ password') }}"
+
+                                                                   # ]]]
+# .. envvar:: openstack_helm_endpoints_heat_cfn_api_host [[[
+#
+# API hostname for OpenStack Orchestration Service (CloudFormation)
 openstack_helm_endpoints_heat_cfn_api_host: "{{ undef(hint='You must specify a Heat CloudFormation API hostname') }}"
 
-# Horizon
+                                                                   # ]]]
+# .. envvar:: openstack_helm_endpoints_horizon_api_host [[[
+#
+# API hostname for OpenStack Dashboard
 openstack_helm_endpoints_horizon_api_host: "{{ undef(hint='You must specify a Horizon API hostname') }}"
+
+                                                                   # ]]]
+# .. envvar:: openstack_helm_endpoints_horizon_mariadb_password [[[
+#
+# Database password for service
 openstack_helm_endpoints_horizon_mariadb_password: "{{ undef(hint='You must specify a Horizon MariaDB password') }}"
+
+                                                                   # ]]]
diff --git a/roles/openstack_helm_glance/defaults/main.yml b/roles/openstack_helm_glance/defaults/main.yml
index bfb6e83..41251bd 100644
--- a/roles/openstack_helm_glance/defaults/main.yml
+++ b/roles/openstack_helm_glance/defaults/main.yml
@@ -1,23 +1,55 @@
-# 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.
+---
+# .. vim: foldmarker=[[[,]]]:foldmethod=marker
 
+# .. Copyright (C) 2022 VEXXHOST, Inc.
+# .. SPDX-License-Identifier: Apache-2.0
+
+# Default variables
+# =================
+
+# .. contents:: Sections
+#    :local:
+
+
+# .. envvar:: openstack_helm_glance_chart_repo_name [[[
+#
+# Helm repository name for the chart.
 openstack_helm_glance_chart_repo_name: openstack-helm
+
+                                                                   # ]]]
+# .. envvar:: openstack_helm_glance_chart_repo_url [[[
+#
+# Helm repository URL for the chart.
 openstack_helm_glance_chart_repo_url: https://tarballs.opendev.org/openstack/openstack-helm/
+
+                                                                   # ]]]
+# .. envvar:: openstack_helm_glance_chart_name [[[
+#
+# Helm chart name (will also be used for release name)
 openstack_helm_glance_chart_name: glance
 
+                                                                   # ]]]
+# .. envvar:: openstack_helm_glance_image_repository [[[
+#
+# Image repository location to be prefixed for all images
 openstack_helm_glance_image_repository: "{{ atmosphere_image_repository | default('us-docker.pkg.dev/vexxhost-infra/openstack') }}"
+
+                                                                   # ]]]
+# .. envvar:: openstack_helm_glance_image_tag [[[
+#
+# Image tag for container
 openstack_helm_glance_image_tag: 22.1.1.dev2-1
+
+                                                                   # ]]]
+# .. envvar:: openstack_helm_glance_heat_image_tag [[[
+#
+# Image tag for Heat to be used for jobs running via Helm hooks
 openstack_helm_glance_heat_image_tag: wallaby
 
+                                                                   # ]]]
+# .. envvar:: openstack_helm_glance_values [[[
+#
+# Overrides for Helm chart values
 openstack_helm_glance_values: {}
+
+                                                                   # ]]]
diff --git a/roles/openstack_helm_heat/defaults/main.yml b/roles/openstack_helm_heat/defaults/main.yml
index 3ca6123..8ec2bab 100644
--- a/roles/openstack_helm_heat/defaults/main.yml
+++ b/roles/openstack_helm_heat/defaults/main.yml
@@ -1,27 +1,67 @@
-# 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.
+---
+# .. vim: foldmarker=[[[,]]]:foldmethod=marker
 
+# .. Copyright (C) 2022 VEXXHOST, Inc.
+# .. SPDX-License-Identifier: Apache-2.0
+
+# Default variables
+# =================
+
+# .. contents:: Sections
+#    :local:
+
+
+# .. envvar:: openstack_helm_heat_chart_repo_name [[[
+#
+# Helm repository name for the chart.
 openstack_helm_heat_chart_repo_name: openstack-helm
+
+                                                                   # ]]]
+# .. envvar:: openstack_helm_heat_chart_repo_url [[[
+#
+# Helm repository URL for the chart.
 openstack_helm_heat_chart_repo_url: https://tarballs.opendev.org/openstack/openstack-helm/
+
+                                                                   # ]]]
+# .. envvar:: openstack_helm_heat_chart_name [[[
+#
+# Helm chart name (will also be used for release name)
 openstack_helm_heat_chart_name: heat
 
+                                                                   # ]]]
+# .. envvar:: openstack_helm_heat_image_repository [[[
+#
+# Image repository location to be prefixed for all images
 openstack_helm_heat_image_repository: "{{ atmosphere_image_repository | default('us-docker.pkg.dev/vexxhost-infra/openstack') }}"
+
+                                                                   # ]]]
+# .. envvar:: openstack_helm_heat_image_tag [[[
+#
+# Image tag for container
 openstack_helm_heat_image_tag: 16.0.1.dev16
 
+                                                                   # ]]]
+# .. envvar:: openstack_helm_heat_auth_encryption_key [[[
+#
+# Unique value to use for encrypting Heat secrets
 openstack_helm_heat_auth_encryption_key: "{{ undef(hint='You must specifiy an encryption key for Heat.') }}"
 
+                                                                   # ]]]
+# .. envvar:: openstack_helm_heat_diff [[[
+#
+# Disable a diff of the release values and ask for manual confirmation
 openstack_helm_heat_diff: false
+
+                                                                   # ]]]
+# .. envvar:: openstack_helm_heat_migrate_from_mariadb [[[
+#
+# Execute a migration from legacy MariaDB to Percona XtraDB cluster
 openstack_helm_heat_migrate_from_mariadb: false
 
+                                                                   # ]]]
+# .. envvar:: openstack_helm_heat_values [[[
+#
+# Overrides for Helm chart values
 openstack_helm_heat_values: {}
+
+                                                                   # ]]]
diff --git a/roles/openstack_helm_horizon/defaults/main.yml b/roles/openstack_helm_horizon/defaults/main.yml
index ba6c691..65e5af6 100644
--- a/roles/openstack_helm_horizon/defaults/main.yml
+++ b/roles/openstack_helm_horizon/defaults/main.yml
@@ -1,23 +1,55 @@
-# 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.
+---
+# .. vim: foldmarker=[[[,]]]:foldmethod=marker
 
+# .. Copyright (C) 2022 VEXXHOST, Inc.
+# .. SPDX-License-Identifier: Apache-2.0
+
+# Default variables
+# =================
+
+# .. contents:: Sections
+#    :local:
+
+
+# .. envvar:: openstack_helm_horizon_chart_repo_name [[[
+#
+# Helm repository name for the chart.
 openstack_helm_horizon_chart_repo_name: openstack-helm
+
+                                                                   # ]]]
+# .. envvar:: openstack_helm_horizon_chart_repo_url [[[
+#
+# Helm repository URL for the chart.
 openstack_helm_horizon_chart_repo_url: https://tarballs.opendev.org/openstack/openstack-helm/
+
+                                                                   # ]]]
+# .. envvar:: openstack_helm_horizon_chart_name [[[
+#
+# Helm chart name (will also be used for release name)
 openstack_helm_horizon_chart_name: horizon
 
+                                                                   # ]]]
+# .. envvar:: openstack_helm_horizon_image_repository [[[
+#
+# Image repository location to be prefixed for all images
 openstack_helm_horizon_image_repository: "{{ atmosphere_image_repository | default('us-docker.pkg.dev/vexxhost-infra/openstack') }}"
+
+                                                                   # ]]]
+# .. envvar:: openstack_helm_horizon_image_tag [[[
+#
+# Image tag for container
 openstack_helm_horizon_image_tag: 19.2.1.dev13
+
+                                                                   # ]]]
+# .. envvar:: openstack_helm_horizon_heat_image_tag [[[
+#
+# Image tag for Heat to be used for jobs running via Helm hooks
 openstack_helm_horizon_heat_image_tag: wallaby
 
+                                                                   # ]]]
+# .. envvar:: openstack_helm_horizon_values [[[
+#
+# Overrides for Helm chart values
 openstack_helm_horizon_values: {}
+
+                                                                   # ]]]
diff --git a/roles/openstack_helm_infra_ceph_provisioners/defaults/main.yml b/roles/openstack_helm_infra_ceph_provisioners/defaults/main.yml
index f450a53..b4f8d8a 100644
--- a/roles/openstack_helm_infra_ceph_provisioners/defaults/main.yml
+++ b/roles/openstack_helm_infra_ceph_provisioners/defaults/main.yml
@@ -1,23 +1,55 @@
-# 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.
+---
+# .. vim: foldmarker=[[[,]]]:foldmethod=marker
 
+# .. Copyright (C) 2022 VEXXHOST, Inc.
+# .. SPDX-License-Identifier: Apache-2.0
+
+# Default variables
+# =================
+
+# .. contents:: Sections
+#    :local:
+
+
+# .. envvar:: openstack_helm_infra_ceph_provisioners_chart_repo_name [[[
+#
+# Helm repository name for the chart.
 openstack_helm_infra_ceph_provisioners_chart_repo_name: openstack-helm-infra
+
+                                                                   # ]]]
+# .. envvar:: openstack_helm_infra_ceph_provisioners_chart_repo_url [[[
+#
+# Helm repository URL for the chart.
 openstack_helm_infra_ceph_provisioners_chart_repo_url: https://tarballs.opendev.org/openstack/openstack-helm-infra/
+
+                                                                   # ]]]
+# .. envvar:: openstack_helm_infra_ceph_provisioners_chart_name [[[
+#
+# Helm chart name (will also be used for release name)
 openstack_helm_infra_ceph_provisioners_chart_name: ceph-provisioners
 
+                                                                   # ]]]
+# .. envvar:: openstack_helm_infra_ceph_provisioners_ceph_monitors [[[
+#
+# IP address list of Ceph monitors
 openstack_helm_infra_ceph_provisioners_ceph_monitors: "{{ _ceph_csi_rbd_helm_info.status['values']['csiConfig'][0]['monitors'] }}"
+
+                                                                   # ]]]
+# .. envvar:: openstack_helm_infra_ceph_provisioners_ceph_fsid [[[
+#
+# Filesystem ID for Ceph cluster
 openstack_helm_infra_ceph_provisioners_ceph_fsid: "{{ _ceph_csi_rbd_helm_info.status['values']['csiConfig'][0]['clusterID'] }}"
 
+                                                                   # ]]]
+# .. envvar:: openstack_helm_infra_ceph_provisioners_ceph_public_network [[[
+#
+# Public network used by Ceph
 openstack_helm_infra_ceph_provisioners_ceph_public_network: "{{ ceph_mon_public_network }}"
+
+                                                                   # ]]]
+# .. envvar:: openstack_helm_infra_ceph_provisioners_ceph_cluster_network [[[
+#
+# Cluster (replication) network used by Ceph
 openstack_helm_infra_ceph_provisioners_ceph_cluster_network: "{{ openstack_helm_infra_ceph_provisioners_ceph_public_network }}"
+
+                                                                   # ]]]
diff --git a/roles/openstack_helm_infra_libvirt/defaults/main.yml b/roles/openstack_helm_infra_libvirt/defaults/main.yml
index c2c4511..1dc7b6b 100644
--- a/roles/openstack_helm_infra_libvirt/defaults/main.yml
+++ b/roles/openstack_helm_infra_libvirt/defaults/main.yml
@@ -1,22 +1,49 @@
-# 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.
+---
+# .. vim: foldmarker=[[[,]]]:foldmethod=marker
 
+# .. Copyright (C) 2022 VEXXHOST, Inc.
+# .. SPDX-License-Identifier: Apache-2.0
+
+# Default variables
+# =================
+
+# .. contents:: Sections
+#    :local:
+
+
+# .. envvar:: openstack_helm_infra_libvirt_chart_repo_name [[[
+#
+# Helm repository name for the chart.
 openstack_helm_infra_libvirt_chart_repo_name: openstack-helm-infra
+
+                                                                   # ]]]
+# .. envvar:: openstack_helm_infra_libvirt_chart_repo_url [[[
+#
+# Helm repository URL for the chart.
 openstack_helm_infra_libvirt_chart_repo_url: https://tarballs.opendev.org/openstack/openstack-helm-infra/
+
+                                                                   # ]]]
+# .. envvar:: openstack_helm_infra_libvirt_chart_name [[[
+#
+# Helm chart name (will also be used for release name)
 openstack_helm_infra_libvirt_chart_name: libvirt
 
+                                                                   # ]]]
+# .. envvar:: openstack_helm_infra_libvirt_image_repository [[[
+#
+# Image repository location to be prefixed for all images
 openstack_helm_infra_libvirt_image_repository: "{{ atmosphere_image_repository | default('us-docker.pkg.dev/vexxhost-infra/openstack') }}"
+
+                                                                   # ]]]
+# .. envvar:: openstack_helm_infra_libvirt_image_tag [[[
+#
+# Image tag for container
 openstack_helm_infra_libvirt_image_tag: wallaby
 
+                                                                   # ]]]
+# .. envvar:: openstack_helm_infra_libvirt_values [[[
+#
+# Overrides for Helm chart values
 openstack_helm_infra_libvirt_values: {}
+
+                                                                   # ]]]
diff --git a/roles/openstack_helm_infra_memcached/defaults/main.yml b/roles/openstack_helm_infra_memcached/defaults/main.yml
index 23a09da..cee6841 100644
--- a/roles/openstack_helm_infra_memcached/defaults/main.yml
+++ b/roles/openstack_helm_infra_memcached/defaults/main.yml
@@ -1,20 +1,43 @@
-# 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.
+---
+# .. vim: foldmarker=[[[,]]]:foldmethod=marker
 
+# .. Copyright (C) 2022 VEXXHOST, Inc.
+# .. SPDX-License-Identifier: Apache-2.0
+
+# Default variables
+# =================
+
+# .. contents:: Sections
+#    :local:
+
+
+# .. envvar:: openstack_helm_infra_memcached_chart_repo_name [[[
+#
+# Helm repository name for the chart.
 openstack_helm_infra_memcached_chart_repo_name: openstack-helm-infra
+
+                                                                   # ]]]
+# .. envvar:: openstack_helm_infra_memcached_chart_repo_url [[[
+#
+# Helm repository URL for the chart.
 openstack_helm_infra_memcached_chart_repo_url: https://tarballs.opendev.org/openstack/openstack-helm-infra/
+
+                                                                   # ]]]
+# .. envvar:: openstack_helm_infra_memcached_chart_name [[[
+#
+# Helm chart name (will also be used for release name)
 openstack_helm_infra_memcached_chart_name: memcached
 
+                                                                   # ]]]
+# .. envvar:: openstack_helm_infra_memcached_diff [[[
+#
+# Disable a diff of the release values and ask for manual confirmation
 openstack_helm_infra_memcached_diff: false
+
+                                                                   # ]]]
+# .. envvar:: openstack_helm_infra_memcached_values [[[
+#
+# Overrides for Helm chart values
 openstack_helm_infra_memcached_values: {}
+
+                                                                   # ]]]
diff --git a/roles/openstack_helm_infra_openvswitch/defaults/main.yml b/roles/openstack_helm_infra_openvswitch/defaults/main.yml
index c8c6a93..eb1f4e5 100644
--- a/roles/openstack_helm_infra_openvswitch/defaults/main.yml
+++ b/roles/openstack_helm_infra_openvswitch/defaults/main.yml
@@ -1,22 +1,49 @@
-# 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.
+---
+# .. vim: foldmarker=[[[,]]]:foldmethod=marker
 
+# .. Copyright (C) 2022 VEXXHOST, Inc.
+# .. SPDX-License-Identifier: Apache-2.0
+
+# Default variables
+# =================
+
+# .. contents:: Sections
+#    :local:
+
+
+# .. envvar:: openstack_helm_infra_openvswitch_chart_repo_name [[[
+#
+# Helm repository name for the chart.
 openstack_helm_infra_openvswitch_chart_repo_name: openstack-helm-infra
+
+                                                                   # ]]]
+# .. envvar:: openstack_helm_infra_openvswitch_chart_repo_url [[[
+#
+# Helm repository URL for the chart.
 openstack_helm_infra_openvswitch_chart_repo_url: https://tarballs.opendev.org/openstack/openstack-helm-infra/
+
+                                                                   # ]]]
+# .. envvar:: openstack_helm_infra_openvswitch_chart_name [[[
+#
+# Helm chart name (will also be used for release name)
 openstack_helm_infra_openvswitch_chart_name: openvswitch
 
+                                                                   # ]]]
+# .. envvar:: openstack_helm_infra_openvswitch_image_repository [[[
+#
+# Image repository location to be prefixed for all images
 openstack_helm_infra_openvswitch_image_repository: "{{ atmosphere_image_repository | default('us-docker.pkg.dev/vexxhost-infra/openstack') }}"
+
+                                                                   # ]]]
+# .. envvar:: openstack_helm_infra_openvswitch_image_tag [[[
+#
+# Image tag for container
 openstack_helm_infra_openvswitch_image_tag: wallaby
 
+                                                                   # ]]]
+# .. envvar:: openstack_helm_infra_openvswitch_values [[[
+#
+# Overrides for Helm chart values
 openstack_helm_infra_openvswitch_values: {}
+
+                                                                   # ]]]
diff --git a/roles/openstack_helm_infra_rabbitmq/defaults/main.yml b/roles/openstack_helm_infra_rabbitmq/defaults/main.yml
index b248ba7..355e1be 100644
--- a/roles/openstack_helm_infra_rabbitmq/defaults/main.yml
+++ b/roles/openstack_helm_infra_rabbitmq/defaults/main.yml
@@ -1,19 +1,37 @@
-# 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.
+---
+# .. vim: foldmarker=[[[,]]]:foldmethod=marker
 
+# .. Copyright (C) 2022 VEXXHOST, Inc.
+# .. SPDX-License-Identifier: Apache-2.0
+
+# Default variables
+# =================
+
+# .. contents:: Sections
+#    :local:
+
+
+# .. envvar:: openstack_helm_infra_rabbitmq_chart_repo_name [[[
+#
+# Helm repository name for the chart.
 openstack_helm_infra_rabbitmq_chart_repo_name: openstack-helm-infra
+
+                                                                   # ]]]
+# .. envvar:: openstack_helm_infra_rabbitmq_chart_repo_url [[[
+#
+# Helm repository URL for the chart.
 openstack_helm_infra_rabbitmq_chart_repo_url: https://tarballs.opendev.org/openstack/openstack-helm-infra/
+
+                                                                   # ]]]
+# .. envvar:: openstack_helm_infra_rabbitmq_chart_name [[[
+#
+# Helm chart name (will also be used for release name)
 openstack_helm_infra_rabbitmq_chart_name: rabbitmq
 
+                                                                   # ]]]
+# .. envvar:: openstack_helm_infra_rabbitmq_image_repository [[[
+#
+# Image repository location to be prefixed for all images
 openstack_helm_infra_rabbitmq_image_repository: "{{ atmosphere_image_repository | default('us-docker.pkg.dev/vexxhost-infra/openstack') }}"
+
+                                                                   # ]]]
diff --git a/roles/openstack_helm_ingress/defaults/main.yml b/roles/openstack_helm_ingress/defaults/main.yml
index 9ec5bd9..1ae03fe 100644
--- a/roles/openstack_helm_ingress/defaults/main.yml
+++ b/roles/openstack_helm_ingress/defaults/main.yml
@@ -1,16 +1,25 @@
-# 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.
+---
+# .. vim: foldmarker=[[[,]]]:foldmethod=marker
 
+# .. Copyright (C) 2022 VEXXHOST, Inc.
+# .. SPDX-License-Identifier: Apache-2.0
+
+# Default variables
+# =================
+
+# .. contents:: Sections
+#    :local:
+
+
+# .. envvar:: openstack_helm_ingress_annotations [[[
+#
+# Additional annotations to include for Kubernetes ingress
 openstack_helm_ingress_annotations: {}
+
+                                                                   # ]]]
+# .. envvar:: openstack_helm_ingress_paths [[[
+#
+# Additional paths to include for Kubernetes ingress
 openstack_helm_ingress_paths: []
+
+                                                                   # ]]]
diff --git a/roles/openstack_helm_keystone/defaults/main.yml b/roles/openstack_helm_keystone/defaults/main.yml
index 7f2358b..5e9dc46 100644
--- a/roles/openstack_helm_keystone/defaults/main.yml
+++ b/roles/openstack_helm_keystone/defaults/main.yml
@@ -1,23 +1,55 @@
-# 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.
+---
+# .. vim: foldmarker=[[[,]]]:foldmethod=marker
 
+# .. Copyright (C) 2022 VEXXHOST, Inc.
+# .. SPDX-License-Identifier: Apache-2.0
+
+# Default variables
+# =================
+
+# .. contents:: Sections
+#    :local:
+
+
+# .. envvar:: openstack_helm_keystone_chart_repo_name [[[
+#
+# Helm repository name for the chart.
 openstack_helm_keystone_chart_repo_name: openstack-helm
+
+                                                                   # ]]]
+# .. envvar:: openstack_helm_keystone_chart_repo_url [[[
+#
+# Helm repository URL for the chart.
 openstack_helm_keystone_chart_repo_url: https://tarballs.opendev.org/openstack/openstack-helm/
+
+                                                                   # ]]]
+# .. envvar:: openstack_helm_keystone_chart_name [[[
+#
+# Helm chart name (will also be used for release name)
 openstack_helm_keystone_chart_name: keystone
 
+                                                                   # ]]]
+# .. envvar:: openstack_helm_keystone_image_repository [[[
+#
+# Image repository location to be prefixed for all images
 openstack_helm_keystone_image_repository: "{{ atmosphere_image_repository | default('us-docker.pkg.dev/vexxhost-infra/openstack') }}"
+
+                                                                   # ]]]
+# .. envvar:: openstack_helm_keystone_image_tag [[[
+#
+# Image tag for container
 openstack_helm_keystone_image_tag: 19.0.1.dev11
+
+                                                                   # ]]]
+# .. envvar:: openstack_helm_keystone_heat_image_tag [[[
+#
+# Image tag for Heat to be used for jobs running via Helm hooks
 openstack_helm_keystone_heat_image_tag: wallaby
 
+                                                                   # ]]]
+# .. envvar:: openstack_helm_keystone_values [[[
+#
+# Overrides for Helm chart values
 openstack_helm_keystone_values: {}
+
+                                                                   # ]]]
diff --git a/roles/openstack_helm_neutron/defaults/main.yml b/roles/openstack_helm_neutron/defaults/main.yml
index e81f9f8..8f50663 100644
--- a/roles/openstack_helm_neutron/defaults/main.yml
+++ b/roles/openstack_helm_neutron/defaults/main.yml
@@ -1,25 +1,61 @@
-# 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.
+---
+# .. vim: foldmarker=[[[,]]]:foldmethod=marker
 
+# .. Copyright (C) 2022 VEXXHOST, Inc.
+# .. SPDX-License-Identifier: Apache-2.0
+
+# Default variables
+# =================
+
+# .. contents:: Sections
+#    :local:
+
+
+# .. envvar:: openstack_helm_neutron_chart_repo_name [[[
+#
+# Helm repository name for the chart.
 openstack_helm_neutron_chart_repo_name: openstack-helm
+
+                                                                   # ]]]
+# .. envvar:: openstack_helm_neutron_chart_repo_url [[[
+#
+# Helm repository URL for the chart.
 openstack_helm_neutron_chart_repo_url: https://tarballs.opendev.org/openstack/openstack-helm/
+
+                                                                   # ]]]
+# .. envvar:: openstack_helm_neutron_chart_name [[[
+#
+# Helm chart name (will also be used for release name)
 openstack_helm_neutron_chart_name: neutron
 
+                                                                   # ]]]
+# .. envvar:: openstack_helm_neutron_image_repository [[[
+#
+# Image repository location to be prefixed for all images
 openstack_helm_neutron_image_repository: "{{ atmosphere_image_repository | default('us-docker.pkg.dev/vexxhost-infra/openstack') }}"
+
+                                                                   # ]]]
+# .. envvar:: openstack_helm_neutron_image_tag [[[
+#
+# Image tag for container
 openstack_helm_neutron_image_tag: 18.2.1.dev7-6
+
+                                                                   # ]]]
+# .. envvar:: openstack_helm_neutron_heat_image_tag [[[
+#
+# Image tag for Heat to be used for jobs running via Helm hooks
 openstack_helm_neutron_heat_image_tag: wallaby
 
+                                                                   # ]]]
+# .. envvar:: openstack_helm_neutron_values [[[
+#
+# Overrides for Helm chart values
 openstack_helm_neutron_values: {}
 
+                                                                   # ]]]
+# .. envvar:: openstack_helm_neutron_networks [[[
+#
+# List of networks to provision inside OpenStack
 openstack_helm_neutron_networks: []
+
+                                                                   # ]]]
diff --git a/roles/openstack_helm_nova/defaults/main.yml b/roles/openstack_helm_nova/defaults/main.yml
index 75ad162..f956af9 100644
--- a/roles/openstack_helm_nova/defaults/main.yml
+++ b/roles/openstack_helm_nova/defaults/main.yml
@@ -1,29 +1,79 @@
-# 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.
+---
+# .. vim: foldmarker=[[[,]]]:foldmethod=marker
 
+# .. Copyright (C) 2022 VEXXHOST, Inc.
+# .. SPDX-License-Identifier: Apache-2.0
+
+# Default variables
+# =================
+
+# .. contents:: Sections
+#    :local:
+
+
+# .. envvar:: openstack_helm_nova_chart_repo_name [[[
+#
+# Helm repository name for the chart.
 openstack_helm_nova_chart_repo_name: openstack-helm
+
+                                                                   # ]]]
+# .. envvar:: openstack_helm_nova_chart_repo_url [[[
+#
+# Helm repository URL for the chart.
 openstack_helm_nova_chart_repo_url: https://tarballs.opendev.org/openstack/openstack-helm/
+
+                                                                   # ]]]
+# .. envvar:: openstack_helm_nova_chart_name [[[
+#
+# Helm chart name (will also be used for release name)
 openstack_helm_nova_chart_name: nova
 
+                                                                   # ]]]
+# .. envvar:: openstack_helm_nova_image_repository [[[
+#
+# Image repository location to be prefixed for all images
 openstack_helm_nova_image_repository: "{{ atmosphere_image_repository | default('us-docker.pkg.dev/vexxhost-infra/openstack') }}"
+
+                                                                   # ]]]
+# .. envvar:: openstack_helm_nova_image_tag [[[
+#
+# Image tag for container
 openstack_helm_nova_image_tag: 23.1.1.dev11
+
+                                                                   # ]]]
+# .. envvar:: openstack_helm_nova_ssh_image_tag [[[
+#
+# Image tag for SSH container
 openstack_helm_nova_ssh_image_tag: wallaby
+
+                                                                   # ]]]
+# .. envvar:: openstack_helm_nova_heat_image_tag [[[
+#
+# Image tag for Heat to be used for jobs running via Helm hooks
 openstack_helm_nova_heat_image_tag: wallaby
 
+                                                                   # ]]]
+# .. envvar:: openstack_helm_nova_diff [[[
+#
+# Disable a diff of the release values and ask for manual confirmation
 openstack_helm_nova_diff: false
+
+                                                                   # ]]]
+# .. envvar:: openstack_helm_nova_migrate_from_mariadb [[[
+#
+# Execute a migration from legacy MariaDB to Percona XtraDB cluster
 openstack_helm_nova_migrate_from_mariadb: false
 
+                                                                   # ]]]
+# .. envvar:: openstack_helm_nova_values [[[
+#
+# Overrides for Helm chart values
 openstack_helm_nova_values: {}
 
+                                                                   # ]]]
+# .. envvar:: openstack_helm_nova_flavors [[[
+#
+# List of flavors to provision inside Nova
 openstack_helm_nova_flavors: []
+
+                                                                   # ]]]
diff --git a/roles/openstack_helm_placement/defaults/main.yml b/roles/openstack_helm_placement/defaults/main.yml
index 113b39b..e7c219c 100644
--- a/roles/openstack_helm_placement/defaults/main.yml
+++ b/roles/openstack_helm_placement/defaults/main.yml
@@ -1,23 +1,55 @@
-# 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.
+---
+# .. vim: foldmarker=[[[,]]]:foldmethod=marker
 
+# .. Copyright (C) 2022 VEXXHOST, Inc.
+# .. SPDX-License-Identifier: Apache-2.0
+
+# Default variables
+# =================
+
+# .. contents:: Sections
+#    :local:
+
+
+# .. envvar:: openstack_helm_placement_chart_repo_name [[[
+#
+# Helm repository name for the chart.
 openstack_helm_placement_chart_repo_name: openstack-helm
+
+                                                                   # ]]]
+# .. envvar:: openstack_helm_placement_chart_repo_url [[[
+#
+# Helm repository URL for the chart.
 openstack_helm_placement_chart_repo_url: https://tarballs.opendev.org/openstack/openstack-helm/
+
+                                                                   # ]]]
+# .. envvar:: openstack_helm_placement_chart_name [[[
+#
+# Helm chart name (will also be used for release name)
 openstack_helm_placement_chart_name: placement
 
+                                                                   # ]]]
+# .. envvar:: openstack_helm_placement_image_repository [[[
+#
+# Image repository location to be prefixed for all images
 openstack_helm_placement_image_repository: "{{ atmosphere_image_repository | default('us-docker.pkg.dev/vexxhost-infra/openstack') }}"
+
+                                                                   # ]]]
+# .. envvar:: openstack_helm_placement_image_tag [[[
+#
+# Image tag for container
 openstack_helm_placement_image_tag: 5.0.1
+
+                                                                   # ]]]
+# .. envvar:: openstack_helm_placement_heat_image_tag [[[
+#
+# Image tag for Heat to be used for jobs running via Helm hooks
 openstack_helm_placement_heat_image_tag: wallaby
 
+                                                                   # ]]]
+# .. envvar:: openstack_helm_placement_values [[[
+#
+# Overrides for Helm chart values
 openstack_helm_placement_values: {}
+
+                                                                   # ]]]
diff --git a/roles/openstack_helm_senlin/defaults/main.yml b/roles/openstack_helm_senlin/defaults/main.yml
index b9b1822..0ab813b 100644
--- a/roles/openstack_helm_senlin/defaults/main.yml
+++ b/roles/openstack_helm_senlin/defaults/main.yml
@@ -1,26 +1,67 @@
-# 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.
+---
+# .. vim: foldmarker=[[[,]]]:foldmethod=marker
 
+# .. Copyright (C) 2022 VEXXHOST, Inc.
+# .. SPDX-License-Identifier: Apache-2.0
+
+# Default variables
+# =================
+
+# .. contents:: Sections
+#    :local:
+
+
+# .. envvar:: openstack_helm_senlin_chart_repo_name [[[
+#
+# Helm repository name for the chart.
 openstack_helm_senlin_chart_repo_name: openstack-helm
+
+                                                                   # ]]]
+# .. envvar:: openstack_helm_senlin_chart_repo_url [[[
+#
+# Helm repository URL for the chart.
 openstack_helm_senlin_chart_repo_url: https://tarballs.opendev.org/openstack/openstack-helm/
+
+                                                                   # ]]]
+# .. envvar:: openstack_helm_senlin_chart_name [[[
+#
+# Helm chart name (will also be used for release name)
 openstack_helm_senlin_chart_name: senlin
 
+                                                                   # ]]]
+# .. envvar:: openstack_helm_senlin_image_repository [[[
+#
+# Image repository location to be prefixed for all images
 openstack_helm_senlin_image_repository: "{{ atmosphere_image_repository | default('us-docker.pkg.dev/vexxhost-infra/openstack') }}"
+
+                                                                   # ]]]
+# .. envvar:: openstack_helm_senlin_image_tag [[[
+#
+# Image tag for container
 openstack_helm_senlin_image_tag: 11.0.1.dev3
+
+                                                                   # ]]]
+# .. envvar:: openstack_helm_senlin_heat_image_tag [[[
+#
+# Image tag for Heat to be used for jobs running via Helm hooks
 openstack_helm_senlin_heat_image_tag: wallaby
 
+                                                                   # ]]]
+# .. envvar:: openstack_helm_senlin_diff [[[
+#
+# Disable a diff of the release values and ask for manual confirmation
 openstack_helm_senlin_diff: false
+
+                                                                   # ]]]
+# .. envvar:: openstack_helm_senlin_migrate_from_mariadb [[[
+#
+# Execute a migration from legacy MariaDB to Percona XtraDB cluster
 openstack_helm_senlin_migrate_from_mariadb: false
 
+                                                                   # ]]]
+# .. envvar:: openstack_helm_senlin_values [[[
+#
+# Overrides for Helm chart values
 openstack_helm_senlin_values: {}
+
+                                                                   # ]]]
