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

get kserve up to date #66

Merged
merged 57 commits into from
Nov 22, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
57 commits
Select commit Hold shift + click to select a range
9380e99
add tags to rest server timing logs to differentiate cpu and wall tim…
gfkeith Sep 27, 2024
1e28d4f
Implement Huggingface model download in storage initializer (#3584)
andyi2it Sep 29, 2024
b344a0a
Update OWNERS file (#3966)
yuzisun Sep 30, 2024
20b6e29
Cluster local model controller (#3860)
greenmoon55 Oct 2, 2024
a50fdc9
Prepare for 0.14.0-rc1release and automate sync process (#3970)
sivanantha321 Oct 3, 2024
d5ed018
add a new API for multi-node/multi-gpu (#3871)
Jooho Oct 3, 2024
ecc3729
Fix update-openapigen.sh that can be executed from kserve dir (#3924)
Jooho Oct 5, 2024
24d882b
Add python 3.12 support and remove python 3.8 support (#3645)
sivanantha321 Oct 6, 2024
17725be
Fix openssl vulnerability CWE-1395 (#3975)
sivanantha321 Oct 9, 2024
d7d79e1
Fix Kubernetes Doc Links (#3670)
jyono Oct 9, 2024
70e12ff
Fix kserve local testing env (#3981)
yuzisun Oct 9, 2024
dec8c14
Fix streaming response not working properly with logger (#3847)
sivanantha321 Oct 10, 2024
6ff2a2f
Add a flag for automount serviceaccount token (#3979)
greenmoon55 Oct 10, 2024
d2695a5
Do not set security context on the storage initializer from user cont…
greenmoon55 Oct 11, 2024
7796c44
Modelcar race condition mitigation with an init container (#3932)
israel-hdez Oct 11, 2024
fc72a2b
Fix: Headers passing for v1/v2 endpoints (#3669)
andyi2it Oct 12, 2024
dbceef3
Torchserve security update (#3774)
udaij12 Oct 14, 2024
82234c0
Pin ubuntu 22.04 for minikube setup action (#3994)
greenmoon55 Oct 14, 2024
7e43642
KServe 0.14 Release (#3988)
greenmoon55 Oct 14, 2024
05dea67
bump to vllm0.6.2 add explicit chat template (#3964)
hustxiayang Oct 16, 2024
158d901
bump to vllm0.6.3 (#4001)
hustxiayang Oct 16, 2024
0bbb72c
Feature: Add hf transfer (#4000)
tjandy98 Oct 21, 2024
959f3b8
Fix snyk scan null error (#3974)
sivanantha321 Oct 21, 2024
13b294c
Update quick install script (#4005)
johnugeorge Oct 21, 2024
b8d6569
Local Model Node CR (#3978)
HotsauceLee Oct 21, 2024
37be241
Reduce E2Es dependency on CI environment (2) (#4008)
israel-hdez Oct 21, 2024
b4ce5d6
Allow GCS to download single file (#4015)
spolti Oct 29, 2024
aaee8a0
bump to vllm0.6.3.post1 (#4023)
hustxiayang Nov 3, 2024
9f71bbb
Set default for SamplingParams.max_tokens in OpenAI requests if unset…
kevinmingtarja Nov 4, 2024
505cede
Add tools functionality to vLLM (#4033)
ArjunBhalla98 Nov 5, 2024
c9780ed
Use apt-get upgrade for CVE fixes
yuzisun Nov 5, 2024
75ad0cc
For vllm users, our parser should be able to support both - and _ (#3…
hustxiayang Nov 5, 2024
3deb30f
Add tools unpacking for vLLM (#4035)
ArjunBhalla98 Nov 5, 2024
6a651d1
Multi-Node Inference Implementation (#3972)
Jooho Nov 6, 2024
778089a
Enhance InjectAgent to Handle Only HTTPGet, TCP Readiness Probes (#4012)
LOADBC Nov 7, 2024
21b103e
Feat: Fix memory issue by replacing io.ReadAll with io.Copy (#4017) (…
ops-jaeha Nov 7, 2024
51faabd
Update alibiexplainer example (#4004)
spolti Nov 10, 2024
4bd6d63
Fix huggingface build runs out of storage in CI (#4044)
sivanantha321 Nov 12, 2024
7900f41
Update snyk scan to include new images (#4042)
sivanantha321 Nov 12, 2024
19823b0
Introducing KServe Guru on Gurubase.io (#4038)
kursataktas Nov 12, 2024
ac66d36
Fix Hugging Face server EncoderModel not returning probabilities (#4024)
oplushappy Nov 12, 2024
b121f7c
Add deeper readiness check for transformer (#3348)
sivanantha321 Nov 12, 2024
3c609c1
Fix Starlette Denial of service (DoS) via multipart/form-data (#4006)
spolti Nov 13, 2024
0dfd17d
remove duplicated import "github.com/onsi/gomega" (#4051)
carlory Nov 14, 2024
44435a2
Fix localmodel controller name in snyk scan workflow (#4054)
sivanantha321 Nov 16, 2024
ea2318c
Fix azure blob storage access key env not mounted (#4064)
bentohset Nov 19, 2024
0547c44
Storage Initializer support single digit azure DNS zone ID (#4070)
bentohset Nov 21, 2024
3b6643c
support text embedding task in huggingfaceserver
kevinmingtarja Jun 14, 2024
5f4f1cd
fix lint errors
kevinmingtarja Jun 14, 2024
5fc054a
format code
kevinmingtarja Jun 14, 2024
b650cb3
bring back enhancements after getting kserve up-to-date (#42)
kevinmingtarja Apr 27, 2024
4a83ac3
use self.model_config.id2label by default (#45)
kevinmingtarja May 6, 2024
e36671f
minor cleanup and fixes after rebase
kevinmingtarja Jun 18, 2024
2f31bf9
use approx in test_input_padding
kevinmingtarja Jun 18, 2024
d3aa185
revert token_classification changes
kevinmingtarja Aug 19, 2024
0834baa
fix test
kevinmingtarja Nov 22, 2024
db1126f
Merge branch 'master' into kevinm/rebase
kevinmingtarja Nov 22, 2024
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
31 changes: 22 additions & 9 deletions .github/workflows/e2e-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ env:
BASE_ARTIFACT_PREFIX: "base"
# Controller images
CONTROLLER_IMG: "kserve-controller"
LOCALMODEL_CONTROLLER_IMG: "kserve-localmodel-controller"
STORAGE_INIT_IMG: "storage-initializer"
AGENT_IMG: "agent"
ROUTER_IMG: "router"
Expand All @@ -33,6 +34,7 @@ env:
PMML_IMG: "pmmlserver"
PADDLE_IMG: "paddleserver"
CUSTOM_MODEL_GRPC_IMG: "custom-model-grpc"
CUSTOM_MODEL_GRPC_IMG_TAG: "kserve/custom-model-grpc:${{ github.sha }}"
HUGGINGFACE_IMG: "huggingfaceserver"
# Explainer images
ART_IMG: "art-explainer"
Expand All @@ -55,6 +57,9 @@ jobs:
- name: Checkout source
uses: actions/checkout@v4

- name: Free-up disk space
uses: ./.github/actions/free-up-disk-space

- name: Setup Docker Buildx
uses: docker/setup-buildx-action@v3

Expand All @@ -73,6 +78,14 @@ jobs:
path: ${{ env.DOCKER_IMAGES_PATH }}/${{ env.CONTROLLER_IMG }}-${{ github.sha }}
compression-level: 0
if-no-files-found: error

- name: Upload localmodel controller image
uses: actions/upload-artifact@v4
with:
name: ${{ env.BASE_ARTIFACT_PREFIX }}-${{ env.LOCALMODEL_CONTROLLER_IMG }}-${{ github.sha }}
path: ${{ env.DOCKER_IMAGES_PATH }}/${{ env.LOCALMODEL_CONTROLLER_IMG }}-${{ github.sha }}
compression-level: 0
if-no-files-found: error

- name: Upload agent image
uses: actions/upload-artifact@v4
Expand Down Expand Up @@ -272,7 +285,7 @@ jobs:
if-no-files-found: error

test-predictor:
runs-on: ubuntu-latest
runs-on: ubuntu-22.04
needs:
[
kserve-image-build,
Expand Down Expand Up @@ -337,7 +350,7 @@ jobs:
./test/scripts/gh-actions/status-check.sh

test-transformer-explainer-mms:
runs-on: ubuntu-latest
runs-on: ubuntu-22.04
needs:
[kserve-image-build, predictor-runtime-build, explainer-runtime-build]
steps:
Expand Down Expand Up @@ -417,7 +430,7 @@ jobs:
./test/scripts/gh-actions/status-check.sh

test-graph:
runs-on: ubuntu-latest
runs-on: ubuntu-22.04
needs:
[
kserve-image-build,
Expand Down Expand Up @@ -496,7 +509,7 @@ jobs:


test-path-based-routing:
runs-on: ubuntu-latest
runs-on: ubuntu-22.04
needs:
[
kserve-image-build,
Expand Down Expand Up @@ -589,7 +602,7 @@ jobs:
./test/scripts/gh-actions/status-check.sh

test-qpext:
runs-on: ubuntu-latest
runs-on: ubuntu-22.04
needs: [kserve-image-build, predictor-runtime-build]
steps:
- name: Checkout source
Expand Down Expand Up @@ -654,7 +667,7 @@ jobs:
./test/scripts/gh-actions/status-check.sh

test-with-helm:
runs-on: ubuntu-latest
runs-on: ubuntu-22.04
needs:
[kserve-image-build]
steps:
Expand Down Expand Up @@ -705,7 +718,7 @@ jobs:
./test/scripts/gh-actions/status-check.sh

test-raw:
runs-on: ubuntu-latest
runs-on: ubuntu-22.04
needs:
[kserve-image-build, predictor-runtime-build]
steps:
Expand Down Expand Up @@ -785,7 +798,7 @@ jobs:
./test/scripts/gh-actions/status-check.sh

test-kourier:
runs-on: ubuntu-latest
runs-on: ubuntu-22.04
needs:
[kserve-image-build, predictor-runtime-build, graph-tests-images-build]
steps:
Expand Down Expand Up @@ -870,7 +883,7 @@ jobs:
./test/scripts/gh-actions/status-check.sh "kourier"

test-llm:
runs-on: ubuntu-latest
runs-on: ubuntu-22.04
needs:
[ kserve-image-build, predictor-runtime-build]
steps:
Expand Down
95 changes: 95 additions & 0 deletions .github/workflows/kserve-localmodel-controller-docker-publish.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
name: Kserve localmodel controller Docker Publisher

on:
push:
# Publish `master` as Docker `latest` image.
branches:
- master

# Publish `v1.2.3` tags as releases.
tags:
- v*

# Run tests for any PRs.
pull_request:

env:
IMAGE_NAME: kserve-localmodel-controller

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
# Run tests.
# See also https://docs.docker.com/docker-hub/builds/automated-testing/
test:
runs-on: ubuntu-latest

steps:
- name: Checkout source
uses: actions/checkout@v4

- name: Run tests
run: |
if [ -f docker-compose.test.yml ]; then
docker-compose --file docker-compose.test.yml build
docker-compose --file docker-compose.test.yml run sut
else
docker buildx build . --file localmodel.Dockerfile
fi

# Push image to GitHub Packages.
# See also https://docs.docker.com/docker-hub/builds/
push:
# Ensure test job passes before pushing image.
needs: test

runs-on: ubuntu-latest
if: github.event_name == 'push'

steps:
- name: Checkout source
uses: actions/checkout@v4

- name: Setup QEMU
uses: docker/setup-qemu-action@v3

- name: Setup Docker Buildx
uses: docker/setup-buildx-action@v3

- name: Login to DockerHub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_USER }}
password: ${{ secrets.DOCKER_PASSWORD }}

- name: export version variable
run: |
IMAGE_ID=kserve/$IMAGE_NAME

# Change all uppercase to lowercase
IMAGE_ID=$(echo $IMAGE_ID | tr '[A-Z]' '[a-z]')

# Strip git ref prefix from version
VERSION=$(echo "${{ github.ref }}" | sed -e 's,.*/\(.*\),\1,')

# Strip "v" prefix from tag name
# [[ "${{ github.ref }}" == "refs/tags/"* ]] && VERSION=$(echo $VERSION | sed -e 's/^v//')

# Use Docker `latest` tag convention
[ "$VERSION" == "master" ] && VERSION=latest

echo VERSION=$VERSION >> $GITHUB_ENV
echo IMAGE_ID=$IMAGE_ID >> $GITHUB_ENV

- name: Build and push
uses: docker/build-push-action@v5
with:
platforms: linux/amd64,linux/arm/v7,linux/arm64/v8,linux/ppc64le,linux/s390x
context: .
file: localmodel.Dockerfile
push: true
tags: ${{ env.IMAGE_ID }}:${{ env.VERSION }}
# https://github.com/docker/buildx/issues/1533
provenance: false
15 changes: 7 additions & 8 deletions .github/workflows/python-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ["3.8", "3.9", "3.10", "3.11"]
python-version: ["3.9", "3.10", "3.11", "3.12"]
steps:
- name: Checkout source
uses: actions/checkout@v4
Expand Down Expand Up @@ -98,29 +98,33 @@ jobs:

# ----------------------------------------Kserve Pydantic V1 Unit Tests--------------------------------------------
- name: Setup kserve pydantic v1 directory
if: ${{ !startsWith(steps.setup-python.outputs.python-version, '3.12') }}
run: |
mkdir -p python/kserve-pydantic-v1
cp -r python/kserve/* python/kserve-pydantic-v1
cd python/kserve-pydantic-v1
# update the lock file without installing dependencies
poetry update "pydantic<2.0" --lock
- name: Load cached kserve pydantic v1 venv
if: ${{ !startsWith(steps.setup-python.outputs.python-version, '3.12') }}
id: cached-kserve-pydantic-v1-dependencies
uses: actions/cache@v3
with:
path: python/kserve-pydantic-v1/.venv
key: kserve-pydantic-v1-venv-${{ steps.setup-python.outputs.python-version }}-${{ hashFiles('**/kserve-pydantic-v1/poetry.lock') }}
# install kserve pydantic v1 dependencies if cache does not exist
- name: Install kserve pydantic v1 dependencies
if: steps.cached-kserve-pydantic-v1-dependencies.outputs.cache-hit != 'true'
if: ${{ !startsWith(steps.setup-python.outputs.python-version, '3.12') && steps.cached-kserve-pydantic-v1-dependencies.outputs.cache-hit != 'true' }}
run: |
cd python/kserve-pydantic-v1
make install_dependencies
- name: Install kserve pydantic v1
if: ${{ !startsWith(steps.setup-python.outputs.python-version, '3.12') }}
run: |
cd python/kserve-pydantic-v1
make dev_install
- name: Test kserve pydantic v1
if: ${{ !startsWith(steps.setup-python.outputs.python-version, '3.12') }}
run: |
cd python
source kserve-pydantic-v1/.venv/bin/activate
Expand Down Expand Up @@ -250,37 +254,32 @@ jobs:
# ----------------------------------------Huggingface Server Unit Tests------------------------------------------------
# load cached huggingface venv if cache exists
- name: Load cached huggingface venv
if: ${{ !startsWith(steps.setup-python.outputs.python-version, '3.8') }}
id: huggingface-dependencies
uses: actions/cache@v4
with:
path: /mnt/python/huggingfaceserver-venv
key: huggingface-venv-${{ steps.setup-python.outputs.python-version }}-${{ hashFiles('**/kserve/poetry.lock', '**/huggingfaceserver/poetry.lock') }}
# install huggingface server dependencies if cache does not exist
- name: Configure poetry for huggingface server
if: ${{ !startsWith(steps.setup-python.outputs.python-version, '3.8') }}
run: |
poetry config virtualenvs.path /mnt/python/huggingfaceserver-venv
poetry config virtualenvs.in-project false
- name: Install huggingface dependencies
if: ${{ steps.cached-huggingface-dependencies.outputs.cache-hit != 'true' && !startsWith(steps.setup-python.outputs.python-version, '3.8') }}
run: |
sudo mkdir -p /mnt/python/huggingfaceserver-venv
# change permission so that poetry can install without sudo
sudo chown -R $USER /mnt/python/huggingfaceserver-venv
cd python/huggingfaceserver
make install_dependencies
- name: Install huggingface server
if: ${{ !startsWith(steps.setup-python.outputs.python-version, '3.8') }}
run: |
cd python/huggingfaceserver
make dev_install
- name: Test huggingfaceserver
if: ${{ !startsWith(steps.setup-python.outputs.python-version, '3.8') }}
run: |
cd python/huggingfaceserver
poetry run -- pytest --cov=huggingfaceserver -vv

- name: Free space after tests
run: |
df -hT
df -hT
12 changes: 9 additions & 3 deletions .github/workflows/scheduled-image-scan.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ jobs:
file: python/storage-initializer.Dockerfile,
},
{ name: router, file: router.Dockerfile },
{ name: kserve-localmodel-controller, file: localmodel.Dockerfile },
]

steps:
Expand All @@ -43,13 +44,14 @@ jobs:
--sarif-file-output=./application/${{ matrix.image.name }}/docker.snyk.sarif
sarif: false

# Replace any "undefined" security severity values with 0. The undefined value is used in the case
# Replace any "undefined" or "null" security severity values with 0. The undefined value is used in the case
# of license-related findings, which do not indicate a security vulnerability.
# See https://github.com/github/codeql-action/issues/2187 for more context.
# This can be removed once https://github.com/snyk/cli/pull/5409 is merged.
- name: Replace security-severity undefined for license-related findings
run: |
sudo sed -i 's/"security-severity": "undefined"/"security-severity": "0"/g' ./application/${{ matrix.image.name }}/docker.snyk.sarif
sudo sed -i 's/"security-severity": "null"/"security-severity": "0"/g' ./application/${{ matrix.image.name }}/docker.snyk.sarif

- name: Upload sarif file to Github Code Scanning
if: always()
Expand All @@ -69,6 +71,8 @@ jobs:
{ name: xgbserver, file: python/xgb.Dockerfile },
{ name: pmmlserver, file: python/pmml.Dockerfile },
{ name: paddleserver, file: python/paddle.Dockerfile },
{ name: lgbserver, file: python/lgb.Dockerfile },
{ name: huggingfaceserver, file: python/huggingface_server.Dockerfile },
]

steps:
Expand All @@ -88,13 +92,14 @@ jobs:
--sarif-file-output=./application/${{ matrix.image.name }}/docker.snyk.sarif
sarif: false

# Replace any "undefined" security severity values with 0. The undefined value is used in the case
# Replace any "undefined" or "null" security severity values with 0. The undefined value is used in the case
# of license-related findings, which do not indicate a security vulnerability.
# See https://github.com/github/codeql-action/issues/2187 for more context.
# This can be removed once https://github.com/snyk/cli/pull/5409 is merged.
- name: Replace security-severity undefined for license-related findings
run: |
sudo sed -i 's/"security-severity": "undefined"/"security-severity": "0"/g' ./application/${{ matrix.image.name }}/docker.snyk.sarif
sudo sed -i 's/"security-severity": "null"/"security-severity": "0"/g' ./application/${{ matrix.image.name }}/docker.snyk.sarif

- name: Upload sarif file to Github Code Scanning
if: always()
Expand Down Expand Up @@ -129,13 +134,14 @@ jobs:
--sarif-file-output=./application/${{ matrix.image.name }}/docker.snyk.sarif
sarif: false

# Replace any "undefined" security severity values with 0. The undefined value is used in the case
# Replace any "undefined" or "null" security severity values with 0. The undefined value is used in the case
# of license-related findings, which do not indicate a security vulnerability.
# See https://github.com/github/codeql-action/issues/2187 for more context.
# This can be removed once https://github.com/snyk/cli/pull/5409 is merged.
- name: Replace security-severity undefined for license-related findings
run: |
sudo sed -i 's/"security-severity": "undefined"/"security-severity": "0"/g' ./application/${{ matrix.image.name }}/docker.snyk.sarif
sudo sed -i 's/"security-severity": "null"/"security-severity": "0"/g' ./application/${{ matrix.image.name }}/docker.snyk.sarif

- name: Upload sarif file to Github Code Scanning
if: always()
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@ venv/
config/overlays/development/manager_image_patch.yaml
config/overlays/development/configmap/inferenceservice_patch.yaml
config/overlays/development/manager_auth_proxy_patch.yaml
config/overlays/development/localmodel_image_patch.yaml
config/overlays/dev-image-config/inferenceservice_patch.yaml

.ko.yaml
Expand Down
Loading