1227 Commits

Author SHA1 Message Date
Zuul
2ecf0a8783 Merge "Support storing passwords in Hashicorp Vault" 2021-07-02 20:28:44 +00:00
Rafael Weingärtner
15f2fdcd5d Make setup module arguments configurable
Ansible facts can have a large impact on the performance of the Ansible
control host. This patch introduces some control over which facts are
gathered (kolla_ansible_setup_gather_subset) and which facts are stored
(kolla_ansible_setup_filter). By default we do not change the default
values of these arguments to the setup module. The flexibility of these
arguments is limited, but they do provide enough for a large performance
improvement in a typical moderate to large OpenStack cloud.

In particular, the large complex dict fact for each interface has a
large effect, and on an OpenStack controller or hypervisor there may be
many virtual interfaces. We can use the kolla_ansible_setup_filter
variable to help:

    kolla_ansible_setup_filter: 'ansible_[!qt]*'

This causes Ansible to collect but not store facts matching that
pattern, which includes the virtual interface facts. Currently we are
not referencing other facts matching the pattern within Kolla Ansible.
Note that including the 'ansible_' prefix causes meta facts module_setup
and gather_subset to be filtered, but this seems to be the only way to
get a good match on the interface facts. To work around this, we use
ansible_facts rather than module_setup to detect whether facts exist in
the cache.

The exact improvement will vary, but has been reported to be as large as
18x on systems with many virtual interfaces.

For reference, here are some other tunings tried:

* Increased the number of forks (great speedup depending of the size of
  the deployment)
* Use `strategy = mitogen_linear` (cut processing time in half)
* Ansible caching (little speed up)
* SSH tunning (little speed up)

Co-Authored-By: Mark Goddard <mark@stackhpc.com>
Closes-Bug: #1921538
Change-Id: Iae8ca4aae945892f1dc65e1b10381d2e26e88805
2021-07-02 10:30:35 -03:00
Mark Goddard
9fffc7bc52 Add disable_firewall variable
Adds a new variable, 'disable_firewall', which defaults to true. If set
to false, then the host firewall will not be disabled during
kolla-ansible bootstrap-servers.

Change-Id: Ie5131013012f89c8c3b91ca359ad17d9cb77efc8
2021-07-02 10:11:28 +01:00
Zuul
bc060c2049 Merge "Use ansible_facts to reference facts" 2021-07-01 02:37:09 +00:00
Scott Solkhon
6bf74aa20d Support storing passwords in Hashicorp Vault
This commit adds two new cli commands to allow an operator
to read and write passwords into a configured Hashicorp Vault
KV.

Change-Id: Icf0eaf7544fcbdf7b83f697cc711446f47118a4d
2021-06-30 15:16:12 +01:00
Zuul
18fd27feff Merge "Allow user to set sysctl_net_ipv4_tcp_retries2" 2021-06-23 13:57:13 +00:00
Michal Arbet
09d0409ed4 Allow user to set sysctl_net_ipv4_tcp_retries2
This patch is adding configuration option to
manipulate with kernel option sysctl_net_ipv4_tcp_retries2.

More informations about kernel option in [1][2]
and RedHat suggestion [3] to set for DBs and HA.

[1]: https://pracucci.com/linux-tcp-rto-min-max-and-tcp-retries2.html
[2]: https://blog.cloudflare.com/when-tcp-sockets-refuse-to-die/
[3]: https://access.redhat.com/solutions/726753

Closes-Bug: #1917068
Change-Id: Ia0decbbfa4e33b1889b635f8bb1c9094567a2ce6
2021-06-23 10:34:12 +00:00
Mark Goddard
ade5bfa302 Use ansible_facts to reference facts
By default, Ansible injects a variable for every fact, prefixed with
ansible_. This can result in a large number of variables for each host,
which at scale can incur a performance penalty. Ansible provides a
configuration option [0] that can be set to False to prevent this
injection of facts. In this case, facts should be referenced via
ansible_facts.<fact>.

