From 7cee385f7b233361f87092d86aa62659aa949491 Mon Sep 17 00:00:00 2001 From: Niels de Vos Date: Thu, 14 Sep 2023 17:45:01 +0200 Subject: [PATCH] doc: Add initial design notes for the Health Checker Signed-off-by: Niels de Vos --- docs/design/proposals/volume-condition.md | 25 +++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 docs/design/proposals/volume-condition.md diff --git a/docs/design/proposals/volume-condition.md b/docs/design/proposals/volume-condition.md new file mode 100644 index 00000000000..e1b0acae00f --- /dev/null +++ b/docs/design/proposals/volume-condition.md @@ -0,0 +1,25 @@ +# Suport for CSI `VolumeCondition` aka Volume Health Checker + +## health-checker API + +Under `internal/health-checker` the Manager for health-checking is +implemented. The Manager can start a checking process for a given path, return +the (un)healthy state and stop the checking process when the volume is not +needed anymore. + +The Manager is responsible for creating a suitble checker for the requested +path. If the path a s block-device, the BlockChecker should be created. For a +filesystem path (directory), the FileChecker is appropriate. + +## CephFS + +The health-checker writes to the file `csi-volume-condition.ts` in the root of +the volume. This file containse a JSON formatted timestamp. + +A new `data` directory is introduced for newly created volumes. During the +`NodeStageVolume` call the root of the volume is mounted, and the `data` +directory is bind-mounted inside the container when `NodePublishVolume` is +called. + +The `data` directory makes it possible to place Ceph-CSI internal files in the +root of the volume, without that the user/application has access to it.