Skip to content

Commit ea37d8f

Browse files
authored
docs: Improve Operator-related docs in how-to guides (feast-dev#5303)
docs: Improve Operator docs in how-to guides Signed-off-by: Tommy Hughes <[email protected]>
1 parent f04872a commit ea37d8f

File tree

8 files changed

+65
-21
lines changed

8 files changed

+65
-21
lines changed

docs/how-to-guides/running-feast-in-production.md

Lines changed: 32 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -203,27 +203,48 @@ feature_vector = fs.get_online_features(
203203
).to_dict()
204204
```
205205

206-
### 4.2. Deploy Feast feature servers on Kubernetes (Deprecated replaced by [feast-operator](../../infra/feast-operator/README.md))
206+
### 4.2. Deploy Feast feature servers on Kubernetes
207207

208-
To deploy a Feast feature server on Kubernetes, you can use the included [helm chart + tutorial](https://github.com/feast-dev/feast/tree/master/infra/charts/feast-feature-server) (which also has detailed instructions and an example tutorial).
208+
To deploy a Feast feature server on Kubernetes, you should use the included [feast-operator](../../infra/feast-operator).
209209

210210
**Basic steps**
211-
1. Install [kubectl](https://kubernetes.io/docs/tasks/tools/install-kubectl/) and [helm 3](https://helm.sh/)
212-
2. Add the Feast Helm repository and download the latest charts:
211+
1. Install [kubectl](https://kubernetes.io/docs/tasks/tools/install-kubectl/)
212+
2. Install the Operator
213213

214-
```
215-
helm repo add feast-charts https://feast-helm-charts.storage.googleapis.com
216-
helm repo update
214+
```sh
215+
### Install the latest release -
216+
$ kubectl apply -f https://raw.githubusercontent.com/feast-dev/feast/refs/heads/stable/infra/feast-operator/dist/install.yaml
217+
218+
### OR, install a specific version -
219+
# kubectl apply -f https://raw.githubusercontent.com/feast-dev/feast/refs/tags/<version>/infra/feast-operator/dist/install.yaml
217220
```
218221

219-
3. Run Helm Install
222+
3. Deploy a Feature Store
220223

224+
```sh
225+
$ kubectl apply -f https://raw.githubusercontent.com/feast-dev/feast/refs/heads/stable/infra/feast-operator/config/samples/v1alpha1_featurestore.yaml
226+
227+
$ kubectl get feast
228+
NAME STATUS AGE
229+
sample Ready 2m21s
221230
```
222-
helm install feast-release feast-charts/feast-feature-server \
223-
--set feature_store_yaml_base64=$(base64 feature_store.yaml)
231+
232+
The above will install a simple [FeatureStore CR](../../infra/feast-operator/docs/api/markdown/ref.md) like the following. By default, it will run the [Online Store feature server](../reference/feature-servers/python-feature-server.md) -
233+
```yaml
234+
apiVersion: feast.dev/v1alpha1
235+
kind: FeatureStore
236+
metadata:
237+
name: sample
238+
spec:
239+
feastProject: my_project
224240
```
241+
{% hint style="success" %} More advanced FeatureStore CR examples can be found in the feast-operator [samples directory](../../infra/feast-operator/config/samples). {% endhint %}
242+
243+
For first-time Operator users, it may be a good exercise to try the [Feast Operator Quickstart](../../examples/operator-quickstart). The quickstart will demonstrate some of the Operator's built-in features, e.g. git repos, `feast apply` jobs, etc.
244+
245+
{% hint style="success" %} Important note: [Scaling a Feature Store Deployment](https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#scaling-a-deployment) should only be done if the configured data store(s) will support it.
225246

226-
This will deploy a single service. The service must have read access to the registry file on cloud storage and to the online store (e.g. via [podAnnotations](https://kubernetes-on-aws.readthedocs.io/en/latest/user-guide/iam-roles.html)). It will keep a copy of the registry in their memory and periodically refresh it, so expect some delays in update propagation in exchange for better performance.
247+
Please check the how-to guide for some specific recommendations on [how to scale Feast](./scaling-feast.md). {% endhint %}
227248

228249
## 5. Using environment variables in your yaml configuration
229250

docs/reference/feature-servers/offline-feature-server.md

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,21 @@ There is a CLI command that starts the Offline feature server: `feast serve_offl
1313

1414
## Deploying as a service on Kubernetes
1515

16-
The Offline feature server can be deployed using helm chart see this [helm chart](https://github.com/feast-dev/feast/blob/master/infra/charts/feast-feature-server).
17-
18-
User need to set `feast_mode=offline`, when installing Offline feature server as shown in the helm command below:
19-
20-
```
21-
helm install feast-offline-server feast-charts/feast-feature-server --set feast_mode=offline --set feature_store_yaml_base64=$(base64 > feature_store.yaml)
16+
See [this](../../how-to-guides/running-feast-in-production.md#42-deploy-feast-feature-servers-on-kubernetes) for an example on how to run Feast on Kubernetes using the Operator.
17+
18+
The Offline feature server can be deployed with a slight modification of the FeatureStore CR -
19+
```yaml
20+
apiVersion: feast.dev/v1alpha1
21+
kind: FeatureStore
22+
metadata:
23+
name: sample-offline-server
24+
spec:
25+
feastProject: my_project
26+
services:
27+
offlineStore:
28+
server: {}
2229
```
30+
{% hint style="success" %} More advanced FeatureStore CR examples can be found in the feast-operator [samples directory](../../../infra/feast-operator/config/samples). {% endhint %}
2331
2432
## Server Example
2533

docs/reference/feature-servers/python-feature-server.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ There is a CLI command that starts the server: `feast serve`. By default, Feast
1010

1111
## Deploying as a service
1212

13-
One can deploy a feature server by building a docker image that bundles in the project's `feature_store.yaml`. See this [helm chart](https://github.com/feast-dev/feast/blob/master/infra/charts/feast-feature-server) for an example on how to run Feast on Kubernetes.
13+
See [this](../../how-to-guides/running-feast-in-production.md#42-deploy-feast-feature-servers-on-kubernetes) for an example on how to run Feast on Kubernetes using the Operator.
1414

1515
## Example
1616

docs/roadmap.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ The list below contains the functionality that contributors are planning to deve
6060
* **Feature Serving**
6161
* [x] Python Client
6262
* [x] [Python feature server](https://docs.feast.dev/reference/feature-servers/python-feature-server)
63+
* [x] [Feast Operator (alpha)](https://github.com/feast-dev/feast/blob/master/infra/feast-operator/README.md)
6364
* [x] [Java feature server (alpha)](https://github.com/feast-dev/feast/blob/master/infra/charts/feast/README.md)
6465
* [x] [Go feature server (alpha)](https://docs.feast.dev/reference/feature-servers/go-feature-server)
6566
* [x] [Offline Feature Server (alpha)](https://docs.feast.dev/reference/feature-servers/offline-feature-server)

infra/feast-operator/README.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,11 @@ its dependencies.
7575
Users can just run kubectl apply -f <URL for YAML BUNDLE> to install the project, i.e.:
7676

7777
```sh
78-
kubectl apply -f https://raw.githubusercontent.com/<org>/feast-operator/<tag or branch>/dist/install.yaml
78+
## Install the latest release -
79+
kubectl apply -f https://raw.githubusercontent.com/feast-dev/feast/refs/heads/stable/infra/feast-operator/dist/install.yaml
80+
81+
## OR, install a specific version -
82+
# kubectl apply -f https://raw.githubusercontent.com/feast-dev/feast/refs/tags/<version>/infra/feast-operator/dist/install.yaml
7983
```
8084

8185
## Contributing
Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
## Append samples of your project ##
22
resources:
33
- v1alpha1_featurestore.yaml
4-
- v1alpha1_featurestore_all_servers.yaml
4+
- v1alpha1_featurestore_with_ui.yaml
5+
- v1alpha1_featurestore_all_remote_servers.yaml
56
#+kubebuilder:scaffold:manifestskustomizesamples

infra/feast-operator/config/samples/v1alpha1_featurestore_all_servers.yaml renamed to infra/feast-operator/config/samples/v1alpha1_featurestore_all_remote_servers.yaml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
1+
# runs an optional remote server container & creates a k8s service for each supported feast component
12
apiVersion: feast.dev/v1alpha1
23
kind: FeatureStore
34
metadata:
4-
name: sample-all-servers
5+
name: sample-remote-servers
56
spec:
67
feastProject: my_project
78
services:
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
apiVersion: feast.dev/v1alpha1
2+
kind: FeatureStore
3+
metadata:
4+
name: sample-ui
5+
spec:
6+
feastProject: my_project
7+
services:
8+
ui: {}

0 commit comments

Comments
 (0)