Zed Series Release Notes¶
18.0.0.0b1-178¶
New Features¶
- The option - rabbitmq_erlang_version_spechas been added allowing deployers to set the version of erlang used on a given installation.
- The override - rabbitmq_memory_high_watermarkcan be used to set the maximum size of the erlang Virtual Machine before the garbage collection is triggered. The default is lowered to- 0.2, from- 0.4as the garbage collection can require 2x of allocated amount during its operation. This can result in a equivalent use of- 0.4, resulting in 40% of memory usage, visible to the rabbitMQ container. The original default setting of- 0.4can lead to 80% memory allocation of rabbitMQ, potentially leading to a scenario where the underlying Linux kernel is killing the process due to shortage of virtual memory.
- Add - rabbitmq_additional_configto be able to add additional configuration e.g. to add configuration for plugins.
- New variables that provide better control over RabbitMQ management interface have been implemented: - rabbitmq_management_bind_tcp_port 
- rabbitmq_management_bind_tls_port 
- rabbitmq_management_ssl 
 
- Added variable - rabbitmq_init_overridesthat allows to control rabbitmq overrides that will be applied to the systemd service. Previously values were hardcoded without possibility for override.
- Added variable - rabbitmq_manage_hosts_entriesthat controls if rabbitmq_server role will attempt to adjust /etc/hosts file
Upgrade Notes¶
- The rabbitMQ high watermark is set to - 0.2rather than- 0.4to prevent possible OOM situations, which limits the maximum memory usage by rabbitMQ to 40% rather than 80% of the memory visible to the rabbitMQ container. The override- rabbitmq_memory_high_watermarkcan be used to alter the limit.
- The data structure for - rabbitmq_gpg_keyshas been changed to be a dict passed directly to the applicable apt_key/rpm_key module. As such any overrides would need to be reviewed to ensure that they do not pass any key/value pairs which would cause the module to fail.
- The default values for - rabbitmq_gpg_keyshave been changed for all supported platforms will use vendored keys. This means that the task execution will no longer reach out to the internet to add the keys, making offline or proxy-based installations easier and more reliable.
- The default queue policy has changed to - ^(?!(amq\.)|(.*_fanout_)|(reply_)).*instead of- ^(?!amq\.).*for efficiency. The new HA policy excludes reply queues (these queues have a single consumer and TTL policy), fanout queues (they have the TTL policy) and amq queues (they are auto-delete queues, with a single consumer).
- The default Mnesia - dump_log_write_thresholdvalue has changed to- 300instead of- 100for efficiency.- dump_log_write_thresholdspecifies the maximum number of writes allowed to the transaction log before a new dump of the log is performed. Increasing this value can increase the performances during the queues/exchanges/bindings creation/destroying. The values should be between 100 and 1000. More detail [1].- [1] http://erlang.org/doc/man/mnesia.html#dump_log_write_threshold 
- The option rabbitmq_disable_non_tls_listeners has been removed in favor of setting the bind address and port configuration directly using a new option rabbitmq_port_bindings. This new option is a hash allowing for multiple bind addresses and port configurations. 
- RabbitMQ was migrated to the new-style config, which resides in - /etc/rabbitmq/rabbitmq.conf. Old config- rabbitmq.configwill be removed during upgrade.
Deprecation Notes¶
- The use of the - apt_package_pinningrole as a meta dependency has been removed from the rabbitmq_server role. While the package pinning role is still used, it will now only be executed when the apt task file is executed.
- rabbitmq_install_method: file is deprecated now and will be removed in the Wallaby release. As for now supported options are only external_repo and distro. Among with that the following variables are deprecated and prepared for the removal: - rabbitmq_package_url 
- rabbitmq_package_sha256 
- rabbitmq_package_path 
 - Variable rabbitmq_release_version has been removed as not used anymore. 
