Official Helm charts for Curvine projects.
- curvine-csi: CSI Driver for Curvine storage
- curvine-runtime: Curvine distributed multi-level cache system
Add the Helm repository:
helm repo add curvineio https://curvineio.github.io/curvine-doc/helm-charts
helm repo updateSearch available charts:
helm search repo curvineioInstall charts:
# Install Curvine Runtime
helm install curvine curvineio/curvine-runtime
# Install Curvine CSI Driver
helm install curvine-csi curvineio/curvine-csiThis repository uses a clean, efficient architecture:
┌──────────────────────────────────────────────┐
│ curvine-helm Repository (main branch) │
│ - Source code only │
│ - curvine-csi/ (chart source) │
│ - curvine-runtime/ (chart source) │
└───────────────┬──────────────────────────────┘
│
▼
┌──────────────────────────────────────────────┐
│ GitHub Actions Build & Release │
│ - Builds charts from source │
│ - Creates GitHub Releases │
│ - Uploads .tgz packages to Releases │
└───────────────┬──────────────────────────────┘
│
├────────────┬──────────────────┐
▼ ▼ ▼
┌───────────────────┐ ┌────────────┐ ┌────────────┐
│ GitHub Releases │ │ curvine-doc│ │ Users │
│ Store .tgz files │ │ index.yaml │ │ Download │
└───────────────────┘ └────────────┘ └────────────┘
-
Chart Packages (.tgz): Stored in GitHub Releases
- URL:
https://github.com/CurvineIO/curvine-helm/releases/download/{tag}/ - Each release (v0.1.0, v0.2.0, latest, etc.) contains chart packages
- URL:
-
Index File (index.yaml): Stored in curvine-doc repository
- URL:
https://curvineio.github.io/curvine-doc/helm-charts/index.yaml - Contains metadata for all chart versions
- URLs point to GitHub Releases for downloads
- URL:
-
main Branch: Clean source code only
- No build artifacts
- No gh-pages branch needed
# Lint a chart
cd curvine-csi
helm lint .
# Package a chart
helm package curvine-csiCharts are automatically built and published via GitHub Actions:
git push origin mainResult:
- Builds fixed version
0.0.0-dev(or similar) - Updates GitHub Release "latest" (overwrites previous)
- Does NOT sync to curvine-doc by default
- Perfect for testing without polluting version history
git tag v0.1.0
git push origin v0.1.0Result:
- Builds version
0.1.0 - Creates new GitHub Release
v0.1.0 - Does NOT sync to curvine-doc automatically
To publish to curvine-doc:
- Use manual workflow trigger
- Select the tag
- Check "Sync to curvine-doc"
Go to GitHub Actions → "Build and Release Helm Chart" → "Run workflow"
Options:
- ref: Branch or tag to build (e.g.,
main,v0.1.0) - Sync to curvine-doc: Check this to update the public index
Use cases:
- Test a specific branch without syncing
- Update production index after releasing a tag
- Re-sync index if needed
| Trigger | Version Format | Example | Overwrites? | Syncs to curvine-doc? |
|---|---|---|---|---|
| main branch | {base}-dev |
0.0.0-dev |
Yes | No (manual only) |
| v* tag | {tag without v} |
0.1.0 |
No | Manual only |
| Manual | Depends on ref | Varies | Depends | Optional (checkbox) |
curvine-helm/
├── .github/workflows/ # Automated CI/CD
│ └── release.yml
├── curvine-csi/ # CSI Driver chart source
│ ├── Chart.yaml
│ ├── values.yaml
│ └── templates/
├── curvine-runtime/ # Runtime chart source
│ ├── Chart.yaml
│ ├── values.yaml
│ └── templates/
└── README.md # This file
Note: No charts/ directory or gh-pages branch. All build artifacts are in GitHub Releases.
- Developer pushes code (tag or main branch)
- GitHub Actions builds charts and creates Release
- Manual trigger (when ready to publish):
- Downloads current release's .tgz files
- Downloads existing index.yaml from curvine-doc
- Generates new index with
--merge(updates same versions, adds new ones) - URLs in index point to GitHub Releases
- Pushes updated index.yaml to curvine-doc
- Users install from curvine-doc (index) + GitHub Releases (packages)
Contributions are welcome! Please feel free to submit a Pull Request.
See LICENSE file for details.