This repository was archived by the owner on Jan 1, 2024. It is now read-only.
1.8.0 - scenarios and boost
Bug fixes
- Role installation will be completely skipped
if you specify a tag other than the tags for this role - Fixed selecting control instance that doesn't belong to cluster or isn't alive.
The following rules are currently used:- Members are checked in lexicographic order by URIs
- Members not mentioned in hostvars aren't selected to be control
- Members with status not
alivearen't selected to be control
- Fixed setting
needs_restartwhen configuration files don't exist - Fixed error on configuring auth without users specified
- Reset role variables before each run
Features
cartridge-replicasetstag added to the membership stagecartridge_wait_buckets_discoveryparameter to wait for instance to discover bucketsinstance_discover_buckets_timeoutparameter to configure time in seconds
to wait for instance to discover buckets- Ability to deploy TGZ packages
cartridge_multiversionflag that allows to use specific version of application
for each instance and perform rolling update correctly (using newupdate_instancestep)rotate_distsstep that allows to rotate application distributionscleanupstep to remove temporary files from specific list- Added availability to import steps by scenario name. Added some default scenarios.
Added availability to create custom scenarios. - availability to use
tasks_fromto import any step zonevariable to edit instance zoneedit_topology_timeoutvariable to wait until cluster become healthy
after editing topology- availability to specify instance
memtx_dir,vinyl_dirandwal_dirparams
bycartridge_memtx_dir_parent,cartridge_vinyl_dir_parent,cartridge_wal_dir_parentvariables. - Control instance is selected considering two-phase commit version of instances.
The reason is that all operations that modify cluster-wide config should be performed via instance
that has lowest Cartridge version (in fact, only two-phase commit version matters). - Availability to change advertise URIs of any instance
Changes
cartridge.admin_edit_topologyis called once for all replicasets and instances
to expel. It can be called second time to set up failover priority for
replicasets where new instances were joined.
As a result,replicaset_healthy_timeoutis removed as unused.- Now list of instances for installing a package is selected once for all.
Before this patch, the complexity of calculating the list of instances was O(N^2),
now it is O(N). For 100 instances, it gives a 10x time reduction (60s -> 5s). - Refactored package installing. Getting package info is performed in a library module,
all tasks except installing package itself are common for RPM and DEB. - Now
check_instance_startedfunction: check all instances, including the stateboard;
waitUnconfiguredorRolesConfiguredstatus insteadalivestate; check that
all buckets are discovered by routers if cluster was bootstrapped. - Role divided into many steps. It's possible to combine them using a scenario
in the config bycartridge_scenario. It is also possible to use custom steps in a scenario.
Custom steps can be defined bycartridge_custom_steps_dirandcartridge_custom_steps. - Now step
connect_to_membershipis executed only on one not expelled instance.
Before the patch, the difficulty of performingconnect_to_membershipstep wasN^2.
For 100 instances, the step took about 900 seconds. Now the complexity has decreased to N,
so for 100 instances the execution time is about 5 seconds.