aboutsummaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
Diffstat (limited to 'doc')
-rw-r--r--doc/requirements.txt9
-rw-r--r--doc/source/admin/advanced-configuration.rst4
-rw-r--r--doc/source/admin/mariadb-backup-and-restore.rst6
-rw-r--r--doc/source/admin/password-rotation.rst2
-rw-r--r--doc/source/admin/production-architecture-guide.rst10
-rw-r--r--doc/source/conf.py8
-rw-r--r--doc/source/contributor/ci-matrix.csv24
-rw-r--r--doc/source/contributor/ci.rst18
-rw-r--r--doc/source/reference/bare-metal/ironic-guide.rst26
-rw-r--r--doc/source/reference/compute/nova-guide.rst10
-rw-r--r--doc/source/reference/databases/mariadb-guide.rst2
-rw-r--r--doc/source/reference/logging-and-monitoring/grafana-guide.rst51
-rw-r--r--doc/source/reference/logging-and-monitoring/index.rst1
-rw-r--r--doc/source/reference/logging-and-monitoring/influxdb-guide.rst28
-rw-r--r--doc/source/reference/message-queues/rabbitmq.rst1
-rw-r--r--doc/source/reference/rating/cloudkitty-guide.rst2
-rw-r--r--doc/source/user/operating-kolla.rst2
-rw-r--r--doc/source/user/quickstart.rst2
-rw-r--r--doc/source/user/support-matrix.rst2
19 files changed, 152 insertions, 56 deletions
diff --git a/doc/requirements.txt b/doc/requirements.txt
index da3f3abff..cd53b9f22 100644
--- a/doc/requirements.txt
+++ b/doc/requirements.txt
@@ -1,12 +1,5 @@
-# The order of packages is significant, because pip processes them in the order
-# of appearance. Changing the order has an impact on the overall integration
-# process, which may cause wedges in the gate later.
-# Order matters to the pip dependency resolver, so sorting this file
-# changes how packages are installed. New dependencies should be
-# added in alphabetical order, however, some dependencies may need to
-# be installed in a specific order.
openstackdocstheme>=2.2.1 # Apache-2.0
reno>=3.1.0 # Apache-2.0
sphinx>=2.0.0,!=2.1.0 # BSD
sphinxcontrib-svg2pdfconverter>=0.1.0 # BSD
-whereto>=0.3.0 # Apache-2.0
+whereto>=0.5.0 # Apache-2.0
diff --git a/doc/source/admin/advanced-configuration.rst b/doc/source/admin/advanced-configuration.rst
index c0177341a..579dd11ca 100644
--- a/doc/source/admin/advanced-configuration.rst
+++ b/doc/source/admin/advanced-configuration.rst
@@ -271,10 +271,6 @@ By default, HAProxy uses ``local1``.
syslog_haproxy_facility: "local1"
-If Glance TLS backend is enabled (``glance_enable_tls_backend``), the syslog
-facility for the ``glance_tls_proxy`` service uses ``local2`` by default. This
-can be set via ``syslog_glance_tls_proxy_facility``.
-
Mount additional Docker volumes in containers
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
diff --git a/doc/source/admin/mariadb-backup-and-restore.rst b/doc/source/admin/mariadb-backup-and-restore.rst
index 69fd411fd..596b7f952 100644
--- a/doc/source/admin/mariadb-backup-and-restore.rst
+++ b/doc/source/admin/mariadb-backup-and-restore.rst
@@ -41,11 +41,11 @@ Backup Procedure
To perform a full backup, run the following command:
-``kolla-ansible mariadb_backup -i INVENTORY``
+``kolla-ansible mariadb-backup -i INVENTORY``
Or to perform an incremental backup:
-``kolla-ansible mariadb_backup -i INVENTORY --incremental``
+``kolla-ansible mariadb-backup -i INVENTORY --incremental``
Kolla doesn't currently manage the scheduling of these backups, so you'll
need to configure an appropriate scheduler (i.e cron) to run these commands
@@ -127,7 +127,7 @@ pointing to the first node of the cluster:
.. code-block:: console
- kolla-ansible mariadb_recovery -i multinode -e mariadb_recover_inventory_name=controller1
+ kolla-ansible mariadb-recovery -i multinode -e mariadb_recover_inventory_name=controller1
The above procedure is valid also for a disaster recovery scenario. In such
case, first copy MariaDB backup file from the external source into
diff --git a/doc/source/admin/password-rotation.rst b/doc/source/admin/password-rotation.rst
index fe5b5bdb0..e5cfd0261 100644
--- a/doc/source/admin/password-rotation.rst
+++ b/doc/source/admin/password-rotation.rst
@@ -142,7 +142,7 @@ manually.
.. code:: bash
- mysql --batch -uroot -p
+ mariadb --batch -uroot -p
#. Check the current state of the ``root`` user:
diff --git a/doc/source/admin/production-architecture-guide.rst b/doc/source/admin/production-architecture-guide.rst
index d1da7eaad..ced3571fa 100644
--- a/doc/source/admin/production-architecture-guide.rst
+++ b/doc/source/admin/production-architecture-guide.rst
@@ -14,6 +14,8 @@ Node types and services running on them
A basic Kolla inventory consists of several types of nodes, known in Ansible as
``groups``.
+* Deployment - Host from which you're running kolla-ansible CLI
+
* Control - Cloud controller nodes which host control services
like APIs and databases. This group should have odd number of nodes for
quorum.
@@ -29,6 +31,14 @@ A basic Kolla inventory consists of several types of nodes, known in Ansible as
* Monitoring - Monitor nodes which host monitoring services.
+.. warning::
+
+ All hosts should be hardened and access to them should be limited,
+ because Ansible can leak administrative passwords and other secrets to
+ system log. The same leaked passwords can be observed in OpenSearch if
+ you're pushing your system logs there.
+
+
Network configuration
~~~~~~~~~~~~~~~~~~~~~
diff --git a/doc/source/conf.py b/doc/source/conf.py
index 785cb15e2..af435eeb3 100644
--- a/doc/source/conf.py
+++ b/doc/source/conf.py
@@ -142,10 +142,10 @@ else:
TESTED_RUNTIMES_GOVERNANCE_URL =\
'https://governance.openstack.org/tc/reference/runtimes/{}.html'.format(KOLLA_OPENSTACK_RELEASE)
-ANSIBLE_CORE_VERSION_MIN = '2.18'
-ANSIBLE_CORE_VERSION_MAX = '2.19'
-ANSIBLE_VERSION_MIN = '11'
-ANSIBLE_VERSION_MAX = '12'
+ANSIBLE_CORE_VERSION_MIN = '2.19'
+ANSIBLE_CORE_VERSION_MAX = '2.20'
+ANSIBLE_VERSION_MIN = '12'
+ANSIBLE_VERSION_MAX = '13'
GLOBAL_VARIABLE_MAP = {
'|ANSIBLE_CORE_VERSION_MIN|': ANSIBLE_CORE_VERSION_MIN,
diff --git a/doc/source/contributor/ci-matrix.csv b/doc/source/contributor/ci-matrix.csv
new file mode 100644
index 000000000..c49b72868
--- /dev/null
+++ b/doc/source/contributor/ci-matrix.csv
@@ -0,0 +1,24 @@
+Scenario;Disabled;Voting;Tempest;Core;Upgrade;SLURP;Multinode;TLS;Ceph;Cinder;Octavia;Valkey;Notes
+AIO core;–;✅;✅;✅;✅;✅;–;✅;–;–;–;–;"Core OpenStack (Keystone/Glance/Neutron/Nova/Heat) with Horizon; RabbitMQ/MariaDB/Memcached; Fluentd."
+Bifrost;–;–;–;–;–;–;–;–;–;–;–;–;Bifrost baremetal provisioning standalone.
+Cells;–;✅;✅;–;✅;–;✅;–;–;–;–;–;"Nova Cells v2 + ProxySQL; Horizon/Heat on; dashboard sanity."
+Cephadm;–;✅;✅;✅;✅;✅;✅;✅;✅;–;✅;✅;"External Ceph (cinder/glance/nova) + RGW; RabbitMQ tuned."
+Container engine migration;❌;–;✅;✅;–;–;✅;✅;–;–;–;–;"Container engine migration playbook; Tempest smoke; currently disabled (failing)."
+Federation;–;–;✅;–;✅;–;✅;✅;–;–;–;–;Keystone federation behind httpd.
+HAProxy FQDN;–;–;✅;–;–;–;✅;✅;–;–;–;–;HAProxy VIP/FQDN handling.
+Ironic;–;–;✅;✅;–;–;–;–;–;–;–;–;"Ironic + Tenks; Prometheus on; DNSMasq/iSCSI helpers."
+IPv6;❌;–;✅;–;✅;–;–;–;–;–;–;–;"IPv6-only deployment; currently disabled (disk pressure)."
+Kayobe;–;–;–;–;–;–;–;–;–;–;–;–;Kayobe overcloud smoke (non-voting).
+KVM;–;–;–;✅;–;–;✅;–;–;–;–;–;Nested virt compute (KVM).
+Let's Encrypt;–;✅;✅;–;✅;–;✅;–;–;–;–;–;"Pebble ACME end-to-end, dashboard; DB/Rabbit TLS."
+Magnum;–;–;✅;–;–;–;–;–;–;–;–;–;Magnum + Designate + Trove.
+MariaDB;–;✅;–;✅;✅;–;✅;–;–;–;–;–;Galera + ProxySQL, Fluentd, HAProxy, Keepalived.
+Masakari;–;–;✅;–;–;–;–;–;–;–;–;✅;Masakari + Pacemaker.
+NFV;–;–;✅;–;✅;–;–;–;–;–;✅;✅;Tacker + Neutron SFC, Barbican, Mistral, Aodh.
+Octavia;–;–;✅;–;–;–;–;–;✅;✅;–;–;Octavia/Amphora.
+OpenBao;–;–;–;–;–;–;–;–;–;–;–;–;"OpenBao-backed password management (password round-trip only; no deploy)."
+OVN;–;✅;✅;✅;✅;–;✅;✅;–;✅;–;–;Neutron ML2/OVN + OVN Octavia provider.
+Prometheus + OpenSearch;–;–;–;✅;–;✅;✅;–;–;–;–;–;Fluentd, OpenSearch, Grafana, Prometheus, RabbitMQ/DB core.
+Skyline;❌;–;✅;–;–;✅;–;–;–;–;–;–;"Skyline dashboard; currently disabled (SSO issues)."
+Telemetry;–;–;✅;–;–;✅;–;–;–;–;✅;✅;Aodh, Ceilometer, Gnocchi.
+Zun;–;✅;✅;–;✅;✅;✅;✅;–;–;–;–;"Zun + Kuryr + Cinder LVM; etcd; dashboard."
diff --git a/doc/source/contributor/ci.rst b/doc/source/contributor/ci.rst
index 71f9e3032..0ffd7d498 100644
--- a/doc/source/contributor/ci.rst
+++ b/doc/source/contributor/ci.rst
@@ -28,3 +28,21 @@ consumes a large amount of logging resources.
Please note that git usually strips lines beginning with `#` from the commit
message. This can be avoided by preceding the string with a space.
+
+CI coverage matrix
+~~~~~~~~~~~~~~~~~~
+
+Zuul job templates live in ``zuul.d`` and are applied in
+``zuul.d/project.yaml``. Pipelines always run tox/python style+unit checks,
+docs/release builds, and requirements checks; the matrix below shows the
+scenario jobs in ``check``/``gate``.
+
+.. csv-table:: Scenario matrix
+ :header-rows: 1
+ :file: ci-matrix.csv
+ :widths: 12 7 7 7 7 7 7 7 7 7 7 7 7 12
+ :delim: ;
+
+Legend: ✅ = covered, ❌ = disabled, – = not covered. ``Core`` means the standard
+Keystone/Glance/Neutron/Nova/Heat stack is deployed; ``Tempest`` indicates
+smoke tests run; ``SLURP`` = Skip Level Upgrade Release Process.
diff --git a/doc/source/reference/bare-metal/ironic-guide.rst b/doc/source/reference/bare-metal/ironic-guide.rst
index 99e8bbefb..962ece762 100644
--- a/doc/source/reference/bare-metal/ironic-guide.rst
+++ b/doc/source/reference/bare-metal/ironic-guide.rst
@@ -52,6 +52,16 @@ For example it can be the same address as default router for the range:
routers: "192.168.5.1"
ntp_server: "192.168.5.1"
+Provide a DNS server if the inspection ramdisk (IPA) needs to resolve
+Fully Qualified Domain Names (FQDNs) for API access. To specify multiple
+servers, use a comma-separated list.
+
+.. code-block:: yaml
+
+ ironic_dnsmasq_dhcp_ranges:
+ - range: "192.168.5.100,192.168.5.110"
+ dns_servers: "192.168.5.10,192.168.5.11"
+
To support DHCP relay, it is also possible to define a netmask in the range.
It is advisable to also provide a router to allow the traffic to reach the
Ironic server.
@@ -136,6 +146,22 @@ The port used for conductor's HTTP server is controlled via
ironic_http_port: "8089"
+Configure Ironic Python Agent NTP server (optional)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+The Ironic Python Agent requires that the system clock is set correctly for
+the heartbeat mechanism to work. One way of achieving this is to pass
+the address of an NTP server via the kernel commandline, which is then
+used to set the system clock when IPA first starts. This is not a hard
+requirement, and you may use other methods. For example DHCP, or functionality
+built into the BMC.
+
+If you wish to use this option you can set ``ironic_ntp_server`` in
+``/etc/kolla/globals.yml``. Eg.
+
+.. code-block:: yaml
+
+ ironic_ntp_server: "192.168.33.3"
+
Revert to plain PXE (not recommended)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Starting with Yoga, Ironic has changed the default PXE from plain PXE to iPXE.
diff --git a/doc/source/reference/compute/nova-guide.rst b/doc/source/reference/compute/nova-guide.rst
index 3cf5848d4..8e083f241 100644
--- a/doc/source/reference/compute/nova-guide.rst
+++ b/doc/source/reference/compute/nova-guide.rst
@@ -121,3 +121,13 @@ effectively remove the configuration when the Nova Compute service is restarted.
If you choose to undefine `nova_cell_compute_provider_config` on a host, you must
manually remove the generated config from inside the container, or recreate the
container.
+
+Emulated virtual Trusted Platform Module (vTPM)
+===============================================
+
+Nova supports adding an emulated virtual Trusted Platform Module (vTPM) to
+instances. This feature is implemented with the SWTPM (Software TPM Emulator)
+package. To enable this feature, set ``enable_nova_swtpm`` to ``true``.
+Beware of `limitations`__ that come with this solution.
+
+ __ https://docs.openstack.org/nova/latest/admin/emulated-tpm.html#limitations
diff --git a/doc/source/reference/databases/mariadb-guide.rst b/doc/source/reference/databases/mariadb-guide.rst
index e34e4bf0a..c4a40740e 100644
--- a/doc/source/reference/databases/mariadb-guide.rst
+++ b/doc/source/reference/databases/mariadb-guide.rst
@@ -22,7 +22,7 @@ an independent Galera cluster.
This section explains how to configure multiple database shards. Currently,
only one shard is accessible via the HAProxy load balancer and supported
-by the ``kolla-ansible mariadb_backup`` command. This will be improved
+by the ``kolla-ansible mariadb-backup`` command. This will be improved
in future by using ProxySQL, allowing load balanced access to all shards.
Deployment
diff --git a/doc/source/reference/logging-and-monitoring/grafana-guide.rst b/doc/source/reference/logging-and-monitoring/grafana-guide.rst
index 12f123a20..6f89c2016 100644
--- a/doc/source/reference/logging-and-monitoring/grafana-guide.rst
+++ b/doc/source/reference/logging-and-monitoring/grafana-guide.rst
@@ -9,7 +9,7 @@ Overview
`Grafana <https://grafana.com>`_ is open and composable observability and
data visualization platform. Visualize metrics, logs, and traces from
-multiple sources like Prometheus, Loki, Elasticsearch, InfluxDB,
+multiple sources like Prometheus, Loki, Elasticsearch,
Postgres and many more..
Preparation and deployment
@@ -30,6 +30,55 @@ If you would like to set up Prometheus as a data source, additionally set:
Please follow :doc:`Prometheus Guide <prometheus-guide>` for more information.
+LDAP Authentication
+~~~~~~~~~~~~~~~~~~~
+
+Grafana can be configured to use LDAP for user authentication. To enable this
+feature, set the following variable in ``/etc/kolla/globals.yml``:
+
+.. code-block:: yaml
+
+ grafana_ldap_enabled: true
+
+The configuration for the LDAP server should be provided in a ``ldap.toml``
+file placed in the ``{{ node_custom_config }}/grafana/`` folder on the control
+host.
+
+Example ``ldap.toml`` configuration:
+
+.. code-block:: ini
+
+ [[servers]]
+ host = "openstack.org"
+ port = 389
+ use_ssl = false
+ start_tls = true
+
+ bind_dn = "CN=svc-openstack-grafana,OU=serviceaccounts,DC=openstack,DC=org"
+ bind_password = "strong_password"
+
+ search_filter = "(sAMAccountName=%s)"
+ search_base_dns = ["OU=Users,DC=openstack,DC=org"]
+
+ [servers.attributes]
+ name = "givenName"
+ surname = "sn"
+ username = "uid"
+ member_of = "memberOf"
+ email = "mail"
+
+ [[servers.group_mappings]]
+ group_dn = "cn=grafana-admins,ou=groups,dc=openstack,dc=org"
+ org_role = "Admin"
+
+ [[servers.group_mappings]]
+ group_dn = "cn=grafana-editors,ou=groups,dc=openstack,dc=org"
+ org_role = "Editor"
+
+ [[servers.group_mappings]]
+ group_dn = "*"
+ org_role = "Viewer"
+
Custom dashboards provisioning
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
diff --git a/doc/source/reference/logging-and-monitoring/index.rst b/doc/source/reference/logging-and-monitoring/index.rst
index 09d017547..05d0b96b7 100644
--- a/doc/source/reference/logging-and-monitoring/index.rst
+++ b/doc/source/reference/logging-and-monitoring/index.rst
@@ -10,6 +10,5 @@ logging and monitoring services available in kolla.
central-logging-guide
grafana-guide
- influxdb-guide
osprofiler-guide
prometheus-guide
diff --git a/doc/source/reference/logging-and-monitoring/influxdb-guide.rst b/doc/source/reference/logging-and-monitoring/influxdb-guide.rst
deleted file mode 100644
index 6bb460d0c..000000000
--- a/doc/source/reference/logging-and-monitoring/influxdb-guide.rst
+++ /dev/null
@@ -1,28 +0,0 @@
-.. _influxdb-guide:
-
-===============================
-InfluxDB - Time Series Database
-===============================
-
-Overview
-~~~~~~~~
-
-InfluxDB is a time series database developed by InfluxData. It is
-possible to deploy a single instance without charge. To use the
-clustering features you will require a commercial license.
-
-InfluxDB
-~~~~~~~~
-
-The `recommendation <https://docs.influxdata.com/influxdb/v1.7/guides/hardware_sizing/#what-kind-of-storage-do-i-need>`_
-is to use flash storage for InfluxDB. If docker is configured to use
-spinning disks by default, or you have some higher performance drives
-available, it may be desirable to control where the docker volume is
-located. This can be achieved by setting a path for
-``influxdb_datadir_volume`` in ``/etc/kolla/globals.yml``:
-
-.. code-block:: yaml
-
- influxdb_datadir_volume: /mnt/ssd/influxdb/
-
-The default is to use a named volume, ``influxdb``.
diff --git a/doc/source/reference/message-queues/rabbitmq.rst b/doc/source/reference/message-queues/rabbitmq.rst
index 0cb465e0d..375d58fe4 100644
--- a/doc/source/reference/message-queues/rabbitmq.rst
+++ b/doc/source/reference/message-queues/rabbitmq.rst
@@ -23,7 +23,6 @@ Encryption of the following channels is not currently supported:
* RabbitMQ cluster traffic between RabbitMQ server nodes
* RabbitMQ CLI communication with RabbitMQ server nodes
-* RabbitMQ Management API and UI (backend connection from HAProxy to RabbitMQ)
Client-server
-------------
diff --git a/doc/source/reference/rating/cloudkitty-guide.rst b/doc/source/reference/rating/cloudkitty-guide.rst
index 061e09675..dbe88b9c7 100644
--- a/doc/source/reference/rating/cloudkitty-guide.rst
+++ b/doc/source/reference/rating/cloudkitty-guide.rst
@@ -60,7 +60,7 @@ Cloudkitty Storage Backend
~~~~~~~~~~~~~~~~~~~~~~~~~~
As for collectors, CloudKitty supports multiple backend to store ratings.
-By default, Kolla Ansible uses the InfluxDB based backend.
+By default, Kolla Ansible uses the SQLAlchemy based backend.
Another famous alternative is OpenSearch and can be activated in Kolla
Ansible using the ``cloudkitty_storage_backend`` configuration option in
diff --git a/doc/source/user/operating-kolla.rst b/doc/source/user/operating-kolla.rst
index a48f3357f..8e931997d 100644
--- a/doc/source/user/operating-kolla.rst
+++ b/doc/source/user/operating-kolla.rst
@@ -240,7 +240,7 @@ containers.
``kolla-ansible destroy -i INVENTORY`` is used to clean up containers and
volumes in the cluster.
-``kolla-ansible mariadb_recovery -i INVENTORY`` is used to recover a
+``kolla-ansible mariadb-recovery -i INVENTORY`` is used to recover a
completely stopped mariadb cluster.
``kolla-ansible prechecks -i INVENTORY`` is used to check if all requirements
diff --git a/doc/source/user/quickstart.rst b/doc/source/user/quickstart.rst
index b4d855367..f02401fc2 100644
--- a/doc/source/user/quickstart.rst
+++ b/doc/source/user/quickstart.rst
@@ -261,7 +261,7 @@ There are a few options that are required to deploy Kolla Ansible:
* Virtual environment
It is recommended to use a virtual environment to execute tasks on the remote
- hosts. This is covered
+ hosts. This is covered in
:kolla-ansible-doc:`Virtual Environments <user/virtual-environments.html>`.
Deployment
diff --git a/doc/source/user/support-matrix.rst b/doc/source/user/support-matrix.rst
index 8925a2c02..b2ce35427 100644
--- a/doc/source/user/support-matrix.rst
+++ b/doc/source/user/support-matrix.rst
@@ -14,7 +14,7 @@ Kolla Ansible supports the following host Operating Systems (OS):
Linux 10 images instead.
* CentOS Stream 10
-* Debian Bookworm (12)
+* Debian Trixie (13)
* Rocky Linux 10
* Ubuntu Noble (24.04)