1257 Commits

Author SHA1 Message Date
Zuul
4e7d1ab9cb Merge "Add variable for changing Apache HTTP timeout" 2021-03-07 10:41:37 +00:00
Pierre Riteau
2b723ead05 Remove whitespace around equal signs in zookeeper.cfg
The merge_configs action plugin is updated with an option to control
whether whitespace should be used around equal signs. The default
remains to use whitespace: only zookeeper.cfg doesn't use them.

This is to avoid issues with the zkCleanup.sh script which expects no
whitespace. The ZooKeeper documentation also uses no whitespace in
configuration file examples.

Change-Id: Ia082a1c002cc4e8b04f7696fdee827b747c6d13f
Closes-Bug: #1917490
2021-03-05 15:12:23 +01:00
Zuul
9194a3e99b Merge "Fix Cinder log parsing" 2021-03-04 13:03:17 +00:00
Doug Szumski
647ff667e6 Add variable for changing Apache HTTP timeout
In services which use the Apache HTTP server to service HTTP requests,
there exists a TimeOut directive [1] which defaults to 60 seconds. APIs
which come under heavy load, such as Cinder, can sometimes exceed this
which results in a HTTP 504 Gateway timeout, or similar. However, the
request can still be serviced without error. For example, if Nova calls
the Cinder API to detach a volume, and this operation takes longer
than the shortest of the two timeouts, Nova will emit a stack trace
with a 504 Gateway timeout. At some time later, the request to detach
the volume will succeed. The Nova and Cinder DBs then become
out-of-sync with each other, and frequently DB surgery is required.

Although strictly this category of bugs should be fixed in OpenStack
services, it is not realistic to expect this to happen in the short
term. Therefore, this change makes it easier to set the Apache HTTP
timeout via a new variable.

An example of a related bug is here:

https://bugs.launchpad.net/nova/+bug/1888665

Whilst this timeout can currently be set by overriding the WSGI
config for individual services, this change makes it much easier.

Change-Id: Ie452516655cbd40d63bdad3635fd66693e40ce34
Closes-Bug: #1917648
2021-03-04 11:25:06 +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
Doug Szumski
a52d661219 Disable Monasca Log Metrics service by default
The Log Metrics service is an admin only service. We now have
support in Fluentd via the Prometheus plugin to create metrics
from logs. These metrics can be scraped into Monasca or Prometheus.
It therefore makes sense to deprecate this service, starting by
disabling it by default, and then removing it in the Xena release.
This should improve the stability of the Monasca metrics pipeline
by ensuring that all metrics pass via the Monasca API for
validation, and ensure that metrics generated from logs are
available to both Prometheus and Monasca users by default.

Change-Id: I704feb4434c1eece3eb00c19dc5f934fd4bc27b4
2021-03-03 17:20:18 +00:00
Doug Szumski
0743a9bf4b Remove Monasca Log Transformer
Historically Monasca Log Transformer has been for log
standardisation and processing. For example, logs from different
sources may use slightly different error levels such as WARN, 5,
or WARNING. Monasca Log Transformer is a place where these could
be 'squashed' into a single error level to simplify log searches
based on labels such as these.

However, in Kolla Ansible, we do this processing in Fluentd so
that the simpler Fluentd -> Elastic -> Kibana pipeline also
benefits. This helps to avoid spreading out log parsing
configuration over many services, with the Fluentd Monasca output
plugin being yet another potential place for processing (which
should be avoided). It therefore makes sense to remove this
service entirely, and squash any existing configuration which
can't be moved to Fluentd into the Log Perister service. I.e.
by removing this pipeline, we don't loose any functionality,
we encourage log processing to take place in Fluentd, or at least
outside of Monasca, and we make significant gains in efficiency
by removing a topic from Kafka which contains a copy of all logs
in transit.

Finally, users forwarding logs from outside the control plane,
eg. from tenant instances, should be encouraged to process the
logs at the point of sending using whichever framework they are
forwarding them with. This makes sense, because all Logstash
configuration in Monasca is only accessible by control plane
admins. A user can't typically do any processing inside Monasca,
with or without this change.

Change-Id: I65c76d0d1cd488725e4233b7e75a11d03866095c
2021-03-03 17:20:18 +00:00
Zuul
1fb56cf5be Merge "Use Docker healthchecks for magnum services" 2021-03-03 17:07:03 +00:00
wuchunyang
2cb83b9ae4 Use Docker healthchecks for watcher services
This change enables the use of Docker healthchecks for watcher
services.
Implements: blueprint container-health-check

Change-Id: I0774063dd970507e566637138167ed1af9a2874c
2021-03-03 21:43:57 +08:00
LinPeiWen
d2d91d9ec1 Use Docker healthchecks for senlin services
This change enables the use of Docker healthchecks for senlin services.
Implements: blueprint container-health-check