This change updates all references to Ansible facts within Kolla Ansible
from using individual fact variables to using the items in the
ansible_facts dictionary. This allows users to disable fact variable
injection in their Ansible configuration, which may provide some
performance improvement.

This change disables fact variable injection in the ansible
configuration used in CI, to catch any attempts to use the injected
variables.

[0] https://docs.ansible.com/ansible/latest/reference_appendices/config.html#inject-facts-as-vars

Change-Id: I7e9d5c9b8b9164d4aee3abb4e37c8f28d98ff5d1
Partially-Implements: blueprint performance-improvements
2021-06-23 10:38:06 +01:00
Zuul
f5fa171983 Merge "Add ability to use the Neutron packet logging framework" 2021-06-14 14:44:53 +00:00
John Garbutt
70f6f8e4c0 Reduce RabbitMQ busy waiting, lowering CPU load
On machines with many cores, we were seeing excessive CPU load on systems
that were not very busy. With the following Erlang VM argument we saw
RabbitMQ CPU usage drop from about 150% to around 20%, on a system with
40 hyperthreads.

    +S 2:2

By default RabbitMQ starts N schedulers where N is the number of CPU
cores, including hyper-threaded cores. This is fine when you assume all
your CPUs are dedicated to RabbitMQ. Its not a good idea in a typical
Kolla Ansible setup. Here we go for two scheduler threads.
More details can be found here:
https://www.rabbitmq.com/runtime.html#scheduling
and here:
https://erlang.org/doc/man/erl.html#emulator-flags

    +sbwt none

This stops busy waiting of the scheduler, for more details see:
https://www.rabbitmq.com/runtime.html#busy-waiting
Newer versions of rabbit may need additional flags:
"+sbwt none +sbwtdcpu none +sbwtdio none"
But this patch should be back portable to older versions of RabbitMQ
used in Train and Stein.

Note that information on this tuning was found by looking at data from:
rabbitmq-diagnostics runtime_thread_stats
More details on that can be found here:
https://www.rabbitmq.com/runtime.html#thread-stats

Related-Bug: #1846467

Change-Id: Iced014acee7e590c10848e73feca166f48b622dc
2021-06-07 13:18:39 +01:00
Michał Nasiadka
278b63a0eb docs: Update Freenode to OFTC
Change-Id: Idaae03612dd7feabd2cdc57e510947328524e98b
2021-05-31 09:51:04 +02:00
Zuul
5f9c5dab9a Merge "docs: add code reviews to contributor guide" 2021-05-25 12:34:35 +00:00
Zuul
8d806277f2 Merge "docs: Add note about internal VIP when HAProxy is disabled" 2021-05-25 12:34:17 +00:00
Zuul
4e28adbe6e Merge "docs: update supported OS distros" 2021-05-25 12:33:59 +00:00
Zuul
75a9ef4ad5 Merge "Mariadb shards documentation" 2021-05-25 10:29:13 +00:00
Zuul
cc5667db01 Merge "Remove Monasca Grafana service" 2021-05-21 09:42:42 +00:00
Michal Arbet
f184f94360 Mariadb shards documentation
Change-Id: Id9a24c54db9a70c777e51ea10504159d5090f9a7
2021-05-17 15:36:30 +02:00
Mark Goddard
f295b1a055 docs: update supported OS distros
* add CentOS Stream 8 info & reno
* mark RHEL as deprecated in docs

