Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
160c6e8
Add Feast feature store example with Redis CR and feature evolution w…
hsteude May 4, 2026
8ae765c
Simplify notebook: inline feature definitions, single sequential flow
hsteude May 4, 2026
aab21ce
Improve readability: verbose entity query, fix deprecation warning, e…
hsteude May 4, 2026
17a8937
Use write_to_online_store=True on ODFV so efficiency is precomputed i…
hsteude May 4, 2026
e2ccba3
Use default storage class instead of mayastor-no-redundancy
hsteude May 4, 2026
8ace649
Add Production Setup section to notebook
hsteude May 4, 2026
97cc496
Rewrite example as retail return prediction scenario
hsteude May 4, 2026
9bae476
Make prerequisites more prominent: link to README setup steps
hsteude May 4, 2026
6c02a1d
Clarify why 'returned' label is not a Feast feature
hsteude May 4, 2026
b78c2e4
Remove write_to_online_store=True — ODFV materialization fails on Fea…
hsteude May 4, 2026
a6c9bc3
Fix prod recommendations: Redis and parquet are prod-ready on prokube
hsteude May 4, 2026
5fc2af1
Tone down prod recommendations — less explicit about platform specifics
hsteude May 4, 2026
b2fed91
Use the operator-managed remote registry instead of /tmp/registry.db
tmvfb May 4, 2026
566af86
Remove RBAC manifest and docs from examples — platform concern
tmvfb May 4, 2026
e54578a
Add FeatureService to bundle views into a single named endpoint
tmvfb May 4, 2026
00e95d2
Fix istio workaround and ODFV hang for remote registry
tmvfb May 5, 2026
40bd4c5
Fix istio workaround explanation: both envoys are misconfigured
tmvfb May 5, 2026
c9ee8c2
Merge v2 and v3 feast examples
tmvfb May 22, 2026
a569015
feast: remove Istio workarounds, simplify remote mode for operator 0.64
tmvfb Jun 15, 2026
28fee14
feast: drop namespace placeholders, document network policies
tmvfb Jun 15, 2026
02c613f
feast: move infrastructure setup into notebook, no terminal needed
tmvfb Jun 15, 2026
e5bcc85
feast: fix NetworkPolicies — correct label and explicit namespaceSele…
tmvfb Jun 15, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
71 changes: 71 additions & 0 deletions feast/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
# Feast Feature Store Example

A complete example of using [Feast](https://docs.feast.dev/) on prokube for
feature management in ML workflows.

**Scenario:** An online retailer wants to predict whether a customer will
return their next order. The notebook walks through defining customer features,
training a return-risk model, and serving predictions in real time.

## Quick Start

1. Feast must be enabled on your cluster (ask your admin)
2. Clone this repository to your notebook server
3. Open `feast_example.ipynb` from the `feast/` directory and run all cells

The notebook's **Infrastructure setup** cell handles everything automatically:
Redis, secrets, FeatureStore CR, and (for remote mode) NetworkPolicies.

## Registry modes

There are two registry modes. Select one in the notebook when prompted:

| | Local | Remote |
|---|---|---|
| **Registry** | SQLite SQL on `/tmp` (ephemeral) | gRPC server on operator PVC (persistent, shared) |
| **Good for** | Single user, quick iteration | Teams sharing definitions across clients |

## Files

```
feast/
feast_example.ipynb End-to-end notebook (works with both modes)
redis-cr.yaml Redis instance CR (OpsTree operator)
registry/
local/
feast-cr.yaml FeatureStore CR — local SQLite SQL registry
feature_store.yaml Feast SDK config template
README.md Local mode details and trade-offs
remote/
feast-cr.yaml FeatureStore CR — remote gRPC registry server
feature_store.yaml Feast SDK config template
network-policies.yaml CNI-layer NetworkPolicies for isolation
README.md Remote mode details and trade-offs
```

## Architecture

Feast has three stores:

| Store | Purpose | Backend |
|-------|---------|---------|
| **Registry** | Feature definitions (entities, feature views, sources). Written on `feast apply`. | Local: SQLite SQL file. Remote: gRPC server on operator PVC. |
| **Online store** | Latest feature value per entity. Read on every inference — latency critical. | Redis (your `Redis` CR) |
| **Offline store** | Historical feature records for point-in-time joins during training. | Parquet on PVC |

```
┌──────────────────────────────────────┐
│ Your Namespace │
│ │
│ Redis CR (redis-feast) │
│ │
store.apply() ───▶ Registry │
(notebook) │ local: sqlite:////tmp/registry.db │
│ remote: gRPC → operator PVC │
│ │
materialize ──────▶ Redis online store │
│ │
historical ──────▶ Parquet on PVC (offline store) │
features │ │
└──────────────────────────────────────┘
```
Loading