Change-Id: I148a0174c46244241580265d0fedc0fb1b92602c
2021-03-03 11:23:09 +00:00
wuchunyang
6973c71a60 Use Docker healthchecks for cyborg services
This change enables the use of Docker healthchecks for cyborg
services.
Implements: blueprint container-health-check

Change-Id: I5326b142eaa826f97c32498cd2a9a0cba65be698
2021-03-03 11:10:39 +00:00
LinPeiWen
5c2d1c90be Use Docker healthchecks for octavia services
This change enables the use of Docker healthchecks for octavia services.
Implements: blueprint container-health-check

Change-Id: I2ec11544b0e9c66a1821bfe0f9a40a9e9d88033b
2021-03-03 11:08:16 +00:00
LinPeiWen
9688635e42 Use Docker healthchecks for skydive services
This change enables the use of Docker healthchecks for skydive services.
Implements: blueprint container-health-check

Change-Id: I2e18f2d912dad92a327261e092da358911531ebe
2021-03-03 09:44:00 +00:00
LinPeiWen
66888bb7e0 Use Docker healthchecks for redis services
This change enables the use of Docker healthchecks for redis services.
Implements: blueprint container-health-check

Change-Id: I0590c5b22ef8eb733211b029cdd73a055d58af11
2021-03-03 07:06:39 +00:00
Arthur Outhenin-Chalandre
57220ce1d9 Add kolla_externally_managed_cert option
This option disables copy of certificates from the operator host to
kolla-ansible managed hosts.

This is especially useful if you already have some mechanisms to handle
your certificates directly on your hosts.

Co-Authored-By: Marc 'risson' Schmitt <marc.schmitt@risson.space>
Change-Id: Ie18b2464cb5a65a88c4ac191a921b8074a14f504
2021-03-02 18:09:06 +01:00
Zuul
1b1d06a9d7 Merge "Add Monasca Grafana security note" 2021-03-02 16:35:57 +00:00
Piotr Parczewski
a50bef0f76 Deprecate Prometheus 1.x
Deprecates support for Prometheus v1.x.
In Xena support for it will be removed from Kolla Ansible.

Change-Id: I027b19621196c698e09f79af294ba1b5dbfc0516
2021-03-02 16:33:35 +01:00
wuchunyang
7bab7d0d27 Use Docker healthchecks for tacker services
This change enables the use of Docker healthchecks for tacker
services.
Implements: blueprint container-health-check

Change-Id: Ib33863e4bf78f73a28d82b222ab349909ebb6671
2021-03-02 20:07:53 +08:00
LinPeiWen
2518e926d9 Use Docker healthchecks for trove services
This change enables the use of Docker healthchecks for trove services.
Implements: blueprint container-health-check

Change-Id: I55badd93f92f82e020ef80b06c788600e597d068
2021-03-02 11:42:34 +00:00
Doug Szumski
fa5511c75d Fix Cinder log parsing
The Cinder API log is currently written to a file called
cinder-wsgi.log, and the WSGI logs to cinder-api.log. Fluentd
then tries to parse the WSGI log as an OpenStack log which
results in 'got incomplete line' errors and prevents proper
ingestion of these logs.

Co-Authored-By: yaoning <yaoning@unitedstack.com>
Closes-Bug: 1916752
Change-Id: I3296dcc4780160cbf88bd18285571276f58bb249
2021-02-24 13:27:00 +00:00
wuchunyang
e315446291 Improve trove releasenote
trivial fix
see: https://review.opendev.org/c/openstack/kolla-ansible/+/763191

Change-Id: I7f5a5ba5e9a6b3866fc4d2c72b7b4884c85020bd
2021-02-23 22:04:46 +08:00
Piotr Parczewski
fc72887d31 Add Neutron DHCP agent to OVN networking setup
This commit adds possibility to deploy Neutron's DHCP agents in OVN
networking scenario.

Co-Authored-By: Michał Nasiadka <mnasiadka@gmail.com>

Change-Id: I073d04319b510182f5c1478e728c0c5bcc8799f1
2021-02-23 13:57:48 +01:00
Doug Szumski
9e668902c2 Register Elasticsearch in Keystone
This makes it possible for services to fetch the Elasticsearch endpoint
from Keystone. It is useful for both operators and Monasca Tempest.

Change-Id: Id60298582496a8959e82b970676669ca17e2e9d4
2021-02-23 10:22:50 +00:00
Zuul
c084795c9e Merge "Use trove.conf for all trove services" 2021-02-22 12:57:30 +00:00
wu.chunyang
2bc50cd64e Use Docker healthchecks for sahara services
This change enables the use of Docker healthchecks for sahara
services.
Implements: blueprint container-health-check

