Skip to content

Commit 2b493e0

Browse files
authored
fix: Fix Java helm charts to work with refactored logic. Fix FTS image (#3105)
* fix: Fix Java helm charts to work with refactored logic. Also include gcp/aws in FTS image Signed-off-by: Danny Chiao <[email protected]> * fix helm docs and accidental issues Signed-off-by: Danny Chiao <[email protected]> * fix Signed-off-by: Danny Chiao <[email protected]> * fix Signed-off-by: Danny Chiao <[email protected]> * fix Signed-off-by: Danny Chiao <[email protected]> * fix issues with templates Signed-off-by: Danny Chiao <[email protected]> * fix issues with templates Signed-off-by: Danny Chiao <[email protected]> * fix serving README Signed-off-by: Danny Chiao <[email protected]> * fix go Signed-off-by: Danny Chiao <[email protected]> Signed-off-by: Danny Chiao <[email protected]>
1 parent 0a0c974 commit 2b493e0

File tree

22 files changed

+266
-201
lines changed

22 files changed

+266
-201
lines changed

Makefile

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -363,6 +363,15 @@ build-feature-server-java-docker:
363363
-t $(REGISTRY)/feature-server-java:$(VERSION) \
364364
-f java/infra/docker/feature-server/Dockerfile --load .
365365

366+
build-java-docker-dev:
367+
make build-java-no-tests REVISION=dev
368+
docker buildx build --build-arg VERSION=dev \
369+
-t feastdev/feature-transformation-server:dev \
370+
-f sdk/python/feast/infra/transformation_servers/Dockerfile --load .
371+
docker buildx build --build-arg VERSION=dev \
372+
-t feastdev/feature-server-java:dev \
373+
-f java/infra/docker/feature-server/Dockerfile.dev --load .
374+
366375
# Documentation
367376

368377
install-dependencies-proto-docs:

examples/java-demo/README.md

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -52,12 +52,12 @@ For this tutorial, we setup Feast with Redis, using the Feast CLI to register an
5252
```bash
5353
minikube addons enable gcp-auth
5454
```
55-
3. Add Feast's Java feature server chart repo
55+
2. Add Feast's Java feature server chart repo
5656
```bash
5757
helm repo add feast-charts https://feast-helm-charts.storage.googleapis.com
5858
helm repo update
5959
```
60-
4. Modify the application-override.yaml file to have your credentials + bucket location:
60+
3. Modify the application-override.yaml file to have your credentials + bucket location:
6161
```yaml
6262
feature-server:
6363
application-override.yaml:
@@ -77,16 +77,21 @@ For this tutorial, we setup Feast with Redis, using the Feast CLI to register an
7777
cache_ttl_seconds: 60
7878
project: feast_java_demo
7979
```
80-
5. Install the Feast helm chart: `helm install feast-release feast-charts/feast --values application-override.yaml`
81-
6. (Optional): check logs of the server to make sure it’s working
80+
4. Install the Feast helm chart: `helm install feast-release feast-charts/feast --values application-override.yaml`
81+
> **Dev instructions**: if you're changing the java logic or chart, you can do
82+
>1. `eval $(minikube docker-env)`
83+
>2. `make build-java-docker-dev`
84+
>3. In the `application-override.yaml`, uncomment the two `image: tag: dev` blocks
85+
>4. `helm install feast-release ../../../infra/charts/feast --values application-override.yaml`
86+
5. (Optional): check logs of the server to make sure it’s working
8287
```bash
8388
kubectl logs svc/feast-release-feature-server
8489
```
85-
7. Port forward to expose the grpc endpoint:
90+
6. Port forward to expose the grpc endpoint:
8691
```bash
8792
kubectl port-forward svc/feast-release-feature-server 6566:6566
8893
```
89-
8. Make a gRPC call:
94+
7. Make a gRPC call:
9095
- Python example
9196
```bash
9297
python test.py

examples/java-demo/feature_repo/application-override.yaml

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,17 @@ feature-server:
1111
port: 6379
1212
password: [YOUR PASSWORD]
1313
entityKeySerializationVersion: 2
14+
# Uncomment below for dev
15+
# image:
16+
# tag: dev
17+
18+
# Uncomment below for dev
19+
#transformation-service:
20+
# image:
21+
# tag: dev
22+
1423
global:
1524
registry:
16-
path: gs://[YOUR BUCKET]/demo-repo/registry.db
25+
path: gs://[YOUR GCS BUCKET]/demo-repo/registry.db
1726
cache_ttl_seconds: 60
1827
project: feast_java_demo

examples/java-demo/feature_repo/feature_store.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
registry: gs://[YOUR BUCKET]/demo-repo/registry.db
1+
registry: gs://[YOUR GCS BUCKET]/demo-repo/registry.db
22
project: feast_java_demo
33
provider: gcp
44
online_store:
Lines changed: 46 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -1,44 +1,9 @@
1-
# feast-feature-server
2-
3-
![Version: 0.23.0](https://img.shields.io/badge/Version-0.23.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square)
4-
5-
Feast Feature Server in Go or Python
6-
7-
**Homepage:** <https://feast.dev/>
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)
1+
# Feast Python / Go Feature Server Helm Charts
402

3+
Current chart version is `0.23.0`
414

5+
## Installation
6+
### Python feature server
427
Docker repository and tag are required. Helm install example:
438
```
449
helm install feast-feature-server . --set image.repository=REPO --set image.tag=TAG
@@ -58,25 +23,51 @@ RUN pip install feast
5823
COPY feature_store.yaml /feature_store.yaml
5924
```
6025

26+
### Go feature server
27+
> Warning: this is experimental, and only supports a local file registry + Redis
28+
6129
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`.
6230
For more details, see the [docs](https://docs.feast.dev/reference/feature-servers/go-feature-server).
31+
6332
The docker image might look like:
6433
```
65-
FROM python:3.8
66-
67-
RUN apt update && \
68-
apt install -y jq
69-
70-
RUN pip install pip --upgrade
71-
72-
RUN pip install feast
34+
FROM python:3.8
35+
36+
RUN apt update && \
37+
apt install -y jq
38+
RUN pip install pip --upgrade
39+
RUN pip install feast
40+
RUN apt update
41+
RUN apt install -y -V ca-certificates lsb-release wget
42+
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
43+
RUN apt install -y -V ./apache-arrow-apt-source-latest-$(lsb_release --codename --short).deb
44+
RUN apt update
45+
RUN apt -y install libarrow-dev
46+
47+
COPY feature_store.yaml /feature_store.yaml
48+
```
7349

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
50+
## Values
8051

81-
COPY feature_store.yaml /feature_store.yaml
82-
```
52+
| Key | Type | Default | Description |
53+
|-----|------|---------|-------------|
54+
| affinity | object | `{}` | |
55+
| fullnameOverride | string | `""` | |
56+
| image.pullPolicy | string | `"IfNotPresent"` | |
57+
| image.repository | string | `""` | [required] The repository for the Docker image |
58+
| image.tag | string | `""` | [required] The Docker image tag |
59+
| imagePullSecrets | list | `[]` | |
60+
| livenessProbe.initialDelaySeconds | int | `30` | |
61+
| livenessProbe.periodSeconds | int | `30` | |
62+
| nameOverride | string | `""` | |
63+
| nodeSelector | object | `{}` | |
64+
| podAnnotations | object | `{}` | |
65+
| podSecurityContext | object | `{}` | |
66+
| readinessProbe.initialDelaySeconds | int | `20` | |
67+
| readinessProbe.periodSeconds | int | `10` | |
68+
| replicaCount | int | `1` | |
69+
| resources | object | `{}` | |
70+
| securityContext | object | `{}` | |
71+
| service.port | int | `80` | |
72+
| service.type | string | `"ClusterIP"` | |
73+
| tolerations | list | `[]` | |
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
# Feast Python / Go Feature Server Helm Charts
2+
3+
Current chart version is `{{ template "chart.version" . }}`
4+
5+
## Installation
6+
### Python feature server
7+
Docker repository and tag are required. Helm install example:
8+
```
9+
helm install feast-feature-server . --set image.repository=REPO --set image.tag=TAG
10+
```
11+
12+
Deployment assumes that `feature_store.yaml` exists on docker image. Example docker image:
13+
```
14+
FROM python:3.8
15+
16+
RUN apt update && \
17+
apt install -y jq
18+
19+
RUN pip install pip --upgrade
20+
21+
RUN pip install feast
22+
23+
COPY feature_store.yaml /feature_store.yaml
24+
```
25+
26+
### Go feature server
27+
> Warning: this is experimental, and only supports a local file registry + Redis
28+
29+
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`.
30+
For more details, see the [docs](https://docs.feast.dev/reference/feature-servers/go-feature-server).
31+
32+
The docker image might look like:
33+
```
34+
FROM python:3.8
35+
36+
RUN apt update && \
37+
apt install -y jq
38+
RUN pip install pip --upgrade
39+
RUN pip install feast
40+
RUN apt update
41+
RUN apt install -y -V ca-certificates lsb-release wget
42+
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
43+
RUN apt install -y -V ./apache-arrow-apt-source-latest-$(lsb_release --codename --short).deb
44+
RUN apt update
45+
RUN apt -y install libarrow-dev
46+
47+
COPY feature_store.yaml /feature_store.yaml
48+
```
49+
50+
{{ template "chart.requirementsSection" . }}
51+
52+
{{ template "chart.valuesSection" . }}

infra/charts/feast-feature-server/values.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,10 @@
55
replicaCount: 1
66

77
image:
8+
# image.repository -- [required] The repository for the Docker image
89
repository: ""
910
pullPolicy: IfNotPresent
11+
# image.tag -- [required] The Docker image tag
1012
tag: ""
1113

1214
imagePullSecrets: []
Lines changed: 19 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,26 @@
1-
# feast-python-server
1+
# Feast Python Feature Server Helm Charts
22

3-
![Version: 0.23.0](https://img.shields.io/badge/Version-0.23.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square)
3+
Current chart version is `0.23.0`
44

5-
Feast Feature Server in Python
5+
## Installation
6+
Docker repository and tag are required. Helm install example:
7+
```
8+
helm install feast-python-server . --set image.repository=REPO --set image.tag=TAG
9+
```
10+
11+
Deployment assumes that `feature_store.yaml` exists on docker image. Example docker image:
12+
```
13+
FROM python:3.8
14+
15+
RUN apt update && \
16+
apt install -y jq
617
7-
**Homepage:** <https://feast.dev/>
18+
RUN pip install pip --upgrade
819
9-
## Source Code
20+
RUN pip install feast
1021
11-
* <https://github.com/feast-dev/feast>
22+
COPY feature_store.yaml /feature_store.yaml
23+
```
1224

1325
## Values
1426

@@ -33,27 +45,4 @@ Feast Feature Server in Python
3345
| securityContext | object | `{}` | |
3446
| service.port | int | `80` | |
3547
| service.type | string | `"ClusterIP"` | |
36-
| tolerations | list | `[]` | |
37-
38-
----------------------------------------------
39-
Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0)
40-
41-
42-
Docker repository and tag are required. Helm install example:
43-
```
44-
helm install feast-python-server . --set image.repository=REPO --set image.tag=TAG
45-
```
46-
47-
Deployment assumes that `feature_store.yaml` exists on docker image. Example docker image:
48-
```
49-
FROM python:3.8
50-
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
59-
```
48+
| tolerations | list | `[]` | |
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
# Feast Python Feature Server Helm Charts
2+
3+
Current chart version is `{{ template "chart.version" . }}`
4+
5+
## Installation
6+
Docker repository and tag are required. Helm install example:
7+
```
8+
helm install feast-python-server . --set image.repository=REPO --set image.tag=TAG
9+
```
10+
11+
Deployment assumes that `feature_store.yaml` exists on docker image. Example docker image:
12+
```
13+
FROM python:3.8
14+
15+
RUN apt update && \
16+
apt install -y jq
17+
18+
RUN pip install pip --upgrade
19+
20+
RUN pip install feast
21+
22+
COPY feature_store.yaml /feature_store.yaml
23+
```
24+
25+
{{ template "chart.requirementsSection" . }}
26+
27+
{{ template "chart.valuesSection" . }}

infra/charts/feast-python-server/values.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,10 @@
55
replicaCount: 1
66

77
image:
8+
# image.repository -- [required] The repository for the Docker image
89
repository: ""
910
pullPolicy: IfNotPresent
11+
# image.tag -- [required] The Docker image tag
1012
tag: ""
1113

1214
imagePullSecrets: []

0 commit comments

Comments
 (0)