- RabbitMQ packages are no longer provided by PackageCloud due to the upstream repository being no longer available after 2023-05-28. Installations will now utilize a community mirror of CloudSmith repositories for rabbitmq and erlang. - https://github.com/rabbitmq/rabbitmq-server/discussions/8386 
Bug Fixes¶
- Do not duplicate records in /etc/hosts file by rabbitmq role when hosts file is already managed by OSA. 
Other Notes¶
- Default source of rabbitmq and erlang packages has been switched to cloudsmith.io 
17.0.0.0b1¶
New Features¶
- The installation of Erlang and is now optimized for CentOS. Erlang 19.x is now installed via a single package that is maintained by RabbitMQ developers and it provides the minimal features required for RabbitMQ to function. It also includes HiPE support for increased performance. - The version of Erlang is kept constant using yum’s versionlock plugin. 
- RabbitMQ is now installed via an RPM repository provided by RabbitMQ developers. The version is kept constant via yum’s versionlock plugin. This allows the tasks to lock the RabbitMQ version to a particular revision and prevent changes to that version. 
- The default ulimit for RabbitMQ is now 65536. Deployers can still adjust this limit using the - rabbitmq_ulimitAnsible variable.
16.0.0.0b3¶
New Features¶
- A new repository for installing modern erlang from ESL (erlang solutions) has been added giving us the ability to install and support modern stable erlang over numerous operating systems. 
- The ability to set the RabbitMQ repo URL for both erlang and RabbitMQ itself has been added. This has been done to allow deployers to define the location of a given repo without having to fully redefine the entire set of definitions for a specific repository. The default variables rabbitmq_gpg_keys, rabbitmq_repo_url, and rabbitmq_erlang_repo_url have been created to facilitate this capability. 
Upgrade Notes¶
- Changing to the ESL repos has no upgrade impact. The version of erlang provided by ESL is newer than that what is found in the distro repos. Furthermore, a pin has been added to ensure that APT always uses the ESL repos as it’s preferred source which has been done to simply ensure APT is always pointed at ESL. 
Bug Fixes¶
- Based on documentation from RabbitMQ [ https://www.rabbitmq.com/which-erlang.html ] this change ensures the version of erlang we’re using across distros is consistent and supported by RabbitMQ. 
15.0.0.0rc1¶
New Features¶
- The - rabbitmq_serverrole now supports disabling listeners that do not use TLS. Deployers can override the- rabbitmq_disable_non_tls_listenersvariable, setting a value of- Trueif they wish to enable this feature.
- RabbitMQ Server can now be installed from different methods: a deb file (default), from standard repository package and from external repository. Current behavior is unchanged. Please define - rabbitmq_install_method: distroto use packages provided by your distribution or- rabbitmq_install_method: external_repoto use packages stored in an external repo. In the case- external_repois used, the process will install RabbitMQ from the packages hosted by packagecloud.io, as recommended by RabbitMQ.
14.0.0.0rc1¶
New Features¶
- The - rabbitmq_serverrole now supports configuring HiPE compilation of the RabbitMQ server Erlang code. This configuration option may improve server performance for some workloads and hardware. Deployers can override the- rabbitmq_hipe_compilevariable, setting a value of- Trueif they wish to enable this feature.
- The - rabbitmq_serverrole now supports deployer override of the RabbitMQ policies applied to the cluster. Deployers can override the- rabbitmq_policiesvariable, providing a list of desired policies.
14.0.0.0b3¶
New Features¶
- The rabbitmq_server role now supports the ability to configure whether apt/yum tasks install the latest available package, or just ensure that the package is present. The default action is to ensure that the latest package is present. The action taken may be changed to only ensure that the package is present by setting - rabbitmq_package_stateto- present.
Upgrade Notes¶
- The rabbitmq_server role always checks whether the latest package is installed when executed. If a deployer wishes to change the check to only validate the presence of the package, the option - rabbitmq_package_stateshould be set to- present.
14.0.0.0b2¶
New Features¶
- The - rabbitmq_servernow supports a configurable inventory host group. Deployers can override the- rabbitmq_host_groupvariable if they wish to use the role to create additional RabbitMQ clusters on a custom host group.
14.0.0.0b1¶
Deprecation Notes¶
- The - rabbitmq_apt_packagesvariable has been deprecated.- rabbitmq_dependenciesshould be used instead to override additional packages to install alongside rabbitmq-server.