Change-Id: I091ce194cc3180d500e287832810b499d7b100be
2021-02-21 08:12:36 -05:00
wu.chunyang
26a7fc04c6 Use Docker healthchecks for magnum services
This change enables the use of Docker healthchecks for magnum
services.
Implements: blueprint container-health-check

Change-Id: I14d862aa599915c781d02b71a0e57d2124de9abc
2021-02-21 07:05:46 -05:00
wu.chunyang
b567154395 Use trove.conf for all trove services
it was confused to customize opts in trove-conductor.conf
or trove-taskmanager.conf now.
if we want to customize a opts,The operator needs
to know which service is using the configuration opts.
actually trove uses trove.conf is enough for all services
this change combines  all trove config files.

Change-Id: I5a630109e3c4b59bff216146a3ed64c6d47e247f
2021-02-20 10:03:14 -05:00
Zuul
87d8bd414d Merge "Add support to OpenID Connect Authentication flow" 2021-02-19 23:15:07 +00:00
Zuul
d3d3cd6b3e Merge "Use Docker healthchecks for manila services" 2021-02-19 20:44:37 +00:00
Zuul
6a6dcfcf28 Merge "Replace db-sock with db-nb-sock and db-sb-sock" 2021-02-18 10:50:04 +00:00
Ana Peric
21ccae12f7 chronyd crash loop if Debian server is rebooted
This patch fixes the constant chrony container crash loop after (Debian 10) server is rebooted,
as described in Bug-ID: #1915528.

Due to permissions issue, before this fix is applied chronyd process will be exiting with
root cause error message:

Fatal error : Could not open configuration file /etc/chrony/chrony.conf : Permission denied
This has to do with priviledges we configured for chrony. Relaxing them fixes the issue.
Tested on top of stable/victoria and Debian 10 Buster.

Not tested on CentOS/RHEL. If this does not work well on RHEL/CentOS we can maybe parametrise
the owner and make it configurable (just one idea).

Closes-Bug: #1915528
Change-Id: I71f45ba5b9d1d2227c95633d3de51e2ccd42a467
2021-02-17 20:09:45 +01:00
Zuul
f00cd7b55f Merge "Lint and fix renos" 2021-02-17 17:31:10 +00:00
Zuul
90a079b8a7 Merge "Update String type for Monasca ES template" 2021-02-16 17:11:55 +00:00
Doug Szumski
6af802d163 Add Monasca Grafana security note
Update the Monasca docs to improve security considerations.

Trivial-Fix
Change-Id: I97eb8441466f8c6abdbd66068257765bdbe32d4d
2021-02-16 11:33:54 +00:00
Zuul
2b906bc382 Merge "Fix Barbican API log config" 2021-02-15 22:24:57 +00:00
Pedro Henrique
f3fbe83708 Add support to OpenID Connect Authentication flow
This pull request adds support for the OpenID Connect authentication
flow in Keystone and enables both ID and access token authentication
flows. The ID token configuration is designed to allow users to
authenticate via Horizon using an identity federation; whereas the
Access token is used to allow users to authenticate in the OpenStack CLI
using a federated user.

Without this PR, if one wants to configure OpenStack to use identity
federation, he/she needs to do a lot of configurations in the keystone,
Horizon, and register quite a good number of different parameters using
the CLI such as mappings, identity providers, federated protocols, and
so on. Therefore, with this PR, we propose a method for operators to
introduce/present the IdP's metadata to Kolla-ansible, and based on the
presented metadata, Kolla-ansible takes care of all of the
configurations to prepare OpenStack to work in a federated environment.

Implements: blueprint add-openid-support
Co-Authored-By: Jason Anderson <jasonanderson@uchicago.edu>
Change-Id: I0203a3470d7f8f2a54d5e126d947f540d93b8210
2021-02-15 16:57:47 -03:00
Zuul
6e157f4716 Merge "Support explicit creation of Monasca Kafka topics" 2021-02-15 16:22:57 +00:00
Mark Goddard
519ca1c083 Fix installation with pip install --user
If kolla-ansible is installed via pip install --user, currently the
kolla-ansible script is unable to locate the installed playbooks.
This leads to a failure when running commands.

This change fixes the issue by checking for the user's .local directory
as a possible installation path.

This fixes some of the scenario tests which were failing after switching
to a user installation in Ifaf1948ed5d42eebaa62d7bad375bbfc12b134d5.
Most tests did not fail since the kolla-ansible script in the source
checkout was used.

Closes-Bug: #1915527

Change-Id: I5b47a146627d06bb3fe4a747c5f20290c726b0f9
2021-02-12 17:58:04 +00:00
Radosław Piliszek
223c67935c Lint and fix renos
One of the renos was causing issues due to a duplicated id.
This change makes tox doc8 env lint renos and fixes
the offending reno.

Change-Id: Id3ae6e144b4261c97726cdec172ea9bef093de9e
2021-02-10 15:39:11 +00:00
Gaël THEROND (Fl1nt)
9e72c0cb4e Add missing elasticsearch cloudkitty storage
and prometheus collector backend support.

