8e5cb5de78
Summary: Formerly, we were updating the metrics every 15 seconds. We were facing a couple of issues doing it manually: - Outdated metrics in case of a one-time crash - Metrics getting exposed for deleted PVs Instead of fixing the bugs, I preferred to do it the right way. As per `python-prometheus` docs: > Sometimes it is not possible to directly instrument code, as it is not in your control. This requires you to proxy metrics from other systems. To do so you need to create a custom collector... Test Plan: - Deploy on a cluster with existing rawfile PVs - Send request to `:9100/metrics` and assert that metrics are exposed - Delete a PV, and assert that its metrics disappear Reviewers: h.marvi, bghadiri, sina_rad, mhyousefi Reviewed By: h.marvi, bghadiri, sina_rad Differential Revision: https://phab.hamravesh.ir/D815 |
||
---|---|---|
csi | ||
deploy/charts/rawfile-csi | ||
orchestrator | ||
protos | ||
templates | ||
.dockerignore | ||
.gitignore | ||
.gitlab-ci.yml | ||
CODE_OF_CONDUCT.md | ||
consts.py | ||
Dockerfile | ||
GOVERNANCE.md | ||
LICENSE | ||
MAINTAINERS | ||
metrics.py | ||
rawfile_servicer.py | ||
rawfile_util.py | ||
rawfile.py | ||
README.md | ||
remote.py | ||
requirements.in | ||
requirements.txt | ||
SECURITY.md | ||
util.py |
RawFilePV
Kubernetes LocalPVs on Steroids
Install
helm install -n kube-system rawfile-csi ./deploy/charts/rawfile-csi/
Usage
Create a StorageClass
with your desired options:
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: my-sc
provisioner: rawfile.hamravesh.com
reclaimPolicy: Delete
volumeBindingMode: WaitForFirstConsumer
Features
- Direct I/O: Near-zero disk performance overhead
- Dynamic provisioning
- Enforced volume size limit
- Thin provisioned
- Access Modes
- ReadWriteOnce
ReadOnlyManyReadWriteMany
- Volume modes
Filesystem
modeBlock
mode
- Volume metrics
- Supports fsTypes
- Online expansion: If fs supports it (e.g. ext4, btrfs)
- Online shrinking: If fs supports it (e.g. btrfs)
- Offline expansion/shrinking
- Ephemeral inline volume
- Snapshots: If the fs supports it (e.g. btrfs)