Skip to content

Commit ac49056

Browse files
committed
addt'l operator documentation
Signed-off-by: Tommy Hughes <tohughes@redhat.com>
1 parent b04ec76 commit ac49056

File tree

3 files changed

+36
-5
lines changed

3 files changed

+36
-5
lines changed

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -244,6 +244,8 @@ helm install feast-release feast-charts/feast-feature-server \
244244

245245
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.
246246

247+
> Alternatively, deploy the same helm chart with a [Kubernetes Operator](/infra/feast-operator).
248+
247249
## 5. Using environment variables in your yaml configuration
248250

249251
You might want to dynamically set parts of your configuration from your environment. For instance to deploy Feast to production and development with the same configuration, but a different server. Or to inject secrets without exposing them in your git repo. To do this, it is possible to use the `${ENV_VAR}` syntax in your `feature_store.yaml` file. For instance:

infra/charts/feast-feature-server/README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ A base64 encoded version of the `feature_store.yaml` file is needed. Helm instal
1717
```
1818
helm install feast-feature-server feast-charts/feast-feature-server --set feature_store_yaml_base64=$(base64 feature_store.yaml)
1919
```
20+
> Alternatively, deploy this helm chart with a [Kubernetes Operator](/infra/feast-operator).
2021
2122
## Tutorial
2223
See [here](https://github.com/feast-dev/feast/tree/master/examples/python-helm-demo) for a sample tutorial on testing this helm chart with a demo feature repository and a local Redis instance.

infra/feast-operator/README.md

Lines changed: 33 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,39 @@
11
# Feast Feature Server Helm-based Operator
22

3-
Leverages [operator-sdk](https://github.com/operator-framework/operator-sdk) and the [feast-feature-server helm chart](/infra/charts/feast-feature-server).
3+
This Operator was built with the [operator-sdk](https://github.com/operator-framework/operator-sdk) and leverages the [feast-feature-server helm chart](/infra/charts/feast-feature-server).
4+
5+
## Installation
6+
7+
1. __Install [kubectl](https://kubernetes.io/docs/tasks/tools/install-kubectl/)__
8+
2. __Install the Operator on a Kubernetes cluster__
49

5-
### To run against an K8S cluster -
610
```bash
7-
$ make deploy
11+
make deploy
12+
```
813

9-
# test the operator by deploying a feature server sample CR
10-
$ oc apply -f config/samples/charts_v1alpha1_feastfeatureserver.yaml
14+
3. __Install a Feast Feature Server on Kubernetes__
15+
16+
A base64 encoded version of the `feature_store.yaml` file is required. FeastFeatureServer CR install example:
17+
```bash
18+
cat <<EOF | kubectl create -f -
19+
apiVersion: charts.feast.dev/v1alpha1
20+
kind: FeastFeatureServer
21+
metadata:
22+
name: example
23+
spec:
24+
feature_store_yaml_base64: $(cat feature_store.yaml | base64)
25+
EOF
1126
```
27+
Ensure it was successfully created on the cluster and that the `feature_store_yaml_base64` field was properly set. The following command should return output which is identical to your `feature_store.yaml`:
28+
```bash
29+
kubectl get feastfeatureserver example -o jsonpath={.spec.feature_store_yaml_base64} | base64 -d
30+
```
31+
Watch as the operator creates a running feast feature server:
32+
```bash
33+
kubectl get all
34+
kubectl logs deploy/example-feast-feature-server
35+
```
36+
37+
The `FeastFeatureServer.spec` allows one to configure the [same parameters](https://github.com/feast-dev/feast/tree/master/infra/charts/feast-feature-server#values) as the feast-feature-server helm chart. An example of this can be seen with the included sample [FeastFeatureServer](config/samples/charts_v1alpha1_feastfeatureserver.yaml).
38+
39+
> To install the aforementioned sample FeastFeatureServer, run this command - `kubectl create -f config/samples/charts_v1alpha1_feastfeatureserver.yaml`

0 commit comments

Comments
 (0)