Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: Fix Java helm charts to work with refactored logic. Fix FTS image #3105

Merged
merged 9 commits into from
Aug 19, 2022
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
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
9 changes: 9 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -363,6 +363,15 @@ build-feature-server-java-docker:
-t $(REGISTRY)/feature-server-java:$(VERSION) \
-f java/infra/docker/feature-server/Dockerfile --load .

build-java-docker-dev:
make build-java-no-tests REVISION=dev
docker buildx build --build-arg VERSION=dev \
-t feastdev/feature-transformation-server:dev \
-f sdk/python/feast/infra/transformation_servers/Dockerfile --load .
docker buildx build --build-arg VERSION=dev \
-t feastdev/feature-server-java:dev \
-f java/infra/docker/feature-server/Dockerfile.dev --load .

# Documentation

install-dependencies-proto-docs:
Expand Down
17 changes: 11 additions & 6 deletions examples/java-demo/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,12 +52,12 @@ For this tutorial, we setup Feast with Redis, using the Feast CLI to register an
```bash
minikube addons enable gcp-auth
```
3. Add Feast's Java feature server chart repo
2. Add Feast's Java feature server chart repo
```bash
helm repo add feast-charts https://feast-helm-charts.storage.googleapis.com
helm repo update
```
4. Modify the application-override.yaml file to have your credentials + bucket location:
3. Modify the application-override.yaml file to have your credentials + bucket location:
```yaml
feature-server:
application-override.yaml:
Expand All @@ -77,16 +77,21 @@ For this tutorial, we setup Feast with Redis, using the Feast CLI to register an
cache_ttl_seconds: 60
project: feast_java_demo
```
5. Install the Feast helm chart: `helm install feast-release feast-charts/feast --values application-override.yaml`
6. (Optional): check logs of the server to make sure it’s working
4. Install the Feast helm chart: `helm install feast-release feast-charts/feast --values application-override.yaml`
> **Dev instructions**: if you're changing the java logic or chart, you can do
>1. `eval $(minikube docker-env)`
>2. `make build-java-docker-dev`
>3. In the `application-override.yaml`, uncomment the two `image: tag: dev` blocks
>3. `helm install feast-release ../../../infra/charts/feast --values application-override.yaml`
5. (Optional): check logs of the server to make sure it’s working
```bash
kubectl logs svc/feast-release-feature-server
```
7. Port forward to expose the grpc endpoint:
6. Port forward to expose the grpc endpoint:
```bash
kubectl port-forward svc/feast-release-feature-server 6566:6566
```
8. Make a gRPC call:
7. Make a gRPC call:
- Python example
```bash
python test.py
Expand Down
13 changes: 11 additions & 2 deletions examples/java-demo/feature_repo/application-override.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,19 @@ feature-server:
config:
host: my-redis-master
port: 6379
password: [YOUR PASSWORD]
password: YTVWvjrQcK
adchia marked this conversation as resolved.
Show resolved Hide resolved
adchia marked this conversation as resolved.
Show resolved Hide resolved
entityKeySerializationVersion: 2
# Uncomment below for dev
image:
tag: dev

# Uncomment below for dev
transformation-service:
image:
tag: dev

adchia marked this conversation as resolved.
Show resolved Hide resolved
global:
registry:
path: gs://[YOUR BUCKET]/demo-repo/registry.db
path: gs://danny-test-feast-bucket/demo-repo/registry.db
adchia marked this conversation as resolved.
Show resolved Hide resolved
cache_ttl_seconds: 60
project: feast_java_demo
4 changes: 2 additions & 2 deletions examples/java-demo/feature_repo/feature_store.yaml
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
registry: gs://[YOUR BUCKET]/demo-repo/registry.db
registry: gs://danny-test-feast-bucket/demo-repo/registry.db
project: feast_java_demo
provider: gcp
online_store:
type: redis
connection_string: localhost:6379,password=[YOUR PASSWORD]
connection_string: localhost:6379,password=YTVWvjrQcK
adchia marked this conversation as resolved.
Show resolved Hide resolved
offline_store:
type: file
entity_key_serialization_version: 2
87 changes: 22 additions & 65 deletions infra/charts/feast-feature-server/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,71 +12,28 @@ Feast Feature Server in Go or Python

## Values

| Key | Type | Default | Description |
| ---------------------------------- | ------ | ---------------- | ----------- |
| affinity | object | `{}` | |
| fullnameOverride | string | `""` | |
| image.pullPolicy | string | `"IfNotPresent"` | |
| image.repository | string | `""` | |
| image.tag | string | `""` | |
| imagePullSecrets | list | `[]` | |
| livenessProbe.initialDelaySeconds | int | `30` | |
| livenessProbe.periodSeconds | int | `30` | |
| nameOverride | string | `""` | |
| nodeSelector | object | `{}` | |
| podAnnotations | object | `{}` | |
| podSecurityContext | object | `{}` | |
| readinessProbe.initialDelaySeconds | int | `20` | |
| readinessProbe.periodSeconds | int | `10` | |
| replicaCount | int | `1` | |
| resources | object | `{}` | |
| securityContext | object | `{}` | |
| service.port | int | `80` | |
| service.type | string | `"ClusterIP"` | |
| tolerations | list | `[]` | |
| Key | Type | Default | Description |
|-----|------|---------|-------------|
| affinity | object | `{}` | |
| fullnameOverride | string | `""` | |
| image.pullPolicy | string | `"IfNotPresent"` | |
| image.repository | string | `""` | |
| image.tag | string | `""` | |
| imagePullSecrets | list | `[]` | |
| livenessProbe.initialDelaySeconds | int | `30` | |
| livenessProbe.periodSeconds | int | `30` | |
| nameOverride | string | `""` | |
| nodeSelector | object | `{}` | |
| podAnnotations | object | `{}` | |
| podSecurityContext | object | `{}` | |
| readinessProbe.initialDelaySeconds | int | `20` | |
| readinessProbe.periodSeconds | int | `10` | |
| replicaCount | int | `1` | |
| resources | object | `{}` | |
| securityContext | object | `{}` | |
| service.port | int | `80` | |
| service.type | string | `"ClusterIP"` | |
| tolerations | list | `[]` | |

----------------------------------------------
Autogenerated from chart metadata using [helm-docs v1.11.0](https://github.com/norwoodj/helm-docs/releases/v1.11.0)


Docker repository and tag are required. Helm install example:
```
helm install feast-feature-server . --set image.repository=REPO --set image.tag=TAG
```

Deployment assumes that `feature_store.yaml` exists on docker image. Example docker image:
```
FROM python:3.8

