Skip to content

Commit

Permalink
Merge remote-tracking branch 'upstream/master'
Browse files Browse the repository at this point in the history
  • Loading branch information
ntorba605 committed Dec 10, 2020
2 parents 844641c + e5bd308 commit 755ff32
Show file tree
Hide file tree
Showing 1,163 changed files with 291,232 additions and 57,814 deletions.
21 changes: 21 additions & 0 deletions .github/workflows/rebase.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
on:
issue_comment:
types: [created]
push:
paths-ignore:
- .github/workflows/rebase.yml
name: Automatic Rebase
jobs:
rebase:
name: Rebase
if: github.event.issue.pull_request != '' && contains(github.event.comment.body, '/rebase') && github.event.comment.author_association == 'MEMBER'
runs-on: ubuntu-latest
steps:
- name: Checkout the latest code
uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Automatic Rebase
uses: cirrus-actions/rebase@1.3.1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
10 changes: 9 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,7 @@ examples/models/r_mnist/t10k-labels-idx1-ubyte
examples/models/r_mnist/train-images-idx3-ubyte
examples/models/r_mnist/train-labels-idx1-ubyte
examples/models/sklearn_iris_fbs/IrisClassifier.sav
examples/models/mlflow_server_ab_test_ambassador/mlruns

# Pickle files
*.pickle
Expand Down Expand Up @@ -176,6 +177,10 @@ examples/models/onnx_resnet50/resnet50/

