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

[pull] master from kserve:master #173

Closed
wants to merge 10 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
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
79 changes: 79 additions & 0 deletions .github/workflows/huggingface-docker-publish.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
name: Huggingface Docker Publisher

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

# Run tests for any PRs.
pull_request:

env:
IMAGE_NAME: huggingfaceserver

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:
- uses: actions/checkout@v2

- 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
cd python
docker buildx build . --file huggingface_server.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:
- uses: actions/checkout@v2

- name: Build image
run: |
cd python
docker buildx build . --file huggingface_server.Dockerfile --tag $IMAGE_NAME

- name: Log into registry
run: docker login -u ${{ secrets.DOCKER_USER }} -p ${{ secrets.DOCKER_PASSWORD }}

- name: Push image
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 IMAGE_ID=$IMAGE_ID
echo VERSION=$VERSION

docker tag $IMAGE_NAME $IMAGE_ID:$VERSION
docker push $IMAGE_ID:$VERSION

25 changes: 25 additions & 0 deletions .github/workflows/python-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -221,3 +221,28 @@ jobs:
cd python
source alibiexplainer/.venv/bin/activate
pytest --cov=alibiexplainer ./alibiexplainer

# ----------------------------------------Huggingface Server Unit Tests------------------------------------------------
# load cached huggingface venv if cache exists
- name: Load cached huggingface venv
id: huggingface-dependencies
uses: actions/cache@v3
with:
path: 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: Install huggingface dependencies
if: steps.cached-huggingface-dependencies.outputs.cache-hit != 'true'
run: |
cd python/huggingfaceserver
make install_dependencies
- name: Install huggingface server
run: |
cd python/huggingfaceserver
make dev_install
- name: Test huggingfaceserver
run: |
cd python
source huggingfaceserver/.venv/bin/activate
pytest --cov=huggingfaceserver ./huggingfaceserver

8 changes: 8 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
repos:
- repo: https://github.com/norwoodj/helm-docs
rev: v1.12.0
hooks:
- id: helm-docs
args:
- --chart-search-root=charts
- --output-file=README.md
13 changes: 11 additions & 2 deletions charts/kserve-crd/README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,16 @@
# kserve-crd

## Using this chart
Helm chart for deploying kserve crds

