Example repository demonstrating how to deploy machine learning models with April8 — a GitOps model serving platform built on KServe.
- Add an
april8.yamlto your repo declaring your model deployments - Push to
main - April8's webhook picks it up, downloads your model files, uploads to S3, and creates a KServe InferenceService
- Your model is live at a predictable HTTPS endpoint
| Model | Framework | Task | Notebook |
|---|---|---|---|
anomaly-detector |
sklearn | Network anomaly detection | notebooks/01-sklearn-anomaly-detector.ipynb |
churn-predictor |
xgboost | Customer churn prediction | notebooks/02-xgboost-churn-predictor.ipynb |
sentiment-classifier |
huggingface | Sentiment analysis | notebooks/03-huggingface-sentiment.ipynb |
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
# Generate model files by running the notebooks
jupyter notebook notebooks/After running the notebooks, model files appear in models/. Commit and push to deploy:
git add models/
git commit -m "feat: train and add model files"
git pushSee CLAUDE.md for the full schema reference, framework requirements, tier defaults, and endpoint URL patterns.
version: "1"
project: <team>/<project>
deployments:
my-model:
model: ./models/my-model/ # path to model directory
framework: sklearn # sklearn | xgboost | pytorch | tensorflow | onnx | huggingface
tier: staging # dev | staging | production
mlflow_model: my-model # optional: register in MLflow
resources:
cpu: "1"
memory: "2Gi"
scaling:
min_replicas: 0
max_replicas: 5| Framework | Model file | ServingRuntime |
|---|---|---|
sklearn |
model.joblib |
kserve-sklearnserver |
xgboost |
model.bst |
kserve-xgboostserver |
huggingface |
standard HF directory | kserve-huggingfaceserver |
pytorch |
model.mar |
kserve-torchserve |
tensorflow |
SavedModel 1/ directory |
kserve-tensorflow |
onnx |
model.onnx |
kserve-tritonserver |