Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
42 commits
Select commit Hold shift + click to select a range
19e4d22
adding feast submodule
Vikash082 Jan 21, 2022
1bddb2d
added custom provider
Vikash082 Jan 21, 2022
4e6f013
adding patch file
Vikash082 Jan 21, 2022
b796f48
changed patch format
Vikash082 Jan 25, 2022
2d09995
Added install instructions in README
Vikash082 Jan 25, 2022
7fe7e19
base changes for online server
Vikash082 Feb 10, 2022
713b3b3
Added modules and other needed APIs foronline store
Vikash082 Feb 10, 2022
5619189
Infra update and delete through online_server
Vikash082 Feb 11, 2022
4560107
Support for materialize command
Vikash082 Feb 16, 2022
a5c8beb
Added instruction to generate repo yaml
Vikash082 Feb 16, 2022
41aa975
Fixed README
Vikash082 Feb 17, 2022
c9f3bba
Merge branch 'online_server_changes' of https://github.com/oneconverg…
Vikash082 Feb 18, 2022
b127949
Dockerfile for online server
Vikash082 Feb 21, 2022
ccfe28d
Fixed README
Vikash082 Feb 22, 2022
0d925ab
Added config for dkube_ip & dkube_token for DkubeClient
Vikash082 Feb 23, 2022
ad9268c
Merge branch 'online_server_changes' of https://github.com/oneconverg…
Vikash082 Feb 24, 2022
6a86aed
Added feast feature_server API to online server
Vikash082 Feb 24, 2022
7c0d721
Registry config cleanup
Vikash082 Mar 2, 2022
19d7b78
Minor changes in mysqlserver query
Vikash082 Mar 4, 2022
9c84fba
Refactored online server code based on directory changes
Vikash082 Mar 22, 2022
3904a16
Merge branch 'online_server_changes' of https://github.com/oneconverg…
Vikash082 Mar 22, 2022
3e0e5fb
Testing changes of refactored code
Vikash082 Mar 22, 2022
a917222
Refactord online_server "dkube" dir to "dkubefs"
Vikash082 Mar 25, 2022
87bd916
changes after adding dkube sdk apis
Vikash082 Mar 30, 2022
71a9517
Merge branch 'online_server_changes' of https://github.com/oneconverg…
Vikash082 Apr 4, 2022
7349835
Knative yaml for feast online server
Vikash082 Apr 5, 2022
c5404d6
changed utility to read all the config through environment variable.
Vikash082 Apr 5, 2022
105783c
knative svc and api changes
Vikash082 Apr 6, 2022
b07d554
Extended feature store APIs and setupp.py fixes
Vikash082 Apr 6, 2022
ebe36ee
Added instructions in README
Vikash082 Apr 7, 2022
d3ec574
Utils changes
Vikash082 Jun 2, 2022
00fbc17
removed the redundant arg in mysqlserver driver
Vikash082 Jun 3, 2022
ea83f75
mysql config changed 'secret' to 'password'
Vikash082 Jun 8, 2022
486e56f
online server configmap & utils changes
Vikash082 Jun 8, 2022
c410e39
removed DKUBE_DATASET and changed knative service manifests
Vikash082 Jun 15, 2022
6a553a2
Changes in setup.py according to python 3.9.10
Vikash082 Jun 28, 2022
88684fa
changes to support user and offline_dataset receive with req
Vikash082 Jul 5, 2022
e5eb717
added missing autocommit
Vikash082 Jul 5, 2022
5bcd7a5
updated feast to v0.22
Vikash082 Sep 6, 2022
48cde20
patch according to feast v0.22
Vikash082 Sep 6, 2022
f61543a
latest patch and online server changes
Vikash082 Sep 12, 2022
48caa09
feast online server changes based on v0.22
Vikash082 Sep 30, 2022
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
1 change: 1 addition & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Dockerfile
2 changes: 2 additions & 0 deletions .env
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
DKUBE_IP=""
DKUBE_TOKEN=""
152 changes: 152 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,152 @@
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class

# C extensions
*.so

# Distribution / packaging
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
share/python-wheels/
*.egg-info/
.installed.cfg
*.egg
MANIFEST

# PyInstaller
# Usually these files are written by a python script from a template
# before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec

# Installer logs
pip-log.txt
pip-delete-this-directory.txt

# Unit test / coverage reports
htmlcov/
.tox/
.nox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*.cover
*.py,cover
.hypothesis/
.pytest_cache/
cover/

# Translations
*.mo
*.pot

# Django stuff:
*.log
local_settings.py
db.sqlite3
db.sqlite3-journal

# Flask stuff:
instance/
.webassets-cache

# Scrapy stuff:
.scrapy

# Sphinx documentation
docs/_build/

# PyBuilder
.pybuilder/
target/

# Jupyter Notebook
.ipynb_checkpoints

# IPython
profile_default/
ipython_config.py

# pyenv
# For a library or package, you might want to ignore these files since the code is
# intended to run in multiple environments; otherwise, check them in:
# .python-version

# pipenv
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
# However, in case of collaboration, if having platform-specific dependencies or dependencies
# having no cross-platform support, pipenv may install dependencies that don't work, or not
# install all needed dependencies.
#Pipfile.lock

# poetry
# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
# This is especially recommended for binary packages to ensure reproducibility, and is more
# commonly ignored for libraries.
# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
#poetry.lock

# PEP 582; used by e.g. github.com/David-OConnor/pyflow
__pypackages__/

# Celery stuff
celerybeat-schedule
celerybeat.pid

# SageMath parsed files
*.sage.py

# Environments
.env
.venv
env/
venv/
ENV/
env.bak/
venv.bak/

# Spyder project settings
.spyderproject
.spyproject

# Rope project settings
.ropeproject

# mkdocs documentation
/site

# mypy
.mypy_cache/
.dmypy.json
dmypy.json

# Pyre type checker
.pyre/

# pytype static type analyzer
.pytype/

# Cython debug symbols
cython_debug/

# PyCharm
# JetBrains specific template is maintainted in a separate JetBrains.gitignore that can
# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
# and can be added to the global gitignore or merged into this file. For a more nuclear
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
#.idea/
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[submodule "feast"]
path = feast
url = https://github.com/feast-dev/feast.git
33 changes: 33 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
FROM python:3.9.10-slim

WORKDIR /usr/src/feast

ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1
ENV PYTHONPATH=$PYTHONPATH:/usr/src/feast:/usr/src/feast/provider/sdk

RUN apt-get update \
&& apt-get -y install gcc git build-essential procps net-tools \
&& apt-get clean \
&& pip install --no-cache-dir -U pip \
&& rm -rf /var/lib/apt/lists/*

COPY . .

RUN pip install --no-cache-dir -r ./online_server/requirements.txt

RUN git submodule init && git submodule update

COPY setup.py ./feast/sdk/python/setup.py

RUN cd ./feast/ && patch -p1 < ../feast_ol_server.patch && make install-python

RUN pip3 install git+https://github.com/oneconvergence/dkube.git@feast_changes --upgrade

WORKDIR /usr/src/feast/online_server

RUN addgroup --system olserver && adduser --system --group olserver

USER olserver

CMD ["python", "server.py"]
41 changes: 41 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1 +1,42 @@
# feast

## Run online service as Knative service

1. Build image
git clone https://github.com/oneconvergence/feast.git
git checkout -b online_server_changes origin/online_server_changes
cd feast/
docker build -i <image name> .

2. Run Knative service
Edit file:
online_server/online_svc.yaml
kubectl apply -f online_server/online_svc.yaml
kubectl get ksvc


## Installation steps to run local dev environment

- Pre-requisite - Setup a virtual environment with python 3.9.7 or above.
- Steps:

git clone https://github.com/oneconvergence/feast.git
git checkout -b online_server_changes origin/online_server_changes
cd feast/feast
git submodule init
git submodule update
patch -p1 < ../feast_ol_server.patch
make install-python

- Set PYTHONPATH:

export BASE=<path to above cloned feast dir>
export PYTHONPATH=$BASE:$PYTHONPATH
export PYTHONPATH=$BASE/provider/sdk/:$PYTHONPATH

- That's it.

## Generate repo configuraton

cd online_server
python -m common.utils.utils $(pwd)/config/cfg.json <name of o/p file>
1 change: 1 addition & 0 deletions feast
Submodule feast added at 99e5d2
Loading