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

Clean up and document charts #1906

Merged
merged 18 commits into from
Jun 9, 2020
Merged
11 changes: 11 additions & 0 deletions .helmdocsignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# NOTE: helm-docs only works with a ignore file at the repository root

# Ignore these charts until we prepare them for helm-docs
seldon-abtest
seldon-core-analytics
seldon-core-controller
seldon-core-kafka
seldon-core-loadtesting
seldon-mab
seldon-od-model
seldon-od-transformer
1 change: 1 addition & 0 deletions doc/source/charts/seldon-core-operator.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
.. mdinclude:: ../../../helm-charts/seldon-core-operator/README.md
1 change: 1 addition & 0 deletions doc/source/charts/seldon-openvino.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
.. mdinclude:: ../../../helm-charts/seldon-openvino/README.md
1 change: 1 addition & 0 deletions doc/source/charts/seldon-single-model.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
.. mdinclude:: ../../../helm-charts/seldon-single-model/README.md
36 changes: 15 additions & 21 deletions doc/source/graph/helm_charts.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,35 +2,29 @@

Helm charts are published to our official repo.

## Core Charts

The core charts for installing Seldon Core are shown below.

* [seldon-core-operator](https://github.com/SeldonIO/seldon-core/tree/master/helm-charts/seldon-core-operator)
* Main helm chart for installing Seldon Core CRD and Controller
* [seldon-core-oauth-gateway](https://github.com/SeldonIO/seldon-core/tree/master/helm-charts/seldon-core-oauth-gateway)
* Seldon OAuth Gateway (Optional)
* [seldon-core-analytics](https://github.com/SeldonIO/seldon-core/tree/master/helm-charts/seldon-core-analytics)
* Example Prometheus and Grafana setup with demonstration Grafana dashboard for Seldon Core
.. toctree::
:maxdepth: 1

seldon-core-operator <../charts/seldon-core-operator>
seldon-core-analytics <https://github.com/SeldonIO/seldon-core/tree/master/helm-charts/seldon-core-analytics>

For further details see [here](../workflow/install.md).

## Seldon Core Inference Graph Templates
## Inference Graph Templates

A set of charts to provide example templates for creating particular inference graphs using Seldon Core

* [seldon-single-model](https://github.com/SeldonIO/seldon-core/tree/master/helm-charts/seldon-single-model)
* Serve a single model with attached Persistent Volume.
* [seldon-abtest](https://github.com/SeldonIO/seldon-core/tree/master/helm-charts/seldon-abtest)
* Serve an AB test between two models.
* [seldon-mab](https://github.com/SeldonIO/seldon-core/tree/master/helm-charts/seldon-mab)
* Serve a multi-armed bandit between two models.
* [seldon-openvino](https://github.com/SeldonIO/seldon-core/tree/master/helm-charts/seldon-openvino)
* Deploy a single model with Intel OpenVINO model server.
* [seldon-od-model](https://github.com/SeldonIO/seldon-core/tree/master/helm-charts/seldon-od-model) and [seldon-od-transformer](https://github.com/SeldonIO/seldon-core/tree/master/helm-charts/seldon-od-transformer)
* Serve one of the following Outlier Detector components as either models or transformers:
* [Isolation Forest](https://github.com/SeldonIO/seldon-core/tree/master/components/outlier-detection/isolation-forest)
* [Variational Auto-Encoder](https://github.com/SeldonIO/seldon-core/tree/master/components/outlier-detection/vae)
* [Sequence-to-Sequence-LSTM](https://github.com/SeldonIO/seldon-core/tree/master/components/outlier-detection/seq2seq-lstm)
* [Mahalanobis Distance](https://github.com/SeldonIO/seldon-core/tree/master/components/outlier-detection/mahalanobis)
.. toctree::
:maxdepth: 1

seldon-single-model <../charts/seldon-single-model>
seldon-abtest <https://github.com/SeldonIO/seldon-core/tree/master/helm-charts/seldon-abtest>
seldon-mab <https://github.com/SeldonIO/seldon-core/tree/master/helm-charts/seldon-mab>
seldon-od-model <https://github.com/SeldonIO/seldon-core/tree/master/helm-charts/seldon-od-model>

[A notebook with examples of using the above charts](https://github.com/SeldonIO/seldon-core/tree/master/notebooks/helm_examples.ipynb) is provided.

Expand Down
7 changes: 7 additions & 0 deletions helm-charts/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,13 @@ build_all:
push_all:
gsutil cp build/index.yaml build/*.tgz gs://seldon-charts/

docs:
# NOTE: helm-docs will ignore the charts listed in the .helmdocsignore file
# (in the repository root)
helm-docs -o README.md -t ../README.md.tpl

install:
GO111MODULE=on go get github.com/norwoodj/helm-docs/cmd/helm-docs@f66fdbd6fe

package:
mkdir -p build && \
Expand Down
38 changes: 29 additions & 9 deletions helm-charts/README.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
## Seldon Core Setup
# Seldon Core Helm Charts

Helm charts are published to our official repo. An example install:
Helm charts are published to our official repo.

The core charts for installing Seldon Core are shown below:
## Core Charts

* [seldon-core-operator](https://github.com/SeldonIO/seldon-core/tree/master/helm-charts/seldon-core-operator)
The core charts for installing Seldon Core are shown below.

* [seldon-core-operator](https://docs.seldon.io/projects/seldon-core/en/latest/charts/seldon-core-operator.html)
* Main helm chart for installing Seldon Core CRD and Controller
* [seldon-core-oauth-gateway](https://github.com/SeldonIO/seldon-core/tree/master/helm-charts/seldon-core-oauth-gateway)
* Seldon OAuth Gateway
* [seldon-core-analytics](https://github.com/SeldonIO/seldon-core/tree/master/helm-charts/seldon-core-analytics)
* Example Prometheus and Grafana setup with demonstration Grafana dashboard for Seldon Core

Expand All @@ -16,14 +16,12 @@ The core charts for installing Seldon Core are shown below:

A set of charts to provide example templates for creating particular inference graphs using Seldon Core

* [seldon-single-model](https://github.com/SeldonIO/seldon-core/tree/master/helm-charts/seldon-single-model)
* [seldon-single-model](https://docs.seldon.io/projects/seldon-core/en/latest/charts/seldon-single-model.html)
* Serve a single model with attached Persistent Volume.
* [seldon-abtest](https://github.com/SeldonIO/seldon-core/tree/master/helm-charts/seldon-abtest)
* Serve an AB test between two models.
* [seldon-mab](https://github.com/SeldonIO/seldon-core/tree/master/helm-charts/seldon-mab)
* Serve a multi-armed bandit between two models.
* [seldon-openvino](https://github.com/SeldonIO/seldon-core/tree/master/helm-charts/seldon-openvino)
* Deploy a single model with Intel OpenVINO model server.
* [seldon-od-model](https://github.com/SeldonIO/seldon-core/tree/master/helm-charts/seldon-od-model) and [seldon-od-transformer](https://github.com/SeldonIO/seldon-core/tree/master/helm-charts/seldon-od-transformer)
* Serve one of the following Outlier Detector components as either models or transformers:
* [Isolation Forest](https://github.com/SeldonIO/seldon-core/tree/master/components/outlier-detection/isolation-forest)
Expand All @@ -37,3 +35,25 @@ For examples of using some of the above charts see [here](https://github.com/Sel

* [seldon-core-loadtesting](https://github.com/SeldonIO/seldon-core/tree/master/helm-charts/seldon-core-loadtesting)
* Utility to load test

## Documentation

To generate the documentation of our Helm charts, we use
[`helm-docs`](https://github.com/norwoodj/helm-docs).
This tool will read the metadata included in the `Chart.yaml` and `values.yaml`
to generate a `README.md` page.

### Generating documentation locally

You can install the latest version of `helm-docs` using the `install` target of
the `Makefile`:

```shell
make install
```

Afterwards, you can use the `docs` target of the `Makefile`:

```shell
make docs
```
53 changes: 53 additions & 0 deletions helm-charts/README.md.tpl
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
{{ template "chart.header" . }}
{{ template "chart.deprecationWarning" . }}

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

{{ template "chart.description" . }}

## Usage

To use this chart, you will first need to add the `seldonio` Helm repo:

```shell
helm repo add seldonio https://storage.googleapis.com/seldon-charts
helm repo update
```

{{- /* We need to differentiate between "app charts" and "inference graph charts" */ -}}
{{- $appCharts := list "seldon-core-operator" "seldon-core-analytics" -}}
{{ if has .Name $appCharts }}

You can now deploy the chart as:

```shell
kubectl create namespace seldon-system
helm install {{ .Name }} seldonio/{{ .Name }} --namespace seldon-system
```

{{ else }}

Once that's done, you should be able to use the inference graph template as:

```shell
helm template $MY_MODEL_NAME seldonio/{{ .Name }} --namespace $MODELS_NAMESPACE
```

Note that you can also deploy the inference graph directly to your cluster
using:

```shell
helm install $MY_MODEL_NAME seldonio/{{ .Name }} --namespace $MODELS_NAMESPACE
```

{{- end -}}

{{ template "chart.homepageLine" . }}

{{ template "chart.maintainersSection" . }}

{{ template "chart.sourcesSection" . }}

{{ template "chart.requirementsSection" . }}

{{ template "chart.valuesSection" . }}
10 changes: 6 additions & 4 deletions helm-charts/seldon-core-operator/Chart.yaml
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
apiVersion: v1
description: Seldon Core CRD and controller helm chart for Kubernetes
description: Seldon Core CRD and controller helm chart for Kubernetes.
keywords:
- kubernetes
- machine-learning
- kubernetes
- machine-learning
name: seldon-core-operator
sources:
- https://github.com/SeldonIO/seldon-core
- https://github.com/SeldonIO/seldon-core
- https://github.com/SeldonIO/seldon-core/tree/master/helm-charts/seldon-core-operator
- https://docs.seldon.io/projects/seldon-core/en/latest/workflow/install.html
version: 1.1.1-rc
110 changes: 110 additions & 0 deletions helm-charts/seldon-core-operator/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,110 @@
# seldon-core-operator

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

Seldon Core CRD and controller helm chart for Kubernetes.

## Usage

To use this chart, you will first need to add the `seldonio` Helm repo:

```shell
helm repo add seldonio https://storage.googleapis.com/seldon-charts
helm repo update
```

You can now deploy the chart as:

```shell
kubectl create namespace seldon-system
helm install seldon-core-operator seldonio/seldon-core-operator --namespace seldon-system
```

## Source Code

* <https://github.com/SeldonIO/seldon-core>
* <https://github.com/SeldonIO/seldon-core/tree/master/helm-charts/seldon-core-operator>
* <https://docs.seldon.io/projects/seldon-core/en/latest/workflow/install.html>

## Values

| Key | Type | Default | Description |
|-----|------|---------|-------------|
| ambassador.enabled | bool | `true` | |
| ambassador.singleNamespace | bool | `false` | |
| certManager.enabled | bool | `false` | |
| controllerId | string | `""` | |
| crd.create | bool | `true` | |
| credentials.gcs.gcsCredentialFileName | string | `"gcloud-application-credentials.json"` | |
| credentials.s3.s3AccessKeyIDName | string | `"awsAccessKeyID"` | |
| credentials.s3.s3SecretAccessKeyName | string | `"awsSecretAccessKey"` | |
| defaultUserID | string | `"8888"` | |
| engine.grpc.port | int | `5001` | |
| engine.image.pullPolicy | string | `"IfNotPresent"` | |
| engine.image.registry | string | `"docker.io"` | |
| engine.image.repository | string | `"seldonio/engine"` | |
| engine.image.tag | string | `"1.1.1-rc"` | |
| engine.logMessagesExternally | bool | `false` | |
| engine.port | int | `8000` | |
| engine.prometheus.path | string | `"/prometheus"` | |
| engine.serviceAccount.name | string | `"default"` | |
| engine.user | int | `8888` | |
| executor.enabled | bool | `true` | |
| executor.grpc.port | int | `5001` | |
| executor.image.pullPolicy | string | `"IfNotPresent"` | |
| executor.image.registry | string | `"docker.io"` | |
| executor.image.repository | string | `"seldonio/seldon-core-executor"` | |
| executor.image.tag | string | `"1.1.1-rc"` | |
| executor.metricsPortName | string | `"metrics"` | |
| executor.port | int | `8000` | |
| executor.prometheus.path | string | `"/prometheus"` | |
| executor.requestLogger.defaultEndpoint | string | `"http://default-broker"` | |
| executor.serviceAccount.name | string | `"default"` | |
| executor.user | int | `8888` | |
| explainer.image | string | `"seldonio/alibiexplainer:1.1.1-rc"` | |
| image.pullPolicy | string | `"IfNotPresent"` | |
| image.registry | string | `"docker.io"` | |
| image.repository | string | `"seldonio/seldon-core-operator"` | |
| image.tag | string | `"1.1.1-rc"` | |
| istio.enabled | bool | `false` | |
| istio.gateway | string | `"istio-system/seldon-gateway"` | |
| istio.tlsMode | string | `""` | |
| kubeflow | bool | `false` | |
| manager.cpuLimit | string | `"500m"` | |
| manager.cpuRequest | string | `"100m"` | |
| manager.memoryLimit | string | `"300Mi"` | |
| manager.memoryRequest | string | `"200Mi"` | |
| managerCreateResources | bool | `false` | |
| predictiveUnit.defaultEnvSecretRefName | string | `""` | |
| predictiveUnit.metricsPortName | string | `"metrics"` | |
| predictiveUnit.port | int | `9000` | |
| predictor_servers.MLFLOW_SERVER.grpc.defaultImageVersion | string | `"1.1.1-rc"` | |
| predictor_servers.MLFLOW_SERVER.grpc.image | string | `"seldonio/mlflowserver_grpc"` | |
| predictor_servers.MLFLOW_SERVER.rest.defaultImageVersion | string | `"1.1.1-rc"` | |
| predictor_servers.MLFLOW_SERVER.rest.image | string | `"seldonio/mlflowserver_rest"` | |
| predictor_servers.SKLEARN_SERVER.grpc.defaultImageVersion | string | `"1.1.1-rc"` | |
| predictor_servers.SKLEARN_SERVER.grpc.image | string | `"seldonio/sklearnserver_grpc"` | |
| predictor_servers.SKLEARN_SERVER.rest.defaultImageVersion | string | `"1.1.1-rc"` | |
| predictor_servers.SKLEARN_SERVER.rest.image | string | `"seldonio/sklearnserver_rest"` | |
| predictor_servers.TENSORFLOW_SERVER.grpc.defaultImageVersion | string | `"1.1.1-rc"` | |
| predictor_servers.TENSORFLOW_SERVER.grpc.image | string | `"seldonio/tfserving-proxy_grpc"` | |
| predictor_servers.TENSORFLOW_SERVER.rest.defaultImageVersion | string | `"1.1.1-rc"` | |
| predictor_servers.TENSORFLOW_SERVER.rest.image | string | `"seldonio/tfserving-proxy_rest"` | |
| predictor_servers.TENSORFLOW_SERVER.tensorflow | bool | `true` | |
| predictor_servers.TENSORFLOW_SERVER.tfImage | string | `"tensorflow/serving:2.1.0"` | |
| predictor_servers.XGBOOST_SERVER.grpc.defaultImageVersion | string | `"1.1.1-rc"` | |
| predictor_servers.XGBOOST_SERVER.grpc.image | string | `"seldonio/xgboostserver_grpc"` | |
| predictor_servers.XGBOOST_SERVER.rest.defaultImageVersion | string | `"1.1.1-rc"` | |
| predictor_servers.XGBOOST_SERVER.rest.image | string | `"seldonio/xgboostserver_rest"` | |
| rbac.configmap.create | bool | `true` | |
| rbac.create | bool | `true` | |
| serviceAccount.create | bool | `true` | |
| serviceAccount.name | string | `"seldon-manager"` | |
| singleNamespace | bool | `false` | |
| storageInitializer.cpuLimit | string | `"1"` | |
| storageInitializer.cpuRequest | string | `"100m"` | |
| storageInitializer.image | string | `"gcr.io/kfserving/storage-initializer:0.2.2"` | |
| storageInitializer.memoryLimit | string | `"1Gi"` | |
| storageInitializer.memoryRequest | string | `"100Mi"` | |
| usageMetrics.enabled | bool | `false` | |
| webhook.port | int | `443` | |
11 changes: 8 additions & 3 deletions helm-charts/seldon-openvino/Chart.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,11 @@
apiVersion: v1
description: Seldon OpenVINO Example
name: seldon-openvino
sources:
- https://github.com/SeldonIO/seldon-core
description: Proxy integration to deploy models optimized for Intel OpenVINO in Seldon Core
version: 0.1
deprecated: true
sources:
- https://github.com/SeldonIO/seldon-core
- https://github.com/SeldonIO/seldon-core/tree/master/helm-charts/seldon-openvino
keywords:
- kubernetes
- machine-learning
Loading