Change-Id: Ifa3b8c7365e4092202bf9e89b67293cf8d983e0a
2021-05-12 10:35:54 +01:00
Florian LEDUC
e923236001 Add ability to use the Neutron packet logging framework
* Enables the Neutron packet logging framework for OVS
(https://docs.openstack.org/neutron/latest/admin/config-logging.html).
* Adds a toggle variable "enable_neutron_packet_logging"

Change-Id: Ica3594cdac634b496949a06ed813dccd18090af4
Implements: blueprint neutron-log-service-plugin
2021-05-11 13:50:49 +02:00
Radosław Piliszek
83f3422fbd Deprecate enable_host_ntp
As agreed during IRC meeting. [1]

[1] http://eavesdrop.openstack.org/meetings/kolla/2021/kolla.2021-04-07-15.00.html

Change-Id: Ibffa019e2106784e97f5c482106bb5082f788752
2021-04-27 16:03:22 +00:00
Doug Szumski
82cf40edf2 Remove Monasca Grafana service
In the Xena cycle it was decided to remove the Monasca
Grafana fork due to lack of maintenance. This commit removes
the service and provides a limited workaround using the
Monasca Grafana datasource with vanilla Grafana.

Depends-On: I9db7ec2df050fa20317d84f6cea40d1f5fd42e60
Change-Id: I4917ece1951084f6665722ba9a91d47764d3709a
2021-04-27 11:06:25 +00:00
Zuul
4579b76d89 Merge "[doc] fix a typo" 2021-04-26 14:56:59 +00:00
wuchunyang
fc406d035d [doc] fix a typo
Trivial Fix

Change-Id: Ie08877e339455bed45ee467a87de9648678e88c5
2021-04-26 17:02:51 +08:00
Zuul
9d0734f99d Merge "docs: Improve policy documentation" 2021-04-26 07:43:51 +00:00
wuchunyang
3ba06b87ea [doc] introduce octavia tenant management network
Change-Id: I713f6fafe328e060a71dbb584e61603e547deaf6
2021-04-19 10:44:27 +00:00
Doug Szumski
d01192c160 Extend support for custom Grafana dashboards
The current behaviour is to support supplying a single
folder of Grafana dashboards which can then be populated
into a single folder in Grafana. Some users may wish
to have sub-folders of Dashboards, and load these into
separate dashboard folders in Grafana via a custom
provisioning file. For example, a user may have a
sub-folder of Ceph dashboards that they wish to keep
separate from OpenStack dashboards. This patch supports
sub-folders whilst not affecting the original mechanism.

Trivial-Fix

Change-Id: I9cd289a1ea79f00cee4d2ef30cbb508ac73f9767
2021-04-19 11:11:43 +01:00
Mark Goddard
030a9a28d7 docs: Improve policy documentation
Change-Id: Iede747ceaafa54a00186761943fe2f4ac13f9559
2021-04-19 09:39:51 +00:00
Doug Szumski
19095475ee Nit fixes for change 776219
Minor corrections to doc and release note.

Change-Id: I8a90cbac0b9a1eaa5f6c02271515f2357547f908
2021-04-07 16:18:11 +00:00
Radosław Piliszek
b647cb4128 Deprecate and disable chrony by default
Per [1].

[1] http://lists.openstack.org/pipermail/openstack-discuss/2021-February/020707.html

Change-Id: Id6f3cd158bf5d01750971249b11364b6a8631789
Closes-Bug: #1885689
2021-04-06 09:17:51 +00:00
Zuul
93c4448365 Merge "baremetal: Add support for Docker http/https proxy setup" 2021-03-29 09:54:36 +00:00
Michal Nasiadka
7fa419cfc3 baremetal: Add support for Docker http/https proxy setup
Change-Id: I947c2940518c0f4872acaa977edeaca370dc9a96
2021-03-26 17:51:17 +00:00
Zuul
69b053469f Merge "Add kolla_externally_managed_cert option" 2021-03-26 10:26:11 +00:00
Mark Goddard
db1bc8fc7a docs: Add note about internal VIP when HAProxy is disabled
Change-Id: I08030ac88911d3594c75cb2184767067ad177139
2021-03-25 09:23:26 +00:00
Zuul
8e9da5fa2d Merge "Follow up fixes for Monasca docs and formatting" 2021-03-24 19:03:42 +00:00
Zuul
ff2c29b21c Merge "Support bypassing Monasca Log API for control plane logs" 2021-03-24 19:03:19 +00:00
Zuul
d3a1a1a504 Merge "Support disabling Monasca alerting pipeline" 2021-03-24 19:02:54 +00:00
Zuul
f9a9a9f327 Merge "Disable Monasca Log Metrics service by default" 2021-03-24 18:32:17 +00:00
Zuul
6c18e5814e Merge "Remove Monasca Log Transformer" 2021-03-24 18:21:04 +00:00
Bartosz Bezak
733fb0e7b8 Trivial fixes in grafana-guide doc.
Change-Id: Ie888e84a3b6e27afc23f89f643fdaa58880aae6d
2021-03-18 15:11:56 +01:00
Zuul
8313d092d9 Merge "docs: fix registry mirror example" 2021-03-18 11:07:01 +00:00
Mark Goddard
608836d956 docs: fix registry mirror example
The docker configuration should be a URL, not a host:port.

Closes-Bug: #1919932
Change-Id: I5025fdb7e48c79a107b45f1454f5d5e81367a2f9
2021-03-18 09:38:14 +00:00
Zuul
2ba4c88c8d Merge "Add support for custom grafana dashboards" 2021-03-17 16:48:48 +00:00
Bartosz Bezak
a9e30382fe Add support for custom grafana dashboards
Allow users to import custom grafana dashboards.
Dashboards as JSON files should be placed into
"{{ node_custom_config }}/grafana/dashboards/" folder.

Change-Id: Id0f83b8d08541b3b74649f097b10c9450201b426
2021-03-16 17:10:19 +01:00
Zuul
067a752206 Merge "Bump up supported Ansible version to 2.10" 2021-03-11 12:30:29 +00:00
Zuul
cc1dda3035 Merge "Add Neutron DHCP agent to OVN networking setup" 2021-03-09 20:15:28 +00:00
Zuul
5ccd134cd1 Merge "Deprecate Prometheus 1.x" 2021-03-09 17:51:13 +00:00
Michał Nasiadka
1ccccbcf0a Bump up supported Ansible version to 2.10
Min version stays as 2.9

Change-Id: I7ec8c5eb36757248c9aa016dc7d4e495ec5bb635
2021-03-08 11:40:31 +00:00
Doug Szumski
92f252af4b Follow up fixes for Monasca docs and formatting
Change-Id: Ief84e093829677c97c8df9a08aefca43b1e51aac
2021-03-07 10:10:22 +00:00
Doug Szumski
ca1a80ab2f Support bypassing Monasca Log API for control plane logs
This change allows a user to forward control plane logs
directly to Elasticsearch from Fluentd, rather than via
the Monasca Log API when Monasca is enabled. The Monasca
Log API can continue to handle tenant logs.

For many use cases this is simpler, reduces resource
consumption and helps to decouple control plane logging
services from tenant logging services.

It may not always be desired, so is optional and off by
default.

Change-Id: I195e8e4b73ca8f573737355908eb30a3ef13b0d6
2021-03-04 09:19:50 +00:00
Doug Szumski
444097848c Support disabling Monasca alerting pipeline
The Monasca alerting pipeline provides multi-tenancy alerts and
notifications. It runs as an Apache Storm topology and generally
places a significant memory and CPU burden on monitoring hosts,
particularly when there are lot of metrics. This is fine if the
alerting service is in use, but sometimes it is not. For example
you may use Prometheus for monitoring the control plane, and
wish to offer tenants a monitoring service via Monasca without
alerting and notification functionality. In this case it makes
sense to disable this part of the Monasca pipeline and this patch
adds support for that.

If the service is ever re-enabled, all alerts and notifications
should spawn back automatically since they are persisted in the
central mysql database cluster.

Change-Id: I84aa04125c621712f805f41c8efbc92c8e156db9
2021-03-04 09:19:44 +00:00