![Version: v0.12.0-rc1](https://img.shields.io/badge/Version-v0.12.0--rc1-informational?style=flat-square)

## Installing the Chart

To install the chart, run the following:

```console
helm install kserve-crd oci://ghcr.io/kserve/charts/kserve-crd --version v0.12.0-rc0
$ helm install kserve-crd oci://ghcr.io/kserve/charts/kserve-crd --version v0.12.0-rc1
```

----------------------------------------------
Autogenerated from chart metadata using [helm-docs v1.12.0](https://github.com/norwoodj/helm-docs/releases/v1.12.0)
14 changes: 14 additions & 0 deletions charts/kserve-crd/README.md.gotmpl
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{{ template "chart.header" . }}
{{ template "chart.description" . }}

{{ template "chart.versionBadge" . }}{{ template "chart.typeBadge" . }}{{ template "chart.appVersionBadge" . }}

## Installing the Chart

To install the chart, run the following:

```console
$ helm install kserve-crd oci://ghcr.io/kserve/charts/kserve-crd --version {{ template "chart.version" . }}
```

{{ template "helm-docs.versionFooter" . }}
Empty file added charts/kserve-crd/values.yaml
Empty file.
110 changes: 103 additions & 7 deletions charts/kserve-resources/README.md
Original file line number Diff line number Diff line change
@@ -1,15 +1,111 @@
# kserve

## Using this chart
Helm chart for deploying kserve resources

First install the `kserve-crd` chart
![Version: v0.12.0-rc1](https://img.shields.io/badge/Version-v0.12.0--rc1-informational?style=flat-square)

```console
helm install kserve-crd oci://ghcr.io/kserve/charts/kserve-crd --version v0.12.0-rc0
```
## Installing the Chart

Then install this chart
To install the chart, run the following:

```console
helm install kserve oci://ghcr.io/kserve/charts/kserve --version v0.12.0-rc0
$ helm install kserve oci://ghcr.io/kserve/charts/kserve --version v0.12.0-rc1
```

## Values

| Key | Type | Default | Description |
|-----|------|---------|-------------|
| kserve.agent.image | string | `"kserve/agent"` | |
| kserve.agent.tag | string | `"v0.12.0-rc1"` | |
| kserve.controller.affinity | object | `{}` | |
| kserve.controller.deploymentMode | string | `"Serverless"` | |
| kserve.controller.gateway.disableIstioVirtualHost | bool | `false` | |
| kserve.controller.gateway.domain | string | `"example.com"` | |
| kserve.controller.gateway.domainTemplate | string | `"{{ .Name }}-{{ .Namespace }}.{{ .IngressDomain }}"` | |
| kserve.controller.gateway.ingressGateway.className | string | `"istio"` | |
| kserve.controller.gateway.ingressGateway.gateway | string | `"knative-serving/knative-ingress-gateway"` | |
| kserve.controller.gateway.ingressGateway.gatewayService | string | `"istio-ingressgateway.istio-system.svc.cluster.local"` | |
| kserve.controller.gateway.localGateway.gateway | string | `"knative-serving/knative-local-gateway"` | |
| kserve.controller.gateway.localGateway.gatewayService | string | `"knative-local-gateway.istio-system.svc.cluster.local"` | |
| kserve.controller.gateway.urlScheme | string | `"http"` | |
| kserve.controller.image | string | `"kserve/kserve-controller"` | |
| kserve.controller.nodeSelector | object | `{}` | |
| kserve.controller.rbacProxyImage | string | `"gcr.io/kubebuilder/kube-rbac-proxy:v0.13.1"` | |
| kserve.controller.resources.limits.cpu | string | `"100m"` | |
| kserve.controller.resources.limits.memory | string | `"300Mi"` | |
| kserve.controller.resources.requests.cpu | string | `"100m"` | |
| kserve.controller.resources.requests.memory | string | `"300Mi"` | |
| kserve.controller.tag | string | `"v0.12.0-rc1"` | |
| kserve.controller.tolerations | list | `[]` | |
| kserve.controller.topologySpreadConstraints | list | `[]` | |
| kserve.metricsaggregator.enableMetricAggregation | string | `"false"` | |
| kserve.metricsaggregator.enablePrometheusScraping | string | `"false"` | |
| kserve.modelmesh.config.modelmeshImage | string | `"kserve/modelmesh"` | |
| kserve.modelmesh.config.modelmeshImageTag | string | `"v0.11.1"` | |
| kserve.modelmesh.config.modelmeshRuntimeAdapterImage | string | `"kserve/modelmesh-runtime-adapter"` | |
| kserve.modelmesh.config.modelmeshRuntimeAdapterImageTag | string | `"v0.11.1"` | |
| kserve.modelmesh.config.podsPerRuntime | int | `2` | |
| kserve.modelmesh.config.restProxyImage | string | `"kserve/rest-proxy"` | |
| kserve.modelmesh.config.restProxyImageTag | string | `"v0.11.1"` | |
| kserve.modelmesh.controller.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[0].podAffinityTerm.labelSelector.matchExpressions[0].key | string | `"control-plane"` | |
| kserve.modelmesh.controller.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[0].podAffinityTerm.labelSelector.matchExpressions[0].operator | string | `"In"` | |
| kserve.modelmesh.controller.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[0].podAffinityTerm.labelSelector.matchExpressions[0].values[0] | string | `"modelmesh-controller"` | |
| kserve.modelmesh.controller.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[0].podAffinityTerm.topologyKey | string | `"topology.kubernetes.io/zone"` | |
| kserve.modelmesh.controller.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[0].weight | int | `100` | |
| kserve.modelmesh.controller.image | string | `"kserve/modelmesh-controller"` | |
| kserve.modelmesh.controller.nodeSelector | object | `{}` | |
| kserve.modelmesh.controller.tag | string | `"v0.11.1"` | |
| kserve.modelmesh.controller.tolerations | list | `[]` | |
| kserve.modelmesh.controller.topologySpreadConstraints | list | `[]` | |
| kserve.modelmesh.enabled | bool | `true` | |
| kserve.modelmeshVersion | string | `"v0.11.1"` | |
| kserve.router.image | string | `"kserve/router"` | |
| kserve.router.tag | string | `"v0.12.0-rc1"` | |
| kserve.servingruntime.alibi.defaultVersion | string | `"v0.12.0-rc1"` | |
| kserve.servingruntime.alibi.image | string | `"kserve/alibi-explainer"` | |
| kserve.servingruntime.art.defaultVersion | string | `"v0.12.0-rc1"` | |
| kserve.servingruntime.art.image | string | `"kserve/art-explainer"` | |
| kserve.servingruntime.lgbserver.image | string | `"kserve/lgbserver"` | |
| kserve.servingruntime.lgbserver.tag | string | `"v0.12.0-rc1"` | |
| kserve.servingruntime.mlserver.image | string | `"docker.io/seldonio/mlserver"` | |
| kserve.servingruntime.mlserver.modelClassPlaceholder | string | `"{{.Labels.modelClass}}"` | |
| kserve.servingruntime.mlserver.tag | string | `"1.3.2"` | |
| kserve.servingruntime.modelNamePlaceholder | string | `"{{.Name}}"` | |
| kserve.servingruntime.paddleserver.image | string | `"kserve/paddleserver"` | |
| kserve.servingruntime.paddleserver.tag | string | `"v0.12.0-rc1"` | |
| kserve.servingruntime.pmmlserver.image | string | `"kserve/pmmlserver"` | |
| kserve.servingruntime.pmmlserver.tag | string | `"v0.12.0-rc1"` | |
| kserve.servingruntime.sklearnserver.image | string | `"kserve/sklearnserver"` | |
| kserve.servingruntime.sklearnserver.tag | string | `"v0.12.0-rc1"` | |
| kserve.servingruntime.tensorflow.image | string | `"tensorflow/serving"` | |
| kserve.servingruntime.tensorflow.tag | string | `"2.6.2"` | |
| kserve.servingruntime.torchserve.image | string | `"pytorch/torchserve-kfs"` | |
| kserve.servingruntime.torchserve.serviceEnvelopePlaceholder | string | `"{{.Labels.serviceEnvelope}}"` | |
| kserve.servingruntime.torchserve.tag | string | `"0.9.0"` | |
| kserve.servingruntime.tritonserver.image | string | `"nvcr.io/nvidia/tritonserver"` | |
| kserve.servingruntime.tritonserver.tag | string | `"23.05-py3"` | |
| kserve.servingruntime.xgbserver.image | string | `"kserve/xgbserver"` | |
| kserve.servingruntime.xgbserver.tag | string | `"v0.12.0-rc1"` | |
| kserve.storage.caBundleConfigMapName | string | `""` | |
| kserve.storage.caBundleVolumeMountPath | string | `"/etc/ssl/custom-certs"` | |
| kserve.storage.cpuModelcar | string | `"10m"` | |
| kserve.storage.enableModelcar | bool | `false` | |
| kserve.storage.image | string | `"kserve/storage-initializer"` | |
| kserve.storage.memoryModelcar | string | `"15Mi"` | |
| kserve.storage.s3.CABundle | string | `""` | |
| kserve.storage.s3.accessKeyIdName | string | `"AWS_ACCESS_KEY_ID"` | |
| kserve.storage.s3.endpoint | string | `""` | |
| kserve.storage.s3.region | string | `""` | |
| kserve.storage.s3.secretAccessKeyName | string | `"AWS_SECRET_ACCESS_KEY"` | |
| kserve.storage.s3.useAnonymousCredential | string | `""` | |
| kserve.storage.s3.useHttps | string | `""` | |
| kserve.storage.s3.useVirtualBucket | string | `""` | |
| kserve.storage.s3.verifySSL | string | `""` | |
| kserve.storage.storageSecretNameAnnotation | string | `"serving.kserve.io/secretName"` | |
| kserve.storage.storageSpecSecretName | string | `"storage-config"` | |
| kserve.storage.tag | string | `"v0.12.0-rc1"` | |
| kserve.version | string | `"v0.12.0-rc1"` | |

----------------------------------------------
Autogenerated from chart metadata using [helm-docs v1.12.0](https://github.com/norwoodj/helm-docs/releases/v1.12.0)
18 changes: 18 additions & 0 deletions charts/kserve-resources/README.md.gotmpl
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
{{ template "chart.header" . }}
{{ template "chart.description" . }}

{{ template "chart.versionBadge" . }}{{ template "chart.typeBadge" . }}{{ template "chart.appVersionBadge" . }}

## Installing the Chart

To install the chart, run the following:

```console
$ helm install kserve oci://ghcr.io/kserve/charts/kserve --version {{ template "chart.version" . }}
```

{{ template "chart.requirementsSection" . }}

{{ template "chart.valuesSection" . }}

{{ template "helm-docs.versionFooter" . }}
6 changes: 3 additions & 3 deletions charts/kserve-resources/templates/configmap.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ data:
"memoryLimit": "1Gi",
"cpuRequest": "100m",
"cpuLimit": "1",
"enableDirectPvcVolumeMount": false,
"enableDirectPvcVolumeMount": true,
"enableModelcar": false,
"cpuModelcar": "10m",
"memoryModelcar": "15Mi"
Expand All @@ -89,7 +89,7 @@ data:
# enableDirectPvcVolumeMount controls whether users can mount pvc volumes directly.
# if pvc volume is provided in storageuri then the pvc volume is directly mounted to /mnt/models in the user container.
# rather than symlink it to a shared volume. For more info see https://github.com/kserve/kserve/issues/2737
"enableDirectPvcVolumeMount": false,
"enableDirectPvcVolumeMount": true,

# enableModelcar enabled allows you to directly access an OCI container image by
# using a source URL with an "oci://" schema.
Expand Down Expand Up @@ -528,7 +528,7 @@ data:
"memoryLimit": "1Gi",
"cpuRequest": "100m",
"cpuLimit": "1",
"enableDirectPvcVolumeMount": false,
"enableDirectPvcVolumeMount": true,
"caBundleConfigMapName": "{{ .Values.kserve.storage.caBundleConfigMapName }}",
"caBundleVolumeMountPath": "{{ .Values.kserve.storage.caBundleVolumeMountPath }}",
"enableModelcar": {{ .Values.kserve.storage.enableModelcar }},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ webhooks:
failurePolicy: Fail
name: inferenceservice.kserve-webhook-server.pod-mutator
sideEffects: None
reinvocationPolicy: IfNeeded
admissionReviewVersions: ["v1beta1"]
objectSelector:
matchExpressions:
Expand Down
9 changes: 7 additions & 2 deletions config/configmap/inferenceservice.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ data:
# enableDirectPvcVolumeMount controls whether users can mount pvc volumes directly.
# if pvc volume is provided in storageuri then the pvc volume is directly mounted to /mnt/models in the user container.
# rather than symlink it to a shared volume. For more info see https://github.com/kserve/kserve/issues/2737
"enableDirectPvcVolumeMount": false,
"enableDirectPvcVolumeMount": true,

# enableModelcar enabled allows you to directly access an OCI container image by
# using a source URL with an "oci://" schema.
Expand Down Expand Up @@ -132,6 +132,7 @@ data:
"s3Region": "",
"s3VerifySSL": "",
"s3UseVirtualBucket": "",
"s3UseAccelerate": "",
"s3UseAnonymousCredential": "",
"s3CABundle": ""
}
Expand Down Expand Up @@ -186,6 +187,9 @@ data:

# s3UseVirtualBucket configures whether it is a virtual bucket or not.
"s3UseVirtualBucket": "",

# s3UseAccelerate configures whether to use transfer acceleration.
"s3UseAccelerate": "",

# s3UseAnonymousCredential configures whether to use anonymous credentials to download the model or not.
"s3UseAnonymousCredential": "",
Expand Down Expand Up @@ -468,7 +472,7 @@ data:
"cpuLimit": "1",
"caBundleConfigMapName": "",
"caBundleVolumeMountPath": "/etc/ssl/custom-certs",
"enableDirectPvcVolumeMount": false,
"enableDirectPvcVolumeMount": true,
"enableModelcar": false,
"cpuModelcar": "10m",
"memoryModelcar": "15Mi"
Expand All @@ -489,6 +493,7 @@ data:
"s3Region": "",
"s3VerifySSL": "",
"s3UseVirtualBucket": "",
"s3UseAccelerate": "",
"s3UseAnonymousCredential": "",
"s3CABundle": ""
}
Expand Down
13 changes: 13 additions & 0 deletions config/crd/serving.kserve.io_inferencegraphs.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -403,6 +403,10 @@ spec:
type: array
type: object
type: object
maxReplicas:
type: integer
minReplicas:
type: integer
nodes:
additionalProperties:
properties:
Expand Down Expand Up @@ -473,6 +477,15 @@ spec:
x-kubernetes-int-or-string: true
type: object
type: object
scaleMetric:
enum:
- cpu
- memory
- concurrency
- rps
type: string
scaleTarget:
type: integer
timeout:
format: int64
type: integer
Expand Down
Loading