master (N/A)
- Restart improvements
v0.19.6 (2024-09-26)
- Fix for member discovery during leader election
v0.19.5 (2024-09-02)
- Security fixes
v0.19.4 (2024-08-13)
- Bump Go version (1.22.6) and dependencies for CVE fixes
v0.19.3 (2024-07-08)
- Bump Go version (1.22.5) and dependencies for CVE fixes
- Bump Go version (1.22.4) and dependencies for CVE fixes
v0.19.2 (2024-06-07)
- Fix for Docker default Network Mode
- Bump Go version (1.22.3) and dependencies for CVE fixes
v0.19.1 (2024-04-20)
- Bump Go version (1.22.2) and dependencies for CVE fixes
- Fix issue with restart if member is using 'cluster.start-agent=false' feature
- Remove MacOS and Windows support
v0.19.0 (2024-03-11)
- Remove deprecated ArangoSync component and ActiveFailover mode
- Bump Go version (1.21.8) and dependencies for CVE fixes
v0.18.3 (2024-03-05)
- Mark ArangoSync component as deprecated
- Do not allow starting ArangoDB v3.12+ with ArangoSync component
- Do not allow upgrade if the cluster is using ArangoSync component (if the new version is v3.12 or newer)
- Bump Go version (v1.21.6) and dependencies for CVE fixes
v0.18.2 (2024-02-13)
- Fix waiting for local slaves to terminate
v0.18.1 (2024-01-26)
- Add version meta-info for Windows binary
v0.18.0 (2024-01-19)
- Redirect HTTP server warnings into log file, skip TLS handshake errors
- Bump Go version (v1.21.5) and dependencies for CVE fixes
- Update setup.json config on relaunch with current enumeration of running servers
- Mark activefailover mode as deprecated
- Do not allow starting ArangoDB v3.12+ in active-failover mode
- Do not allow upgrade of active-failover mode if the new version is v3.12 or newer
- Adjust tests to skip active-failover mode for v3.12
v0.17.2 (2023-11-23)
- Bump Go version (1.21.4) and dependencies for CVE fixes
- Use proper semver tags for releases
0.17.1 (2023-09-07)
- Retry server upgrade if requested by exit code (EXIT_UPGRADE_REQUIRED)
- Fix possible deadlock and goroutine leak while waiting for child process termination
- Change INF level to WRN or ERR when child process terminated with non-zero
- Use proper semver tags (vX.X.X) for releases
0.17.0 (2023-08-07)
- Update go to 1.20.7 to fix known CVEs
0.16.0 (2023-07-21)
- Add sanity check for pass-through args usage
- Fix printing --starter.instance-up-timeout instead of hardcoded value
- Fix context handling in WaitUntilStarterReady for tests
- Show error when user tries to change value of "persistent" option
- Proper leader election and cluster upgrade without using observe and TTL features
0.15.8 (2023-06-02)
- Add passing ARANGODB_SERVER_DIR env variable when starting arangod instances
- Improve ArangoDB version detection
- Update containerd package
- Update go to 1.20.3, add vulncheck to pipeline
0.15.7 (2023-02-17)
- Improve deprecated notice for old passthrough flags
- Improve detection of arangod binary when running local installation (use --server.use-local-bin)
- Upgrade base Alpine image and Go dependencies to fix CVEs
- Remove
netgo
build tag for Windows to disable new Go resolver behaviour: golang/go#57757 - Add
rocksdb.encryption-key-generator
CLI option - Add docker container name auto-detection when running under cgroups v2 unified hierarchy mode
0.15.6 (2023-01-20)
- Fix restarting cluster with arangosync enabled
- Upgrade Go to v1.19.4 to fix CVEs
- Fix passing-through boolean flags to arangosync
0.15.5 (2022-09-19)
- Fix project CI: linter, tests, build, release
- Add pass-through options usage hint
- Return correct exit code when wrong CLI params supplied
- Cleanup Travis config and make it use the list of actual ArangoD versions
- Add documentation header to generated command files
- Add support for ArangoD exit codes. Do not try to restart instance if exit code is unrecoverable
- Show process output in case there was an error during process startup
- Deprecate --feature.jwt.rotation CLI option
- Add support for config file
- Upgrade to Go 1.17.13 and alpine3.16 for build image
- Unpin x/sys pkg and upgrade dependencies to mitigate CVEs
0.15.4 (2022-03-22)
- Use github.com/golang-jwt/jwt
- Upgrade Go version to 1.17.5
0.15.3 (2021-10-25)
- Fix use of --args.all together with --args. ( will override all flags in all)
0.15.2 (2021-09-03)
- Disable Maintenance Mode after upgrade, before health check
0.15.1 (2021-07-29)
- Allow to pass environment variables to processes and standardize argument pass (--envs..= and --args..=)
- Extend JWT Generator functionality by additional fields
- Do not run ResignLeadership when upgrading from <= 3.6.14 or 3.7 with <= 3.7.12.
- Fixed upgrade for active failover when there are nodes without single server.
- Upgrade Go version to 1.13 for TLS 1.3 support
- Fixed wrong error message.
- Fixed race condition in Single Server upgrade
- Implement special upgrade procedure for upgrading from 3.4.6
- Move to alpine 3.9 for Docker image
- Make tests more stable
- Wait for killed processes
- Get system dependent information
- Gochache enabled
- Updated travis go to 1.12
- Process termination is either Info or Error
- implemented info for starter.address
- TLS documentation fixes
- Operation with TLS verified docker containers implemented
- JWT secret is handed to arangod containers using server.jwt-secret-keyfile
- Amend starter upgrade procedure for .tar.gz distributions
- Building of ARM64 executables
- Polish documentation
- Implement that in Docker mode the ArangoDB license key is passed on to sub-containers.
- Fix finding the storage engine if the master does not run a dbserver.
- Fix --dbservers.* passthrough option for active-failover setup.
- Polish documentation.
- Fix tests by increasing a timeout.
- Redo previous release because github was offline. No other changes.
- Do not use --javascript.copy-installation for 3.3.19.
- Do not use --javascript.copy-installation for 3.3.18 any more.
- Increase timeout when checking instances for readiness and make it configurable.
- Starter cluster configuration no longer written to
setup.json
when it has not changed. - Added advertised endpoint to coordinators and active failover servers.
- Give option --javascript.copy-installation to versions of ArangoDB which have it.
- Fixed a bug in the RECOVERY procedure which was declined if a new address was used for the replacement starter.
- Add retries to make active/failover tests more stable.
- Updated go-drivers and go-certificates libraries.
- Fixed potential error in database version check when running Starter on docker.
- Fixed dangling container used to check database version when running Starter on docker.
- Database upgrade procedure has changed.
It is now much more automated and can be triggered using
an
arangodb upgrade --starter.endpoint=...
command. See Upgrading Starter Deployments for details. - Added
arangodb remove starter
command to remove a machine from a cluster in a controlled manor. See ArangoDB Starter Removal Procedure for details. - Changed default value of
--server.storage-engine
frommmfiles
to an empty string. For deployments using ArangoDB 3.3 or earlier the effective default is stillmmfiles
. For deployments using ArangoDB 3.4 or higher,rocksdb
is the default storage engine.
- Starter now writes it log output to file, unless you set the
--log.file
option tofalse
. In this change, a new logging component is used, that results in some changes in the way the log messages appear in the log output. Also coloring of the logs has been slightly changed. Other new command line options are--log.console=<bool>
to enable/disable logging to the standard output and--log.color=<bool>
to enable/disable coloring log output. By default log output is using color when there is a terminal attached to the standard input of the process and the OS is not Windows. - Fixed
arangodb start
command. (#112)
- Solved problem with agency supervision mode in database auto-upgrade API.
- Solved problem connection to agency when using TLS & authentication.
- Changed TLS algorithm for
-ssl.auto-key
from RSA (2048 bits) to ECDSA (P256
curve). - Changed default ECDSA curve used by
arangodb create tls ...
fromP521
toP256
. - Log text showing the address the starter is listening on has been changed from "Listening on ..." to "ArangoDB Starter listening on ...".
- Solved problem where starter did not properly log a resilientsingle server ("Your resilient single server can now be accessed ...") when leadership challenge was still ongoing.
- Fix port binding check when using
--starter.host
. It used to check against theany
interface, now it checks against--starter.host
.
- For
activefailover
deployments, the message where to reach your database is now only shown for the current leader. - Added SystemD example. See
examples/systemd/README.md
. - Added
--log.dir
option to configure a custom directory to which all log files will be written. - It is no longer allowed to use
log.file
as a passthrough option. - Added
--starter.host
option, to bind the HTTP server to a specific network interface instead of the default0.0.0.0
. - Added
POST /database-auto-upgrade
support to perform a rolling upgrade of all servers (with single--database.auto-upgrade
restart) - Renamed mode option
resilientsingle
toactivefailover
. (resilientsingle
is being supported as alias for a while) - Added support for log file rotation for started server components.
- Added support for running datacenter to datacenter replication servers (
arangosync
) from the starter. - Changed increment for TCP ports (used when running multiple starters on same machine (e.g
--starter.local
)) from 5 to 10. An increment of 10 is needed to run datacenter to datacenter replication servers. If you have an existing cluster that is using--starter.local
and you also want to enable datacenter to datacenter replication, you must create a new cluster. - Added support for environment variables to act as commandline arguments.
E.g.
ARANGODB_STARTER_DATA_DIR=/tmp/foo arangodb
equalsarangodb --starter.data-dir=/tmp/foo
.
- Using shard
http.Client
to reduce the number of used file descriptors.
- Support building in a directory other than the source directory. Set
BUILDDIR
(#98). - Testing a server instance now includes testing for the expected server role.
- On linux, also look for
arangod
in/usr/local/sbin
(#93). - Fixed potential for hang in starter behavior.
- Starting with mode
resilientsingle
and--starter.local
will no longer limit the number of single servers to 2.
- Remove
server.threads
&javascript.v8-contexts
from generatedarangod.conf
files. Both settings are nolonger needed.
- Added support for
resilientsingle
mode. A configuration of 2 single servers that replicate and take over when needed. - Removed
--cluster.my-local-info
option from commandline ofarangod
servers. It is obsolete. - Fixed combination of
--starter.local
&--cluster.agency-size=1
(do not use for production!)
- Added
--version
option andversion
command to show version of the starter.
- Added
--starter.disable-ipv6
option to cope with environments where IPv6 is actively disabled.
- Update to go 1.9.0
- Fixed registration for callback (in agency) by unreachable local slaves.
- Fixed port allocation in case of using
--starter.address=127.0.0.1
with--starter.local
(#79)
- Added
--docker.imagePullPolicy
option - Allow multiple
--starter.join
arguments. - Fixed high CPU load (#75)
- Avoid using port offsets when using different
--starter.port
s that cause no overlap of port ranges. - Cluster configuration is updated to all starters at regular intervals after the starters have bootstrapped and reached a running state.
- After starters have bootstrapped, they elect a starter to be master over the cluster configuration. All changes (addition/removal) are forwarded to this master. When the master is gone for too long, a new master is elected.
- Fixed cluster setup in case where starters use different
--starter.port
s (#68). - The
--rocksdb.encryption-keyfile
is now passed through the database servers in thearangod.conf
file (it was passed as command line argument before). If you use this setting in an existing cluster, make sure the manually add this setting to allarangod.conf
files before restarting the starters. - Added
--starter.debug-cluster
option that adds a trail of status codes to the log when starting servers. (intended mostly for internal testing) - Made database image used in test configurable using
ARANGODB
make variable. - Added
--docker.tty
option for controlling the TTY flag of started docker containers. - In cluster mode the minimum agency size has been lowered to 1 (DO NOT USE IN PRODUCTION).
- Added
start
command to run starter in detached mode. - Added
stop
command to stop a running starter using its HTTP API.
- Added path containing starter executable to search path for
arangod
.
- Added
--rocksdb.encryption-keyfile
option. - Added pass through options. See README.
- Changed
--data.dir
option to--starter.data-dir
- Added
--server.storage-engine
option, used to change the storage engine of thearangod
instances (#48) - Changed option naming scheme (see
arangodb --help
for all new names). Old names are still accepted. - Renamed github repository from
github.com/arangodb-helper/ArangoDBStarter
togithub.com/arangodb-helper/arangodb
. - When an
--ssl.keyfile
(or--ssl.auto-key
) argument is given, the starter will serve it's API over TLS using the same certificate as the database server(s). - Starter will detect the name of the docker container is it running in automatically (if running in docker and not set using
--docker.container
) - Changed default master port from 4000 to 8528. That results in a coordinator/single server to be available on well known port 8529
- Added
--starter.mode=single
argument, used to start a single server database instead of a cluster (#28) - Starter will check availability of TCP ports (both its own HTTP API & Arangod Servers) (#35)
- Docker container created by the started are given the label
created-by=arangodb-starter
- Added
--starter.local
argument, used to start a local test cluster in a single starter process (#25) - When an
arangod
server stops quickly and often, its most recent log output is shown - Support
~
(home directory) in path arguments. E.g.--data.dir=~/mydata/
(#30) - Changed port offsets of servers. Coordinator -> 1, DBServer -> 2, Agent -> 3.
- Added authentication support (#10)
- Added SSL support (#11)
- Fixed various IPv6 issues (#13)
- Attach starter to existing server processes (#6)
- Use same port offsets on peers running on different machines (#3)