Example project showcasing how power users can combine several Replicated tools in order to manage Replicated YAML for a SeldonIO ML project using a git repository.
- node
make
- A git repository created to manage your Replicated YAML. We'll use github in this example.
This repo is a GitHub Template Repository. You can create a private copy by using the "Use this Template" link in the repo:
You should use the template to create a new private repo in your org, for example mycompany/replicated
or mycompany/replicated-starter-kubernetes
.
Once you've created a repository from the template, you'll want to git clone
your new repo and cd
into it locally.
You'll need to set up two environment variables to interact with vendor.replicated.com,
export REPLICATED_APP=...
export REPLICATED_API_TOKEN=...
REPLICATED_APP
should be set to the app slug from the Settings page:
Next, create an API token from the Teams and Tokens page:
Ensure the token has "Write" access or you'll be unable create new releases. Once you have the values, set them in your environment.
Once you've made changes to replicated.yaml
, you can push a new release to a channel with
make release
By default the Unstable
channel will be used. You can override this with channel
:
make release channel=Beta
If you have nodejs installated, you can lint your YAML before releasing with
make lint
or even
make lint release
There is an example model written as a SeldonDeployment
in base/seldon-deployment-is.yaml
. You can change the image there, or add additional
SeldonDeployment
objects in that folder. You'll also need to add them to the list of resources
in base/kustomization.yaml
.
A github issue summarization model, as described in kubeflow/examples, is used for this POC. A makefile is included to pull and retag a GCR.io image to the replicated registry.
The Seldon operator chart is templated out by Replicated Ship in base/seldon-core-operator/rendered.yaml
, and will be deployed alongside the app to power any SeldonDeployment
s.
Issue summarization UI built per example in https://github.com/kubeflow/examples/blob/master/github_issue_summarization/04_querying_the_model.md
Often teams will use one channel per developer, and then keep the master
branch of this repo in sync with their Unstable
branch.
The project includes CI configs for Travis CI, CircleCI, and Gitlab CI.
All CI configs will:
On pull requests:
- Install dependencies
- Lint yaml for syntax and logic errors
On merges to the github master
branch:
- Install dependencies
- Lint yaml for syntax and logic errors
- Create a new release on the
Unstable
channel in Replicated
These behaviors are documented and demonstrated in the replicated-ci-demo project.
Replicated starter files are licensed under an MIT License
Seldon source is licensed under an Apache 2 license, which is included in mean_classifier_example