diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 9fcbc1e0522..e6eb018252f 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -42,13 +42,14 @@ jobs:
echo "Current version is ${CURRENT_VERSION}"
echo "Next version is ${NEXT_VERSION}"
- publish-web-ui-npm:
+ validate_version_bumps:
if: github.repository == 'feast-dev/feast'
needs: get_dry_release_versions
runs-on: ubuntu-latest
env:
# This publish is working using an NPM automation token to bypass 2FA
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
+ HELM_VERSION: v3.8.0
CURRENT_VERSION: ${{ needs.get_dry_release_versions.outputs.current_version }}
NEXT_VERSION: ${{ needs.get_dry_release_versions.outputs.next_version }}
steps:
@@ -57,7 +58,7 @@ jobs:
with:
node-version: '17.x'
registry-url: 'https://registry.npmjs.org'
- - name: Bump file versions (temporarily for Web UI publish)
+ - name: Bump file versions
run: python ./infra/scripts/release/bump_file_versions.py ${CURRENT_VERSION} ${NEXT_VERSION}
- name: Install yarn dependencies
working-directory: ./ui
@@ -65,15 +66,27 @@ jobs:
- name: Build yarn rollup
working-directory: ./ui
run: yarn build:lib
- - name: Publish UI package
- working-directory: ./ui
- run: npm publish
- env:
- # This publish is working using an NPM automation token to bypass 2FA
- NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
+ - name: Bundle UI in SDK
+ run: make build-ui
+ - name: Remove previous Helm
+ run: sudo rm -rf $(which helm)
+ - name: Set up Homebrew
+ uses: Homebrew/actions/setup-homebrew@master
+ - name: Setup Helm-docs
+ run: |
+ brew install norwoodj/tap/helm-docs
+ - name: Generate helm chart READMEs
+ run: make build-helm-docs
+ - name: Install Helm
+ run: ./infra/scripts/helm/install-helm.sh
+ - name: Validate Helm chart prior to publishing
+ run: ./infra/scripts/helm/validate-helm-chart-publish.sh
+ - name: Validate all version consistency
+ run: ./infra/scripts/helm/validate-helm-chart-versions.sh $NEXT_VERSION
release:
name: release
+ needs: validate_version_bumps
runs-on: ubuntu-latest
env:
GITHUB_TOKEN: ${{ github.event.inputs.token }}
@@ -90,6 +103,12 @@ jobs:
uses: actions/setup-node@v2
with:
node-version: '16'
+ - name: Set up Homebrew
+ id: set-up-homebrew
+ uses: Homebrew/actions/setup-homebrew@master
+ - name: Setup Helm-docs
+ run: |
+ brew install norwoodj/tap/helm-docs
- name: Release (Dry Run)
if: github.event.inputs.dry_run == 'true'
run: |
diff --git a/.releaserc.js b/.releaserc.js
index bb8b9d4b75e..550637143c4 100644
--- a/.releaserc.js
+++ b/.releaserc.js
@@ -41,7 +41,7 @@ module.exports = {
"verifyReleaseCmd": "./infra/scripts/validate-release.sh ${nextRelease.type} " + current_branch,
// Bump all version files and build UI / update yarn.lock
- "prepareCmd": "python ./infra/scripts/release/bump_file_versions.py ${lastRelease.version} ${nextRelease.version}; make build-ui"
+ "prepareCmd": "python ./infra/scripts/release/bump_file_versions.py ${lastRelease.version} ${nextRelease.version}; make build-ui; make build-helm-docs"
}],
["@semantic-release/release-notes-generator", {
diff --git a/CHANGELOG.md b/CHANGELOG.md
index d6e3e8159a3..0773781f264 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,12 @@
# Changelog
+## [0.22.5](https://github.com/feast-dev/feast/compare/v0.22.4...v0.22.5) (2022-10-28)
+
+
+### Bug Fixes
+
+* Fix numpy version specification ([#3241](https://github.com/feast-dev/feast/issues/3241)) ([298bdde](https://github.com/feast-dev/feast/commit/298bdde51f7cbb9c74d30e387a09e450bd74332c))
+
## [0.22.4](https://github.com/feast-dev/feast/compare/v0.22.3...v0.22.4) (2022-08-15)
diff --git a/Makefile b/Makefile
index a88f933c536..9b2e6bbafeb 100644
--- a/Makefile
+++ b/Makefile
@@ -283,6 +283,10 @@ build-sphinx: compile-protos-python
build-templates:
python infra/scripts/compile-templates.py
+build-helm-docs:
+ cd ${ROOT_DIR}/infra/charts/feast; helm-docs
+ cd ${ROOT_DIR}/infra/charts/feast-feature-server; helm-docs
+
# Web UI
# Note: requires node and yarn to be installed
diff --git a/docs/reference/feature-servers/python-feature-server.md b/docs/reference/feature-servers/python-feature-server.md
index ecc12dd12d6..bfea5bfefa4 100644
--- a/docs/reference/feature-servers/python-feature-server.md
+++ b/docs/reference/feature-servers/python-feature-server.md
@@ -10,7 +10,7 @@ There is a CLI command that starts the server: `feast serve`. By default, Feast
## Deploying as a service
-One can also deploy a feature server by building a docker image that bundles in the project's `feature_store.yaml`. See [helm chart](https://github.com/feast-dev/feast/blob/master/infra/charts/feast-python-server) for example.
+One can also deploy a feature server by building a docker image that bundles in the project's `feature_store.yaml`. See [helm chart](https://github.com/feast-dev/feast/blob/master/infra/charts/feast-feature-server) for example.
A [remote feature server](../alpha-aws-lambda-feature-server.md) on AWS Lambda is available. A remote feature server on GCP Cloud Run is currently being developed.
diff --git a/infra/charts/feast-feature-server/Chart.yaml b/infra/charts/feast-feature-server/Chart.yaml
index bac4c7c74e1..21c8f1fd6df 100644
--- a/infra/charts/feast-feature-server/Chart.yaml
+++ b/infra/charts/feast-feature-server/Chart.yaml
@@ -2,7 +2,7 @@ apiVersion: v2
name: feast-feature-server
description: Feast Feature Server in Go or Python
type: application
-version: 0.22.4
+version: 0.22.5
keywords:
- machine learning
- big data
diff --git a/infra/charts/feast-feature-server/README.md b/infra/charts/feast-feature-server/README.md
index 9b9df7582fd..75885be4987 100644
--- a/infra/charts/feast-feature-server/README.md
+++ b/infra/charts/feast-feature-server/README.md
@@ -1,82 +1,48 @@
-# feast-feature-server
+# Feast Python / Go Feature Server Helm Charts
- 
+Current chart version is `0.22.5`
-Feast Feature Server in Go or Python
+## Installation
-**Homepage:**
+Run the following commands to add the repository
-## Source Code
-
-*
-
-## 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 | `[]` | |
-
-----------------------------------------------
-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
+helm repo add feast-charts https://feast-helm-charts.storage.googleapis.com
+helm repo update
```
-Deployment assumes that `feature_store.yaml` exists on docker image. Example docker image:
-```
-FROM python:3.8
+Install Feast Feature Server on Kubernetes
-RUN apt update && \
- apt install -y jq
-
-RUN pip install pip --upgrade
-
-RUN pip install feast
-
-COPY feature_store.yaml /feature_store.yaml
+A base64 encoded version of the `feature_store.yaml` file is needed. Helm install example:
```
-
-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:
+helm install feast-feature-server feast-charts/feast-feature-server --set feature_store_yaml_base64=$(base64 feature_store.yaml)
```
-FROM python:3.8
-RUN apt update && \
- apt install -y jq
+## Tutorial
+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.
-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
+## Values
-COPY feature_store.yaml /feature_store.yaml
-```
\ No newline at end of file
+| Key | Type | Default | Description |
+|-----|------|---------|-------------|
+| affinity | object | `{}` | |
+| feature_store_yaml_base64 | string | `""` | [required] a base64 encoded version of feature_store.yaml |
+| fullnameOverride | string | `""` | |
+| image.pullPolicy | string | `"IfNotPresent"` | |
+| image.repository | string | `"feastdev/feature-server"` | Docker image for Feature Server repository |
+| image.tag | string | `"0.22.5"` | The Docker image tag (can be overwritten if custom feature server deps are needed for on demand transforms) |
+| 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 | `[]` | |
\ No newline at end of file
diff --git a/infra/charts/feast-feature-server/README.md.gotmpl b/infra/charts/feast-feature-server/README.md.gotmpl
new file mode 100644
index 00000000000..fb877208e06
--- /dev/null
+++ b/infra/charts/feast-feature-server/README.md.gotmpl
@@ -0,0 +1,26 @@
+# Feast Python / Go Feature Server Helm Charts
+
+Current chart version is `{{ template "chart.version" . }}`
+
+## Installation
+
+Run the following commands to add the repository
+
+```
+helm repo add feast-charts https://feast-helm-charts.storage.googleapis.com
+helm repo update
+```
+
+Install Feast Feature Server on Kubernetes
+
+A base64 encoded version of the `feature_store.yaml` file is needed. Helm install example:
+```
+helm install feast-feature-server feast-charts/feast-feature-server --set feature_store_yaml_base64=$(base64 feature_store.yaml)
+```
+
+## Tutorial
+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.
+
+{{ template "chart.requirementsSection" . }}
+
+{{ template "chart.valuesSection" . }}
\ No newline at end of file
diff --git a/infra/charts/feast-feature-server/templates/deployment.yaml b/infra/charts/feast-feature-server/templates/deployment.yaml
index 69cf92f6c02..94c56de9dda 100644
--- a/infra/charts/feast-feature-server/templates/deployment.yaml
+++ b/infra/charts/feast-feature-server/templates/deployment.yaml
@@ -30,6 +30,9 @@ spec:
{{- toYaml .Values.securityContext | nindent 12 }}
image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
imagePullPolicy: {{ .Values.image.pullPolicy }}
+ env:
+ - name: FEATURE_STORE_YAML_BASE64
+ value: {{ .Values.feature_store_yaml_base64 }}
command: ["feast", "serve", "-h", "0.0.0.0"]
ports:
- name: http
diff --git a/infra/charts/feast-feature-server/values.yaml b/infra/charts/feast-feature-server/values.yaml
index f62f95a7577..45f560e8915 100644
--- a/infra/charts/feast-feature-server/values.yaml
+++ b/infra/charts/feast-feature-server/values.yaml
@@ -5,14 +5,19 @@
replicaCount: 1
image:
- repository: ""
+ # image.repository -- Docker image for Feature Server repository
+ repository: feastdev/feature-server
pullPolicy: IfNotPresent
- tag: ""
+ # image.tag -- The Docker image tag (can be overwritten if custom feature server deps are needed for on demand transforms)
+ tag: 0.22.5
imagePullSecrets: []
nameOverride: ""
fullnameOverride: ""
+# feature_store_yaml_base64 -- [required] a base64 encoded version of feature_store.yaml
+feature_store_yaml_base64: ""
+
podAnnotations: {}
podSecurityContext: {}
diff --git a/infra/charts/feast-python-server/.helmignore b/infra/charts/feast-python-server/.helmignore
deleted file mode 100644
index 0e8a0eb36f4..00000000000
--- a/infra/charts/feast-python-server/.helmignore
+++ /dev/null
@@ -1,23 +0,0 @@
-# Patterns to ignore when building packages.
-# This supports shell glob matching, relative path matching, and
-# negation (prefixed with !). Only one pattern per line.
-.DS_Store
-# Common VCS dirs
-.git/
-.gitignore
-.bzr/
-.bzrignore
-.hg/
-.hgignore
-.svn/
-# Common backup files
-*.swp
-*.bak
-*.tmp
-*.orig
-*~
-# Various IDEs
-.project
-.idea/
-*.tmproj
-.vscode/
diff --git a/infra/charts/feast-python-server/Chart.yaml b/infra/charts/feast-python-server/Chart.yaml
deleted file mode 100644
index 45913941610..00000000000
--- a/infra/charts/feast-python-server/Chart.yaml
+++ /dev/null
@@ -1,12 +0,0 @@
-apiVersion: v2
-name: feast-python-server
-description: Feast Feature Server in Python
-type: application
-version: 0.22.4
-keywords:
- - machine learning
- - big data
- - mlops
-home: https://feast.dev/
-sources:
- - https://github.com/feast-dev/feast
diff --git a/infra/charts/feast-python-server/README.md b/infra/charts/feast-python-server/README.md
deleted file mode 100644
index 8ffb351482e..00000000000
--- a/infra/charts/feast-python-server/README.md
+++ /dev/null
@@ -1,59 +0,0 @@
-# feast-python-server
-
- 
-
-Feast Feature Server in Python
-
-**Homepage:**
-
-## Source Code
-
-*
-
-## Values
-
-| Key | Type | Default | Description |
-|-----|------|---------|-------------|
-| affinity | object | `{}` | |
-| fullnameOverride | string | `""` | |
-| image.pullPolicy | string | `"IfNotPresent"` | |
-| image.repository | string | `""` | [required] The repository for the Docker image |
-| image.tag | string | `""` | [required] The Docker image tag |
-| 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.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0)
-
-
-Docker repository and tag are required. Helm install example:
-```
-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
-```
\ No newline at end of file
diff --git a/infra/charts/feast-python-server/templates/_helpers.tpl b/infra/charts/feast-python-server/templates/_helpers.tpl
deleted file mode 100644
index b64e10536d1..00000000000
--- a/infra/charts/feast-python-server/templates/_helpers.tpl
+++ /dev/null
@@ -1,52 +0,0 @@
-{{/* vim: set filetype=mustache: */}}
-{{/*
-Expand the name of the chart.
-*/}}
-{{- define "feast-python-server.name" -}}
-{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }}
-{{- end }}
-
-{{/*
-Create a default fully qualified app name.
-We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
-If release name contains chart name it will be used as a full name.
-*/}}
-{{- define "feast-python-server.fullname" -}}
-{{- if .Values.fullnameOverride }}
-{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }}
-{{- else }}
-{{- $name := default .Chart.Name .Values.nameOverride }}
-{{- if contains $name .Release.Name }}
-{{- .Release.Name | trunc 63 | trimSuffix "-" }}
-{{- else }}
-{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }}
-{{- end }}
-{{- end }}
-{{- end }}
-
-{{/*
-Create chart name and version as used by the chart label.
-*/}}
-{{- define "feast-python-server.chart" -}}
-{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
-{{- end }}
-
-{{/*
-Common labels
-*/}}
-{{- define "feast-python-server.labels" -}}
-helm.sh/chart: {{ include "feast-python-server.chart" . }}
-{{ include "feast-python-server.selectorLabels" . }}
-{{- if .Chart.AppVersion }}
-app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
-{{- end }}
-app.kubernetes.io/managed-by: {{ .Release.Service }}
-{{- end }}
-
-{{/*
-Selector labels
-*/}}
-{{- define "feast-python-server.selectorLabels" -}}
-app.kubernetes.io/name: {{ include "feast-python-server.name" . }}
-app.kubernetes.io/instance: {{ .Release.Name }}
-{{- end }}
diff --git a/infra/charts/feast-python-server/templates/deployment.yaml b/infra/charts/feast-python-server/templates/deployment.yaml
deleted file mode 100644
index 56439be658c..00000000000
--- a/infra/charts/feast-python-server/templates/deployment.yaml
+++ /dev/null
@@ -1,61 +0,0 @@
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- name: {{ include "feast-python-server.fullname" . }}
- labels:
- {{- include "feast-python-server.labels" . | nindent 4 }}
-spec:
- replicas: {{ .Values.replicaCount }}
- selector:
- matchLabels:
- {{- include "feast-python-server.selectorLabels" . | nindent 6 }}
- template:
- metadata:
- {{- with .Values.podAnnotations }}
- annotations:
- {{- toYaml . | nindent 8 }}
- {{- end }}
- labels:
- {{- include "feast-python-server.selectorLabels" . | nindent 8 }}
- spec:
- {{- with .Values.imagePullSecrets }}
- imagePullSecrets:
- {{- toYaml . | nindent 8 }}
- {{- end }}
- securityContext:
- {{- toYaml .Values.podSecurityContext | nindent 8 }}
- containers:
- - name: {{ .Chart.Name }}
- securityContext:
- {{- toYaml .Values.securityContext | nindent 12 }}
- image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
- imagePullPolicy: {{ .Values.image.pullPolicy }}
- command: ["feast", "serve", "-h", "0.0.0.0"]
- ports:
- - name: http
- containerPort: 6566
- protocol: TCP
- livenessProbe:
- tcpSocket:
- port: http
- initialDelaySeconds: {{ .Values.livenessProbe.initialDelaySeconds }}
- periodSeconds: {{ .Values.livenessProbe.periodSeconds }}
- readinessProbe:
- tcpSocket:
- port: http
- initialDelaySeconds: {{ .Values.readinessProbe.initialDelaySeconds }}
- periodSeconds: {{ .Values.readinessProbe.periodSeconds }}
- resources:
- {{- toYaml .Values.resources | nindent 12 }}
- {{- with .Values.nodeSelector }}
- nodeSelector:
- {{- toYaml . | nindent 8 }}
- {{- end }}
- {{- with .Values.affinity }}
- affinity:
- {{- toYaml . | nindent 8 }}
- {{- end }}
- {{- with .Values.tolerations }}
- tolerations:
- {{- toYaml . | nindent 8 }}
- {{- end }}
diff --git a/infra/charts/feast-python-server/templates/service.yaml b/infra/charts/feast-python-server/templates/service.yaml
deleted file mode 100644
index 86bf38a9a45..00000000000
--- a/infra/charts/feast-python-server/templates/service.yaml
+++ /dev/null
@@ -1,15 +0,0 @@
-apiVersion: v1
-kind: Service
-metadata:
- name: {{ include "feast-python-server.name" . }}
- labels:
- {{- include "feast-python-server.labels" . | nindent 4 }}
-spec:
- type: {{ .Values.service.type }}
- ports:
- - port: {{ .Values.service.port }}
- targetPort: http
- protocol: TCP
- name: http
- selector:
- {{- include "feast-python-server.selectorLabels" . | nindent 4 }}
diff --git a/infra/charts/feast-python-server/values.yaml b/infra/charts/feast-python-server/values.yaml
deleted file mode 100644
index f62f95a7577..00000000000
--- a/infra/charts/feast-python-server/values.yaml
+++ /dev/null
@@ -1,57 +0,0 @@
-# Default values for feast.
-# This is a YAML-formatted file.
-# Declare variables to be passed into your templates.
-
-replicaCount: 1
-
-image:
- repository: ""
- pullPolicy: IfNotPresent
- tag: ""
-
-imagePullSecrets: []
-nameOverride: ""
-fullnameOverride: ""
-
-podAnnotations: {}
-
-podSecurityContext: {}
- # fsGroup: 2000
-
-securityContext: {}
- # capabilities:
- # drop:
- # - ALL
- # readOnlyRootFilesystem: true
- # runAsNonRoot: true
- # runAsUser: 1000
-
-service:
- type: ClusterIP
- port: 80
-
-resources: {}
- # We usually recommend not to specify default resources and to leave this as a conscious
- # choice for the user. This also increases chances charts run on environments with little
- # resources, such as Minikube. If you do want to specify resources, uncomment the following
- # lines, adjust them as necessary, and remove the curly braces after 'resources:'.
- # limits:
- # cpu: 100m
- # memory: 128Mi
- # requests:
- # cpu: 100m
- # memory: 128Mi
-
-nodeSelector: {}
-
-tolerations: []
-
-affinity: {}
-
-livenessProbe:
- initialDelaySeconds: 30
- periodSeconds: 30
-
-readinessProbe:
- initialDelaySeconds: 20
- periodSeconds: 10
diff --git a/infra/charts/feast/Chart.yaml b/infra/charts/feast/Chart.yaml
index 0869ab443ea..270ba98fa87 100644
--- a/infra/charts/feast/Chart.yaml
+++ b/infra/charts/feast/Chart.yaml
@@ -1,7 +1,7 @@
apiVersion: v1
description: Feature store for machine learning
name: feast
-version: 0.22.4
+version: 0.22.5
keywords:
- machine learning
- big data
diff --git a/infra/charts/feast/README.md b/infra/charts/feast/README.md
index 897bc583fc9..2c1f6abdffc 100644
--- a/infra/charts/feast/README.md
+++ b/infra/charts/feast/README.md
@@ -1,14 +1,14 @@
-# Feast Helm Charts
+# Feast Java Helm Charts (alpha)
-This repo contains Helm charts for Feast components that are being installed on Kubernetes:
+This repo contains Helm charts for Feast Java 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.
* [Transformation Service](charts/transformation-service): Transformation server for calculating on-demand features
* Redis: (Optional) One of possible options for an online store used by Feature Server
-
+
## Chart: Feast
-Feature store for machine learning Current chart version is `0.22.4`
+Feature store for machine learning Current chart version is `0.22.5`
## Installation
@@ -43,20 +43,30 @@ feature-server:
config:
host: localhost
port: 6379
+ entityKeySerializationVersion: 2
+
+global:
+ registry:
+ path: gs://[YOUR GCS BUCKET]/demo-repo/registry.db
+ cache_ttl_seconds: 60
+ project: feast_java_demo
```
-For the default configuration, please see the [Feature Server Configuration](https://github.com/feast-dev/feast-java/blob/master/serving/src/main/resources/application.yml).
+For the default configuration, please see the [Feature Server Configuration](https://github.com/feast-dev/feast/blob/master/java/serving/src/main/resources/application.yml).
For more details, please see: https://docs.feast.dev/how-to-guides/running-feast-in-production
+## Example
+See [here](https://github.com/feast-dev/feast/tree/master/examples/java-demo) for a sample tutorial on testing this helm chart with a demo feature repository and a local Redis instance.
+
## Requirements
| Repository | Name | Version |
|------------|------|---------|
-| https://charts.helm.sh/stable | redis | 10.5.6 |
-| https://feast-helm-charts.storage.googleapis.com | feature-server(feature-server) | 0.22.4 |
-| https://feast-helm-charts.storage.googleapis.com | transformation-service(transformation-service) | 0.22.4 |
+| https://charts.helm.sh/stable | redis | 10.5.6 |
+| https://feast-helm-charts.storage.googleapis.com | feature-server(feature-server) | 0.22.5 |
+| https://feast-helm-charts.storage.googleapis.com | transformation-service(transformation-service) | 0.22.5 |
## Values
diff --git a/infra/charts/feast/README.md.gotmpl b/infra/charts/feast/README.md.gotmpl
index acb4e830e75..07f6659f0c3 100644
--- a/infra/charts/feast/README.md.gotmpl
+++ b/infra/charts/feast/README.md.gotmpl
@@ -1,13 +1,11 @@
-# Feast Helm Charts
+# Feast Java Helm Charts (alpha)
-> :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:
+This repo contains Helm charts for Feast Java 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.
+ * [Feature Server](charts/feature-server): High performant JVM-based implementation of feature server.
* [Transformation Service](charts/transformation-service): Transformation server for calculating on-demand features
* Redis: (Optional) One of possible options for an online store used by Feature Server
-
+
## Chart: Feast
{{ template "chart.description" . }} Current chart version is `{{ template "chart.version" . }}`
@@ -45,13 +43,24 @@ feature-server:
config:
host: localhost
port: 6379
+ entityKeySerializationVersion: 2
+
+global:
+ registry:
+ path: gs://[YOUR GCS BUCKET]/demo-repo/registry.db
+ cache_ttl_seconds: 60
+ project: feast_java_demo
```
-For the default configuration, please see the [Feature Server Configuration](https://github.com/feast-dev/feast-java/blob/master/serving/src/main/resources/application.yml).
+For the default configuration, please see the [Feature Server Configuration](https://github.com/feast-dev/feast/blob/master/java/serving/src/main/resources/application.yml).
For more details, please see: https://docs.feast.dev/how-to-guides/running-feast-in-production
+## Example
+See [here](https://github.com/feast-dev/feast/tree/master/examples/java-demo) for a sample tutorial on testing this helm chart with a demo feature repository and a local Redis instance.
+
+
{{ template "chart.requirementsSection" . }}
{{ template "chart.valuesSection" . }}
\ No newline at end of file
diff --git a/infra/charts/feast/charts/feature-server/Chart.yaml b/infra/charts/feast/charts/feature-server/Chart.yaml
index f25472aecac..674768b3048 100644
--- a/infra/charts/feast/charts/feature-server/Chart.yaml
+++ b/infra/charts/feast/charts/feature-server/Chart.yaml
@@ -1,8 +1,8 @@
apiVersion: v1
description: "Feast Feature Server: Online feature serving service for Feast"
name: feature-server
-version: 0.22.4
-appVersion: v0.22.4
+version: 0.22.5
+appVersion: v0.22.5
keywords:
- machine learning
- big data
diff --git a/infra/charts/feast/charts/feature-server/README.md b/infra/charts/feast/charts/feature-server/README.md
index 6aa60685795..accd74a9293 100644
--- a/infra/charts/feast/charts/feature-server/README.md
+++ b/infra/charts/feast/charts/feature-server/README.md
@@ -1,6 +1,6 @@
# feature-server
- 
+ 
Feast Feature Server: Online feature serving service for Feast
@@ -8,63 +8,63 @@ Feast Feature Server: Online feature serving service for Feast
## Values
-| Key | Type | Default | Description |
-|-----|------|-------------------------------------------------------|-------------|
-| "application-generated.yaml".enabled | bool | `true` | Flag to include Helm generated configuration. Please set `application-override.yaml` to override this configuration. |
-| "application-override.yaml" | object | `{"enabled":true}` | Configuration to override the default [application.yaml](https://github.com/feast-dev/feast/blob/master/java/serving/src/main/resources/application.yml). Will be created as a ConfigMap. `application-override.yaml` has a higher precedence than `application-secret.yaml` |
-| "application-secret.yaml" | object | `{"enabled":true}` | Configuration to override the default [application.yaml](https://github.com/feast-dev/feast/blob/master/java/serving/src/main/resources/application.yml). Will be created as a Secret. `application-override.yaml` has a higher precedence than `application-secret.yaml`. It is recommended to either set `application-override.yaml` or `application-secret.yaml` only to simplify config management. |
-| "application.yaml".enabled | bool | `true` | Flag to include the default [configuration](https://github.com/feast-dev/feast/blob/master/java/serving/src/main/resources/application.yml). Please set `application-override.yaml` to override this configuration. |
-| envOverrides | object | `{}` | Extra environment variables to set |
-| image.pullPolicy | string | `"IfNotPresent"` | Image pull policy |
-| image.repository | string | `"feastdev/feature-server-java"` | Docker image for Feature Server repository |
-| image.tag | string | `"0.22.4"` | Image tag |
-| ingress.grpc.annotations | object | `{}` | Extra annotations for the ingress |
-| ingress.grpc.auth.enabled | bool | `false` | Flag to enable auth |
-| ingress.grpc.class | string | `"nginx"` | Which ingress controller to use |
-| ingress.grpc.enabled | bool | `false` | Flag to create an ingress resource for the service |
-| ingress.grpc.hosts | list | `[]` | List of hostnames to match when routing requests |
-| ingress.grpc.https.enabled | bool | `true` | Flag to enable HTTPS |
-| ingress.grpc.https.secretNames | object | `{}` | Map of hostname to TLS secret name |
-| ingress.grpc.whitelist | string | `""` | Allowed client IP source ranges |
-| ingress.http.annotations | object | `{}` | Extra annotations for the ingress |
+| Key | Type | Default | Description |
+|-----|------|---------|-------------|
+| "application-generated.yaml".enabled | bool | `true` | Flag to include Helm generated configuration. Please set `application-override.yaml` to override this configuration. |
+| "application-override.yaml" | object | `{"enabled":true}` | Configuration to override the default [application.yaml](https://github.com/feast-dev/feast/blob/master/java/serving/src/main/resources/application.yml). Will be created as a ConfigMap. `application-override.yaml` has a higher precedence than `application-secret.yaml` |
+| "application-secret.yaml" | object | `{"enabled":false}` | Configuration to override the default [application.yaml](https://github.com/feast-dev/feast/blob/master/java/serving/src/main/resources/application.yml). Will be created as a Secret. `application-override.yaml` has a higher precedence than `application-secret.yaml`. It is recommended to either set `application-override.yaml` or `application-secret.yaml` only to simplify config management. |
+| "application.yaml".enabled | bool | `true` | Flag to include the default [configuration](https://github.com/feast-dev/feast/blob/master/java/serving/src/main/resources/application.yml). Please set `application-override.yaml` to override this configuration. |
+| envOverrides | object | `{}` | Extra environment variables to set |
+| image.pullPolicy | string | `"IfNotPresent"` | Image pull policy |
+| image.repository | string | `"feastdev/feature-server-java"` | Docker image for Feature Server repository |
+| image.tag | string | `"0.22.5"` | Image tag |
+| ingress.grpc.annotations | object | `{}` | Extra annotations for the ingress |
+| ingress.grpc.auth.enabled | bool | `false` | Flag to enable auth |
+| ingress.grpc.class | string | `"nginx"` | Which ingress controller to use |
+| ingress.grpc.enabled | bool | `false` | Flag to create an ingress resource for the service |
+| ingress.grpc.hosts | list | `[]` | List of hostnames to match when routing requests |
+| ingress.grpc.https.enabled | bool | `true` | Flag to enable HTTPS |
+| ingress.grpc.https.secretNames | object | `{}` | Map of hostname to TLS secret name |
+| ingress.grpc.whitelist | string | `""` | Allowed client IP source ranges |
+| ingress.http.annotations | object | `{}` | Extra annotations for the ingress |
| ingress.http.auth.authUrl | string | `"http://auth-server.auth-ns.svc.cluster.local/auth"` | URL to an existing authentication service |
-| ingress.http.auth.enabled | bool | `false` | Flag to enable auth |
-| ingress.http.class | string | `"nginx"` | Which ingress controller to use |
-| ingress.http.enabled | bool | `false` | Flag to create an ingress resource for the service |
-| ingress.http.hosts | list | `[]` | List of hostnames to match when routing requests |
-| ingress.http.https.enabled | bool | `true` | Flag to enable HTTPS |
-| ingress.http.https.secretNames | object | `{}` | Map of hostname to TLS secret name |
-| ingress.http.whitelist | string | `""` | Allowed client IP source ranges |
-| javaOpts | string | `nil` | [JVM options](https://docs.oracle.com/cd/E22289_01/html/821-1274/configuring-the-default-jvm-and-java-arguments.html). For better performance, it is advised to set the min and max heap:
`-Xms2048m -Xmx2048m` |
-| livenessProbe.enabled | bool | `true` | Flag to enabled the probe |
-| livenessProbe.failureThreshold | int | `5` | Min consecutive failures for the probe to be considered failed |
-| livenessProbe.initialDelaySeconds | int | `60` | Delay before the probe is initiated |
-| livenessProbe.periodSeconds | int | `10` | How often to perform the probe |
-| livenessProbe.successThreshold | int | `1` | Min consecutive success for the probe to be considered successful |
-| livenessProbe.timeoutSeconds | int | `5` | When the probe times out |
-| logLevel | string | `"WARN"` | Default log level, use either one of `DEBUG`, `INFO`, `WARN` or `ERROR` |
-| logType | string | `"Console"` | Log format, either `JSON` or `Console` |
-| nodeSelector | object | `{}` | Node labels for pod assignment |
-| podAnnotations | object | `{}` | Annotations to be added to Feast Serving pods |
-| podLabels | object | `{}` | Labels to be added to Feast Serving pods |
-| readinessProbe.enabled | bool | `true` | Flag to enabled the probe |
-| readinessProbe.failureThreshold | int | `5` | Min consecutive failures for the probe to be considered failed |
-| readinessProbe.initialDelaySeconds | int | `15` | Delay before the probe is initiated |
-| readinessProbe.periodSeconds | int | `10` | How often to perform the probe |
-| readinessProbe.successThreshold | int | `1` | Min consecutive success for the probe to be considered successful |
-| readinessProbe.timeoutSeconds | int | `10` | When the probe times out |
-| replicaCount | int | `1` | Number of pods that will be created |
-| resources | object | `{}` | CPU/memory [resource requests/limit](https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/#resource-requests-and-limits-of-pod-and-container) |
-| secrets | list | `[]` | List of Kubernetes secrets to be mounted. These secrets will be mounted on /etc/secrets/. |
-| service.grpc.nodePort | string | `nil` | Port number that each cluster node will listen to |
-| service.grpc.port | int | `6566` | Service port for GRPC requests |
-| service.grpc.targetPort | int | `6566` | Container port serving GRPC requests |
-| service.http.nodePort | string | `nil` | Port number that each cluster node will listen to |
-| service.http.port | int | `80` | Service port for HTTP requests |
-| service.http.targetPort | int | `8080` | Container port serving HTTP requests and Prometheus metrics |
-| service.type | string | `"ClusterIP"` | Kubernetes service type |
-| transformationService.host | string | `""` | |
-| transformationService.port | int | `6566` | |
+| ingress.http.auth.enabled | bool | `false` | Flag to enable auth |
+| ingress.http.class | string | `"nginx"` | Which ingress controller to use |
+| ingress.http.enabled | bool | `false` | Flag to create an ingress resource for the service |
+| ingress.http.hosts | list | `[]` | List of hostnames to match when routing requests |
+| ingress.http.https.enabled | bool | `true` | Flag to enable HTTPS |
+| ingress.http.https.secretNames | object | `{}` | Map of hostname to TLS secret name |
+| ingress.http.whitelist | string | `""` | Allowed client IP source ranges |
+| javaOpts | string | `nil` | [JVM options](https://docs.oracle.com/cd/E22289_01/html/821-1274/configuring-the-default-jvm-and-java-arguments.html). For better performance, it is advised to set the min and max heap:
`-Xms2048m -Xmx2048m` |
+| livenessProbe.enabled | bool | `true` | Flag to enabled the probe |
+| livenessProbe.failureThreshold | int | `5` | Min consecutive failures for the probe to be considered failed |
+| livenessProbe.initialDelaySeconds | int | `60` | Delay before the probe is initiated |
+| livenessProbe.periodSeconds | int | `10` | How often to perform the probe |
+| livenessProbe.successThreshold | int | `1` | Min consecutive success for the probe to be considered successful |
+| livenessProbe.timeoutSeconds | int | `5` | When the probe times out |
+| logLevel | string | `"WARN"` | Default log level, use either one of `DEBUG`, `INFO`, `WARN` or `ERROR` |
+| logType | string | `"Console"` | Log format, either `JSON` or `Console` |
+| nodeSelector | object | `{}` | Node labels for pod assignment |
+| podAnnotations | object | `{}` | Annotations to be added to Feast Serving pods |
+| podLabels | object | `{}` | Labels to be added to Feast Serving pods |
+| readinessProbe.enabled | bool | `true` | Flag to enabled the probe |
+| readinessProbe.failureThreshold | int | `5` | Min consecutive failures for the probe to be considered failed |
+| readinessProbe.initialDelaySeconds | int | `15` | Delay before the probe is initiated |
+| readinessProbe.periodSeconds | int | `10` | How often to perform the probe |
+| readinessProbe.successThreshold | int | `1` | Min consecutive success for the probe to be considered successful |
+| readinessProbe.timeoutSeconds | int | `10` | When the probe times out |
+| replicaCount | int | `1` | Number of pods that will be created |
+| resources | object | `{}` | CPU/memory [resource requests/limit](https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/#resource-requests-and-limits-of-pod-and-container) |
+| secrets | list | `[]` | List of Kubernetes secrets to be mounted. These secrets will be mounted on /etc/secrets/. |
+| service.grpc.nodePort | string | `nil` | Port number that each cluster node will listen to |
+| service.grpc.port | int | `6566` | Service port for GRPC requests |
+| service.grpc.targetPort | int | `6566` | Container port serving GRPC requests |
+| service.http.nodePort | string | `nil` | Port number that each cluster node will listen to |
+| service.http.port | int | `80` | Service port for HTTP requests |
+| service.http.targetPort | int | `8080` | Container port serving HTTP requests and Prometheus metrics |
+| service.type | string | `"ClusterIP"` | Kubernetes service type |
+| transformationService.host | string | `""` | |
+| transformationService.port | int | `6566` | |
----------------------------------------------
-Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0)
+Autogenerated from chart metadata using [helm-docs v1.11.0](https://github.com/norwoodj/helm-docs/releases/v1.11.0)
diff --git a/infra/charts/feast/charts/feature-server/values.yaml b/infra/charts/feast/charts/feature-server/values.yaml
index b70f1fdda0b..33672811743 100644
--- a/infra/charts/feast/charts/feature-server/values.yaml
+++ b/infra/charts/feast/charts/feature-server/values.yaml
@@ -5,7 +5,7 @@ image:
# image.repository -- Docker image for Feature Server repository
repository: feastdev/feature-server-java
# image.tag -- Image tag
- tag: 0.22.4
+ tag: 0.22.5
# image.pullPolicy -- Image pull policy
pullPolicy: IfNotPresent
diff --git a/infra/charts/feast/charts/transformation-service/Chart.yaml b/infra/charts/feast/charts/transformation-service/Chart.yaml
index bd4cb9fbecd..87a87aeef00 100644
--- a/infra/charts/feast/charts/transformation-service/Chart.yaml
+++ b/infra/charts/feast/charts/transformation-service/Chart.yaml
@@ -1,8 +1,8 @@
apiVersion: v1
description: "Transformation service: to compute on-demand features"
name: transformation-service
-version: 0.22.4
-appVersion: v0.22.4
+version: 0.22.5
+appVersion: v0.22.5
keywords:
- machine learning
- big data
diff --git a/infra/charts/feast/charts/transformation-service/README.md b/infra/charts/feast/charts/transformation-service/README.md
index 63b9d44c481..d08df2bcd82 100644
--- a/infra/charts/feast/charts/transformation-service/README.md
+++ b/infra/charts/feast/charts/transformation-service/README.md
@@ -1,6 +1,6 @@
# transformation-service
- 
+ 
Transformation service: to compute on-demand features
@@ -8,20 +8,21 @@ Transformation service: to compute on-demand features
## Values
-| Key | Type | Default | Description |
-|-----|------|--------------------------------------------|-------------|
-| envOverrides | object | `{}` | Extra environment variables to set |
-| image.pullPolicy | string | `"IfNotPresent"` | Image pull policy |
+| Key | Type | Default | Description |
+|-----|------|---------|-------------|
+| envOverrides | object | `{}` | Extra environment variables to set |
+| image.pullPolicy | string | `"IfNotPresent"` | Image pull policy |
| image.repository | string | `"feastdev/feature-transformation-server"` | Docker image for Transformation Server repository |
-| image.tag | string | `"0.22.4"` | Image tag |
-| nodeSelector | object | `{}` | Node labels for pod assignment |
-| podLabels | object | `{}` | Labels to be added to Feast Serving pods |
-| replicaCount | int | `1` | Number of pods that will be created |
-| resources | object | `{}` | CPU/memory [resource requests/limit](https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/#resource-requests-and-limits-of-pod-and-container) |
-| service.grpc.nodePort | string | `nil` | Port number that each cluster node will listen to |
-| service.grpc.port | int | `6566` | Service port for GRPC requests |
-| service.grpc.targetPort | int | `6566` | Container port serving GRPC requests |
-| service.type | string | `"ClusterIP"` | Kubernetes service type |
+| image.tag | string | `"0.22.5"` | Image tag |
+| nodeSelector | object | `{}` | Node labels for pod assignment |
+| podLabels | object | `{}` | Labels to be added to Feast Serving pods |
+| replicaCount | int | `1` | Number of pods that will be created |
+| resources | object | `{}` | CPU/memory [resource requests/limit](https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/#resource-requests-and-limits-of-pod-and-container) |
+| secrets | list | `[]` | List of Kubernetes secrets to be mounted. These secrets will be mounted on /etc/secrets/. |
+| service.grpc.nodePort | string | `nil` | Port number that each cluster node will listen to |
+| service.grpc.port | int | `6566` | Service port for GRPC requests |
+| service.grpc.targetPort | int | `6566` | Container port serving GRPC requests |
+| service.type | string | `"ClusterIP"` | Kubernetes service type |
----------------------------------------------
-Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0)
+Autogenerated from chart metadata using [helm-docs v1.11.0](https://github.com/norwoodj/helm-docs/releases/v1.11.0)
diff --git a/infra/charts/feast/charts/transformation-service/values.yaml b/infra/charts/feast/charts/transformation-service/values.yaml
index 53d221ded74..6b132bd4ae4 100644
--- a/infra/charts/feast/charts/transformation-service/values.yaml
+++ b/infra/charts/feast/charts/transformation-service/values.yaml
@@ -5,7 +5,7 @@ image:
# image.repository -- Docker image for Transformation Server repository
repository: feastdev/feature-transformation-server
# image.tag -- Image tag
- tag: 0.22.4
+ tag: 0.22.5
# image.pullPolicy -- Image pull policy
pullPolicy: IfNotPresent
diff --git a/infra/charts/feast/requirements.yaml b/infra/charts/feast/requirements.yaml
index 4b3c4a01a61..8ba3dde4545 100644
--- a/infra/charts/feast/requirements.yaml
+++ b/infra/charts/feast/requirements.yaml
@@ -1,12 +1,12 @@
dependencies:
- name: feature-server
alias: feature-server
- version: 0.22.4
+ version: 0.22.5
condition: feature-server.enabled
repository: https://feast-helm-charts.storage.googleapis.com
- name: transformation-service
alias: transformation-service
- version: 0.22.4
+ version: 0.22.5
condition: transformation-service.enabled
repository: https://feast-helm-charts.storage.googleapis.com
- name: redis
diff --git a/infra/scripts/helm/push-helm-charts.sh b/infra/scripts/helm/push-helm-charts.sh
index 1c32ee985b8..338751c28b8 100755
--- a/infra/scripts/helm/push-helm-charts.sh
+++ b/infra/scripts/helm/push-helm-charts.sh
@@ -16,10 +16,8 @@ helm repo add feast-helm-chart-repo $bucket
cd infra/charts
helm package feast
-helm package feast-python-server
helm package feast-feature-server
helm gcs push --public feast-${1}.tgz feast-helm-chart-repo --force
-helm gcs push --public feast-python-server-${1}.tgz feast-helm-chart-repo --force
helm gcs push --public feast-feature-server-${1}.tgz feast-helm-chart-repo --force
rm -f ./*.tgz
\ No newline at end of file
diff --git a/infra/scripts/release/files_to_bump.txt b/infra/scripts/release/files_to_bump.txt
index 37f53933260..6e10723c9ba 100644
--- a/infra/scripts/release/files_to_bump.txt
+++ b/infra/scripts/release/files_to_bump.txt
@@ -6,10 +6,9 @@ infra/charts/feast/charts/transformation-service/values.yaml 8
infra/charts/feast/charts/feature-server/Chart.yaml 4 5
infra/charts/feast/charts/feature-server/README.md 3 20
infra/charts/feast/charts/feature-server/values.yaml 8
-infra/charts/feast/README.md 11 58 59
-infra/charts/feast-python-server/Chart.yaml 5
-infra/charts/feast-python-server/README.md 3
+infra/charts/feast/README.md 11 68 69
infra/charts/feast-feature-server/Chart.yaml 5
infra/charts/feast-feature-server/README.md 3
+infra/charts/feast-feature-server/values.yaml 12
java/pom.xml 41
-ui/package.json 3
+ui/package.json 3
\ No newline at end of file
diff --git a/java/pom.xml b/java/pom.xml
index 1cb73c42ca0..c940e0e0195 100644
--- a/java/pom.xml
+++ b/java/pom.xml
@@ -38,7 +38,7 @@
- 0.22.4
+ 0.22.5
https://github.com/feast-dev/feast
UTF-8
diff --git a/sdk/python/feast/on_demand_feature_view.py b/sdk/python/feast/on_demand_feature_view.py
index 1978f51130f..7ef01252ee7 100644
--- a/sdk/python/feast/on_demand_feature_view.py
+++ b/sdk/python/feast/on_demand_feature_view.py
@@ -235,6 +235,9 @@ def __init__( # noqa: C901
odfv_source.name
] = odfv_source.projection
+ if _udf is None:
+ raise ValueError("The `udf` parameter must be specified.")
+ assert _udf
self.udf = udf # type: ignore
self.udf_string = udf_string
diff --git a/setup.py b/setup.py
index 9a6bcb9180b..ebff5f5cbcf 100644
--- a/setup.py
+++ b/setup.py
@@ -57,7 +57,7 @@
"Jinja2>=2,<4",
"jsonschema",
"mmh3",
- "numpy<1.22,<2",
+ "numpy>1.22,<2",
"pandas>=1,<2",
"pandavro==1.5.*",
"protobuf>3.20,<4",
diff --git a/ui/package.json b/ui/package.json
index 2278f9043c6..737898bf581 100644
--- a/ui/package.json
+++ b/ui/package.json
@@ -1,6 +1,6 @@
{
"name": "@feast-dev/feast-ui",
- "version": "0.22.4",
+ "version": "0.22.5",
"private": false,
"files": [
"dist"