* Fix various remaining typos.
* Fix trailing character on reno.
* Enable Elasticsearch when selected as cloudkitty backend.
* Add a check for ES index creation when ES required.
* Add a release note
* Fix release note line length issue.

Change-Id: I18f3d8f2e10a2996b2ebf92733a1770bef548bda
Closes-bug: #1895945
2021-02-08 09:29:08 +01:00
LinPeiWen
43e89ddab3 Use Docker healthchecks for manila services
This change enables the use of Docker healthchecks for manila services.
Implements: blueprint container-health-check

Change-Id: I3a2239764b7e3d6db51e535404388a512aba7629
2021-02-03 06:28:52 +00:00
Doug Szumski
1ff4e58d70 Fix Barbican API log config
There are a few issues fixed here:

- The Barbican API service doesn't set a log file, so all the Barbican API
  service logs go to loadwsgi.py.log by default.
- The logs in loadwsgi.py.log are not ingested properly by Fluentd.
- uWSGI logs go to barbican-api.log. This would normally be used as the log
  file for the Barbican API service logs.

This patch makes the following changes to address the above issues:

- All uWSGI logs (from the Emperor and Vassals) go to barbican_api_uwsgi_access.log
  Although these logs aren't strictly all access logs, this follows the existing
  pattern for WSGI logs.
- The Barbican API service logs are written to barbican-api.log instead of
  loadwsgi.py.log. This follows the pattern used by other OpenStack services.
- Fluentd is configured to parse the Barbican API service logs as it would with
  other OpenStack Python services.

Change-Id: I6d03fa8c81c52b6f061514a836bbd15bb6639aaf
Closes-Bug: #1891343
2021-01-27 17:24:58 +00:00
zhouhenglc
21191fb7b3 Replace db-sock with db-nb-sock and db-sb-sock
--db-sock JSON-RPC socket name
--db-nb-sock OVN_Northbound db socket
--db-sb-sock OVN_Southbound db socket [1]
so should use db-nb-sock and db-sb-sock

Closes-bug: #1913031

[1] https://github.com/ovn-org/ovn/blob/master/utilities/ovn-ctl

Change-Id: Ife38237a308c87465d5ac3faf7d8de93fd49de4e
2021-01-27 10:02:56 +00:00
Mark Goddard
1c63eb20d9 Persist nova libvirt secrets in a Docker volume
Libvirt may reasonably expect that its secrets directory
(/etc/libvirt/secrets) is persistent. However, the nova_libvirt
container does not map the secrets directory to a volume, so it will not
survive a recreation of the container. Furthermore, if Cinder or Nova
Ceph RBD integration is enabled, nova_libvirt's config.json includes an
entry for /etc/libvirt/secrets which will wipe out the directory on a
restart of the container.

Previously, this appeared to cause an issue with encrypted volumes,
which could fail to attach in certain situations as described in bug
1821696. Nova has since made a related change, and the issue can no
longer be reproduced. However, making the secret store persistent seems
like a sensible thing to do, and may prevent hitting other corner cases.

This change maps /etc/libvirt/secrets to a Docker volume in the
nova_libvirt container.  We also modify config.json for the nova_libvirt
container to merge the /etc/libvirt/secrets directory, to ensure that
secrets added in the container during runtime are not overwritten when
the container restarts.

Change-Id: Ia7e923dddb77ff6db3c9160af931354a2b305e8d
Related-Bug: #1821696
2021-01-26 16:38:48 +00:00
likui
341a6ed08e remove unicode from code
Change-Id: Id9110a1f536377cea0386dda6814035d73de13b1
Implements: blueprint remove-unicode
2021-01-23 17:17:50 +08:00
Piotr Parczewski
0707100a85 [docs] Correct project naming on Release Notes page
Kolla Ansible's release notes page [1] has the same heading as
Kolla project's [2] which is confusing. This commit aims to fix
that, as well as to do some minor cleanup of docs configuration
by removing part that is never used.

[1] - https://docs.openstack.org/releasenotes/kolla-ansible/
[2] - https://docs.openstack.org/releasenotes/kolla/

Change-Id: I0da97d5a5b0a58d5c5e0e52b0687e2249d3fd222
2021-01-18 22:00:56 +01:00
Zuul
031e337898 Merge "Add Prometheus 2.x deployment" 2021-01-15 11:57:52 +00:00
Radosław Piliszek
059c735874 [docs] Add templates and examples of renos
With tips and clarifications.

Change-Id: Ic744e13805c4a158d1156a230f8c57d7a980d55f
2021-01-13 10:19:19 +00:00
Zuul
4d43c859cd Merge "Fix dpdk deploy failed" 2021-01-12 13:46:30 +00:00