RUN apt update && \
apt install -y jq

RUN pip install pip --upgrade

RUN pip install feast

COPY feature_store.yaml /feature_store.yaml
```

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`.
For more details, see the [docs](https://docs.feast.dev/reference/feature-servers/go-feature-server).
The docker image might look like:
```
FROM python:3.8

RUN apt update && \
apt install -y jq

RUN pip install pip --upgrade

RUN pip install feast

RUN apt update
RUN apt install -y -V ca-certificates lsb-release wget
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
RUN apt install -y -V ./apache-arrow-apt-source-latest-$(lsb_release --codename --short).deb
RUN apt update
RUN apt -y install libarrow-dev

COPY feature_store.yaml /feature_store.yaml
```
26 changes: 3 additions & 23 deletions infra/charts/feast-python-server/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@ Feast Feature Server in Python
| affinity | object | `{}` | |
| fullnameOverride | string | `""` | |
| image.pullPolicy | string | `"IfNotPresent"` | |
| image.repository | string | `""` | [required] The repository for the Docker image |
adchia marked this conversation as resolved.
Show resolved Hide resolved
| image.tag | string | `""` | [required] The Docker image tag |
| image.repository | string | `""` | |
| image.tag | string | `""` | |
| imagePullSecrets | list | `[]` | |
| livenessProbe.initialDelaySeconds | int | `30` | |
| livenessProbe.periodSeconds | int | `30` | |
Expand All @@ -36,24 +36,4 @@ Feast Feature Server in Python
| tolerations | list | `[]` | |

----------------------------------------------
Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0)


Docker repository and tag are required. Helm install example:
adchia marked this conversation as resolved.
Show resolved Hide resolved
```
helm install feast-python-server . --set image.repository=REPO --set image.tag=TAG
```

Deployment assumes that `feature_store.yaml` exists on docker image. Example docker image:
```
FROM python:3.8

RUN apt update && \
apt install -y jq

RUN pip install pip --upgrade

RUN pip install feast

COPY feature_store.yaml /feature_store.yaml
```
Autogenerated from chart metadata using [helm-docs v1.11.0](https://github.com/norwoodj/helm-docs/releases/v1.11.0)
8 changes: 5 additions & 3 deletions infra/charts/feast/README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
# Feast Helm Charts

> :warning: **Disclaimer**: Since Feast 0.10 our vision is to manage all infrastructure for feature store from one place - Feast SDK. But while this new paradigm is still in development, we are planning to support the installation of some Feast components (like Java feature server) through Helm chart presented in this repository. However, we do not expect helm chart to become a long-term solution for deploying Feast components to production, and some frictions still might exist. For example, you will need to manually sync some configurations from [feature_store.yaml](https://docs.feast.dev/reference/feature-repository/feature-store-yaml) into the chart context (like path to the registry file or project name).

This repo contains Helm charts for Feast components that are being installed on Kubernetes:
* Feast (root chart): The complete Helm chart containing all Feast components and dependencies. Most users will use this chart, but can selectively enable/disable subcharts using the values.yaml file.
* [Feature Server](charts/feature-server): High performant JVM-based implementation of feature server.
Expand Down Expand Up @@ -54,9 +56,9 @@ For more details, please see: https://docs.feast.dev/how-to-guides/running-feast

| Repository | Name | Version |
|------------|------|---------|
| https://charts.helm.sh/stable | redis | 10.5.6 |
| https://feast-helm-charts.storage.googleapis.com | feature-server(feature-server) | 0.23.0 |
| https://feast-helm-charts.storage.googleapis.com | transformation-service(transformation-service) | 0.23.0 |
| https://charts.helm.sh/stable | redis | 10.5.6 |
| https://feast-helm-charts.storage.googleapis.com | feature-server(feature-server) | 0.23.0 |
| https://feast-helm-charts.storage.googleapis.com | transformation-service(transformation-service) | 0.23.0 |

## Values

Expand Down
Loading