doc/_build
doc/source/_static/cluster-manager
doc/source/examples/images
doc/source/examples/img
doc/source/examples/assets
doc/source/examples/*.png

python/build/
python/dist/
Expand All @@ -187,7 +192,7 @@ testing/scripts/tensorflow
testing/scripts/run.log
testing/scripts/my-model/
wrappers/s2i/python/_python/
wrappers/s2i/python-conda/_python/
incubating/wrappers/s2i/java-jni/_python/

seldon-controller/go

Expand Down Expand Up @@ -217,3 +222,6 @@ examples/models/autoscaling/autoscaling_example.py
# testing
*.coverprofile
*.log

# vscode local history
.history/
11 changes: 0 additions & 11 deletions .helmdocsignore

This file was deleted.

3 changes: 1 addition & 2 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,5 +9,4 @@ repos:
rev: stable
hooks:
- id: black
args: ['python/', 'testing/', 'operator/helm', 'operator/seldon-operator/hack', '--exclude', '(testing/scripts/proto|seldon_core/proto/|.eggs)']
language_version: python3.6
args: ['python/', 'testing/', 'components/alibi-detect-server', '--exclude', '(testing/scripts/proto|seldon_core/proto/|.eggs)']
11 changes: 9 additions & 2 deletions .readthedocs.yml
Original file line number Diff line number Diff line change
@@ -1,9 +1,16 @@
version: 2

sphinx:
builder: html
configuration: doc/source/conf.py

formats:
- pdf
- epub

python:
version: 3.6
install:
- method: pip
path: python
- requirements: doc/requirements_docs.txt

- requirements: doc/requirements.txt
12 changes: 12 additions & 0 deletions ADOPTERS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# Adopters of Seldon Core

This page show organisations that are using Seldon Core in production or providing integrations with their products. If you would like to be included on this page please raise a PR. Please keep the alphabetical order.

| Organisation | URL |
| ------------ | ----|
| CaiCloud | https://caicloud.io/ |
| Capital One | https://www.capitalone.com/tech |
| JobCase | https://www.jobcase.com/ |
| OpenDataHub | https://opendatahub.io/ |
| Pachyderm | https://pachyderm.io/ |
| PostMates | https://postmates.com/ |
546 changes: 537 additions & 9 deletions CHANGELOG.md

Large diffs are not rendered by default.

6 changes: 3 additions & 3 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ When a PR is created, a [Prow / Lighthouse
plugin](https://prow.k8s.io/command-help#release_note_none) will check if there
is a populated `release-note` block in the PR body such as:

````
````md
```release-note
Some public-facing release note.
```
Expand All @@ -52,7 +52,7 @@ will get displayed.
describe the contents of the PR.
For example:

````
````md
```release-note
Added metadata support to Python wrapper
```
Expand All @@ -61,7 +61,7 @@ will get displayed.
- Use the expression `Action required` to describe breaking changes.
For example:

````
````md
```release-note
Action required: The helm value `createResources` has been renamed
`managerCreateResources`.
Expand Down
4 changes: 2 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ run_core_builder_in_host:
-v /var/run/docker.sock:/var/run/docker.sock \
-v $${HOME}/.m2:/root/.m2 \
-v $(SELDON_CORE_LOCAL_DIR):/work \
seldonio/core-builder:0.15 bash
seldonio/core-builder:0.19 bash


run_core_builder_in_minikube:
Expand All @@ -37,7 +37,7 @@ run_core_builder_in_minikube:
-v /var/run/docker.sock:/var/run/docker.sock \
-v /home/docker/.m2:/root/.m2 \
-v $(SELDON_CORE_VM_DIR):/work \
seldonio/core-builder:0.15 bash
seldonio/core-builder:0.19 bash

show_paths:
@echo "local: $(SELDON_CORE_LOCAL_DIR)"
Expand Down
3 changes: 1 addition & 2 deletions OWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ approvers:
- ryandawsonuk
- adriangonz
- SachinVarghese
- glindsell
- RafalSkolasinski
- jklaise
reviewers:
- axsaucedo
- gsunner
Expand All @@ -19,4 +19,3 @@ reviewers:
- phsiao
- SachinVarghese
- RafalSkolasinski
- glindsell
1 change: 0 additions & 1 deletion OWNERS_ALIASES
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,3 @@ aliases:
- ryandawsonuk
- gipster
- arnaudvl
- glindsell
24 changes: 13 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,14 +23,15 @@ Seldon handles scaling to thousands of production machine learning models and pr

With over 2M installs, Seldon Core is used across organisations to manage large scale deployment of machine learning models, and key benefits include:

* Easy way to containerise ML models using our language wrappers or pre-packaged inference servers.
* Out of the box endpoints which can be tested through Swagger UI, Seldon Python Client or Curl / GRPCurl
* Cloud agnostic and tested on AWS EKS, Azure AKS, Google GKE, Alicloud, Digital Ocean and Openshift.
* Powerful and rich inference graphs made out of predictors, transformers, routers, combiners, and more.
* A standardised serving layer across models from heterogeneous toolkits and languages.
* Advanced and customisable metrics with integration to Prometheus and Grafana.
* Full auditability through model input-output request logging integration with Elasticsearch.
* Microservice tracing through integration to Jaeger for insights on latency across microservice hops.
* Easy way to containerise ML models using our [pre-packaged inference servers](https://docs.seldon.io/projects/seldon-core/en/latest/servers/overview.html), [custom servers](https://docs.seldon.io/projects/seldon-core/en/latest/servers/custom.html), or [language wrappers](https://docs.seldon.io/projects/seldon-core/en/latest/wrappers/language_wrappers.html).
* Out of the box endpoints which can be tested through [Swagger UI](https://docs.seldon.io/projects/seldon-core/en/latest/reference/apis/openapi.html?highlight=swagger), [Seldon Python Client or Curl / GRPCurl](https://docs.seldon.io/projects/seldon-core/en/latest/python/python_module.html#seldon-core-python-api-client).
* Cloud agnostic and tested on [AWS EKS, Azure AKS, Google GKE, Alicloud, Digital Ocean and Openshift](https://docs.seldon.io/projects/seldon-core/en/latest/examples/notebooks.html#cloud-specific-examples).
* Powerful and rich inference graphs made out of [predictors, transformers, routers, combiners, and more](https://docs.seldon.io/projects/seldon-core/en/latest/examples/graph-metadata.html).
* Metadata provenance to ensure each model can be traced back to its respective[ training system, data and metrics](https://docs.seldon.io/projects/seldon-core/en/latest/reference/apis/metadata.html).
* Advanced and customisable metrics with integration [to Prometheus and Grafana](https://docs.seldon.io/projects/seldon-core/en/latest/analytics/analytics.html).
* Full auditability through model input-output request (logging integration with Elasticsearch)[https://docs.seldon.io/projects/seldon-core/en/latest/analytics/log_level.html].
* Microservice distributed tracing through [integration to Jaeger](https://docs.seldon.io/projects/seldon-core/en/latest/graph/distributed-tracing.html) for insights on latency across microservice hops.
* Secure, reliable and robust system maintained through a consistent [security & updates policy](https://github.com/SeldonIO/seldon-core/blob/master/SECURITY.md).


## Getting Started
Expand All @@ -41,7 +42,7 @@ Deploying your models using Seldon Core is simplified through our pre-packaged i

Quick install using Helm 3 (you can also use Kustomize):

```
```bash
kubectl create namespace seldon-system

helm install seldon-core seldon-core-operator \
Expand All @@ -64,7 +65,7 @@ gs://seldon-models/sklearn/iris/model.pickle

Create a namespace to run your model in:

```
```bash
kubectl create namespace seldon
```

Expand Down Expand Up @@ -286,7 +287,7 @@ Below are some of the core components together with link to the logs that provid
### Seldon Core Deep Dive

* [Detailed Installation Parameters ](https://docs.seldon.io/projects/seldon-core/en/latest/reference/helm.html)
* [Pre-packaged Inreference Servers ](https://docs.seldon.io/projects/seldon-core/en/latest/servers/overview.html)
* [Pre-packaged Inference Servers ](https://docs.seldon.io/projects/seldon-core/en/latest/servers/overview.html)
* [Language Wrappers for Custom Models ](https://docs.seldon.io/projects/seldon-core/en/latest/wrappers/language_wrappers.html)
* [Create your Inference Graph ](https://docs.seldon.io/projects/seldon-core/en/latest/graph/inference-graph.html)
* [Deploy your Model ](https://docs.seldon.io/projects/seldon-core/en/latest/workflow/deploying.html)
Expand Down Expand Up @@ -327,6 +328,7 @@ Below are some of the core components together with link to the logs that provid
* [Payload Logging with ELK ](https://docs.seldon.io/projects/seldon-core/en/latest/analytics/logging.html)
* [Distributed Tracing with Jaeger ](https://docs.seldon.io/projects/seldon-core/en/latest/graph/distributed-tracing.html)
* [Replica Scaling ](https://docs.seldon.io/projects/seldon-core/en/latest/graph/scaling.html)
* [Budgeting Disruptions](https://docs.seldon.io/projects/seldon-core/en/latest/graph/disruption-budgets.html)
* [Custom Inference Servers](https://docs.seldon.io/projects/seldon-core/en/latest/servers/custom.html)

### Advanced Inference
Expand Down
22 changes: 22 additions & 0 deletions SECURITY.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# Security Policy

This document provides an overview of the security policy of Seldon Core.

Seldon Core aims to follow the two following policies:

* Keep dependencies up to date
* Identify and address common vulnerabilities and exposures

## Supported Versions

The versions that support this Security policies are the following

| Version | Supported |
| ------- | ------------------ |
| >= 1.2.2 | :white_check_mark: |
| < 1.2.2 | :x: |

## Reporting a Vulnerability

If you identify a vulnerability the best way to report it is by opening an issue with the type "bug". The discussion can then take place there on next steps (ie updating library, reaching out to 3rd party projects, etc).

49 changes: 49 additions & 0 deletions ci/create-release
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
#!/usr/bin/env bash
#
# create-release
#
set -o nounset
set -o errexit
set -o pipefail
set -o noglob
set -o xtrace

CURR_VERSION=$(cat ../version.txt)

# Check if version has trailing -dev otherwise exit
if [ ${CURR_VERSION##*-dev} ]; then
echo "Version does not end with -dev"
exit 1
fi

# Remove trailing dev as that will be our release version
CURR_VERSION=${CURR_VERSION%"-dev"}
BRANCH_NAME="v$CURR_VERSION-release"

# Check out master branch to use as base
git fetch origin master
git checkout master

# Don't exit on failure so we can test branch exists
set +o errexit
git checkout -b $BRANCH_NAME
RETVAL=$?
if [[ ${RETVAL} -gt 0 ]]; then
echo "Branch already exists"
git checkout $BRANCH_NAME
git rebase master
fi
set -o errexit

# Perform required actions for release
echo "$CURR_VERSION" > ../version.txt
(cd ../engine && mvn versions:set -DnewVersion=$(cat ../version.txt))
(cd ../ && python release.py $(cat version.txt))
make -C ../helm-charts docs

# Push updated changes for release
git add ..
git commit -m "Updating $BRANCH_NAME"
git push origin $BRANCH_NAME


36 changes: 23 additions & 13 deletions ci_build_and_push_images.sh
Original file line number Diff line number Diff line change
Expand Up @@ -68,10 +68,8 @@ function build_push_engine {
function build_push_mock {
make \
-C examples/models/mean_classifier \
build_rest \
build_grpc \
push_rest \
push_grpc
build \
push
MOCK_MODEL_EXIT_VALUE=$?
}

Expand All @@ -94,32 +92,32 @@ function build_push_request_logger {
function build_push_sklearnserver {
make \
-C servers/sklearnserver \
build_all \
push_all
build \
push
SKLEARN_EXIT_VALUE=$?
}

function build_push_mlflowserver {
make \
-C servers/mlflowserver \
build_all \
push_all
build \
push
MLFLOW_EXIT_VALUE=$?
}

function build_push_xgboostserver {
make \
-C servers/xgboostserver \
build_all \
push_all
build \
push
XGBOOST_EXIT_VALUE=$?
}

function build_push_tfproxy {
make \
-C integrations/tfserving \
build_all \
push_all
-C servers/tfserving_proxy \
build \
push
TFPROXY_EXIT_VALUE=$?
}

Expand All @@ -139,6 +137,14 @@ function build_push_storage_initializer {
STORAGE_INITIALIZER_EXIT_VALUE=$?
}

function build_push_mab {
make \
-C components/routers/epsilon-greedy \
build \
push
MAB_EXIT_VALUE=$?
}


build_push_python
build_push_operator
Expand All @@ -153,6 +159,7 @@ build_push_xgboostserver
build_push_tfproxy
build_push_alibi_explainer
build_push_storage_initializer
build_push_mab

#######################################
# EXIT STOPS COMMANDS FROM HERE ONWARDS
Expand All @@ -170,6 +177,8 @@ echo "Executor exit value: $EXECUTOR_EXIT_VALUE"
echo "Mock model exit value: $MOCK_MODEL_EXIT_VALUE"
echo "Alibi Detect exit value: $ALIBI_DETECT_EXIT_VALUE"
echo "Request Logger exit value: $LOGGER_EXIT_VALUE"
echo "Tensorflow Proxy exit value: $TFPROXY_EXIT_VALUE"
echo "MAB exit value: $MAB_EXIT_VALUE"

exit $((${PYTHON_EXIT_VALUE} \
+ ${OPERATOR_EXIT_VALUE} \
Expand All @@ -183,6 +192,7 @@ exit $((${PYTHON_EXIT_VALUE} \
+ ${XGBOOST_EXIT_VALUE} \
+ ${TFPROXY_EXIT_VALUE} \
+ ${STORAGE_INITIALIZER_EXIT_VALUE} \
+ ${MAB_EXIT_VALUE} \
+ ${EXPLAIN_EXIT_VALUE}))


Loading

0 comments on commit 755ff32

Please sign in to comment.