vertica-kubernetes
vertica-kubernetes copied to clipboard
feat(annotation): allow to disable depot volume management
Introduce annotation vertica.com/disable-depot-volume-management: "true"|"false"
Its purpose is to disable volume management for the depot volume, thus allowing specific scenarios such as providing the Depot as an ephemeral PVC for scratch storage, distinct from a regular PVC (with independent lifecycle) and from an EmptyDir (residing directly on the host OS filesystem).
We use it because our ephemeral storage is a local PV bound by an ephemeral PVC and it needs to have the same lifecycle as our pod (destroyed when the pod is destroyed, created when the pod is created) and is co-located on the same node, so it can't be carried across node changes.
- EmptyDir does not work because EmptyDir specifically uses the k8s host filesystem
- a regular PVC does not have its lifecycle managed properly by the StatefulSet when nodes disappear
- a PVC that is directly an ephemeral makes the cut
- other storage options may make the cut
We chose to apply this change because it's the simplest in terms of code paths and is quite well circumscribed. Without this annotation, the operator behaves exactly as it did before.