|
1 | | -# feast-feature-server |
| 1 | +# Feast Python / Go Feature Server Helm Charts |
2 | 2 |
|
3 | | -  |
| 3 | +Current chart version is `0.22.4` |
4 | 4 |
|
5 | | -Feast Feature Server in Go or Python |
| 5 | +## Installation |
6 | 6 |
|
7 | | -**Homepage:** <https://feast.dev/> |
| 7 | +Run the following commands to add the repository |
8 | 8 |
|
9 | | -## Source Code |
10 | | - |
11 | | -* <https://github.com/feast-dev/feast> |
12 | | - |
13 | | -## Values |
14 | | - |
15 | | -| Key | Type | Default | Description | |
16 | | -| ---------------------------------- | ------ | ---------------- | ----------- | |
17 | | -| affinity | object | `{}` | | |
18 | | -| fullnameOverride | string | `""` | | |
19 | | -| image.pullPolicy | string | `"IfNotPresent"` | | |
20 | | -| image.repository | string | `""` | | |
21 | | -| image.tag | string | `""` | | |
22 | | -| imagePullSecrets | list | `[]` | | |
23 | | -| livenessProbe.initialDelaySeconds | int | `30` | | |
24 | | -| livenessProbe.periodSeconds | int | `30` | | |
25 | | -| nameOverride | string | `""` | | |
26 | | -| nodeSelector | object | `{}` | | |
27 | | -| podAnnotations | object | `{}` | | |
28 | | -| podSecurityContext | object | `{}` | | |
29 | | -| readinessProbe.initialDelaySeconds | int | `20` | | |
30 | | -| readinessProbe.periodSeconds | int | `10` | | |
31 | | -| replicaCount | int | `1` | | |
32 | | -| resources | object | `{}` | | |
33 | | -| securityContext | object | `{}` | | |
34 | | -| service.port | int | `80` | | |
35 | | -| service.type | string | `"ClusterIP"` | | |
36 | | -| tolerations | list | `[]` | | |
37 | | - |
38 | | ----------------------------------------------- |
39 | | -Autogenerated from chart metadata using [helm-docs v1.11.0](https://github.com/norwoodj/helm-docs/releases/v1.11.0) |
40 | | - |
41 | | - |
42 | | -Docker repository and tag are required. Helm install example: |
43 | 9 | ``` |
44 | | -helm install feast-feature-server . --set image.repository=REPO --set image.tag=TAG |
| 10 | +helm repo add feast-charts https://feast-helm-charts.storage.googleapis.com |
| 11 | +helm repo update |
45 | 12 | ``` |
46 | 13 |
|
47 | | -Deployment assumes that `feature_store.yaml` exists on docker image. Example docker image: |
48 | | -``` |
49 | | -FROM python:3.8 |
| 14 | +Install Feast Feature Server on Kubernetes |
50 | 15 |
|
51 | | -RUN apt update && \ |
52 | | - apt install -y jq |
53 | | -
|
54 | | -RUN pip install pip --upgrade |
55 | | -
|
56 | | -RUN pip install feast |
57 | | -
|
58 | | -COPY feature_store.yaml /feature_store.yaml |
| 16 | +A base64 encoded version of the `feature_store.yaml` file is needed. Helm install example: |
59 | 17 | ``` |
60 | | - |
61 | | -Furthermore, if you wish to use the Go feature server, then you must install the Apache Arrow C++ libraries, and your `feature_store.yaml` should include `go_feature_server: True`. |
62 | | -For more details, see the [docs](https://docs.feast.dev/reference/feature-servers/go-feature-server). |
63 | | -The docker image might look like: |
| 18 | +helm install feast-feature-server feast-charts/feast-feature-server --set feature_store_yaml_base64=$(base64 feature_store.yaml) |
64 | 19 | ``` |
65 | | -FROM python:3.8 |
66 | 20 |
|
67 | | -RUN apt update && \ |
68 | | - apt install -y jq |
| 21 | +## Tutorial |
| 22 | +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. |
69 | 23 |
|
70 | | -RUN pip install pip --upgrade |
71 | | -
|
72 | | -RUN pip install feast |
73 | | -
|
74 | | -RUN apt update |
75 | | -RUN apt install -y -V ca-certificates lsb-release wget |
76 | | -RUN wget https://apache.jfrog.io/artifactory/arrow/$(lsb_release --id --short | tr 'A-Z' 'a-z')/apache-arrow-apt-source-latest-$(lsb_release --codename --short).deb |
77 | | -RUN apt install -y -V ./apache-arrow-apt-source-latest-$(lsb_release --codename --short).deb |
78 | | -RUN apt update |
79 | | -RUN apt -y install libarrow-dev |
| 24 | +## Values |
80 | 25 |
|
81 | | -COPY feature_store.yaml /feature_store.yaml |
82 | | -``` |
| 26 | +| Key | Type | Default | Description | |
| 27 | +|-----|------|---------|-------------| |
| 28 | +| affinity | object | `{}` | | |
| 29 | +| feature_store_yaml_base64 | string | `""` | [required] a base64 encoded version of feature_store.yaml | |
| 30 | +| fullnameOverride | string | `""` | | |
| 31 | +| image.pullPolicy | string | `"IfNotPresent"` | | |
| 32 | +| image.repository | string | `""` | | |
| 33 | +| image.tag | string | `""` | | |
| 34 | +| imagePullSecrets | list | `[]` | | |
| 35 | +| livenessProbe.initialDelaySeconds | int | `30` | | |
| 36 | +| livenessProbe.periodSeconds | int | `30` | | |
| 37 | +| nameOverride | string | `""` | | |
| 38 | +| nodeSelector | object | `{}` | | |
| 39 | +| podAnnotations | object | `{}` | | |
| 40 | +| podSecurityContext | object | `{}` | | |
| 41 | +| readinessProbe.initialDelaySeconds | int | `20` | | |
| 42 | +| readinessProbe.periodSeconds | int | `10` | | |
| 43 | +| replicaCount | int | `1` | | |
| 44 | +| resources | object | `{}` | | |
| 45 | +| securityContext | object | `{}` | | |
| 46 | +| service.port | int | `80` | | |
| 47 | +| service.type | string | `"ClusterIP"` | | |
| 48 | +| tolerations | list | `[]` | | |
0 commit comments