Releases: dsh2dsh/zrepl
v0.9.7
v0.9.6
v0.9.5
Changelog
- c0db4fb Fix panic in ZFSListMapping after last commit
- 26dc914 Revert "Replace seq(1) by jot(1) for a test"
- 7bb4d64 Recursive snapshots
zfs snaphot -r
- 1a9f8fb Replace seq(1) by jot(1) for a test
- eddfc0f Refactor internal/zfs.NoFilter()
- de26680 Snapshots now created concurrently
- bb54a46 Update dependencies
- d8d78c1 Detect command killed because context timeout
v0.9.4
Changelog
- 9b52675 Redefine configuration of
replication.concurrency.size_estimates
- 2417df1 Redefine configuration of pruning.concurrency
- 7a545e7 Destroy snapshots using ranges
snap[%snap[,snap[%snap]]]…
- 842237e Bump golang.org/x/sys from 0.28.0 to 0.29.0
- fa3ed3a Merge branch 'upstream'
- d6405ae Refactor "configcheck" cmd
- 248ed31 Use github.com/caarlos0/env/v11 instead of internal/util/envconst
- 4fe012a
zrepl status
doesn't need list of snapshots - d8a90e0 Replace by slices.Chunk
- 2d47aa8 golangci-lint: add nilnesserr and usetesting linters
- 0f7f574 Fix prev commit (receiver needs local path)
- 748eb6e Destroy snapshots concurrently
- ca9af4c Create socket dir on startup
- 7890777 Replicate subset of snapshots
- 8601f63 Use internal/replication/driver.Do directly
- 4a0973b Clear job error before running it
v0.9.3
Changelog
- 9a93cde Delete unused "internal/daemon/nethelpers"
- 7e3ddae Fix panic after last change
- 3b37b37 Finally replace old Logger with slog.Logger
- dce07cb Add info about some of resolved upstream issues
- f2bb8c4 Job configurations can be included from multiple files
- ce91a64 Add warning about deprecation of 'grid' pruning:
- b49ccba Bump dependencies
- 4e5df67 Fix zfscmd_platform_test.sh for dash
- 01bb4d6 Faster startup by executing "zfs list" inside singleflight
- 29fb5b4 Refactor "internal/util/bytecounter"
- 4d28699 Delete zfscmd_platform_test.bash,
- c6bc906 Delete internal/zfs/zfscmd/zfscmd-logging-scraper
- 5b35892 Add "sloglint" linter
- d5a8075 First SIGTERM - graceful, second one - stop
- a2c009d Refactor scheduling of all job types
- b1de6b3 Remove unneeded "internal/util/nodefault"
- 22534ac Bump github.com/charmbracelet/bubbletea v1.2.3 to v1.2.4
- e4b2e6a Make SIGTERM graceful stop zrepl
- 8f46550 Refactor graceful stop
- ff871e5 Move internal/daemon/job/reset into internal/daemon/job
- 6168946 One more fix after commit 184b850
- b8235e7 Fix missing pruning for snap jobs
- fc61192 Replace some of ZFSListMapping -> ZFSListPaths
- 9dd0f4c Refactor ZFSListIter -> iter.Seq2[[]string, error]
- 2f62b93 Refactor internal/endpoint.subroot
- d0bacf2 Merge branch 'upstream'
- 184b850 Allow Sender.ListFilesystems returns real placeholders faster
- 3c32817 Bump github.com/stretchr/testify from v1.9.0 to v1.10.0
- ee688af Update FUNDING.yml
- 4709b29 Prevent pruning exec
zfs list
twice - 54cdf67 Merge branch 'master' of github.com:dsh2dsh/zrepl
- 6f1b8e1 Update FUNDING.yml
- cfb3a34 Update FUNDING.yml
- 14e2d0f Create FUNDING.yml
- b886d5f Bump dependencies
- 3755c97 fixup d7ede3f: make format (#851)
v0.9.2
Changelog
- 30950d1 Restore and refactor original logic of Sender.ListFilesystems with placeholders
- af1d2fa Fix initial replication (#8)
- 123e81e Switch logging subsystem to slog
- 8020ad7 Cleanup internal/logger
- 295abd0 Remove "not_replicated" from default FreeBSD config
- 0655ae8 golangci-lint: remove "SA9003:" exception
- 476b345 Make "wrapcheck" linter happy
- 6374ba2 Make "errorlint" linter happy
- 89b82f3 Make "gocritic" linter happy
- 9e63658 Make "gofumpt" linter happy
- 4372f92 Make "usestdlibvars" linter happy
- 4d2ff17 Make "unconvert" linter happy
- 1493e5b Remove experimental (and useless) send/recv semaphore
- 6562499 The pruning now prunes filesystems concurrently
- 93aabaf Speedup pruner.doOneAttempt
- ce31acc Speedup SnapJob.doPrune
- 1137941 Refactor SnapJob.doPrune
- f24f0c4 Refactor "internal/daemon/pruner"
- 3e575da Speedup Receiver.ListFilesystems
- 9b91e31 Speedup Sender.ListFilesystems
- e46b6a0 Fix Receiver.ListFilesystems includes root fs
- 8a7c884 Speedup ListFilesystems endpoint
- 5c55ea9 Always show replication remaining time
- d12ab45 Remove check
zfs recv
supports save the partially received state - 558ec6c Remove check
zfs send
supports-t receive_resume_token
- 5e010df Remove check zfs CLI supports encryption
- 81b84e4 Remove check
zfs destroy
support multiple snapshots
v0.9.1
Changelog
- 2114725 zrepl: move exprimental recv semaphore out of zfscmd
- 4f2e502 zrepl: log error output of
zfs recv
- 96634dc Add experimental recv semaphore
- 47571a4 Change logging of WeightedReader
- 6c630ba Include "dist" folder into release tar.gz
- ba322cd Move experimental send semaphore from Sender into push/source jobs
- 65f8449 Remove experimental recv semaphore added in prev. commit
- 1b5355e Implement experimental send/recv semaphore
- 927dfa2 Replace last "internal/util/semaphore" by errgroup
- aa032f3 Replace bandwidth_limit by execpipe + mbuffer, like
- e179d15 Simplify Receiver.Receive a little
- 5c41631 Change style of Receiver.Receive a little
- 52fde4d Fix showing of "NaN%" instead of "0%"
- 6da71fe Fix false "context canceled"
- 4acf665 Update dependencies
- c5a37f4 Estimate step sizes with one endpoint call,
- 8bdd2aa Always drain Response.Body before closing it
- 9bd26e4 Delete internal/platformtest
- 4ba0575 Merge branch 'upstream' into merge-upstream
- d7ede3f zrepl status: switch back to tview from cview & upgrade to latest (#846)
- bca37c7 README: document patch release procedure (#845)
- 98073c7 build: simplify
make format
, removemake formatcheck
(#843) - f1608ab hearbeatconn: convert dead integration test into Go test (#842)
- dc05cd0 lint: add lint checking for time.Equal (#841)
- 2923009 deb: place bash completion at correct path, using debhelper (#839)
v0.9.0
Breaking changes!!!
-
The project has switched from gRPC to REST API.
This change isn't compatible with old job configurations. Instead of
configuringserv:
for every job, it configures in one place:# Include file with keys for accessing remote jobs and authenticate remote # clients. The filename is relative to filename of this configuration file. include_keys: "keys.yaml" listen: # Serve "sink" and "source" jobs for network access. - addr: ":8888" tls_cert: "/usr/local/etc/ssl/cert.pem" tls_key: "/usr/local/etc/ssl/key.pem" zfs: true
This configuration serves http and https API requests.
tls_cert
and
tls_key
are optional and needed for serving https requests.keys.yaml
contains authentication keys of remote clients:# Clients with defined authentication keys have network access to "sink" and # "source" jobs. The key name is their client identity name. # Authentication token and client_identity for me. - name: "a.domain.com" # client_identity key: "long and secret token"
By default all authenticated clients have remote access to
sink
and
source
jobs. But it can be restricted usingclient_keys
like:jobs: - name: "zdisk" type: "sink" # Restrict access to this job for listed remote clients client_keys: - "key1" - "key2" # and nobody else.
-
All transports has been replaced by
local
andhttp
transports.local
transport configuration looks almost the same:jobs: - name: "zroot-to-zdisk" type: "push" connect: type: "local" listener_name: "zdisk" client_identity: "localhost"
with one exception.
listener_name
now is a remote job name actually.The new
http
transport replaced all network transports. Its configuration
look like:jobs: - name: "zroot-to-server" type: "push" connect: type: "http" server: "https://server:8888" listener_name: "zdisk" client_identity: "serverkey" - name: "server-to-zdisk" type: "pull" connect: type: "http" server: "https://server:8888" listener_name: "zroot-to-client" client_identity: "serverkey"
listener_name
is a job name on the server with type ofsink
orsource
.client_identity
is a key name fromkeys.yaml
. That key will be sent to
the server for authentication and the server must have a key with the same
key
content inkeys.yaml
.name
can be different, becausesink
and
source
jobs use key name asclient_identity
.
Changelog
- 3ec7ada Reload TLS certs on SIGHUP
- e417e53 Fix eval: zrepl_reload: not found
- 14f57c5 Add
zrepl signal reload
command, which reloads TLS certificates. - 8190361 Add ability to restrict remote access to sink and source jobs
- 5ab39f5 Update dependencies
- 3409103 Delete some unused code
- 38acff9 Fix some of shellcheck warnings and remove stdinserver
- 622ecbc Delete empty pdu.ReceiveRes
- 51ead1a Delete pdu.SendCompletedRes
- 527ed1d Delete pdu.ListFilesystemReq
- e9e0041 Remove dependency on github.com/kr/pretty
- 0b08515 Delete google.golang.org/grpc and protobuf
- 0391ef8 Delete old transports and rpc
- f70fc52 Delete "internal/daemon/logging/trace" pkg
- bb9ac50 Decorate timeout errors
- 895070a
zrepl configcheck
requires keys too - 769e1a0
zrepl daemon
needs config keys - bae277b Pass the timeout to json client
- 1a690ef Discard everything else after json unmarshal
- 3f867e1 CLI zrepl doesn't need keys.yaml,
- a1d94c8 Switch from gRPC to REST API
- 29ddcf8 Remove unneeded log param from handlers and middlewares
- 864b66c Remove FakeActiveSideDirectMethodInvocationClientIdentity
Full Changelog: v0.8.10...v0.9.0
v0.8.10
Changelog
- 060c26f Merge branch 'upstream'
- cc0f3b1 dist/systemd: remove various Protect* settings (#831)
- e75993e Restore lost ActiveSideStatus.Err
- e35599f Use clock_nanosleep(2) for scheduling instead of time.Timer (#7)
- 738afdc Bump dependencies
- 3c80409 Add optional pre and post hooks for "push" and "pull" jobs (#5)
- de7001d Log zfs errors line by line, instead of one escaped line
- 1636f42 One more refactor of CommandHook
- b1c81f3 Refactor hooks package
- 0303a13 Remove unneeded recursive from sample zrepl.yaml
- 7dbef18 Merge branch 'upstream' into merge-upstream
- 114b1f4 New dataset filter syntax instead of
filesystems
- 20abaa2 devex: manage devtools in a project-local subdirectory + cleanup README (#829)