In Ubuntu 16.04 corosync package is
splitted. "fuel-rabbit-fence" package
needs "notifyd"-part, so depends are
updated.
* ensure corosync necessary directories
* don't run sed on Ubuntu 16.04
blueprint: mos-xenial
Closes-bug: #1587075
Change-Id: I241a7976ad0c347167938a3b2656f633bc988046
Debian .install files are processed by dh_install, which is not able to
rename files - it always interprets destination as a directory
name. Thus debian package contained
`/usr/sbin/set_rabbitmq_policy/set_rabbitmq_policy.sh` instead of
`/usr/sbin/set_rabbitmq_policy`.
Change-Id: I7ded7d870f1279b5d96028725da76a14015568f5
Closes-Bug: 1589599
* trusty already has upstart installed
* this dependency is not necessary
blueprint: mos-xenial
Related-Bug: #1583619
Change-Id: I34179355d424b5d68a52625d6e73c7295389f1d7
* The package contains the OCF script now,
remove it from Fuel's fuel-ha-utils.
* Rework the custom fuel rabbitmq-server OCF wrapper
installation from the package, make it
to invoke the upstream OCF RA from
/usr/lib/ocf/resource.d/rabbitmq/rabbitmq-server-ha
* Address some of TODO/FIXME as well.
Related blueprint upstream-rabbit-ocf
Change-Id: Iaa401685eb5e8dc514809eec426b9e550de609ac
Signed-off-by: Bogdan Dobrelya <bdobrelia@mirantis.com>
Package upstream and fuel-library Puppet modules for Ubuntu
using the current fuel-library RPM approach:
* use librarian-puppet-simple for downloading upstream modules
* use upstream_modules.tar.gz workaround to build package in
isolated environments (LP #1482667)
Closes-Bug: #1535881
Change-Id: I176593263501093a2ce5e609f23a28d611f853a6
* Fix failing pcs resource list command
and move the policy file from the ocf to policy dir
* Configure the custom policy file to be picked
in the /usr/sbin/set_rabbitmq_policy as the
fuel-libraryX package installs it.
* As the upstream rabbitmq-server package does not
install one, use the default policy OCF path param
as the /usr/local/sbin/...
* Add the policy_file param and unit tests to the
cluster::rabbitmq_ocf
Closes-bug: #1558627
Change-Id: I4937bde611b06c3e39385a322053610c98584d79
Signed-off-by: Bogdan Dobrelya <bdobrelia@mirantis.com>
Was performed:
* Unify main code and move system depended code into umm_svc.local
* Modify packaging procedure
Closes-Bug: #1525269
Change-Id: I04602b26f2a0b9b6d5ed3cd23f175bd54d1f2808
Set openstack version to 2016.1.0-9.0 for now.
Proper versioning for 9.0 release is to be defined later.
Related patch to fuel-web:
https://review.openstack.org/#/c/259059/
Fuel-CI: disable
Change-Id: Iec9da695c4b240fc4e1cc1231ae6e4724311054c
Add two flags:
* enable_rpc_ha which enables queue mirroring for RPC queues
* enable_notifications_ha which enables queue mirroring for
Ceilometer queues
Since the feature is experimental, both flags are set to true by
default to preserve current behaviour.
The change is implemented in several steps:
* the upstream script changed so that it allows to extend the
list of parameters and uses a policy file to define RabbitMQ
policies.
* we add our own version of OCF script which wraps around the
upstream one. It defines a new enable_rpc_ha and
enable_notifications_ha parameter and passes their value to the
upstream script.
* we add our policy file, where we use the introduced parameters
to decide which policies we should set.
So we will have two OCF scripts for RabbitMQ in our deployment:
* rabbitmq-server-upstream - the upstream version
* rabbitmq-server - our extention, which will be used in the
environment
The upstream version of the script is pushed to the upstream
along with empty policy file, so that other users can define their
own policies or extend the script if needed. Here are the
corresponding pull requests:
https://github.com/rabbitmq/rabbitmq-server/pull/480https://github.com/rabbitmq/rabbitmq-server/pull/482
(both are already merged)
Text for Operations Guide
It is possible to significantly reduce load which OpenStack puts on
RabbitMQ by disabling queue mirroring. This could be done separately
for RPC queues and Ceilometer ones. To disable mirroring for RPC
queues, execute the following command on one of the controllers:
crm_resource --resource p_rabbitmq-server --set-parameter \
enable_rpc_ha --parameter-value false
To disable mirroring for Ceilometer queues, execute the following
command on one of the controllers:
crm_resource --resource p_rabbitmq-server --set-parameter \
enable_notifications_ha --parameter-value false
In order for any of the changes to take effect, RabbitMQ service
should be restarted. To do that, first execute
pcs resource disable master_p_rabbitmq-server
Then monitor RabbitMQ state using command
pcs resource
until it shows that all RabbitMQ nodes are stopped. Once they are,
execute the following command to start RabbitMQ:
pcs resource enable master_p_rabbitmq-server
Beware: during restart all messages accumulated in RabbitMQ will be
lost. Also, OpenStack will stop functioning until RabbitMQ is up
again, so plan accordingly.
Note that it is not yet well tested how this configuration affects
failover when some cluster nodes go down. Hence it is experimental,
use at your own risk!
DocImpact: ops-guide
Implements: blueprint rabbitmq-disable-mirroring-for-rpc
Change-Id: I80ae231ca64e2a903b0968d36ba0e85ca9cc9891
Currently we have two ocf scripts for Heat-engine: for ubuntu and
centos. This patch removes this separation and combines into
one common OCF script.
Change-Id: I5e440f50da20ef26fca22a34df98864925f8211e
Closes-bug: #1378032
Update fuel-rabbit-fence package by adding rabbitmq-server as
a dependency. For now this issue is covered by manifests [1]
[1]. https://review.openstack.org/#/c/184465/
Change-Id: I8607820f4949629781667dc6b48e6285b58dc040
Closes-bug: #1524308
This change adds a script that can be used on the output from the
rabbitmq admin plugin that dumps the rabbitmq definitions to a json
format. This script removes the auto-delete queues and cleans up any
references to them in the bindings and exchanges.
Change-Id: Ie3f3194b3eaaa8dc28d1cd3442090b586e177306
Closes-Bug: #1497961
Co-Authored-By: Dmitry Mescheryakov <dmescheryakov@mirantis.com>
fuel-misc provides haproxy-status which needs socat. Additionally we
are currently requiring the socat package in several places in
puppet to try and satisfy this dependancy. This will consolidate
them into a single requirement where it is needed.
Depends-On: I951b137627880b20ece3c64e6a0c8b6ab473daab
Change-Id: If3069c8c7bc68337596195e27e2213a4c9ec3540
Closes-Bug: 1479033
Utility neutron-netns-cleanup is extended to cover cleaning features
of both OCF and q-agent-cleanup. It is responsible for:
* terminating in-namespace processes
* removing net interfaces and OVS ports
* removing namespaces
New utility uses pyroute2 library and at least 3 times faster than
the old solution.
Closes-Bug: #1436414
Closes-Bug: #1434196
Change-Id: Id8f12e7a342ccad3c3362d70159101bb95d918fd
This change renames the clustercheck script to galeracheck as it
conflicts with a similarly named script from the percona packages.
Change-Id: I995138a022e09f12b53abb560eaf1e6134504001
Closes-Bug: 1461304
- use flock to ensure that only one instance of fuel-logrotate is running
- combine centos and ubuntu versions of fuel-logrotate to a single file
- remove unused versions of fuel-logrotate file
- enable delayed compression in system-wide logrotate.conf to avoid race
condition between fuel-logrotate and regular logrotate
- enable delaycompress also on master node
- default minsize (30M) and maxsize (100M) in system-wide logrotate.conf
- use file_line for logrotate.conf updates
- use bash to execute fuel-logrotate
- fix path to cron's logrotate script in logrotate-debug
This commit changes default behavior of logrotate by enabling compress
and delaycompress. The result is that compression is enabled for all log
files managed by logrotate and rotated logs are compressed only on the next
rotation. It allows us to resolve rotation cycle that might happen when
both regular logrotate and fuel-logrotate were executed at the same
time, causing both to rotate the same file.
Closes-Bug: 1461400
Doc-Impact: ops guide
Change-Id: I94c497a8916fa6fac87ea2ddc51f6de56ab73f98
Co-Authored-By: Alex Schultz <aschultz@mirantis.com>
W/o this fix, when the management interface on the controller node
running a Swift proxy is down, HAProxy would fail to update
its backend status at the storage network.
This is a problem as we want swift backends not able to connect the
swift endpoint via the management VIP to be marked down. Othewise,
responces time for any requested swift commands would be drastically
longer. Simple httpcheck option cannot resolve this because the swift
healthcheck reports OK, if conntacted via the storage network.
In order to fix this, simple healthcheck script is implemented.
This script is running as HTTP xinetid service at TCP port 49001 and
is accessible only from the localhost, 240.0.0.2, and storage plus
management networks. The service verifies the node under check for the:
a) management VIP is pingable via ICMP (by 3 packets)
b) Swift endpoint is reachable by TCP-connect via the local storage address
within 5 seconds connection timeout
c) Swift healthcheck report via the local storage address endpoint is OK
Reports an HTTP 200 OK, if all of the results are OK.
Otherwise, it would report an HTTP 503 Error.
Expected Swift node control plane failover time will be around 30 seconds.
Swift data plane is not affected.
DocImpact: Reference architecture, swift failover.
Closes-bug: #1459772
Related-bug: #1460623
Change-Id: I55a35b45257763a20f33bd47cb5c57de53558ccf
Signed-off-by: Bogdan Dobrelya <bdobrelia@mirantis.com>
W/o this fix, if the daemon crashed, it
would remain stopped. Also, the rabbit fence
daemon will crash on start, when there is no
/var/run/rabbitmq piddir exist.
The solution is
* add the respawn option to
the daemon's upstart (TODO for Centos inittab)
* and ensure the piddir
created by upstart/init.d before starting the daemon.
This also requires to add the rabbitmq and
fuel-rabbit-fence packages as a dependency.
Closes-bug: #1456791
Change-Id: I4e71eb9e4aa4ff3b877aa89a37d82215740aaeab
Signed-off-by: Bogdan Dobrelya <bdobrelia@mirantis.com>
based on Change-Id: Ie759857fb94db9aa94aaeaeda2c6ab5bb159cc9e
All the work done for fuel-library packaging
Should be overriden by the change above after we switch
CI to package-based
implements blueprint: package-fuel-components
Change-Id: I48ed37a009b42f0a9a21cc869a869edb505b39c3