Skip to content

Commit

Permalink
update instructions for aes edgectl install
Browse files Browse the repository at this point in the history
  • Loading branch information
oparryevans authored and seldondev committed Jul 2, 2020
1 parent 2d0dc3e commit 1954116
Showing 1 changed file with 12 additions and 6 deletions.
18 changes: 12 additions & 6 deletions doc/source/ingress/ambassador.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,28 +2,34 @@

Seldon Core works well with [Ambassador](https://www.getambassador.io/), allowing a single ingress to be used to expose ambassador and [running machine learning deployments can then be dynamically exposed](https://kubernetes.io/blog/2018/06/07/dynamic-ingress-in-kubernetes/) through seldon-created ambassador configurations. In this doc we will discuss how your Seldon Deployments are exposed via Ambassador and how you can use both to do various production rollout strategies.

## Installing Ambassador Edge Stack

The recommended approach for installing the Ambassador Edge Stack (AES) is to use [Edge Control](https://www.getambassador.io/docs/latest/topics/using/edgectl/edge-control/). The ```edgectl install``` command will provision a load balancer, configure TLS, and provide you with an edgestack.me subdomain. The edgestack.me subdomain allows the Ambassador Edge Stack to automatically provision TLS and HTTPS for a domain name. To install AES using edgectl follow the installation instructions [here](https://www.getambassador.io/docs/latest/topics/install/).

Once the installation has finished, you can run ```edgectl login --namespace=ambassador <ambassadorEndpoint>``` to access the Ambassador Edge Policy Console where you can manage your deployment. The Hosts tab will provide information about the domain that Ambassador set up during the installation process, this is where you will find the ```<ambassadorHostname>``` referenced below.

## Ambassador REST

Assuming Ambassador is exposed at ```<ambassadorEndpoint>``` and with a Seldon deployment name ```<deploymentName>``` running in a namespace ```namespace```:
Assuming Ambassador is exposed at ```<ambassadorHostname>``` and with a Seldon deployment name ```<deploymentName>``` running in a namespace ```namespace```:

For Seldon Core restricted to a namespace, `singleNamespace=true`, the endpoints exposed are:

* ```http://<ambassadorEndpoint>/seldon/<deploymentName>/api/v1.0/predictions```
* ```http://<ambassadorEndpoint>/seldon/<namespace>/<deploymentName>/api/v1.0/predictions```
* ```https://<ambassadorHostname>/seldon/<deploymentName>/api/v1.0/predictions```
* ```https://<ambassadorHostname>/seldon/<namespace>/<deploymentName>/api/v1.0/predictions```

For Seldon Core running cluster wide, `singleNamespace=false`, the endpoints exposed are all namespaced:

* ```http://<ambassadorEndpoint>/seldon/<namespace>/<deploymentName>/api/v1.0/predictions```
* ```https://<ambassadorHostname>/seldon/<namespace>/<deploymentName>/api/v1.0/predictions```


## Example Curl

### Ambassador REST

Assuming a Seldon Deployment ```mymodel``` with Ambassador exposed on `0.0.0.0:8003`:
Assuming a Seldon Deployment ```mymodel``` with Ambassador exposed on `random-hostname-1234.edgestack.me`:

```bash
curl -v 0.0.0.0:8003/seldon/mymodel/api/v1.0/predictions -d '{"data":{"names":["a","b"],"tensor":{"shape":[2,2],"values":[0,0,1,1]}}}' -H "Content-Type: application/json"
curl -v https://random-hostname-1234.edgestack.me/seldon/mymodel/api/v1.0/predictions -d '{"data":{"names":["a","b"],"tensor":{"shape":[2,2],"values":[0,0,1,1]}}}' -H "Content-Type: application/json"
```

## Ambassador Configuration Annotations Reference
Expand Down

0 comments on commit 1954116

Please sign in to comment.