A VolumeAttributesClass with driverName: git.liken.sh carries a
commit and push policy in parameters. Every parameter has a default,
so an empty class arms a volume with the defaults. The controller
refuses a class with an unknown or malformed parameter, naming the
first bad one.
| Parameter | Values | Default |
|---|---|---|
push.quiesce |
A Go duration, at least 5s. The driver commits and pushes after the tree has been quiet this long. |
30s |
push.maxLatency |
A Go duration, at least push.quiesce, or never. The driver pushes when the oldest unpushed commit is this old, whatever the tree is doing. |
5m, or push.quiesce when that is longer |
commit.maxFileSize |
A Kubernetes quantity such as 1Mi, or 0 for no limit. A larger file is not committed and is named in the events and the log. |
1Mi |
commit.author |
Name <email>. The author and committer of every commit. |
git-csi-driver <git-csi-driver@liken.sh> |
ignore |
Comma-separated .gitignore patterns, added to the repository’s own. |
empty |
metadata |
true or false. Whether modes, owners, and empty directories are recorded on refs/git-csi/metadata and replayed at restore. |
true |
Events
| Reason | When |
|---|---|
GitVolumeArmed |
The claim named a class of this driver. |
GitVolumeUnarmed |
The claim names no class of this driver. |
GitVolumePending |
The tree holds paths the driver has not committed. Posted when the set first becomes non-empty. |
GitVolumePushed |
A push succeeded, with the commit and the count of paths. |
GitVolumePushFailed |
A push failed, with git’s error. |
GitVolumeFileSkipped |
A file over commit.maxFileSize was left out of a commit. |
GitVolumeDiverged |
The volume moved to its side branch, after a rejected push or an aborted rebase. |
GitVolumeHealed |
Upstream took the side branch’s work, and the volume is back on its ref. |
GitVolumeSwept |
The sweep removed a work tree nothing had staged for --sweep-after. |
The abnormal gauge
git_csi_volume_abnormal, labeled namespace and volume, is one for
an unarmed volume with pending paths, a failed push, a skipped file, an
unpushed commit older than push.maxLatency, an invalid class, a ref
that moved upstream while the tree held uncommitted writes, a diverged
volume, a ref the remote no longer holds, and an abandoned work tree of
the same repository on the node. The driver’s log says which.
Metrics
Each gauge is labeled namespace and claim.
| Metric | Meaning |
|---|---|
git_csi_armed |
One when a class of this driver arms the volume. |
git_csi_pending_paths |
Paths the last scan found that the driver has not committed. |
git_csi_unpushed_commits |
Commits not yet on the remote. |
git_csi_last_push_timestamp_seconds |
When the last push succeeded. |
git_csi_push_failures_total |
Pushes that failed. |
git_csi_skipped_files |
Files over commit.maxFileSize in the tree. |
git_csi_diverged |
One while the volume pushes to its side branch. |
git_csi_volume_abnormal |
One while anything above is wrong. Labeled namespace and volume, not claim. |