Skip to content

Releases: dsh2dsh/zrepl

v0.9.7

27 Feb 16:21
76207b1
Compare
Choose a tag to compare

Changelog

v0.9.6

08 Feb 15:06
660d1d8
Compare
Choose a tag to compare

Changelog

v0.9.5

28 Jan 16:18
c0db4fb
Compare
Choose a tag to compare

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

09 Jan 15:53
9b52675
Compare
Choose a tag to compare

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

13 Dec 14:54
9a93cde
Compare
Choose a tag to compare

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

22 Nov 15:34
30950d1
Compare
Choose a tag to compare

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

15 Nov 14:55
2114725
Compare
Choose a tag to compare

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, remove make 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

08 Nov 15:44
3ec7ada
Compare
Choose a tag to compare

Breaking changes!!!

  • The project has switched from gRPC to REST API.

    This change isn't compatible with old job configurations. Instead of
    configuring serv: 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 using client_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 and http 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 of sink or source.

    client_identity is a key name from keys.yaml. That key will be sent to
    the server for authentication and the server must have a key with the same
    key content in keys.yaml. name can be different, because sink and
    source jobs use key name as client_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

28 Oct 14:17
060c26f
Compare
Choose a tag to compare

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)

v0.8.9

21 Oct 14:02
3fadefe
Compare
Choose a tag to compare

Changelog

  • 3fadefe Fix using of filesystems with shell patterns for exclusion (#6)
  • f0547cb Refactor fsmapfilter.go
  • 04fb39f Log DatasetDoesNotExist with Debug level (#4)