Read the Docs build information Build id: 4004444 Project: canonical-openstack Version: 198 Commit: b1550abc050c4e2f91035e6724a92a268b3c2d5f Date: 2026-05-11T15:47:12.734647Z State: finished Success: True [rtd-command-info] start-time: 2026-05-11T15:47:23.836765Z, end-time: 2026-05-11T15:47:24.481401Z, duration: 0, exit-code: 0 git clone --depth 1 https://github.com/canonical/canonical-openstack-docs.git . Cloning into '.'... [rtd-command-info] start-time: 2026-05-11T15:47:24.561705Z, end-time: 2026-05-11T15:47:25.077095Z, duration: 0, exit-code: 0 git fetch origin --force --prune --prune-tags --depth 50 pull/198/head:external-198 From https://github.com/canonical/canonical-openstack-docs * [new ref] refs/pull/198/head -> external-198 [rtd-command-info] start-time: 2026-05-11T15:47:25.963470Z, end-time: 2026-05-11T15:47:26.045666Z, duration: 0, exit-code: 0 git checkout --force b1550abc050c4e2f91035e6724a92a268b3c2d5f Note: switching to 'b1550abc050c4e2f91035e6724a92a268b3c2d5f'. You are in 'detached HEAD' state. You can look around, make experimental changes and commit them, and you can discard any commits you make in this state without impacting any branches by switching back to a branch. If you want to create a new branch to retain commits you create, you may do so (now or later) by using -c with the switch command. Example: git switch -c Or undo this operation with: git switch - Turn off this advice by setting config variable advice.detachedHead to false HEAD is now at b1550ab LDAP: fix openstack user list command [rtd-command-info] start-time: 2026-05-11T15:47:26.127115Z, end-time: 2026-05-11T15:47:26.166342Z, duration: 0, exit-code: 0 cat .readthedocs.yaml # .readthedocs.yaml # Read the Docs configuration file # See https://docs.readthedocs.io/en/stable/config-file/v2.html for details # Required version: 2 # Set the version of Python and other tools you might need build: os: ubuntu-22.04 tools: python: "3.11" jobs: pre_install: - python3 .sphinx/build_requirements.py - git fetch --unshallow || true # Build documentation in the docs/ directory with Sphinx sphinx: builder: dirhtml configuration: conf.py fail_on_warning: true # If using Sphinx, optionally build your docs in additional formats such as PDF #formats: # - pdf # Optionally declare the Python requirements required to build your docs python: install: - requirements: .sphinx/requirements.txt [rtd-command-info] start-time: 2026-05-11T15:47:30.698287Z, end-time: 2026-05-11T15:47:30.760006Z, duration: 0, exit-code: 0 asdf global python 3.11.14 [rtd-command-info] start-time: 2026-05-11T15:47:31.160086Z, end-time: 2026-05-11T15:47:31.633303Z, duration: 0, exit-code: 0 python -mvirtualenv $READTHEDOCS_VIRTUALENV_PATH created virtual environment CPython3.11.14.final.0-64 in 251ms creator CPython3Posix(dest=/home/docs/checkouts/readthedocs.org/user_builds/canonical-openstack/envs/198, clear=False, no_vcs_ignore=False, global=False) seeder FromAppData(download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=/home/docs/.local/share/virtualenv) added seed packages: pip==23.1, setuptools==67.6.1, wheel==0.40.0 activators BashActivator,CShellActivator,FishActivator,NushellActivator,PowerShellActivator,PythonActivator [rtd-command-info] start-time: 2026-05-11T15:47:31.709103Z, end-time: 2026-05-11T15:47:31.784494Z, duration: 0, exit-code: 0 python3 .sphinx/build_requirements.py [rtd-command-info] start-time: 2026-05-11T15:47:31.870420Z, end-time: 2026-05-11T15:47:32.525930Z, duration: 0, exit-code: 0 git fetch --unshallow || true [rtd-command-info] start-time: 2026-05-11T15:47:32.600496Z, end-time: 2026-05-11T15:47:35.680746Z, duration: 3, exit-code: 0 python -m pip install --upgrade --no-cache-dir pip setuptools Requirement already satisfied: pip in /home/docs/checkouts/readthedocs.org/user_builds/canonical-openstack/envs/198/lib/python3.11/site-packages (23.1) Collecting pip Downloading pip-26.1.1-py3-none-any.whl (1.8 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.8/1.8 MB 17.5 MB/s eta 0:00:00 Requirement already satisfied: setuptools in /home/docs/checkouts/readthedocs.org/user_builds/canonical-openstack/envs/198/lib/python3.11/site-packages (67.6.1) Collecting setuptools Downloading setuptools-82.0.1-py3-none-any.whl (1.0 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.0/1.0 MB 32.9 MB/s eta 0:00:00 Installing collected packages: setuptools, pip Attempting uninstall: setuptools Found existing installation: setuptools 67.6.1 Uninstalling setuptools-67.6.1: Successfully uninstalled setuptools-67.6.1 Attempting uninstall: pip Found existing installation: pip 23.1 Uninstalling pip-23.1: Successfully uninstalled pip-23.1 Successfully installed pip-26.1.1 setuptools-82.0.1 [rtd-command-info] start-time: 2026-05-11T15:47:35.763866Z, end-time: 2026-05-11T15:47:39.727253Z, duration: 3, exit-code: 0 python -m pip install --upgrade --no-cache-dir sphinx Collecting sphinx Downloading sphinx-9.0.4-py3-none-any.whl.metadata (5.8 kB) Collecting sphinxcontrib-applehelp>=1.0.7 (from sphinx) Downloading sphinxcontrib_applehelp-2.0.0-py3-none-any.whl.metadata (2.3 kB) Collecting sphinxcontrib-devhelp>=1.0.6 (from sphinx) Downloading sphinxcontrib_devhelp-2.0.0-py3-none-any.whl.metadata (2.3 kB) Collecting sphinxcontrib-htmlhelp>=2.0.6 (from sphinx) Downloading sphinxcontrib_htmlhelp-2.1.0-py3-none-any.whl.metadata (2.3 kB) Collecting sphinxcontrib-jsmath>=1.0.1 (from sphinx) Downloading sphinxcontrib_jsmath-1.0.1-py2.py3-none-any.whl.metadata (1.4 kB) Collecting sphinxcontrib-qthelp>=1.0.6 (from sphinx) Downloading sphinxcontrib_qthelp-2.0.0-py3-none-any.whl.metadata (2.3 kB) Collecting sphinxcontrib-serializinghtml>=1.1.9 (from sphinx) Downloading sphinxcontrib_serializinghtml-2.0.0-py3-none-any.whl.metadata (2.4 kB) Collecting Jinja2>=3.1 (from sphinx) Downloading jinja2-3.1.6-py3-none-any.whl.metadata (2.9 kB) Collecting Pygments>=2.17 (from sphinx) Downloading pygments-2.20.0-py3-none-any.whl.metadata (2.5 kB) Collecting docutils<0.23,>=0.20 (from sphinx) Downloading docutils-0.22.4-py3-none-any.whl.metadata (15 kB) Collecting snowballstemmer>=2.2 (from sphinx) Downloading snowballstemmer-3.0.1-py3-none-any.whl.metadata (7.9 kB) Collecting babel>=2.13 (from sphinx) Downloading babel-2.18.0-py3-none-any.whl.metadata (2.2 kB) Collecting alabaster>=0.7.14 (from sphinx) Downloading alabaster-1.0.0-py3-none-any.whl.metadata (2.8 kB) Collecting imagesize>=1.3 (from sphinx) Downloading imagesize-2.0.0-py2.py3-none-any.whl.metadata (1.5 kB) Collecting requests>=2.30.0 (from sphinx) Downloading requests-2.33.1-py3-none-any.whl.metadata (4.8 kB) Collecting roman-numerals>=1.0.0 (from sphinx) Downloading roman_numerals-4.1.0-py3-none-any.whl.metadata (3.3 kB) Collecting packaging>=23.0 (from sphinx) Downloading packaging-26.2-py3-none-any.whl.metadata (3.5 kB) Collecting MarkupSafe>=2.0 (from Jinja2>=3.1->sphinx) Downloading markupsafe-3.0.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (2.7 kB) Collecting charset_normalizer<4,>=2 (from requests>=2.30.0->sphinx) Downloading charset_normalizer-3.4.7-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (40 kB) Collecting idna<4,>=2.5 (from requests>=2.30.0->sphinx) Downloading idna-3.14-py3-none-any.whl.metadata (8.0 kB) Collecting urllib3<3,>=1.26 (from requests>=2.30.0->sphinx) Downloading urllib3-2.7.0-py3-none-any.whl.metadata (6.9 kB) Collecting certifi>=2023.5.7 (from requests>=2.30.0->sphinx) Downloading certifi-2026.4.22-py3-none-any.whl.metadata (2.5 kB) Downloading sphinx-9.0.4-py3-none-any.whl (3.9 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.9/3.9 MB 182.0 MB/s 0:00:00 Downloading docutils-0.22.4-py3-none-any.whl (633 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 633.2/633.2 kB 823.7 MB/s 0:00:00 Downloading alabaster-1.0.0-py3-none-any.whl (13 kB) Downloading babel-2.18.0-py3-none-any.whl (10.2 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 10.2/10.2 MB 515.3 MB/s 0:00:00 Downloading imagesize-2.0.0-py2.py3-none-any.whl (9.4 kB) Downloading jinja2-3.1.6-py3-none-any.whl (134 kB) Downloading markupsafe-3.0.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (22 kB) Downloading packaging-26.2-py3-none-any.whl (100 kB) Downloading pygments-2.20.0-py3-none-any.whl (1.2 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.2/1.2 MB 895.7 MB/s 0:00:00 Downloading requests-2.33.1-py3-none-any.whl (64 kB) Downloading charset_normalizer-3.4.7-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (214 kB) Downloading idna-3.14-py3-none-any.whl (72 kB) Downloading urllib3-2.7.0-py3-none-any.whl (131 kB) Downloading certifi-2026.4.22-py3-none-any.whl (135 kB) Downloading roman_numerals-4.1.0-py3-none-any.whl (7.7 kB) Downloading snowballstemmer-3.0.1-py3-none-any.whl (103 kB) Downloading sphinxcontrib_applehelp-2.0.0-py3-none-any.whl (119 kB) Downloading sphinxcontrib_devhelp-2.0.0-py3-none-any.whl (82 kB) Downloading sphinxcontrib_htmlhelp-2.1.0-py3-none-any.whl (98 kB) Downloading sphinxcontrib_jsmath-1.0.1-py2.py3-none-any.whl (5.1 kB) Downloading sphinxcontrib_qthelp-2.0.0-py3-none-any.whl (88 kB) Downloading sphinxcontrib_serializinghtml-2.0.0-py3-none-any.whl (92 kB) Installing collected packages: urllib3, sphinxcontrib-serializinghtml, sphinxcontrib-qthelp, sphinxcontrib-jsmath, sphinxcontrib-htmlhelp, sphinxcontrib-devhelp, sphinxcontrib-applehelp, snowballstemmer, roman-numerals, Pygments, packaging, MarkupSafe, imagesize, idna, docutils, charset_normalizer, certifi, babel, alabaster, requests, Jinja2, sphinx Successfully installed Jinja2-3.1.6 MarkupSafe-3.0.3 Pygments-2.20.0 alabaster-1.0.0 babel-2.18.0 certifi-2026.4.22 charset_normalizer-3.4.7 docutils-0.22.4 idna-3.14 imagesize-2.0.0 packaging-26.2 requests-2.33.1 roman-numerals-4.1.0 snowballstemmer-3.0.1 sphinx-9.0.4 sphinxcontrib-applehelp-2.0.0 sphinxcontrib-devhelp-2.0.0 sphinxcontrib-htmlhelp-2.1.0 sphinxcontrib-jsmath-1.0.1 sphinxcontrib-qthelp-2.0.0 sphinxcontrib-serializinghtml-2.0.0 urllib3-2.7.0 [rtd-command-info] start-time: 2026-05-11T15:47:39.808190Z, end-time: 2026-05-11T15:47:44.709173Z, duration: 4, exit-code: 0 python -m pip install --exists-action=w --no-cache-dir -r .sphinx/requirements.txt Collecting GitPython (from -r .sphinx/requirements.txt (line 7)) Downloading gitpython-3.1.50-py3-none-any.whl.metadata (14 kB) Collecting canonical-sphinx-extensions (from -r .sphinx/requirements.txt (line 8)) Downloading canonical_sphinx_extensions-0.0.34-py3-none-any.whl.metadata (16 kB) Collecting furo (from -r .sphinx/requirements.txt (line 9)) Downloading furo-2025.12.19-py3-none-any.whl.metadata (4.9 kB) Collecting linkify-it-py (from -r .sphinx/requirements.txt (line 10)) Downloading linkify_it_py-2.1.0-py3-none-any.whl.metadata (8.5 kB) Collecting myst-parser (from -r .sphinx/requirements.txt (line 11)) Downloading myst_parser-5.0.0-py3-none-any.whl.metadata (5.6 kB) Collecting pyspelling (from -r .sphinx/requirements.txt (line 12)) Downloading pyspelling-2.12.1-py3-none-any.whl.metadata (3.7 kB) Requirement already satisfied: sphinx in /home/docs/checkouts/readthedocs.org/user_builds/canonical-openstack/envs/198/lib/python3.11/site-packages (from -r .sphinx/requirements.txt (line 13)) (9.0.4) Collecting sphinx-autobuild (from -r .sphinx/requirements.txt (line 14)) Downloading sphinx_autobuild-2025.8.25-py3-none-any.whl.metadata (8.5 kB) Collecting sphinx-copybutton (from -r .sphinx/requirements.txt (line 15)) Downloading sphinx_copybutton-0.5.2-py3-none-any.whl.metadata (3.2 kB) Collecting sphinx-design (from -r .sphinx/requirements.txt (line 16)) Downloading sphinx_design-0.7.0-py3-none-any.whl.metadata (5.5 kB) Collecting sphinx-notfound-page (from -r .sphinx/requirements.txt (line 17)) Downloading sphinx_notfound_page-1.1.0-py3-none-any.whl.metadata (2.9 kB) Collecting sphinx-tabs (from -r .sphinx/requirements.txt (line 18)) Downloading sphinx_tabs-3.5.0-py3-none-any.whl.metadata (6.6 kB) Collecting sphinxcontrib-jquery (from -r .sphinx/requirements.txt (line 19)) Downloading sphinxcontrib_jquery-4.1-py2.py3-none-any.whl.metadata (2.6 kB) Collecting sphinxcontrib-spelling (from -r .sphinx/requirements.txt (line 20)) Downloading sphinxcontrib_spelling-8.0.2-py3-none-any.whl.metadata (2.9 kB) Collecting sphinxext-opengraph (from -r .sphinx/requirements.txt (line 22)) Downloading sphinxext_opengraph-0.13.0-py3-none-any.whl.metadata (2.7 kB) Collecting watchfiles (from -r .sphinx/requirements.txt (line 23)) Downloading watchfiles-1.1.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (4.9 kB) Collecting sphinxcontrib-svg2pdfconverter[CairoSVG] (from -r .sphinx/requirements.txt (line 21)) Downloading sphinxcontrib_svg2pdfconverter-2.1.0-py3-none-any.whl.metadata (3.3 kB) Collecting gitdb<5,>=4.0.1 (from GitPython->-r .sphinx/requirements.txt (line 7)) Downloading gitdb-4.0.12-py3-none-any.whl.metadata (1.2 kB) Collecting smmap<6,>=3.0.1 (from gitdb<5,>=4.0.1->GitPython->-r .sphinx/requirements.txt (line 7)) Downloading smmap-5.0.3-py3-none-any.whl.metadata (4.6 kB) Requirement already satisfied: requests in /home/docs/checkouts/readthedocs.org/user_builds/canonical-openstack/envs/198/lib/python3.11/site-packages (from canonical-sphinx-extensions->-r .sphinx/requirements.txt (line 8)) (2.33.1) Collecting beautifulsoup4 (from canonical-sphinx-extensions->-r .sphinx/requirements.txt (line 8)) Downloading beautifulsoup4-4.14.3-py3-none-any.whl.metadata (3.8 kB) Requirement already satisfied: docutils in /home/docs/checkouts/readthedocs.org/user_builds/canonical-openstack/envs/198/lib/python3.11/site-packages (from canonical-sphinx-extensions->-r .sphinx/requirements.txt (line 8)) (0.22.4) Collecting sphinx-basic-ng>=1.0.0.beta2 (from furo->-r .sphinx/requirements.txt (line 9)) Downloading sphinx_basic_ng-1.0.0b2-py3-none-any.whl.metadata (1.5 kB) Requirement already satisfied: pygments>=2.7 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-openstack/envs/198/lib/python3.11/site-packages (from furo->-r .sphinx/requirements.txt (line 9)) (2.20.0) Collecting accessible-pygments>=0.0.5 (from furo->-r .sphinx/requirements.txt (line 9)) Downloading accessible_pygments-0.0.5-py3-none-any.whl.metadata (10 kB) Requirement already satisfied: sphinxcontrib-applehelp>=1.0.7 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-openstack/envs/198/lib/python3.11/site-packages (from sphinx->-r .sphinx/requirements.txt (line 13)) (2.0.0) Requirement already satisfied: sphinxcontrib-devhelp>=1.0.6 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-openstack/envs/198/lib/python3.11/site-packages (from sphinx->-r .sphinx/requirements.txt (line 13)) (2.0.0) Requirement already satisfied: sphinxcontrib-htmlhelp>=2.0.6 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-openstack/envs/198/lib/python3.11/site-packages (from sphinx->-r .sphinx/requirements.txt (line 13)) (2.1.0) Requirement already satisfied: sphinxcontrib-jsmath>=1.0.1 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-openstack/envs/198/lib/python3.11/site-packages (from sphinx->-r .sphinx/requirements.txt (line 13)) (1.0.1) Requirement already satisfied: sphinxcontrib-qthelp>=1.0.6 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-openstack/envs/198/lib/python3.11/site-packages (from sphinx->-r .sphinx/requirements.txt (line 13)) (2.0.0) Requirement already satisfied: sphinxcontrib-serializinghtml>=1.1.9 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-openstack/envs/198/lib/python3.11/site-packages (from sphinx->-r .sphinx/requirements.txt (line 13)) (2.0.0) Requirement already satisfied: Jinja2>=3.1 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-openstack/envs/198/lib/python3.11/site-packages (from sphinx->-r .sphinx/requirements.txt (line 13)) (3.1.6) Requirement already satisfied: snowballstemmer>=2.2 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-openstack/envs/198/lib/python3.11/site-packages (from sphinx->-r .sphinx/requirements.txt (line 13)) (3.0.1) Requirement already satisfied: babel>=2.13 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-openstack/envs/198/lib/python3.11/site-packages (from sphinx->-r .sphinx/requirements.txt (line 13)) (2.18.0) Requirement already satisfied: alabaster>=0.7.14 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-openstack/envs/198/lib/python3.11/site-packages (from sphinx->-r .sphinx/requirements.txt (line 13)) (1.0.0) Requirement already satisfied: imagesize>=1.3 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-openstack/envs/198/lib/python3.11/site-packages (from sphinx->-r .sphinx/requirements.txt (line 13)) (2.0.0) Requirement already satisfied: roman-numerals>=1.0.0 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-openstack/envs/198/lib/python3.11/site-packages (from sphinx->-r .sphinx/requirements.txt (line 13)) (4.1.0) Requirement already satisfied: packaging>=23.0 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-openstack/envs/198/lib/python3.11/site-packages (from sphinx->-r .sphinx/requirements.txt (line 13)) (26.2) Collecting uc-micro-py (from linkify-it-py->-r .sphinx/requirements.txt (line 10)) Downloading uc_micro_py-2.0.0-py3-none-any.whl.metadata (2.2 kB) Collecting markdown-it-py~=4.0 (from myst-parser->-r .sphinx/requirements.txt (line 11)) Downloading markdown_it_py-4.2.0-py3-none-any.whl.metadata (7.4 kB) Collecting mdit-py-plugins~=0.5 (from myst-parser->-r .sphinx/requirements.txt (line 11)) Downloading mdit_py_plugins-0.6.0-py3-none-any.whl.metadata (2.9 kB) Collecting pyyaml (from myst-parser->-r .sphinx/requirements.txt (line 11)) Downloading pyyaml-6.0.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (2.4 kB) Collecting mdurl~=0.1 (from markdown-it-py~=4.0->myst-parser->-r .sphinx/requirements.txt (line 11)) Downloading mdurl-0.1.2-py3-none-any.whl.metadata (1.6 kB) Collecting html5lib (from pyspelling->-r .sphinx/requirements.txt (line 12)) Downloading html5lib-1.1-py2.py3-none-any.whl.metadata (16 kB) Collecting lxml (from pyspelling->-r .sphinx/requirements.txt (line 12)) Downloading lxml-6.1.0-cp311-cp311-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl.metadata (4.0 kB) Collecting markdown (from pyspelling->-r .sphinx/requirements.txt (line 12)) Downloading markdown-3.10.2-py3-none-any.whl.metadata (5.1 kB) Collecting soupsieve>=1.8 (from pyspelling->-r .sphinx/requirements.txt (line 12)) Downloading soupsieve-2.8.3-py3-none-any.whl.metadata (4.6 kB) Collecting wcmatch>=8.5 (from pyspelling->-r .sphinx/requirements.txt (line 12)) Downloading wcmatch-10.1-py3-none-any.whl.metadata (5.1 kB) Collecting colorama>=0.4.6 (from sphinx-autobuild->-r .sphinx/requirements.txt (line 14)) Downloading colorama-0.4.6-py2.py3-none-any.whl.metadata (17 kB) Collecting starlette>=0.35 (from sphinx-autobuild->-r .sphinx/requirements.txt (line 14)) Downloading starlette-1.0.0-py3-none-any.whl.metadata (6.3 kB) Collecting uvicorn>=0.25 (from sphinx-autobuild->-r .sphinx/requirements.txt (line 14)) Downloading uvicorn-0.46.0-py3-none-any.whl.metadata (6.7 kB) Collecting websockets>=11 (from sphinx-autobuild->-r .sphinx/requirements.txt (line 14)) Downloading websockets-16.0-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl.metadata (6.8 kB) Collecting pyenchant>=3.1.1 (from sphinxcontrib-spelling->-r .sphinx/requirements.txt (line 20)) Downloading pyenchant-3.3.0-py3-none-any.whl.metadata (3.4 kB) Collecting cairosvg>=1.0 (from sphinxcontrib-svg2pdfconverter[CairoSVG]->-r .sphinx/requirements.txt (line 21)) Downloading cairosvg-2.9.0-py3-none-any.whl.metadata (2.7 kB) Collecting anyio>=3.0.0 (from watchfiles->-r .sphinx/requirements.txt (line 23)) Downloading anyio-4.13.0-py3-none-any.whl.metadata (4.5 kB) Requirement already satisfied: idna>=2.8 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-openstack/envs/198/lib/python3.11/site-packages (from anyio>=3.0.0->watchfiles->-r .sphinx/requirements.txt (line 23)) (3.14) Collecting typing_extensions>=4.5 (from anyio>=3.0.0->watchfiles->-r .sphinx/requirements.txt (line 23)) Downloading typing_extensions-4.15.0-py3-none-any.whl.metadata (3.3 kB) Collecting cairocffi (from cairosvg>=1.0->sphinxcontrib-svg2pdfconverter[CairoSVG]->-r .sphinx/requirements.txt (line 21)) Downloading cairocffi-1.7.1-py3-none-any.whl.metadata (3.3 kB) Collecting cssselect2 (from cairosvg>=1.0->sphinxcontrib-svg2pdfconverter[CairoSVG]->-r .sphinx/requirements.txt (line 21)) Downloading cssselect2-0.9.0-py3-none-any.whl.metadata (2.9 kB) Collecting defusedxml (from cairosvg>=1.0->sphinxcontrib-svg2pdfconverter[CairoSVG]->-r .sphinx/requirements.txt (line 21)) Downloading defusedxml-0.7.1-py2.py3-none-any.whl.metadata (32 kB) Collecting pillow (from cairosvg>=1.0->sphinxcontrib-svg2pdfconverter[CairoSVG]->-r .sphinx/requirements.txt (line 21)) Downloading pillow-12.2.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.metadata (8.8 kB) Collecting tinycss2 (from cairosvg>=1.0->sphinxcontrib-svg2pdfconverter[CairoSVG]->-r .sphinx/requirements.txt (line 21)) Downloading tinycss2-1.5.1-py3-none-any.whl.metadata (3.0 kB) Requirement already satisfied: MarkupSafe>=2.0 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-openstack/envs/198/lib/python3.11/site-packages (from Jinja2>=3.1->sphinx->-r .sphinx/requirements.txt (line 13)) (3.0.3) Requirement already satisfied: charset_normalizer<4,>=2 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-openstack/envs/198/lib/python3.11/site-packages (from requests->canonical-sphinx-extensions->-r .sphinx/requirements.txt (line 8)) (3.4.7) Requirement already satisfied: urllib3<3,>=1.26 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-openstack/envs/198/lib/python3.11/site-packages (from requests->canonical-sphinx-extensions->-r .sphinx/requirements.txt (line 8)) (2.7.0) Requirement already satisfied: certifi>=2023.5.7 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-openstack/envs/198/lib/python3.11/site-packages (from requests->canonical-sphinx-extensions->-r .sphinx/requirements.txt (line 8)) (2026.4.22) Collecting click>=7.0 (from uvicorn>=0.25->sphinx-autobuild->-r .sphinx/requirements.txt (line 14)) Downloading click-8.3.3-py3-none-any.whl.metadata (2.6 kB) Collecting h11>=0.8 (from uvicorn>=0.25->sphinx-autobuild->-r .sphinx/requirements.txt (line 14)) Downloading h11-0.16.0-py3-none-any.whl.metadata (8.3 kB) Collecting bracex>=2.1.1 (from wcmatch>=8.5->pyspelling->-r .sphinx/requirements.txt (line 12)) Downloading bracex-2.6-py3-none-any.whl.metadata (3.6 kB) Collecting cffi>=1.1.0 (from cairocffi->cairosvg>=1.0->sphinxcontrib-svg2pdfconverter[CairoSVG]->-r .sphinx/requirements.txt (line 21)) Downloading cffi-2.0.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.metadata (2.6 kB) Collecting pycparser (from cffi>=1.1.0->cairocffi->cairosvg>=1.0->sphinxcontrib-svg2pdfconverter[CairoSVG]->-r .sphinx/requirements.txt (line 21)) Downloading pycparser-3.0-py3-none-any.whl.metadata (8.2 kB) Collecting webencodings (from cssselect2->cairosvg>=1.0->sphinxcontrib-svg2pdfconverter[CairoSVG]->-r .sphinx/requirements.txt (line 21)) Downloading webencodings-0.5.1-py2.py3-none-any.whl.metadata (2.1 kB) Collecting six>=1.9 (from html5lib->pyspelling->-r .sphinx/requirements.txt (line 12)) Downloading six-1.17.0-py2.py3-none-any.whl.metadata (1.7 kB) Downloading gitpython-3.1.50-py3-none-any.whl (212 kB) Downloading gitdb-4.0.12-py3-none-any.whl (62 kB) Downloading smmap-5.0.3-py3-none-any.whl (24 kB) Downloading canonical_sphinx_extensions-0.0.34-py3-none-any.whl (67 kB) Downloading furo-2025.12.19-py3-none-any.whl (339 kB) Downloading linkify_it_py-2.1.0-py3-none-any.whl (19 kB) Downloading myst_parser-5.0.0-py3-none-any.whl (84 kB) Downloading markdown_it_py-4.2.0-py3-none-any.whl (91 kB) Downloading mdit_py_plugins-0.6.0-py3-none-any.whl (66 kB) Downloading mdurl-0.1.2-py3-none-any.whl (10.0 kB) Downloading pyspelling-2.12.1-py3-none-any.whl (45 kB) Downloading sphinx_autobuild-2025.8.25-py3-none-any.whl (12 kB) Downloading sphinx_copybutton-0.5.2-py3-none-any.whl (13 kB) Downloading sphinx_design-0.7.0-py3-none-any.whl (2.2 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.2/2.2 MB 178.8 MB/s 0:00:00 Downloading sphinx_notfound_page-1.1.0-py3-none-any.whl (8.2 kB) Downloading sphinx_tabs-3.5.0-py3-none-any.whl (9.9 kB) Downloading sphinxcontrib_jquery-4.1-py2.py3-none-any.whl (121 kB) Downloading sphinxcontrib_spelling-8.0.2-py3-none-any.whl (14 kB) Downloading sphinxcontrib_svg2pdfconverter-2.1.0-py3-none-any.whl (9.3 kB) Downloading sphinxext_opengraph-0.13.0-py3-none-any.whl (1.0 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.0/1.0 MB 857.9 MB/s 0:00:00 Downloading watchfiles-1.1.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (456 kB) Downloading accessible_pygments-0.0.5-py3-none-any.whl (1.4 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.4/1.4 MB 454.8 MB/s 0:00:00 Downloading anyio-4.13.0-py3-none-any.whl (114 kB) Downloading cairosvg-2.9.0-py3-none-any.whl (45 kB) Downloading colorama-0.4.6-py2.py3-none-any.whl (25 kB) Downloading pyenchant-3.3.0-py3-none-any.whl (58 kB) Downloading soupsieve-2.8.3-py3-none-any.whl (37 kB) Downloading sphinx_basic_ng-1.0.0b2-py3-none-any.whl (22 kB) Downloading starlette-1.0.0-py3-none-any.whl (72 kB) Downloading typing_extensions-4.15.0-py3-none-any.whl (44 kB) Downloading uvicorn-0.46.0-py3-none-any.whl (70 kB) Downloading click-8.3.3-py3-none-any.whl (110 kB) Downloading h11-0.16.0-py3-none-any.whl (37 kB) Downloading wcmatch-10.1-py3-none-any.whl (39 kB) Downloading bracex-2.6-py3-none-any.whl (11 kB) Downloading websockets-16.0-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl (184 kB) Downloading beautifulsoup4-4.14.3-py3-none-any.whl (107 kB) Downloading cairocffi-1.7.1-py3-none-any.whl (75 kB) Downloading cffi-2.0.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (215 kB) Downloading cssselect2-0.9.0-py3-none-any.whl (15 kB) Downloading defusedxml-0.7.1-py2.py3-none-any.whl (25 kB) Downloading html5lib-1.1-py2.py3-none-any.whl (112 kB) Downloading six-1.17.0-py2.py3-none-any.whl (11 kB) Downloading lxml-6.1.0-cp311-cp311-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl (5.2 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 5.2/5.2 MB 582.8 MB/s 0:00:00 Downloading markdown-3.10.2-py3-none-any.whl (108 kB) Downloading pillow-12.2.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (7.1 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 7.1/7.1 MB 486.6 MB/s 0:00:00 Downloading pycparser-3.0-py3-none-any.whl (48 kB) Downloading pyyaml-6.0.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (806 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 806.6/806.6 kB 893.1 MB/s 0:00:00 Downloading tinycss2-1.5.1-py3-none-any.whl (28 kB) Downloading webencodings-0.5.1-py2.py3-none-any.whl (11 kB) Downloading uc_micro_py-2.0.0-py3-none-any.whl (6.4 kB) Installing collected packages: webencodings, websockets, uc-micro-py, typing_extensions, tinycss2, soupsieve, smmap, six, pyyaml, pyenchant, pycparser, pillow, mdurl, markdown, lxml, h11, defusedxml, colorama, click, bracex, accessible-pygments, wcmatch, uvicorn, markdown-it-py, linkify-it-py, html5lib, gitdb, cssselect2, cffi, beautifulsoup4, anyio, watchfiles, starlette, sphinxext-opengraph, sphinxcontrib-svg2pdfconverter, sphinxcontrib-spelling, sphinxcontrib-jquery, sphinx-tabs, sphinx-notfound-page, sphinx-design, sphinx-copybutton, sphinx-basic-ng, pyspelling, mdit-py-plugins, GitPython, cairocffi, sphinx-autobuild, myst-parser, furo, canonical-sphinx-extensions, cairosvg Successfully installed GitPython-3.1.50 accessible-pygments-0.0.5 anyio-4.13.0 beautifulsoup4-4.14.3 bracex-2.6 cairocffi-1.7.1 cairosvg-2.9.0 canonical-sphinx-extensions-0.0.34 cffi-2.0.0 click-8.3.3 colorama-0.4.6 cssselect2-0.9.0 defusedxml-0.7.1 furo-2025.12.19 gitdb-4.0.12 h11-0.16.0 html5lib-1.1 linkify-it-py-2.1.0 lxml-6.1.0 markdown-3.10.2 markdown-it-py-4.2.0 mdit-py-plugins-0.6.0 mdurl-0.1.2 myst-parser-5.0.0 pillow-12.2.0 pycparser-3.0 pyenchant-3.3.0 pyspelling-2.12.1 pyyaml-6.0.3 six-1.17.0 smmap-5.0.3 soupsieve-2.8.3 sphinx-autobuild-2025.8.25 sphinx-basic-ng-1.0.0b2 sphinx-copybutton-0.5.2 sphinx-design-0.7.0 sphinx-notfound-page-1.1.0 sphinx-tabs-3.5.0 sphinxcontrib-jquery-4.1 sphinxcontrib-spelling-8.0.2 sphinxcontrib-svg2pdfconverter-2.1.0 sphinxext-opengraph-0.13.0 starlette-1.0.0 tinycss2-1.5.1 typing_extensions-4.15.0 uc-micro-py-2.0.0 uvicorn-0.46.0 watchfiles-1.1.1 wcmatch-10.1 webencodings-0.5.1 websockets-16.0 [rtd-command-info] start-time: 2026-05-11T15:47:44.838298Z, end-time: 2026-05-11T15:47:44.879355Z, duration: 0, exit-code: 0 cat conf.py import sys import os import requests from urllib.parse import urlparse from git import Repo, InvalidGitRepositoryError import time import ast sys.path.append('./') from custom_conf import * sys.path.append('.sphinx/') from build_requirements import * # Configuration file for the Sphinx documentation builder. # You should not do any modifications to this file. Put your custom # configuration into the custom_conf.py file. # If you need to change this file, contribute the changes upstream. # # For the full list of built-in configuration values, see the documentation: # https://www.sphinx-doc.org/en/master/usage/configuration.html ############################################################ ### Extensions ############################################################ extensions = [ 'sphinx_design', 'sphinx_copybutton', 'sphinxcontrib.jquery', "sphinx_tabs.tabs", 'canonical.related-links', 'canonical.terminal-output', ] # Only add redirects extension if any redirects are specified. if AreRedirectsDefined(): extensions.append('sphinx_reredirects') # Only add myst extensions if any configuration is present. if IsMyStParserUsed(): extensions.append('myst_parser') # Additional MyST syntax myst_enable_extensions = [ 'substitution', 'deflist', 'linkify' ] myst_enable_extensions.extend(custom_myst_extensions) # Only add Open Graph extension if any configuration is present. if IsOpenGraphConfigured(): extensions.append('sphinxext.opengraph') extensions.extend(custom_extensions) extensions = DeduplicateExtensions(extensions) ### Configuration for extensions # Used for related links if not 'discourse_prefix' in html_context and 'discourse' in html_context: html_context['discourse_prefix'] = html_context['discourse'] + '/t/' # The URL prefix for the notfound extension depends on whether the documentation uses versions. # For documentation on documentation.ubuntu.com, we also must add the slug. url_version = '' url_lang = '' # Determine if the URL uses versions and language if 'READTHEDOCS_CANONICAL_URL' in os.environ and os.environ['READTHEDOCS_CANONICAL_URL']: url_parts = os.environ['READTHEDOCS_CANONICAL_URL'].split('/') if len(url_parts) >= 2 and 'READTHEDOCS_VERSION' in os.environ and os.environ['READTHEDOCS_VERSION'] == url_parts[-2]: url_version = url_parts[-2] + '/' if len(url_parts) >= 3 and 'READTHEDOCS_LANGUAGE' in os.environ and os.environ['READTHEDOCS_LANGUAGE'] == url_parts[-3]: url_lang = url_parts[-3] + '/' # Set notfound_urls_prefix to the slug (if defined) and the version/language affix if slug: notfound_urls_prefix = '/' + slug + '/' + url_lang + url_version elif len(url_lang + url_version) > 0: notfound_urls_prefix = '/' + url_lang + url_version else: notfound_urls_prefix = '' notfound_context = { 'title': 'Page not found', 'body': '

