zrepl/docs
Christian Schwarz fb6a9be954 fix encrypt-on-receive with placeholders
fixes https://github.com/zrepl/zrepl/issues/504

Problem:
  plain send + recv with root_fs encrypted + placeholders causes plain recvs
  whereas user would expect encrypt-on-recv
Reason:
  We create placeholder filesytems with -o encryption=off.
  Thus, children received below those placeholders won't inherit
  encryption of root_fs.
Fix:
  We'll have three values for `recv.placeholders.encryption: unspecified (default) | off | inherit`.
  When we create a placeholder, we will fail the operation if  `recv.placeholders.encryption = unspecified`.
  The exception is if the placeholder filesystem is to encode the client identity ($root_fs/$client_identity) in a pull job.
  Those are created in `inherit` mode if the config field is `unspecified` so that users who don't need
  placeholders are not bothered by these details.

Future Work:
  Automatically warn existing users of encrypt-on-recv about the problem
  if they are affected.
  The problem that I hit during implementation of this is that the
  `encryption` prop's `source` doesn't quite behave like other props:
  `source` is `default` for `encryption=off` and `-` when `encryption=on`.
  Hence, we can't use `source` to distinguish the following 2x2 cases:
  (1) placeholder created with explicit -o encryption=off
  (2) placeholder created without specifying -o encryption
  with
  (A) an encrypted parent at creation time
  (B) an unencrypted parent at creation time
2021-12-18 15:12:47 +01:00
..
_static docs: add logo 2017-11-11 23:25:12 +01:00
configuration fix encrypt-on-receive with placeholders 2021-12-18 15:12:47 +01:00
installation docs: apt repo: use sudo in the snippet that sets up the repo 2021-04-17 21:50:36 +02:00
quickstart [#357] docs: update quickstart + tls transport to produce keypairs with subject alternative names 2020-08-22 03:05:30 +02:00
sphinxconf docs: bump copyright 2019-03-30 19:01:34 +01:00
usage/runbooks docs: add runbook on how to migrate sending side to new zpool 2021-11-14 17:34:32 +01:00
.gitignore docs: publishing workflow as script 2017-11-11 23:25:12 +01:00
changelog.rst fix mis-spelled send option for embedded data 2021-11-14 17:34:32 +01:00
conf.py docs: sphinx-versioning would not build master 2017-11-18 21:28:10 +01:00
configuration.rst replication + endpoint: replication guarantees: guarantee_{resumability,incremental,nothing} 2020-07-26 20:32:35 +02:00
gen-sphinx-versioning-flags.py docs: gen-sphinx-versioning-flags.py: implement the stable branch logic used for 0.3.0 release 2020-09-12 14:03:45 +02:00
global.rst.inc docs + readme: actually fix Patreon badge 2020-11-01 16:10:48 +01:00
index.rst [#285] support setting zfs send / recv flags in the config (send: -wLcepbS, recv: -ox) 2021-02-20 17:20:45 +01:00
installation.rst build: rpm + deb targets, build-in-docker targets, CircleCI pipeline rewrite 2020-09-02 21:34:52 +02:00
Makefile build: include docs in release artifacts + use sphinxcontrib-versioning 2017-11-18 16:28:06 +01:00
pr.rst docs: reflect changes in replication_rewrite branch 2018-10-11 18:03:18 +02:00
publish.sh docs / CI: stop creating churn with doc commits & commit as zreplbot@ 2021-07-08 17:07:24 +02:00
quickstart.rst client/signal: Revert "add signal 'snapshot', rename existing signal 'wakeup' to 'replication'" 2021-03-25 22:26:17 +01:00
requirements.txt docs: fix requirements.txt & pin sphinxcontrib-versioning version 2019-09-08 00:47:39 +02:00
supporters.rst send/recv: job-level bandwidth limiting 2021-09-12 20:08:43 +02:00
usage.rst docs: add runbook on how to migrate sending side to new zpool 2021-11-14 17:34:32 +01:00