- FEATURE: Added new client:
graph
. - ENHANCEMENT: Added option to add specific ports to the firewall rules on GCP and AWS backends.
- ENHANCEMENT: AGI will not parse and graph
security.c
type messages for authentication message counts per second. - ENHANCEMENT: WebUI add option to
attach trino
for the trino client cli. - ENHANCEMENT: GCP Expiry system will attempt to enable required services prior to installation.
- ENHANCEMENT: Docker: for version 7+ of Aerospike, if a custom config file is not provided, modify the default one to remove
bar
namespace and changetest
to use file-backedstorage-engine device
. - ENHANCEMENT:
logs get
- provide an option to specify a custom command to execute. - FIX: AGI: Ingest
aggregate
would incorrectly miss aggregation values when working with lines that contain(repeated:X)
. - FIX: AGI: Handle connection error during installation gracefully.
- FIX: WebUI: make listener bind specifically to IPv4 or IPv6 depending on specified address instead of letting the kernel decide.
- FIX: WebUI: do not clear running jobs from history in the web interface until they are completed (when clear history button is pressed).
- FIX: GCP: For accelerated instances fallback to
onHostMaintenance=TERMINATE
policy. - FIX: Windows: username discovery system and username truncation for instance labels.
- FIX: AGI and ShowCommands: new
sysinfo
file format change. - IMPROVEMENT: AGI: Naming of panel groups in Namespace dashboard. Add missing
data-used cache read pct
dashboard.
- FEATURE: Web UI.
- FEATURE: DOCKER: Add support for multiarch. See this page for details.
- FIX: GCP: Many commands would fail during template creation, making parallel use imposible. Fixed.
- FIX: GCP: Delete
arm
templates was not working at all. - FIX: GCP:
client configure firewall
andcluster add firewall
should not be locking the rules being added. - FIX: GCP: Expiry system now stores information in a bucket to allow for multi-tenancy usage scenarios.
- FIX: The
net list
command does not work when client has same name as server. - FIX: The
net loss-delay
feature would fail to activate a python environment. - Fix: Support for
all
inClusterName
was broken when node expander was implemented. - FIX: Docker: Regression - underscores in cluster names are allowed and should work.
- FIX: Docker: Issue with using new template naming conventions when old templates exist.
- FIX: AGI: AGI Commands would panic if cluster is not found.
- FIX: AGI: Default sftp threads to 1 and s3 threads to 4.
- FIX: AGI: Port 443 on AGI firewall in GCP should not lock to caller's IP by default.
- FIX: AGI: agi monitor would not work following adding of checks for sftp password.
- ENHANCEMENT: Owner tag, if not manually specified, will be filled with current OS username.
- ENHANCEMENT: Support all ubuntu 18+ and centos 7+ builds with
net loss-delay
feature. - ENHANCEMENT: When
--on-destination
is selected innet loss-delay
, set--src-network
instead of--network
. - ENHANCEMENT: The
net loss-delay
feature now supports specifying ports. - ENHANCEMENT: The
logs get
command will append original filename as suffix and will ask if files would be overwritten unless-f
is specified. - ENHANCEMENT: For centos stream 8/9 installs, there is no more need to re-enable repos and sync distros.
- ENHANCEMENT: All inventory instance listings in cloud will now show instance type in the last field.
- ENHANCEMENT: Tested and documented podman backend support.
- ENHANCEMENT: AGI: Check sftp access and file count in directory prior to creating anything.
- ENHANCEMENT: AGI: (gcp/aws) Always check if the selected instance type is large enough.
- ENHANCEMENT: AGI: Improve sftp source download speed by using sftp package concurrency.
- ENHANCEMENT: AGI: Change
write-block-size
to8M
to allow for largecollectinfo
imports. Handle imports larger than 8M by trimming data. - ENHANCEMENT: logging adds timezone now.
- Volume command supports mounts on centos/amazon.
- Version check logic - if user is using a dev build and a final build is out, inform user of available upgrade.
- Allow choosing renderer mode for inventory listing to be normal, TSV, CSV, Markdown or HTML.
- Tag expiry systems to allow for version discovery and automated updating.
- Add
aerolab upgrade [--edge]
command to allow upgrading to latest stable (or latest pre-release). - Windows: catch the use of command prompt and warn against it.
- Improvement: replace the
mesh/multicast
fix system withaeroconf
parser. - Improvement: in
aerolab conf namespace-memory
, adjustdata-size
instead if using aerospikev7+
, and only if required. Otherwisenoop
. - Allow adding of
aerolab
to a server/client instance on-demand. - AGI commands support centos/amazon.
- AGI: support v7 of aerospike.
- AGI: support arm editions of centos-based operating systems.
- AGI: add
--no-dim-filesize
option to specify data storage file size for non-data-in-memory namespaces. - AGI: override tools package by default by the latest tools. Allow
--no-tools-override
to disable. - AGI: All stack items utilize
v7
aerospike client library. - AGI: Feature: Monitor agi instance states and react accordingly - sizing or cycling from spot to on-demand types.
- Docker: Improvement: attempt to auto-adjust limit of open files.
- Docker: when exposing multiple ports in a continuous order, only use first exposed port for the service port.
- GCP: The
cluster add firewall
command should issueop.Wait
after all operations have been queued. - GCP AGI spot instance support.
- GCP Volumes support (using standard
pd-ssd
, and requiring size, as there is noEFS
equivalent). - AWS: Always encrypt EBS volumes.
- Fix:
conf generate
command for v7 aerospike is missing an argumentdata-size
where needed. - Fix: add support for
time.Duration
toconfig defaults
command. - Fix:
config defaults
should be able to set defaults for any parameter, even if it is for a backend not currently in use. - Fix: aws security groups will now also open ICMP traffic in the rules.
- Fix: GCP: for some instances,
TERMINATE
scheduling policy must be set. - Fix: Docker show IPs for containers which do not have exposed ports.
- Fix: AMS client fix regression:
asbench
dashboard installation. - Fix: Auto-create temporary directory as needed, if it is specified.
- Fix: GCP: Handle firewall rules which use an IP instead of CIDR.
- Fix: New exporter name changes cause 1.15.0 to not install. This uses the new names.
- Fix:
lsblk
now shows sizes as float not int. - Fix: GCP: upgrade and improve instance type listing.
- Fix: AWS: multiple APIs when user specifies AWS backend without choosing a custom region.
- GCP: instance-type listing now includes spot instance support.
- Aerospike Client Versions:
data insert
,data delete
support forv7
aerospike client.
- Fix:
lsblk
now shows sizes as float not int.
- Fix: New exporter name changes cause 1.15.0 to not install. This uses the new names.
- Allow specifying aerospike version number for agi.
- Check if locked security group / firewall rule does not include current IP. In this case, attempt to fix the rule.
- Add to aerolab config backend support for AWS profile names.
- New:
aerolab cluster share
- add a user’s public key option to instance (wrapper aroundssh-copy-id
). - Expiries - add expiry information print during cluster creation.
- If expiry < 24h and attach is executed, print warning message (only on interactive shell, if
--
args are provided, do not print). - AGI: Add notification support via https calls for status changes of AGI instances (finished ingest, sizing, logs too large, etc); with optional "fail on response error".
- AGI: Add notification support via slack for certain/chosen event types.
- Add global option
--beep
which will cause the terminal to issue a beep on aerolab exiting (finished/error task) - implementsCTRL+G
orint(7)
terminal print.- The parameter can be specified multiple times. In this case, only one beep will be present on success, multiple beeps will be present on failure.
- A
--beepf
is also added, which will only trigger beep on failures. - Useful for example in:
aerolab cluster destoy -f --beepf --beepf && aerolab cluster create --beep --beep
- beep twice on any failure, or once on successful completion of last command. - Beeps are globally configurable with environment variables
AEROLAB_BEEP=x
andAEROLAB_BEEPF=x
wherex
is the number of beeps to apply.
- Inventory listing support
--aws-full
to print inventory in all AWS regions. - Inventory listing supports extending to max terminal width; pager is disabled by default and can be enabled with
--pager
. - AWS EFS volumes are supported (large cost saving and predictable IOPS on AWS platform, useful for AGI).
- Command
agi create
could experience issues if aerolab was run from linux; fixed - Add spot instances option.
- Fix: GCP and AWS backends were ignoring the custom image option. This is now enabled.
- Fix: Disable setting terminal to RAW mode for ssh, fixing parallelism.
- Fix: GCP arm support.
- Parallelize docker cluster and client listing for speed.
- If terminationProtection is on, show in inventory, avoid trying to destroy, and do not expire.
- Parallelize
aerospike upgrade
command. - Fix
access-address
andalternate-access-address
internal IPs, if those change. - Fix Docker discovery of exposed ports on stopped containers.
- Fix
aerospike upgrade
command to handle differing folder names in minor versions. - Fix
cluster partition list
race condition when in parallel mode. - Improve AWS expiry system refresh and GCP expiry system discovery.
- AGI fix issue of discovery of the aerolab binary when using symlinks.
- Fix telemetry for expiries to also use microseconds.
- GCP just made
DiscardLocalSsd
non-optional when stopping instances. Adjusting accordingly.
- Update expiry system dependencies.
- Create a windows release.
- Upgrade - check if new version is available in the background, if so, inform user and point at the releases page.
- Telemetry - if telemetry is enabled, tag instances with telemetry tag so that the expiry system can report it.
- GCP backend: automatically attempt to enable cloud billing API for pricing lookups.
- Fix shell recovery after parallel attachment.
- Add AGI (Aerospike-Grafana-Integrated stack) for graphing Aerospike log statistics in Grafana.
- Add support for sindex flash in the partitioner.
- The
showcommands
command-set is now a part of aerolab. - Recover the terminal from attach commands on error, not just on success.
- Make
.aerolab
directory only acessible by the user. - Trim spaces and carriage returns from
deploy cluster
backend commands. - The
list
commands now output in color by default, with pretty formatting and pagination. - Aerospike version 7+ support added to
conf generate
andcluster partition conf
commands. - Added
lnav
tool for log exploring and parsing.
- GitHub broke support for
wget
for source files in old repo releases page by producing403 Forbidden
onHEAD
requests; this fix implements a new link. - Update dependencies to latest.
- Message INFO at end of cluster create pointing user at AMS documentation informing them ams exists.
- Add deprecation warning around client machines and how they are handled in 8.0.
- Handle new AMS stack conventions and dashboards; auto-discover all available dashboards and folders.
- Add options for specifying replacement or additive dashboard lists to AMS stack.
- Add option to map and expose ports in Docker backend on a 1:1 pairing (eg 3100 node 1, 3101 node 2 etc) - so not workarounds are needed to access Aerospike clusters on Docker Desktop from the Desktop.
- Add MacOS packaging and signing to makefile to move fully away from bash scripts.
- Add
conf namespace-memory
option to configure memory for a namespace for a given RAM total percentage. - Use GitHub Actions to create builds
- Setting
conf adjust
value params, if it's..
, treat as literal dot. - Option
conf adjust
now allowsget
to retrieve values. - Support for deploying Amazon 2023 server >= 6.4.
- Support for deploying Debian 12 server >= 6.4.
- Create manual on using AWS Secrets Manager.
- Add option for auto-expiring clusters in GCP and AWS.
- Add option to filter instance types by name.
- Add pricing information to
inventory instance-types
command. - Sort options for
inventory instance-types
command. - Add a 24-hour cache of
inventory instance-types
to allow for quick lookup. - Add display of price information on cluster and client creation.
- Add option to only display price (without actually creating clusters or clients) using
--price
in thecreate
commands. - Add
nodes count
multiplier toinventory instance-types
to allow for easy cost visualization. - Track instance cost in instance tags/labels.
- Show instance running costs in
list
views. - Parallelize the following commands (with thread limits):
aerospike start/stop/restart/status
roster show/apply
files upload/download/sync
tls generate/copy
conf fix-mesh/rack-id
cluster create/start/partition */add exporter
xdr connect/create-clusters
client create base/none/tools
client configure tools
- Some config parsing bugfixes for handling of accidentally saved
aerolab config defaults
values. - Allow specifying not to configure TLS for
mesh
intls generate
command. - Allow specifying multiple disks of same type in
gcp
backend; for example--disk local-ssd@5
will request 5 local SSDs and--disk pd-ssd:50@5
will request 5pd-ssd
of size 50GB. - Improve feature key file version checking.
- Allow tagging by
owner
during cluster and client creation. Specify owner to always use withaerolab config defaults -k '*.Owner' -v owner-name-all-lowercase-no-spaces
. - Capture outcomes of run commands in internal user telemetry.
- Add telemetry version into output.
- Add
conf adjust
to allow for adjusting aerospike configuration on a deployed cluster on the fly. - Move to using
Makefiles
for build and linux packaging process. - Fix handling of extra docker flags in docker backend.
- Add extra version check in
client tools
creator. - Fix support for
amazon:2
onarm
discovery. - Add option for
logs get
to download logs in parallel using the--threads X
option. - Symlink
attach shell
command tocluster attach
command. - Add option in
tls generate
to have different bit sizes. - If
-f
force option is not specified in thedestroy
commands, ask for confirmation viastdin
. - Basic anonymous telemetry enabled by default for internal Aerospike users.
- Added
inventory list
command, which prints all of the inventory (clusters, clients, firewalls, templates) in table or json format. - Standardize the
list
commands to theinsventory list
output for cloud backends. - Added
nano
command to all distributions. - Update API packages to latest as of June 28th, 2023.
- Add new command
inventory instance-types
to allow for quick lookup of instance types inAWS
andGCP
clouds. - Move all aerolab files and config paths to
~/.aerolab
. - When creating firewalls/security groups, by default these will be locked to the caller's IP address.
- Allow to specify custom name for firewalls and security groups.
- Make the
GCP
backend disks use theNVME
interface for disks. - The
client create none
now supports backends other than Docker.
- Handle bug in IP discovery on
docker
backend with custom networks.
- Require GCP project when setting backend.
- Add handling for GCP local SSDs
- Support for
gcp
backend. - Add node exporter to the prometheus exporter setup.
- If feature file is not provided and cluster size is larger than 1, bail with critical error.
- Add
legacy
option to filesupload
anddownload
functions. - Partitioner
conf
command now requires a namespace before continuing. - The
net block
command's speed greatly improved - changed execution logic. - Allow to disable colors in
conf generate
command for some terminals. - Add support for centos 9.
- Move to official
quay
repositories for centos version 8 and above. - Move from centos 8 onwards to the stream edition.
- Multiple functional and OS-support bugfixes.
- Add
client create none
option for creating vanilla instances and containers. - Check and confirm if docker is in use and clients are being deployed without forwarded ports.
- Deprecated
jupyter
client.
- update all libraries (dependencies)
- aws
lock-security-groups
andcreate-security-groups
now allows for connectivity from outside to the servers too
- Fix duplicate switch problem when creating clusters.
- Add support for specifying a directory for feature file path to allow multiple feature file versions.
- Try to adjust
vm.max_map_count=262144
on each client start forelasticsearch
needs. - Make
promtail
stack optional when launchingrun_asbench
on the client machines.
- handle malformed output from
asinfo
on error - add backend option to specify non-standard temporary directory
- fix ulimits for linux docker desktop
- add auto-discovery of
WSL2
for temp dir creation
- add
nodes
switch toadd exporter
command - send a reload command on
configure ams
instead of restarting the service - disable service update prompts for
apt
onubuntu:22.04
in AWS
- add default
doc-id
sourcedigest
cluster create
will now treat paths containing.
inaerospike.conf
as containing a file name for the purpose of precreating directories- Updated asbench dashboards based on user testing, improving labels, and no longer averaging percentiles.
- add basic latency graphs into
asbench
custom dashboards inAMS
- remove redundant declarations for item slices
- docker fix cluster listing with json format to ignore non-aerolab containers
- fix username/password switches for rest gateway client
- fix
ams
client installation of grafana on docker - fix bug where
--detach
in client attach would run each command twice - pass the
NODE
environment variable in all remote run commands - set to the aerolab node number inside the machine - update dependencies:
github.com/aerospike/aerospike-client-go/v6
version6.9.1
to6.10.0
github.com/aws/aws-sdk-go
versionv1.44.192
tov1.44.214
golang.org/x/crypto
versionv0.5.0
tov0.6.0
golang.org/x/term
versionv0.4.0
tov0.5.0
github.com/rivo/uniseg
versionv0.4.3
tov0.4.4
golang.org/x/sys
versionv0.4.0
tov0.5.0
- from now on,
CGO
is disabled forcefully during build for portability - build process for embedding arm/amd linux binaries now uses
go:embed
instead of base64-encoded strings - rest gateway client added
list-subnets
andlist-security-groups
will show more info in a cleaner (tabular) format- added option to specify custom
astools.conf
file incluster create
andclient create tools
commands - added
elasticsearch
connector to theclient create
options list - added
connector
switch inxdr connect
command
- handle rack-id settings with roster in sc mode
- add option
aerolab config docker
to handle multiple docker networks - add option to specify network name when creating docker clusters/clients
- add interactive option - when a network doesn't exist, ask if one should be created
- add
aerolab conf rackid
option to add/change rack-id configuration on cluster nodes
- add
SIGINT
handler to aerospike installer downloader, and template creators, to abort smoothly - allow installation of FIPS edition of Aerospike
- auto-create default VPC if it's missing
- handle per-VPC aerolab-managed security groups (breaking feature - old security groups from
4.5.0
will no longer be used) - new feature:
aerolab cluster partition
to allow for automated partitioner with automatic adjustment ofaerospike.conf
as required - new
aerolab config aws
commands:create-security-groups
,list-security-groups
,list-subnets
- node expander bug fix - handle multiple clusters separated by commas in commands
- updating dependencies
- golang
1.20
- golang build tools
- github.com/aerospike/aerospike-client-go/v5 v5.10.0 => v5.11.0
- github.com/aerospike/aerospike-client-go/v6 v6.6.0 => v6.9.1
- github.com/aws/aws-sdk-go v1.44.158 => v1.44.192
- github.com/mattn/go-runewidth v0.0.9 => v0.0.14
- github.com/rivo/uniseg v0.4.3
- github.com/yuin/gopher-lua v0.0.0-20220504180219-658193537a64 => v1.1.0
- golang.org/x/crypto v0.3.0 => v0.5.0
- golang.org/x/sys v0.2.0 => v0.4.0
- golang.org/x/term v0.2.0 => v0.4.0
- golang
- add client-side grafana dashboards to AMS monitoring stack client
- add
fullstack
documentation on how to deploy the full stack - make cluster list better looking in docker backend
- add basic
aerospike.conf
config file generator UI inaerolab conf generate
feature - add
aerolab config aws lock-security-groups
for locking down sec groups to just the caller IP (for vscode, jupyter, AMS and optionally port 22)
- fix bug with old Aerospike version download, requiring username/password
- add notes at the end of AMS and exporter installation, referencing one-another to avoid confusion
- allow for aerolab to auto-create security groups in aws, as well as discover subnet IDs based on AZ for the default VPC
- allow tagging instances and images with custom tags when using the aws backend
- add debian to the list of supported OS types
- fix issue with the
autoload
directory execution in AWS - add cluster existence check in
expandNodes
to handle-l all
on non-existent cluster name
- add cluster name checking and hostname validation on setting hostnames
- improve failed template vacuum (only delete the failed template container, not all template containers)
- fix aws missing-region discovery
- when parsing aerospike.conf, ignore commented out lines while parsing directory paths
- allow specifying multiple security group IDs in AWS
- change macos pkg install location to
/usr/bin/
instead of/usr/local/bin/
due to missing$PATH
on some installations
- handle AWS library bug regarding unset regions
- vscode client change installation order - java hangs otherwise on slow connections
- improve handling of keypairs in AWS, especially templating ones
- aws: add auto-discovery of instance type to whether it is arm (obsolete
--arm
switch)
- fix aws backend template image naming
- aws backend arm template creation bugfix
- aws backend add arm/amd arch tracking to template names in
DeployTemplate
andDeployCluster
- bugfix: aerospikeGetUrl would incorrectly assume version is provided in a not-required early arm version check
client tools
arm support added- add
-i
option to print parseable assigned IPs of cluster/client nodes incluster list
command - update the following dependency libraries:
github.com/aerospike/aerospike-client-go/v6 v6.6.0
github.com/aws/aws-sdk-go v1.44.143
golang.org/x/crypto v0.3.0
golang.org/x/term v0.2.0
golang.org/x/sys v0.2.0
- fix naming conventions
- ams exporter fix AWS installation
- add client attach option to detach from stdin (do not terminate node command on exit)
- make base install script retry once
- small improvement in exporter installation procedure
- change exporter download URL to use artifacts download URLs
- added option
template vacuum
to remove any leftover template containers/instances from failed template creation - template vacuuming will auto-run if templating fails, unless
--no-vacuum
is specified - update download URL to use download.aerospike.com
- disable node jupyter client due to compatibility issues
- add vscode client with java,go,python,dotnet sdks
- improve shell parsing for
aws
backend forattach shell -- ...
- install best-practices script on
aws
backend when deploying clusters- thp, min_free_kbytes, swappiness
- bugfix:
data insert
functions usedrand.NewSource()
without thread safety - bugfix:
cluster start
would not work on partial start (some nodes only) due to failure infixMesh
code N/A ip handling - hide
client add
option, as most clients have a specific OS:Ver requirement, making this option more annoying than useful - experimental
jupyter
client added withgo,python,java,node,dotnet
kernels and Aerospike client libraries - experimental
trino
client added - fix
net loss-delay
in source being client bug - adjust installer downloader to new 6.2 Aerospike naming convention
- bump version of all dependencies to latest
- resolves a number of known issues in golang/x/crypto, golang/x/term and golang/x/sys
- add support for pre-selected eu-central-1
- add ability for AWS backend to automatically lookup AMIs for any region using DescribeImages
- add
rest-api
command to allow for using AeroLab as a rest-api webserver (basic, not full rest-api) instead of cli interface - error handling improvements
- minor flow bugfixes
- package
aerolab
aspkg
for MacOS,deb
for debian/ubuntu,rpm
for rhel/centos and genericzip
for linux
- update Aerospike client libraries to latest versions
- New Features:
- add
ams
client installation system - add option where
client start
andcluster start
will execute all scripts under/opt/autoload
to allow for 3rd-party script installations - add
client configure
option to allow for post-create configuration of certain clients, likeams
- add
cluster add
option, to allow for adding extra features, for exampleams
- add
cluster add exporter
to install exporter in clusters (amd64 only for now)
- add
- Improvements:
- make
client attach
command and link it toattach client
- make
- Bug fixes:
- support installing StartScript in
client add tools
- fix "newclient.sh" for generating skel source files for new client development
cluster start
with multiple clusters would not fix mesh config properly, nor start Aerospike
- support installing StartScript in
- New Features:
- support arm deployments
- Improvements:
- insert/delete data support running from client machine
- make mesh mode default
- Bug fixes:
- do not require features file on CE
- Bug Fixes
- fix documentation typos
- fix zsh completion system
- New Features
- add options to deploy client machines (AeroLab client, AeroLab attach client, backend support for server/client selector, files command support, TLS command support)
- clients: base, aerospike-tools
- add client command documentation
- add options to deploy client machines (AeroLab client, AeroLab attach client, backend support for server/client selector, files command support, TLS command support)
- Improvements
aerolab xdr connect
command: add support for cross-region AWS backend
- add nodeExpander:
- (node list can now be: 1-10,15,-3 - i.e. 1 to 10, node 15, not node 3)
- (or: ALL,-5 - i.e. all nodes except node 5)
- bugfix in ranges in
files sync
- fix multiple completion bugs
- add useful print of config for TLS generate command
- add support for CentOS / RHEL-based distros v 7 and 8 in aws
- add option to rename hostname of nodes to clusterName-nodeNo
- cleanup command line interface (changes cli usage)
- make-cluster distro version help page: remove CentOS 6 and add CentOS 8 and Ubuntu 22.04 to supported values
- use submodules for common functions and methods
- remove support for CentOS 6 / RHEL 6
- add 'edit' command line option for quick-editing a single file
- add 'sync' option for quick-syncing of files/directories from one node to other nodes
- make 'download' and 'upload' work on whole directories, recursively, not just files
- update readme and help pages
- update scripts/
- make help pages work without verifying if backend is working
- install a script to run before Aerospike starts and after it stops
- add basic troubleshooting tools to templates
- add json output support to template and cluster list
- bash completion and
zsh
completion
make-cluster
andcluster-grow
: automatically addcluster-name
toaerospike.conf
unless specified not to by the-O
switch- remove dependency on obsolete
ioutil
package - bump to latest
golang
version for compile - cgo minimum macOS version is locked during build
- small improvements in build and test scripts
- run
conf-fix-mesh
automatically oncluster-start
- run
start-aerospike
oncluster-start
- make
conf-fix-mesh
work on partially-up clusters
- fix
make-xdr-clusters
to support v6 of Aerospike - fix bug in
cluster-grow
re discovery of versions - fix bug in
cluster-grow
re installation on non-ubuntu script - add check in
cluster-grow
andmake-cluster
to confirm that distro version is selected if distro isn't ubuntu - add early check in
cluster-grow
andmake-cluster
- if requested version does not exist, error early, with a meaningful message - add the
make-cluster -v 5.7.*
version lookup option information to help pages - store deployed Aerospike version in
/opt/aerolab.aerospike.version
- deprecate
-5
switch for version selection inxdr-connect
- add
xdr-version
selector inxdr-connect
, addauto
option for auto-discovery - add
restart-source
option inxdr-connect
with default of 'yes' to allow for auto-restarting of source on XDR static configuration - bring version discovery features from
make-cluster
intoupgrade-aerospike
- documentation cleanup
- fix version discovery mechanism
- add option for specifying partial version, for example
-v '4.9.0.*'
will find and use latest4.9.0.
version - added command
list-versions
to quickly lookup Aerospike versions, with switches for easy sorting and filtering, seelist-versions help
for more details
- bugfix: AWS backend using ubuntu 20.04 image correctly now
- AWS backend make "waiting for node to come up" messages more explicit
- add option in insert-data and delete-data to choose Aerospike library version (4|5)
- deploy-container move to ubuntu 20.04
- add basic tools to Aerospike server containers
- set basic ubuntu version to 20.04
- update version discovery algorithm to allow for new naming conventions
- add AWS backend ubuntu 20.04 discovery options
- comment out paxos-single-replica-limit in conf files (obsolete as of v6 of Aerospike)
- fix apt unattended install requirement
- fix dpkg force confold for unattended upgrades
- change gen-tls-certs to use 2048-bit keys
- remove lxc backend
- code cleanup, lint
- move to semantic versioning
- add helper scripts
- cleanup documentation
- remove obsolete functions
- rename binaries
- move to go modules with versioning
- fix osx-aio discovery mechanism
- add auth mode external to insert/delete data
- add client warmup(100) to insert/delete data
- recompile with Aerospike library v5
- fix check in AWS backend for public IP
- fix TLS - new requirements - cannot use Common Name any more
- new Aerospike website broke artifacts download links. This works around the problem.
- satisfy libcurl4 dependency for asd 5.1+
- improvement: will now check if instance in AWS has public IP assigned before attempting to use the variable
- insert-data now allows specifying to insert data only to X number of partitions and/or nodes, or to specify exact partition numbers to insert data to
- fix clash in switches in net-loss-delay
- error handling improvement: add handling of wrong docker image names
- updated templates to all have default-ttl 0
- updated dependencies to latest version
- fix support for running AeroLab via symlinks or from a PATH env var
- insert-data now supports specifying write policy (insert only, update, update_only, replace, replace_only)
- new option: delete-data, including durable delete
- packet net-loss-delay function now allows to specify -D to implement rules on destination
- net-block now allows to specify probability (partial packet loss, without EPERM issues if used on INPUT - destination)
- add option to specify TTL in insert-data function
- fix multicast mode deployments (broke in 2.53)
- make cluster-name option inclusive, not exclusive
- add option to automatically add cluster-name to aerospike.conf
- add support for aerospike 5.1+
- fix fox issues with 2.52
- allow installation on ubuntu 20.04 and centos 8
- added more packages to auto-preinstall for deploy-container
- deprecated deploy-amc
- new feature: deploy-container
- added 'latest' recognition fix for Aerospike version 5
- insert-data multithread switch fix
- add OS discovery for aerospike 5+
- fix links in AeroLab downloads
- NEW: xdr-connect supports xdr in asd v5+, using the '-1' switch
- fixed -u switch in insert-data
- fixed setting correct writepolicy on Aerospike insertData
- minor bugfixes
- shrunk binary size to 12MB from 56MB
- AWS BACKEND FIX - small bug when dealing with IP address of nodes
- attempt to install python3-setuptools as well as python3-distutils - because ubuntu loves making changes
- updated dependency versions and aerospike library to latest
- added message on conf-fix-mesh to inform user that Aerospike must be restarted
- handle invalid command line parameters without crashing
- correctly identify latest version of aerospike/amc when asked to install latest
- added -A to make-cluster, to allow for fix of access-address if using AWS backend
- AWS support will now ignore instances in 'terminated' state, as it should
- AWS auto-discovery of AMIs based on default region in ~/.aws/config
- AWS updated AMIs
- AWS backend - can now specify subnetID
- fix issue with directory creation make-cluster
- fix critical bug with CentOS deployments
- fix critical bug in ubuntu deployment
- OPS-3268 - fixed auto-discovery of versions after ordering change in artifact webserver
- fix for python3-distutils dependency in old ubuntu versions
- large number of small typo fixes for messaging and error reporting
- OPS-3222 - fix naming in help pages
- OPS-3237 - provide warning if Aerospike 4.6+ is used and feature file not provided
- fixed never-ending template builds for CentOS 7 - disabled firewall control (net-loss and rate control) on centos builds
- added AMC support for versions <4 (versions 4+ already work) to deploy-amc
- fixed critical bug with version numbers in deploy-amc, cluster-grow, make-cluster, upgrade-aerospike
- upgradeAerospike feature
- netLoss - net-loss-delay command allow to specify network latency on a node (delay) or packet loss to be introduced, or limit max link speed
- docs: TRAFFIC_CONTROL.md, ADVANCED_LOOP.md
- numerous fixes to docker backend support for privileged containers
- fixed bug in aerolab download, which would malform parts of downloaded file (docker exec pseudo-tty issue)
- insert-data TLS support
- docker privileged run switch
- numerous fixes for aws support
Fixes:
- obfuscated full dev path from panics
- added error handling to parse command line params function
- command line parameter parser now accepts bool parameters without value. No need for '-f 1', can just do '-f'
- node-attach now allows to run the same command across multiple nodes, examples:
- node-attach -l all -- /some/command
- node-attach -l 1,2 -- /some/command
- NOTE: simply doing node-attach -l 2 - will attach to bash shell on that node, as it used to. Old behaviour has not been changed
Features:
- help now supports --full flag, without which it doesn't print config file parameter examples
Fixes:
- enable-xdr true matches set(s)-enable-xdr=true, which causes addition bug
- help pages should be 'comma-separated', not 'space-separated'
- it says 16.06 in help instead of 16.04
- fix error 401 on enterprise version - show actual useful error
- choosing aerolab make-xdr-clusters -c 4 -a 4 -m test,bar -d ubuntu -i 16.04 -v 4.5.0.3 causes OS version error (-d switch naming collision. Using '-x' now for xdr dc names)
Features:
- cluster-start, cluster-stop, cluster-destroy now accept multiple cluster names as comma-separated values
- cluster-start, cluster-stop, cluster-destroy now accept 'all' to affect all existing clusters
- nuke-template now accepts 'all' in distro, version and aerospike version. Set all 3 to 'all' to nuke all templates
- insert-data now allows user:password
- new version bin/osx-aio released, contains osx binary with embedded linux binary (so that insert-data works without having to specify a linux binary, seamless now)
- checkUbuntuAerospikeVersion fix unchecked errors
- upload had unhandled errors, fixed
- insert-data fixed another unreported error
- insert-data command help updated to make it more clear
- Aerospike Python client fails on ubuntu 18.04 with 'undefined symbol: OPENSSL_sk_num' error. Downgraded all client libraries to use 16.04
- insert-data fixed reporting bug which would report error even if no error was present if the insert was too fast
- insert-data some errors went unreported and were treated as success, fixed
- get-logs should return .log file names
- cluster-list on docker now only prints containers associated with aerolab
- added ldap deployment script and documentation on how to configure aerospike to deploy ldap
- fixed \r location on download progress report
- AWS backend: make-client, net-block, net-unblock, net-list
- AWS backend support - experimental, feature yet not implemented: make-client, net-block, net-unblock, net-list
- data-insert set socketTimeout to 0, timeout to 5 seconds and maxRetries to 2 to improve speed and stability
- created help for how to use AWS plugin
- fix issue with cluster-grow (bug in cluster node list count)
- data inserter (auto-insert) to fill cluster quickly with data, with '-u 1' multithreading, very aggressive and best suitable for inserts up to 200'000 records at a time
- resolved issue with overlayfs (overlay bug, disabled overlayfs, lxc works again)
- made docker default throughout
- modification to conf file are SHOWING \r\n INSTEAD OF JUST \n
- encryption at rest - created documentation on how to do it, provided conf template
- get-logs (download-logs, to download all node logs)
- gen-tls-certs now uses /etc/aeropsike/ssl/{TLS_NAME}/... instead of /etc/aerospike/ssl/... - in preparation for use of multiple TLS certs
- added notes on multiple certificates to the MAKETLS.md documentation file
- copy-tls-certs - copy from one node to another (or cluster->cluster)
- fixed issue with chDir
- added binutils installation as default (will now provide addr2line by default)
- make-cluster: auto-workout ubuntu version required to run that version of aerospike and use that if none specified (instead of trying 18.04 everywhere)
- make-cluster: check file dir paths in template config => create dirs on the fly in container if needed
- chDir (-W) - add option to specify download path for CA cert generation and for download of aerospike tarballs
- fixed: cannot use underscore '_' in cluster/client names, as this results in a container that needs to be removed with 'docker' commands
- added check in docker init() - check not only if docker exists, but also if it's running
- cpu-limit, ram-limit, swap-limit implemented for docker
- *-limit example documentation
- added net-tools and vim as installed by default in each contianer
- minor error message improvements
- fixed: net-list does not format correctly on docker and is slow
- feature: deploy-amc
- feature: make-cluster single-node allows to expose ports to host system
- format cluster-list on docker - add IP assignment information
- make-xdr-clusters used -o in 2 places, fixed, destination-node-count switch is now -a, not -o
- bug with cluster name in gen-tls-certs function
- bug with aerospike start/stop script for docker ubuntu container (no systemd)
- minor bugs and issues
- added feature: aerolab upload -n CLUSTER_NAME -l NODE_LIST -i INPUT_FILE -o OUTPUT_FILE
- added feature: aerolab download -n CLUSTER_NAME -l NODE_LIST -i INPUT_FILE -o OUTPUT_FILE
- NOTE: upload/download small files only, this is highly inefficient as it reads a whole file to RAM before saving it
- In docker, auto-fix log location of Aerospike log in aerospike.conf (no journalctl)
- If target (remote or local) is Darwin, use docker default, otherwise use LXC default
- Fixed Centos creation never finishes for template on CentOS 7
- Fixed custom startup script for Aerospike in CentOS 7 on docker (damn you, docker!)
- fix: dependency check for lxc on bionic, as package names changed :)
- PART OF: docker-ce docker functionality initial EXPERIMENTAL - see FUTURE.md for known bugs
- disabling btrfs as 18.04 has broken btrfs lxc-copy: lxc/lxc#2612
- enabled overlayfs in lxc mode as workaround from btrfs lxc-copy issue
- fix: nuke_template test and add stop before destroy
- fix: cluster-start hangs on exit if '-l' is specified. IP assignment wait fail
- Initial stable golang release