Sorry, but the documentation page that you are looking for was not found.

\n\n

Documentation changes over time, and pages are moved around. We try to redirect you to the updated content where possible, but unfortunately, that didn\'t work this time (maybe because the content you were looking for does not exist in this version of the documentation).

\n

You can try to use the navigation to locate the content you\'re looking for, or search for a similar page.

\n', } # Default image for OGP (to prevent font errors, see # https://github.com/canonical/sphinx-docs-starter-pack/pull/54 ) if not 'ogp_image' in locals(): ogp_image = 'https://assets.ubuntu.com/v1/253da317-image-document-ubuntudocs.svg' ############################################################ ### General configuration ############################################################ exclude_patterns = [ '_build', 'Thumbs.db', '.DS_Store', '.sphinx', ] exclude_patterns.extend(custom_excludes) rst_epilog = ''' .. include:: /reuse/links.txt ''' if 'custom_rst_epilog' in locals(): rst_epilog = custom_rst_epilog source_suffix = { '.rst': 'restructuredtext', '.md': 'markdown', } if not 'conf_py_path' in html_context and 'github_folder' in html_context: html_context['conf_py_path'] = html_context['github_folder'] # For ignoring specific links linkcheck_anchors_ignore_for_url = [ r'https://github\.com/.*' ] linkcheck_anchors_ignore_for_url.extend(custom_linkcheck_anchors_ignore_for_url) # Tags cannot be added directly in custom_conf.py, so add them here for tag in custom_tags: tags.add(tag) # html_context['get_contribs'] is a function and cannot be # cached (see https://github.com/sphinx-doc/sphinx/issues/12300) suppress_warnings = ["config.cache"] ############################################################ ### Styling ############################################################ # Find the current builder builder = 'dirhtml' if '-b' in sys.argv: builder = sys.argv[sys.argv.index('-b')+1] # Setting templates_path for epub makes the build fail if builder == 'dirhtml' or builder == 'html': templates_path = ['.sphinx/_templates'] notfound_template = '404.html' # Theme configuration html_theme = 'furo' html_last_updated_fmt = '' html_permalinks_icon = '¶' if html_title == '': html_theme_options = { 'sidebar_hide_name': True } ############################################################ ### Additional files ############################################################ html_static_path = ['.sphinx/_static'] html_css_files = [ 'custom.css', 'header.css', 'github_issue_links.css', 'furo_colors.css', 'footer.css' ] html_css_files.extend(custom_html_css_files) html_js_files = ['header-nav.js', 'footer.js'] if 'github_issues' in html_context and html_context['github_issues'] and not disable_feedback_button: html_js_files.append('github_issue_links.js') html_js_files.extend(custom_html_js_files) ############################################################# # Display the contributors def get_contributors_for_file(github_url, github_folder, pagename, page_source_suffix, display_contributors_since=None): filename = f"{pagename}{page_source_suffix}" paths=html_context['github_folder'][1:] + filename try: repo = Repo(".") except InvalidGitRepositoryError: cwd = os.getcwd() ghfolder = html_context['github_folder'][:-1] if ghfolder and cwd.endswith(ghfolder): repo = Repo(cwd.rpartition(ghfolder)[0]) else: print("The local Git repository could not be found.") return since = display_contributors_since if display_contributors_since and display_contributors_since.strip() else None commits = repo.iter_commits(paths=paths, since=since) contributors_dict = {} for commit in commits: contributor = commit.author.name if contributor not in contributors_dict or commit.committed_date > contributors_dict[contributor]['date']: contributors_dict[contributor] = { 'date': commit.committed_date, 'sha': commit.hexsha } # The github_page contains the link to the contributor's latest commit. contributors_list = [{'name': name, 'github_page': f"{github_url}/commit/{data['sha']}"} for name, data in contributors_dict.items()] sorted_contributors_list = sorted(contributors_list, key=lambda x: x['name']) return sorted_contributors_list html_context['get_contribs'] = get_contributors_for_file ############################################################ ### PDF configuration ############################################################ latex_additional_files = [ "./.sphinx/fonts/Ubuntu-B.ttf", "./.sphinx/fonts/Ubuntu-R.ttf", "./.sphinx/fonts/Ubuntu-RI.ttf", "./.sphinx/fonts/UbuntuMono-R.ttf", "./.sphinx/fonts/UbuntuMono-RI.ttf", "./.sphinx/fonts/UbuntuMono-B.ttf", "./.sphinx/images/Canonical-logo-4x.png", "./.sphinx/images/front-page-light.pdf", "./.sphinx/images/normal-page-footer.pdf", ] latex_engine = 'xelatex' latex_show_pagerefs = True latex_show_urls = 'footnote' with open(".sphinx/latex_elements_template.txt", "rt") as file: latex_config = file.read() latex_elements = ast.literal_eval(latex_config.replace("$PROJECT", project)) [rtd-command-info] start-time: 2026-05-11T15:47:44.973448Z, end-time: 2026-05-11T15:47:53.477336Z, duration: 8, exit-code: 0 python -m sphinx -T -W --keep-going -b dirhtml -d _build/doctrees -D language=en . $READTHEDOCS_OUTPUT/html Running Sphinx v9.0.4 loading translations [en]... done matplotlib is not installed, social cards will not be generated making output directory... done myst v5.0.0: MdParserConfig(commonmark_only=False, gfm_only=False, enable_extensions={'substitution', 'linkify', 'deflist'}, disable_syntax=[], all_links_external=False, links_external_new_tab=False, url_schemes=('http', 'https', 'mailto', 'ftp'), ref_domains=None, fence_as_directive=set(), number_code_blocks=[], title_to_header=False, heading_anchors=0, heading_slug_func=None, html_meta={}, footnote_sort=True, footnote_transition=True, words_per_minute=200, substitutions={}, linkify_fuzzy_links=True, dmath_allow_labels=True, dmath_allow_space=True, dmath_allow_digits=True, dmath_double_inline=False, update_mathjax=True, mathjax_classes='tex2jax_process|mathjax_process|math|output_area', enable_checkboxes=False, suppress_warnings=[], highlight_code_blocks=True) building [mo]: targets for 0 po files that are out of date writing output... building [dirhtml]: targets for 89 source files that are out of date updating environment: [new config] 89 added, 0 changed, 0 removed reading sources... [ 1%] contributor/index reading sources... [ 2%] contributor/reference/index reading sources... [ 3%] contributor/reference/stable-release reading sources... [ 4%] explanation/architecture reading sources... [ 6%] explanation/baremetal-nodes reading sources... [ 7%] explanation/deployment-manifest reading sources... [ 8%] explanation/design-considerations reading sources... [ 9%] explanation/epa-orchestrator reading sources... [ 10%] explanation/index reading sources... [ 11%] explanation/instance-recovery reading sources... [ 12%] explanation/maintenance-mode reading sources... [ 13%] explanation/network-traffic-isolation-with-maas reading sources... [ 15%] explanation/service-endpoint-encryption reading sources... [ 16%] explanation/technical-motives reading sources... [ 17%] how-to/features/baremetal reading sources... [ 18%] how-to/features/caas reading sources... [ 19%] how-to/features/dns reading sources... [ 20%] how-to/features/images-sync reading sources... [ 21%] how-to/features/index reading sources... [ 22%] how-to/features/instance-recovery reading sources... [ 24%] how-to/features/ldap reading sources... [ 25%] how-to/features/load-balancer reading sources... [ 26%] how-to/features/managing-tls/implement-tls-using-a-third-party-ca reading sources... [ 27%] how-to/features/managing-tls/index reading sources... [ 28%] how-to/features/managing-tls/tls-ca reading sources... [ 29%] how-to/features/managing-tls/tls-vault reading sources... [ 30%] how-to/features/object-storage reading sources... [ 31%] how-to/features/observability reading sources... [ 33%] how-to/features/orchestration reading sources... [ 34%] how-to/features/resource-optimization reading sources... [ 35%] how-to/features/secrets reading sources... [ 36%] how-to/features/shared-filesystem reading sources... [ 37%] how-to/features/telemetry reading sources... [ 38%] how-to/features/ubuntu-pro reading sources... [ 39%] how-to/features/validation reading sources... [ 40%] how-to/features/vault reading sources... [ 42%] how-to/index reading sources... [ 43%] how-to/install/index reading sources... [ 44%] how-to/install/install-canonical-openstack-using-canonical-maas reading sources... [ 45%] how-to/install/install-canonical-openstack-using-the-manual-bare-metal-provider reading sources... [ 46%] how-to/misc/adding-amd-sev-enabled-compute-node reading sources... [ 47%] how-to/misc/backup-and-restore-maas-deployment reading sources... [ 48%] how-to/misc/bootstrap-highly-available-juju-controller-on-top-of-a-lxd-cluster reading sources... [ 49%] how-to/misc/configuring-dpdk reading sources... [ 51%] how-to/misc/configuring-gpu-passthrough reading sources... [ 52%] how-to/misc/configuring-sriov reading sources... [ 53%] how-to/misc/identity-provider-enablement reading sources... [ 54%] how-to/misc/index reading sources... [ 55%] how-to/misc/manage-a-proxied-environment reading sources... [ 56%] how-to/misc/manage-external-juju-controllers reading sources... [ 57%] how-to/misc/manage-workloads-with-juju reading sources... [ 58%] how-to/misc/managing-deployment-manifests reading sources... [ 60%] how-to/misc/multiregion-deployments reading sources... [ 61%] how-to/misc/reconfigure-k8s-api-endpoint-juju reading sources... [ 62%] how-to/misc/using-an-existing-juju-controller reading sources... [ 63%] how-to/misc/using-the-epa-orchestrator reading sources... [ 64%] how-to/misc/using-the-openstack-cli reading sources... [ 65%] how-to/misc/using-the-openstack-dashboard reading sources... [ 66%] how-to/operations/backup-and-restore reading sources... [ 67%] how-to/operations/cluster-upgrades reading sources... [ 69%] how-to/operations/deploy-pure-storage-backend reading sources... [ 70%] how-to/operations/enable-a-gated-storage-backend reading sources... [ 71%] how-to/operations/index reading sources... [ 72%] how-to/operations/live-migration reading sources... [ 73%] how-to/operations/maintenance-mode reading sources... [ 74%] how-to/operations/manage-experimental-features reading sources... [ 75%] how-to/operations/removing-the-primary-node reading sources... [ 76%] how-to/operations/scaling-the-cluster-in reading sources... [ 78%] how-to/operations/scaling-the-cluster-out reading sources... [ 79%] how-to/troubleshooting/index reading sources... [ 80%] how-to/troubleshooting/inspecting-the-cluster reading sources... [ 81%] index reading sources... [ 82%] readme reading sources... [ 83%] reference/api-auditing reading sources... [ 84%] reference/enterprise-requirements reading sources... [ 85%] reference/example-physical-configuration reading sources... [ 87%] reference/index reading sources... [ 88%] reference/interactive-configuration-prompts reading sources... [ 89%] reference/known-limitations reading sources... [ 90%] reference/manifest-file-reference reading sources... [ 91%] reference/network-debugging reading sources... [ 92%] reference/proxy-acl-access reading sources... [ 93%] reference/release-cycle-and-supported-versions reading sources... [ 94%] reference/underlying-projects-and-charms reading sources... [ 96%] tutorial/explore-full-potential-of-openstack reading sources... [ 97%] tutorial/get-familiar-with-openstack reading sources... [ 98%] tutorial/get-started-with-openstack reading sources... [ 99%] tutorial/index reading sources... [100%] tutorial/on-board-your-users looking for now-outdated files... none found pickling environment... done checking consistency... done preparing documents... done copying assets... copying static files... Writing evaluated template result to /home/docs/checkouts/readthedocs.org/user_builds/canonical-openstack/checkouts/198/_readthedocs/html/_static/language_data.js Writing evaluated template result to /home/docs/checkouts/readthedocs.org/user_builds/canonical-openstack/checkouts/198/_readthedocs/html/_static/basic.css Writing evaluated template result to /home/docs/checkouts/readthedocs.org/user_builds/canonical-openstack/checkouts/198/_readthedocs/html/_static/documentation_options.js Writing evaluated template result to /home/docs/checkouts/readthedocs.org/user_builds/canonical-openstack/checkouts/198/_readthedocs/html/_static/copybutton.js copying static files: done copying extra files... copying extra files: done copying assets: done writing output... [ 1%] contributor/index writing output... [ 2%] contributor/reference/index writing output... [ 3%] contributor/reference/stable-release writing output... [ 4%] explanation/architecture writing output... [ 6%] explanation/baremetal-nodes writing output... [ 7%] explanation/deployment-manifest writing output... [ 8%] explanation/design-considerations writing output... [ 9%] explanation/epa-orchestrator writing output... [ 10%] explanation/index writing output... [ 11%] explanation/instance-recovery writing output... [ 12%] explanation/maintenance-mode writing output... [ 13%] explanation/network-traffic-isolation-with-maas writing output... [ 15%] explanation/service-endpoint-encryption writing output... [ 16%] explanation/technical-motives writing output... [ 17%] how-to/features/baremetal writing output... [ 18%] how-to/features/caas writing output... [ 19%] how-to/features/dns writing output... [ 20%] how-to/features/images-sync writing output... [ 21%] how-to/features/index writing output... [ 22%] how-to/features/instance-recovery writing output... [ 24%] how-to/features/ldap writing output... [ 25%] how-to/features/load-balancer writing output... [ 26%] how-to/features/managing-tls/implement-tls-using-a-third-party-ca writing output... [ 27%] how-to/features/managing-tls/index writing output... [ 28%] how-to/features/managing-tls/tls-ca writing output... [ 29%] how-to/features/managing-tls/tls-vault writing output... [ 30%] how-to/features/object-storage writing output... [ 31%] how-to/features/observability writing output... [ 33%] how-to/features/orchestration writing output... [ 34%] how-to/features/resource-optimization writing output... [ 35%] how-to/features/secrets writing output... [ 36%] how-to/features/shared-filesystem writing output... [ 37%] how-to/features/telemetry writing output... [ 38%] how-to/features/ubuntu-pro writing output... [ 39%] how-to/features/validation writing output... [ 40%] how-to/features/vault writing output... [ 42%] how-to/index writing output... [ 43%] how-to/install/index writing output... [ 44%] how-to/install/install-canonical-openstack-using-canonical-maas writing output... [ 45%] how-to/install/install-canonical-openstack-using-the-manual-bare-metal-provider writing output... [ 46%] how-to/misc/adding-amd-sev-enabled-compute-node writing output... [ 47%] how-to/misc/backup-and-restore-maas-deployment writing output... [ 48%] how-to/misc/bootstrap-highly-available-juju-controller-on-top-of-a-lxd-cluster writing output... [ 49%] how-to/misc/configuring-dpdk writing output... [ 51%] how-to/misc/configuring-gpu-passthrough writing output... [ 52%] how-to/misc/configuring-sriov writing output... [ 53%] how-to/misc/identity-provider-enablement writing output... [ 54%] how-to/misc/index writing output... [ 55%] how-to/misc/manage-a-proxied-environment writing output... [ 56%] how-to/misc/manage-external-juju-controllers writing output... [ 57%] how-to/misc/manage-workloads-with-juju writing output... [ 58%] how-to/misc/managing-deployment-manifests writing output... [ 60%] how-to/misc/multiregion-deployments writing output... [ 61%] how-to/misc/reconfigure-k8s-api-endpoint-juju writing output... [ 62%] how-to/misc/using-an-existing-juju-controller writing output... [ 63%] how-to/misc/using-the-epa-orchestrator writing output... [ 64%] how-to/misc/using-the-openstack-cli writing output... [ 65%] how-to/misc/using-the-openstack-dashboard writing output... [ 66%] how-to/operations/backup-and-restore writing output... [ 67%] how-to/operations/cluster-upgrades writing output... [ 69%] how-to/operations/deploy-pure-storage-backend writing output... [ 70%] how-to/operations/enable-a-gated-storage-backend writing output... [ 71%] how-to/operations/index writing output... [ 72%] how-to/operations/live-migration writing output... [ 73%] how-to/operations/maintenance-mode writing output... [ 74%] how-to/operations/manage-experimental-features writing output... [ 75%] how-to/operations/removing-the-primary-node writing output... [ 76%] how-to/operations/scaling-the-cluster-in writing output... [ 78%] how-to/operations/scaling-the-cluster-out writing output... [ 79%] how-to/troubleshooting/index writing output... [ 80%] how-to/troubleshooting/inspecting-the-cluster writing output... [ 81%] index writing output... [ 82%] readme writing output... [ 83%] reference/api-auditing writing output... [ 84%] reference/enterprise-requirements writing output... [ 85%] reference/example-physical-configuration writing output... [ 87%] reference/index writing output... [ 88%] reference/interactive-configuration-prompts writing output... [ 89%] reference/known-limitations writing output... [ 90%] reference/manifest-file-reference writing output... [ 91%] reference/network-debugging writing output... [ 92%] reference/proxy-acl-access writing output... [ 93%] reference/release-cycle-and-supported-versions writing output... [ 94%] reference/underlying-projects-and-charms writing output... [ 96%] tutorial/explore-full-potential-of-openstack writing output... [ 97%] tutorial/get-familiar-with-openstack writing output... [ 98%] tutorial/get-started-with-openstack writing output... [ 99%] tutorial/index writing output... [100%] tutorial/on-board-your-users generating indices... genindex done writing additional pages... search done copying images... [ 2%] explanation/images/canonical-openstack-software-architecture.png copying images... [ 4%] explanation/images/single-node-topology.png copying images... [ 6%] explanation/images/multi-node-topology.png copying images... [ 8%] how-to/features/grafana-login.png copying images... [ 10%] how-to/features/grafana-landing.png copying images... [ 12%] how-to/features/grafana-dashboards.png copying images... [ 13%] how-to/features/grafana-openstack-dashboard-overview.jpeg copying images... [ 15%] how-to/features/grafana-openstack-cloud-usage.png copying images... [ 17%] how-to/features/grafana-compute-overview.png copying images... [ 19%] how-to/features/grafana-capacity-overview.png copying images... [ 21%] how-to/features/grafana-days-until-threshold.png copying images... [ 23%] how-to/features/grafana-project-overview.png copying images... [ 25%] how-to/features/grafana-openstack-service-logs.png copying images... [ 27%] how-to/features/grafana-openstack-http-status-codes-dashboard.png copying images... [ 29%] how-to/features/validation_800x533.png copying images... [ 31%] how-to/install/images/install-canonical-openstack-using-canonical-maas-01.png copying images... [ 33%] how-to/install/images/install-canonical-openstack-using-canonical-maas-02.png copying images... [ 35%] how-to/install/images/install-canonical-openstack-using-canonical-maas-03.png copying images... [ 37%] how-to/install/images/install-canonical-openstack-using-canonical-maas-04.png copying images... [ 38%] how-to/misc/horizon-login.png copying images... [ 40%] how-to/misc/horizon-overview.png copying images... [ 42%] reference/images/example-physical-configuration-layout.png copying images... [ 44%] reference/images/canonical-openstack-based-on-sunbeam-release-cycle.png copying images... [ 46%] reference/images/canonical-openstack-based-on-openstack-charms-release-cycle.png copying images... [ 48%] reference/images/openstack-packages-release-cycle.png copying images... [ 50%] tutorial/images/explore-full-potential-of-openstack-01.png copying images... [ 52%] tutorial/images/explore-full-potential-of-openstack-02.png copying images... [ 54%] tutorial/images/get-familiar-with-openstack-01.png copying images... [ 56%] tutorial/images/get-familiar-with-openstack-02.png copying images... [ 58%] tutorial/images/get-familiar-with-openstack-03.png copying images... [ 60%] tutorial/images/get-familiar-with-openstack-04.png copying images... [ 62%] tutorial/images/get-familiar-with-openstack-05.png copying images... [ 63%] tutorial/images/get-familiar-with-openstack-06.png copying images... [ 65%] tutorial/images/get-familiar-with-openstack-07.png copying images... [ 67%] tutorial/images/get-familiar-with-openstack-08.png copying images... [ 69%] tutorial/images/get-familiar-with-openstack-09.png copying images... [ 71%] tutorial/images/get-familiar-with-openstack-10.png copying images... [ 73%] tutorial/images/get-familiar-with-openstack-11.png copying images... [ 75%] tutorial/images/get-familiar-with-openstack-12.png copying images... [ 77%] tutorial/images/get-familiar-with-openstack-13.png copying images... [ 79%] tutorial/images/get-familiar-with-openstack-14.png copying images... [ 81%] tutorial/images/get-familiar-with-openstack-15.png copying images... [ 83%] tutorial/images/get-familiar-with-openstack-16.png copying images... [ 85%] tutorial/images/get-familiar-with-openstack-17.png copying images... [ 87%] tutorial/images/get-familiar-with-openstack-18.png copying images... [ 88%] tutorial/images/get-familiar-with-openstack-19.png copying images... [ 90%] tutorial/images/on-board-your-users-01.png copying images... [ 92%] tutorial/images/on-board-your-users-02.png copying images... [ 94%] tutorial/images/on-board-your-users-03.png copying images... [ 96%] tutorial/images/on-board-your-users-04.png copying images... [ 98%] tutorial/images/on-board-your-users-05.png copying images... [100%] tutorial/images/on-board-your-users-06.png dumping search index in English (code: en)... done dumping object inventory... done build succeeded. The HTML pages are in _readthedocs/html.