PVC Annotator
The PVC Annotator is a Panfactum-created addon that periodically applies a set of labels and annotations to PVCs in the same PVC group.
A "PVC group" is a set of PVCs in the same namespace with the same value for the
panfactum.com/pvc-group
label.
This module exists to solve the issue of volumeClaimTemplate
immutability in common
controllers such as StatefulSets. In other words, once a controller such as a StatefulSet
has been created, the labels and annotations for its PVCs can never be updated. This
makes it difficult to adjust PVC settings that depend on PVC labels and annotations
such as those for Velero or the
PVC Autoresizer.
Architecture
This addon is very simple. It is just a CronJob that runs the pf-set-pvc-metadata
command every 15 minutes. This module ensures that the appropriate arguments are passed
to the command.
Usage Notes
We make extensive use of this submodule in our core Panfactum modules such as in kube_stateful_set.
Most of the time you will not need to use this directly. However, we expose it in case you are using a controller that creates PVCs that is not included in the stack.
Providers
The following providers are needed by this module:
-
kubectl (2.0.4)
-
kubernetes (2.27.0)
-
pf (0.0.3)
-
random (3.6.0)
Required Inputs
The following input variables are required:
config
Description: Configuration to pass to pf-set-pvc-metadata. The top-level keys are the panfactum.com/pvc-group label values and the values are the corresponding labels and annotations to apply to all PVCs in the group.
Type:
map(object({
labels = optional(map(string), {})
annotations = optional(map(string), {})
}))
namespace
Description: The namespace the cluster is in
Type: string
Optional Inputs
The following input variables are optional (have default values):
panfactum_scheduler_enabled
Description: Whether to use the Panfactum pod scheduler with enhanced bin-packing
Type: bool
Default: true
pull_through_cache_enabled
Description: Whether to use the ECR pull through cache for the annotator images
Type: bool
Default: true
vpa_enabled
Description: Whether to enable the vertical pod autoscaler
Type: bool
Default: true
Outputs
No outputs.