update kubeflow dip-catalog
This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
|
||||
SELDON_VERSION ?= 1.18.1
|
||||
# This could be replaced by a local path if required
|
||||
SELDON_OPERATOR_CHART ?= seldon-core-operator --repo https://storage.googleapis.com/seldon-charts
|
||||
|
||||
seldon-core-operator/base: clean-kustomize
|
||||
mkdir -p seldon-core-operator/base
|
||||
cd seldon-core-operator/base && helm template -f ../../values.yaml seldon-core ${SELDON_OPERATOR_CHART} --namespace kubeflow --version ${SELDON_VERSION} > resources.yaml
|
||||
sed -i 's#cert-manager.io/inject-ca-from:.*#cert-manager.io/inject-ca-from: kubeflow/seldon-serving-cert#g' seldon-core-operator/base/resources.yaml
|
||||
sed -i "s#'seldon-webhook-service.kubeflow.svc.cluster.local'#"'seldon-webhook-service.$$(SERVICE_NAMESPACE).svc.cluster.local#' seldon-core-operator/base/resources.yaml
|
||||
sed -i "s#commonName: 'seldon-webhook-service.kubeflow.svc'#"'commonName: seldon-webhook-service.$$(CERTIFICATE_NAMESPACE).svc#' seldon-core-operator/base/resources.yaml
|
||||
sed -i "s#'seldon-webhook-service.kubeflow.svc'#"'seldon-webhook-service.$$(SERVICE_NAMESPACE).svc#' seldon-core-operator/base/resources.yaml
|
||||
sed -i 's#kubeflow/kubeflow-gateway#$$(SERVICE_NAMESPACE)/kubeflow-gateway#' seldon-core-operator/base/resources.yaml
|
||||
cp kustomization.tpl seldon-core-operator/base/kustomization.yaml
|
||||
cp kustomizeconfig.tpl seldon-core-operator/base/kustomizeconfig.yaml
|
||||
|
||||
.PHONY:clean-kustomize
|
||||
clean-kustomize:
|
||||
rm -rf seldon-core-operator/base
|
||||
|
||||
test:
|
||||
# Create seldon namespace
|
||||
kubectl create namespace seldon || echo "seldon namespace exists"
|
||||
# Create kubeflow namespace if not exists
|
||||
kubectl create namespace kubeflow || echo "kubeflow namespace exists"
|
||||
# Creating resources
|
||||
kustomize build seldon-core-operator/base | kubectl apply -n kubeflow -f -
|
||||
# Waiting for resources
|
||||
kubectl wait --for condition=Available -n kubeflow deployment/seldon-controller-manager
|
||||
# Wait for manager resources to be created
|
||||
sleep 5
|
||||
# Create example deployment
|
||||
kubectl apply -n seldon -f example.yaml
|
||||
# Wait for manager resources to be created
|
||||
sleep 5
|
||||
kubectl get deploy -A
|
||||
sleep 5
|
||||
kubectl logs -n kubeflow deployment/seldon-controller-manager
|
||||
sleep 5
|
||||
kubectl get deploy -A
|
||||
# Wait for deployment
|
||||
kubectl wait --for condition=Available -n seldon deployment/echo-default-0-classifier --timeout=360s
|
||||
# Remove deployment
|
||||
kubectl delete -n seldon -f example.yaml
|
||||
# Cleaning resources
|
||||
kustomize build seldon-core-operator/base | kubectl delete -n kubeflow -f -
|
||||
@@ -0,0 +1,4 @@
|
||||
approvers:
|
||||
- adriangonz
|
||||
- ahousley
|
||||
|
||||
@@ -0,0 +1,92 @@
|
||||
# Seldon Core
|
||||
|
||||
[Seldon Core](https://github.com/SeldonIO/seldon-core/) is a framework to deploy your machine learning models on Kubernetes at scale.
|
||||
|
||||
# Requirements
|
||||
|
||||
* Kubernetes 1.18 - 1.24
|
||||
|
||||
Support for Kubernetes 1.25 is currently part of [SeldonIO/seldon-core#4172](https://github.com/SeldonIO/seldon-core/pull/4172)
|
||||
|
||||
## Install Seldon Core Operator
|
||||
|
||||
* The yaml assumes you will install in kubeflow namespace
|
||||
* You need to have installed istio first
|
||||
|
||||
```
|
||||
kustomize build seldon-core-operator/base | kubectl apply -n kubeflow -f -
|
||||
```
|
||||
|
||||
## Updating
|
||||
|
||||
See [UPGRADE.md](UPGRADE.md)
|
||||
|
||||
## Testing
|
||||
|
||||
```
|
||||
make test
|
||||
```
|
||||
|
||||
# Overview
|
||||
|
||||
We can create a test model once the "Install Seldon Operator" is configured
|
||||
|
||||
```
|
||||
# Create namespace for model
|
||||
kubectl create namespace seldon
|
||||
```
|
||||
|
||||
We can create an echo model with the following command:
|
||||
|
||||
```
|
||||
kubectl apply -f - << ENDapiVersion: machinelearning.seldon.io/v1
|
||||
kind: SeldonDeployment
|
||||
metadata:
|
||||
name: echo
|
||||
namespace: seldon
|
||||
spec:
|
||||
predictors:
|
||||
- name: default
|
||||
replicas: 1
|
||||
graph:
|
||||
name: classifier
|
||||
type: MODEL
|
||||
componentSpecs:
|
||||
- spec:
|
||||
containers:
|
||||
- image: seldonio/echo-model:1.17.1
|
||||
name: classifier
|
||||
END
|
||||
```
|
||||
|
||||
We can verify that model is running:
|
||||
|
||||
```
|
||||
kubectl get pods -n seldon
|
||||
|
||||
NAME READY STATUS RESTARTS AGE
|
||||
echo-default-0-classifier-679cb5fb68-qd4nm 2/2 Running 0 25m
|
||||
```
|
||||
|
||||
Also we can verify that the correct virtualservice was created:
|
||||
|
||||
```
|
||||
kubectl get virtualservice -n seldon
|
||||
|
||||
NAME GATEWAYS HOSTS AGE
|
||||
echo ["kubeflow/kubeflow-gateway"] ["*"] 42m
|
||||
```
|
||||
|
||||
Finally we can send a request (you will need to fetch the Dex Auth Token / Cookie):
|
||||
|
||||
```
|
||||
export CLUSTER_IP=# Your cluster IP
|
||||
export SESSION=# Your dex session
|
||||
|
||||
curl -H "Content-Type: application/json" -H "Cookie: authservice_session=${SESSION}" \
|
||||
-d '{"data": {"ndarray":[[1.0, 2.0, 5.0]]}}' \
|
||||
http://{CLUSTER_IP}/seldon/seldon/echo/api/v1.0/predictions
|
||||
|
||||
{"data":{"names":["t:0","t:1","t:2"],"ndarray":[[1.0,2.0,5.0]]},"meta":{"metrics":[{"key":"mycounter","type":"COUNTER","value":1},{"key":"mygauge","type":"GAUGE","value":100},{"key":"mytimer","type":"TIMER","value":20.2}],"requestPath":{"classifier":"seldonio/echo-model:1.17.1"}}}
|
||||
```
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
# Upgrading Documentation
|
||||
|
||||
## Updating manifests
|
||||
|
||||
In order to update manifests make sure you are running the commands in linux.
|
||||
|
||||
If you are running in another OS, please make sure to update the Makefile commands.
|
||||
|
||||
You can refresh the configuration by running:
|
||||
|
||||
```
|
||||
make seldon-core-operator/base
|
||||
```
|
||||
|
||||
## Updating to specific version
|
||||
|
||||
Upgrading the version can be done by setting the `SELDON_VERSION` environment variable, such as:
|
||||
|
||||
```
|
||||
# Set the desired version
|
||||
export SELDON_VERSION=1.14.0
|
||||
|
||||
# Rebuild the kustomize base
|
||||
make seldon-core-operator/base
|
||||
|
||||
# Run new manifests against cluster
|
||||
kustomize build seldon-core-operator/base | kubectl apply -f -
|
||||
```
|
||||
|
||||
## Instructions for breaking changes
|
||||
|
||||
The [core upgrading docs](https://docs.seldon.io/projects/seldon-core/en/latest/reference/upgrading.html.) provide step by step overview of breaking changes across minor and patch versions.
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
apiVersion: machinelearning.seldon.io/v1
|
||||
kind: SeldonDeployment
|
||||
metadata:
|
||||
name: echo
|
||||
spec:
|
||||
predictors:
|
||||
- name: default
|
||||
graph:
|
||||
name: classifier
|
||||
type: MODEL
|
||||
componentSpecs:
|
||||
- spec:
|
||||
containers:
|
||||
- image: seldonio/echo-model:1.17.1
|
||||
name: classifier
|
||||
@@ -0,0 +1,31 @@
|
||||
# List of resource files that kustomize reads, modifies
|
||||
# and emits as a YAML string
|
||||
resources:
|
||||
- resources.yaml
|
||||
|
||||
configurations:
|
||||
- kustomizeconfig.yaml
|
||||
|
||||
vars:
|
||||
- name: CERTIFICATE_NAMESPACE # namespace of the certificate CR
|
||||
objref:
|
||||
kind: Certificate
|
||||
group: cert-manager.io
|
||||
version: v1
|
||||
name: seldon-serving-cert # this name should match the one in certificate.yaml
|
||||
fieldref:
|
||||
fieldpath: metadata.namespace
|
||||
- name: CERTIFICATE_NAME
|
||||
objref:
|
||||
kind: Certificate
|
||||
group: cert-manager.io
|
||||
version: v1
|
||||
name: seldon-serving-cert # this name should match the one in certificate.yaml
|
||||
- name: SERVICE_NAMESPACE # namespace of the service
|
||||
objref:
|
||||
kind: Deployment
|
||||
version: v1
|
||||
group: apps
|
||||
name: seldon-controller-manager
|
||||
fieldref:
|
||||
fieldpath: metadata.namespace
|
||||
@@ -0,0 +1,9 @@
|
||||
varReference:
|
||||
- path: metadata/annotations
|
||||
- kind: Certificate
|
||||
group: cert-manager.io
|
||||
path: spec/commonName
|
||||
- kind: Certificate
|
||||
group: cert-manager.io
|
||||
path: spec/dnsNames
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
# List of resource files that kustomize reads, modifies
|
||||
# and emits as a YAML string
|
||||
resources:
|
||||
- resources.yaml
|
||||
|
||||
configurations:
|
||||
- kustomizeconfig.yaml
|
||||
|
||||
vars:
|
||||
- name: CERTIFICATE_NAMESPACE # namespace of the certificate CR
|
||||
objref:
|
||||
kind: Certificate
|
||||
group: cert-manager.io
|
||||
version: v1
|
||||
name: seldon-serving-cert # this name should match the one in certificate.yaml
|
||||
fieldref:
|
||||
fieldpath: metadata.namespace
|
||||
- name: CERTIFICATE_NAME
|
||||
objref:
|
||||
kind: Certificate
|
||||
group: cert-manager.io
|
||||
version: v1
|
||||
name: seldon-serving-cert # this name should match the one in certificate.yaml
|
||||
- name: SERVICE_NAMESPACE # namespace of the service
|
||||
objref:
|
||||
kind: Deployment
|
||||
version: v1
|
||||
group: apps
|
||||
name: seldon-controller-manager
|
||||
fieldref:
|
||||
fieldpath: metadata.namespace
|
||||
@@ -0,0 +1,9 @@
|
||||
varReference:
|
||||
- path: metadata/annotations
|
||||
- kind: Certificate
|
||||
group: cert-manager.io
|
||||
path: spec/commonName
|
||||
- kind: Certificate
|
||||
group: cert-manager.io
|
||||
path: spec/dnsNames
|
||||
|
||||
@@ -0,0 +1,709 @@
|
||||
---
|
||||
# Source: seldon-core-operator/templates/serviceaccount_seldon-manager.yaml
|
||||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
labels:
|
||||
app: seldon
|
||||
app.kubernetes.io/instance: 'seldon-core'
|
||||
app.kubernetes.io/name: 'seldon-core-operator'
|
||||
app.kubernetes.io/version: '1.18.1'
|
||||
name: 'seldon-manager'
|
||||
namespace: 'kubeflow'
|
||||
---
|
||||
# Source: seldon-core-operator/templates/clusterrole_seldon-manager-role.yaml
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
creationTimestamp: null
|
||||
labels:
|
||||
app: seldon
|
||||
app.kubernetes.io/instance: 'seldon-core'
|
||||
app.kubernetes.io/name: 'seldon-core-operator'
|
||||
app.kubernetes.io/version: '1.18.1'
|
||||
name: seldon-manager-role-kubeflow
|
||||
rules:
|
||||
- apiGroups:
|
||||
- ''
|
||||
resources:
|
||||
- events
|
||||
verbs:
|
||||
- create
|
||||
- patch
|
||||
- apiGroups:
|
||||
- ''
|
||||
resources:
|
||||
- namespaces
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- ''
|
||||
resources:
|
||||
- services
|
||||
verbs:
|
||||
- create
|
||||
- delete
|
||||
- get
|
||||
- list
|
||||
- patch
|
||||
- update
|
||||
- watch
|
||||
- apiGroups:
|
||||
- apps
|
||||
resources:
|
||||
- deployments
|
||||
verbs:
|
||||
- create
|
||||
- delete
|
||||
- get
|
||||
- list
|
||||
- patch
|
||||
- update
|
||||
- watch
|
||||
- apiGroups:
|
||||
- apps
|
||||
resources:
|
||||
- deployments/status
|
||||
verbs:
|
||||
- get
|
||||
- patch
|
||||
- update
|
||||
- apiGroups:
|
||||
- autoscaling
|
||||
resources:
|
||||
- horizontalpodautoscalers
|
||||
verbs:
|
||||
- create
|
||||
- delete
|
||||
- get
|
||||
- list
|
||||
- patch
|
||||
- update
|
||||
- watch
|
||||
- apiGroups:
|
||||
- autoscaling
|
||||
resources:
|
||||
- horizontalpodautoscalers/status
|
||||
verbs:
|
||||
- get
|
||||
- patch
|
||||
- update
|
||||
- apiGroups:
|
||||
- getambassador.io
|
||||
resources:
|
||||
- mappings
|
||||
verbs:
|
||||
- create
|
||||
- delete
|
||||
- get
|
||||
- list
|
||||
- patch
|
||||
- update
|
||||
- watch
|
||||
- apiGroups:
|
||||
- getambassador.io
|
||||
resources:
|
||||
- mappings/status
|
||||
verbs:
|
||||
- get
|
||||
- patch
|
||||
- update
|
||||
- apiGroups:
|
||||
- getambassador.io
|
||||
resources:
|
||||
- tlscontexts
|
||||
verbs:
|
||||
- create
|
||||
- delete
|
||||
- get
|
||||
- list
|
||||
- patch
|
||||
- update
|
||||
- watch
|
||||
- apiGroups:
|
||||
- getambassador.io
|
||||
resources:
|
||||
- tlscontexts/status
|
||||
verbs:
|
||||
- get
|
||||
- patch
|
||||
- update
|
||||
- apiGroups:
|
||||
- keda.sh
|
||||
resources:
|
||||
- scaledobjects
|
||||
verbs:
|
||||
- create
|
||||
- delete
|
||||
- get
|
||||
- list
|
||||
- patch
|
||||
- update
|
||||
- watch
|
||||
- apiGroups:
|
||||
- keda.sh
|
||||
resources:
|
||||
- scaledobjects/finalizers
|
||||
verbs:
|
||||
- create
|
||||
- delete
|
||||
- get
|
||||
- list
|
||||
- patch
|
||||
- update
|
||||
- watch
|
||||
- apiGroups:
|
||||
- keda.sh
|
||||
resources:
|
||||
- scaledobjects/status
|
||||
verbs:
|
||||
- get
|
||||
- patch
|
||||
- update
|
||||
- apiGroups:
|
||||
- machinelearning.seldon.io
|
||||
resources:
|
||||
- seldondeployments
|
||||
verbs:
|
||||
- create
|
||||
- delete
|
||||
- get
|
||||
- list
|
||||
- patch
|
||||
- update
|
||||
- watch
|
||||
- apiGroups:
|
||||
- machinelearning.seldon.io
|
||||
resources:
|
||||
- seldondeployments/finalizers
|
||||
verbs:
|
||||
- get
|
||||
- patch
|
||||
- update
|
||||
- apiGroups:
|
||||
- machinelearning.seldon.io
|
||||
resources:
|
||||
- seldondeployments/status
|
||||
verbs:
|
||||
- get
|
||||
- patch
|
||||
- update
|
||||
- apiGroups:
|
||||
- networking.istio.io
|
||||
resources:
|
||||
- destinationrules
|
||||
verbs:
|
||||
- create
|
||||
- delete
|
||||
- get
|
||||
- list
|
||||
- patch
|
||||
- update
|
||||
- watch
|
||||
- apiGroups:
|
||||
- networking.istio.io
|
||||
resources:
|
||||
- destinationrules/status
|
||||
verbs:
|
||||
- get
|
||||
- patch
|
||||
- update
|
||||
- apiGroups:
|
||||
- networking.istio.io
|
||||
resources:
|
||||
- virtualservices
|
||||
verbs:
|
||||
- create
|
||||
- delete
|
||||
- get
|
||||
- list
|
||||
- patch
|
||||
- update
|
||||
- watch
|
||||
- apiGroups:
|
||||
- networking.istio.io
|
||||
resources:
|
||||
- virtualservices/status
|
||||
verbs:
|
||||
- get
|
||||
- patch
|
||||
- update
|
||||
- apiGroups:
|
||||
- policy
|
||||
resources:
|
||||
- poddisruptionbudgets
|
||||
verbs:
|
||||
- create
|
||||
- delete
|
||||
- get
|
||||
- list
|
||||
- patch
|
||||
- update
|
||||
- watch
|
||||
- apiGroups:
|
||||
- policy
|
||||
resources:
|
||||
- poddisruptionbudgets/status
|
||||
verbs:
|
||||
- get
|
||||
- patch
|
||||
- update
|
||||
- apiGroups:
|
||||
- v1
|
||||
resources:
|
||||
- namespaces
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- v1
|
||||
resources:
|
||||
- services
|
||||
verbs:
|
||||
- create
|
||||
- delete
|
||||
- get
|
||||
- list
|
||||
- patch
|
||||
- update
|
||||
- watch
|
||||
- apiGroups:
|
||||
- v1
|
||||
resources:
|
||||
- services/status
|
||||
verbs:
|
||||
- get
|
||||
- patch
|
||||
- update
|
||||
---
|
||||
# Source: seldon-core-operator/templates/clusterrole_seldon-manager-sas-role.yaml
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
creationTimestamp: null
|
||||
labels:
|
||||
app: seldon
|
||||
app.kubernetes.io/instance: 'seldon-core'
|
||||
app.kubernetes.io/name: 'seldon-core-operator'
|
||||
app.kubernetes.io/version: '1.18.1'
|
||||
name: seldon-manager-sas-role-kubeflow
|
||||
rules:
|
||||
- apiGroups:
|
||||
- ''
|
||||
resources:
|
||||
- secrets
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- ''
|
||||
resources:
|
||||
- configmaps
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- ''
|
||||
resources:
|
||||
- serviceaccounts
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
---
|
||||
# Source: seldon-core-operator/templates/clusterrole_seldon-webhook-role.yaml
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
creationTimestamp: null
|
||||
labels:
|
||||
app: seldon
|
||||
app.kubernetes.io/instance: 'seldon-core'
|
||||
app.kubernetes.io/name: 'seldon-core-operator'
|
||||
app.kubernetes.io/version: '1.18.1'
|
||||
name: seldon-webhook-role-kubeflow
|
||||
rules:
|
||||
- apiGroups:
|
||||
- admissionregistration.k8s.io
|
||||
resources:
|
||||
- mutatingwebhookconfigurations
|
||||
- validatingwebhookconfigurations
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- create
|
||||
- delete
|
||||
- update
|
||||
- apiGroups:
|
||||
- apps
|
||||
resources:
|
||||
- deployments/finalizers
|
||||
verbs:
|
||||
- get
|
||||
- patch
|
||||
- update
|
||||
- apiGroups:
|
||||
- apiextensions.k8s.io
|
||||
resources:
|
||||
- customresourcedefinitions
|
||||
verbs:
|
||||
- create
|
||||
- get
|
||||
- list
|
||||
- apiGroups:
|
||||
- apiextensions.k8s.io
|
||||
resources:
|
||||
- customresourcedefinitions/finalizers
|
||||
verbs:
|
||||
- get
|
||||
- patch
|
||||
- update
|
||||
---
|
||||
# Source: seldon-core-operator/templates/clusterrolebinding_seldon-manager-rolebinding.yaml
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRoleBinding
|
||||
metadata:
|
||||
labels:
|
||||
app: seldon
|
||||
app.kubernetes.io/instance: 'seldon-core'
|
||||
app.kubernetes.io/name: 'seldon-core-operator'
|
||||
app.kubernetes.io/version: '1.18.1'
|
||||
name: seldon-manager-rolebinding-kubeflow
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: ClusterRole
|
||||
name: seldon-manager-role-kubeflow
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: 'seldon-manager'
|
||||
namespace: 'kubeflow'
|
||||
---
|
||||
# Source: seldon-core-operator/templates/clusterrolebinding_seldon-manager-sas-rolebinding.yaml
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRoleBinding
|
||||
metadata:
|
||||
labels:
|
||||
app: seldon
|
||||
app.kubernetes.io/instance: 'seldon-core'
|
||||
app.kubernetes.io/name: 'seldon-core-operator'
|
||||
app.kubernetes.io/version: '1.18.1'
|
||||
name: seldon-manager-sas-rolebinding-kubeflow
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: ClusterRole
|
||||
name: seldon-manager-sas-role-kubeflow
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: seldon-manager
|
||||
namespace: 'kubeflow'
|
||||
---
|
||||
# Source: seldon-core-operator/templates/clusterrolebinding_seldon-webhook-rolebinding.yaml
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRoleBinding
|
||||
metadata:
|
||||
labels:
|
||||
app: seldon
|
||||
app.kubernetes.io/instance: 'seldon-core'
|
||||
app.kubernetes.io/name: 'seldon-core-operator'
|
||||
app.kubernetes.io/version: '1.18.1'
|
||||
name: seldon-webhook-rolebinding-kubeflow
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: ClusterRole
|
||||
name: seldon-webhook-role-kubeflow
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: seldon-manager
|
||||
namespace: 'kubeflow'
|
||||
---
|
||||
# Source: seldon-core-operator/templates/role_seldon-leader-election-role.yaml
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: Role
|
||||
metadata:
|
||||
labels:
|
||||
app: seldon
|
||||
app.kubernetes.io/instance: 'seldon-core'
|
||||
app.kubernetes.io/name: 'seldon-core-operator'
|
||||
app.kubernetes.io/version: '1.18.1'
|
||||
name: seldon-leader-election-role
|
||||
namespace: 'kubeflow'
|
||||
rules:
|
||||
- apiGroups:
|
||||
- ''
|
||||
resources:
|
||||
- configmaps/status
|
||||
verbs:
|
||||
- get
|
||||
- update
|
||||
- patch
|
||||
- apiGroups:
|
||||
- coordination.k8s.io
|
||||
resources:
|
||||
- leases
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- ''
|
||||
resources:
|
||||
- configmaps
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- ''
|
||||
resources:
|
||||
- events
|
||||
verbs:
|
||||
- create
|
||||
- patch
|
||||
---
|
||||
# Source: seldon-core-operator/templates/rolebinding_seldon-leader-election-rolebinding.yaml
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: RoleBinding
|
||||
metadata:
|
||||
labels:
|
||||
app: seldon
|
||||
app.kubernetes.io/instance: 'seldon-core'
|
||||
app.kubernetes.io/name: 'seldon-core-operator'
|
||||
app.kubernetes.io/version: '1.18.1'
|
||||
name: seldon-leader-election-rolebinding
|
||||
namespace: 'kubeflow'
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: Role
|
||||
name: seldon-leader-election-role
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: 'seldon-manager'
|
||||
namespace: 'kubeflow'
|
||||
---
|
||||
# Source: seldon-core-operator/templates/deployment_seldon-controller-manager.yaml
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
labels:
|
||||
app: seldon
|
||||
app.kubernetes.io/instance: 'seldon-core'
|
||||
app.kubernetes.io/name: 'seldon-core-operator'
|
||||
app.kubernetes.io/version: '1.18.1'
|
||||
control-plane: seldon-controller-manager
|
||||
name: seldon-controller-manager
|
||||
namespace: 'kubeflow'
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: seldon
|
||||
app.kubernetes.io/instance: seldon1
|
||||
app.kubernetes.io/name: seldon
|
||||
app.kubernetes.io/version: v0.5
|
||||
control-plane: seldon-controller-manager
|
||||
template:
|
||||
metadata:
|
||||
annotations:
|
||||
prometheus.io/port: '8080'
|
||||
prometheus.io/scrape: 'true'
|
||||
sidecar.istio.io/inject: 'false'
|
||||
labels:
|
||||
app: seldon
|
||||
app.kubernetes.io/instance: seldon1
|
||||
app.kubernetes.io/name: seldon
|
||||
app.kubernetes.io/version: v0.5
|
||||
control-plane: seldon-controller-manager
|
||||
spec:
|
||||
containers:
|
||||
- args:
|
||||
- --enable-leader-election
|
||||
- --webhook-port=4443
|
||||
- --metrics-addr=:8080
|
||||
- --create-resources=$(MANAGER_CREATE_RESOURCES)
|
||||
- --log-level=$(MANAGER_LOG_LEVEL)
|
||||
- --leader-election-id=$(MANAGER_LEADER_ELECTION_ID)
|
||||
- --leader-election-resource-lock=$(MANAGER_LEADER_ELECTION_RESOURCE_LOCK)
|
||||
- --leader-election-lease-duration-secs=$(MANAGER_LEADER_ELECTION_LEASE_DURATION_SECS)
|
||||
- --leader-election-renew-deadline-secs=$(MANAGER_LEADER_ELECTION_RENEW_DEADLINE_SECS)
|
||||
- --leader-election-retry-period-secs=$(MANAGER_LEADER_ELECTION_RETRY_PERIOD_SECS)
|
||||
- ''
|
||||
command:
|
||||
- /manager
|
||||
env:
|
||||
- name: MANAGER_LEADER_ELECTION_ID
|
||||
value: 'a33bd623.machinelearning.seldon.io'
|
||||
- name: MANAGER_LEADER_ELECTION_RESOURCE_LOCK
|
||||
value: ''
|
||||
- name: MANAGER_LEADER_ELECTION_LEASE_DURATION_SECS
|
||||
value: '15'
|
||||
- name: MANAGER_LEADER_ELECTION_RENEW_DEADLINE_SECS
|
||||
value: '10'
|
||||
- name: MANAGER_LEADER_ELECTION_RETRY_PERIOD_SECS
|
||||
value: '2'
|
||||
- name: MANAGER_LOG_LEVEL
|
||||
value: 'INFO'
|
||||
- name: WATCH_NAMESPACE
|
||||
value: ''
|
||||
- name: RELATED_IMAGE_EXECUTOR
|
||||
value: ''
|
||||
- name: RELATED_IMAGE_STORAGE_INITIALIZER
|
||||
value: ''
|
||||
- name: RELATED_IMAGE_SKLEARNSERVER
|
||||
value: ''
|
||||
- name: RELATED_IMAGE_SKLEARNSERVER_V2
|
||||
value: ''
|
||||
- name: RELATED_IMAGE_XGBOOSTSERVER
|
||||
value: ''
|
||||
- name: RELATED_IMAGE_XGBOOSTSERVER_V2
|
||||
value: ''
|
||||
- name: RELATED_IMAGE_MLFLOWSERVER
|
||||
value: ''
|
||||
- name: RELATED_IMAGE_MLFLOWSERVER_V2
|
||||
value: ''
|
||||
- name: RELATED_IMAGE_TFPROXY
|
||||
value: ''
|
||||
- name: RELATED_IMAGE_TENSORFLOW
|
||||
value: ''
|
||||
- name: RELATED_IMAGE_EXPLAINER
|
||||
value: ''
|
||||
- name: RELATED_IMAGE_EXPLAINER_V2
|
||||
value: ''
|
||||
- name: RELATED_IMAGE_MOCK_CLASSIFIER
|
||||
value: ''
|
||||
- name: MANAGER_CREATE_RESOURCES
|
||||
value: 'true'
|
||||
- name: POD_NAMESPACE
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
fieldPath: metadata.namespace
|
||||
- name: CONTROLLER_ID
|
||||
value: ''
|
||||
- name: AMBASSADOR_ENABLED
|
||||
value: 'false'
|
||||
- name: AMBASSADOR_VERSION
|
||||
value: 'v2'
|
||||
- name: AMBASSADOR_SINGLE_NAMESPACE
|
||||
value: 'false'
|
||||
- name: PREDICTIVE_UNIT_HTTP_SERVICE_PORT
|
||||
value: '9000'
|
||||
- name: PREDICTIVE_UNIT_GRPC_SERVICE_PORT
|
||||
value: '9500'
|
||||
- name: PREDICTIVE_UNIT_DEFAULT_ENV_SECRET_REF_NAME
|
||||
value: ''
|
||||
- name: PREDICTIVE_UNIT_METRICS_PORT_NAME
|
||||
value: 'metrics'
|
||||
- name: ISTIO_ENABLED
|
||||
value: 'true'
|
||||
- name: KEDA_ENABLED
|
||||
value: 'false'
|
||||
- name: ISTIO_GATEWAY
|
||||
value: '$(SERVICE_NAMESPACE)/kubeflow-gateway'
|
||||
- name: ISTIO_TLS_MODE
|
||||
value: ''
|
||||
- name: USE_EXECUTOR
|
||||
value: 'true'
|
||||
- name: EXECUTOR_CONTAINER_IMAGE_AND_VERSION
|
||||
value: 'docker.io/seldonio/seldon-core-executor:1.18.1'
|
||||
- name: EXECUTOR_CONTAINER_IMAGE_PULL_POLICY
|
||||
value: 'IfNotPresent'
|
||||
- name: EXECUTOR_PROMETHEUS_PATH
|
||||
value: '/prometheus'
|
||||
- name: EXECUTOR_SERVER_PORT
|
||||
value: '8000'
|
||||
- name: EXECUTOR_CONTAINER_USER
|
||||
value: '8888'
|
||||
- name: EXECUTOR_CONTAINER_SERVICE_ACCOUNT_NAME
|
||||
value: 'default'
|
||||
- name: EXECUTOR_SERVER_METRICS_PORT_NAME
|
||||
value: 'metrics'
|
||||
- name: EXECUTOR_REQUEST_LOGGER_DEFAULT_ENDPOINT
|
||||
value: 'http://default-broker'
|
||||
- name: EXECUTOR_REQUEST_LOGGER_WORK_QUEUE_SIZE
|
||||
value: '10000'
|
||||
- name: EXECUTOR_REQUEST_LOGGER_WRITE_TIMEOUT_MS
|
||||
value: '2000'
|
||||
- name: DEFAULT_USER_ID
|
||||
value: '8888'
|
||||
- name: EXECUTOR_DEFAULT_CPU_REQUEST
|
||||
value: '500m'
|
||||
- name: EXECUTOR_DEFAULT_MEMORY_REQUEST
|
||||
value: '512Mi'
|
||||
- name: EXECUTOR_DEFAULT_CPU_LIMIT
|
||||
value: '500m'
|
||||
- name: EXECUTOR_DEFAULT_MEMORY_LIMIT
|
||||
value: '512Mi'
|
||||
- name: DEPLOYMENT_NAME_AS_PREFIX
|
||||
value: 'false'
|
||||
- name: EXECUTOR_FULL_HEALTH_CHECKS
|
||||
value: 'false'
|
||||
image: 'docker.io/seldonio/seldon-core-operator:1.18.1'
|
||||
imagePullPolicy: 'IfNotPresent'
|
||||
name: manager
|
||||
ports:
|
||||
- containerPort: 4443
|
||||
name: webhook-server
|
||||
protocol: TCP
|
||||
- containerPort: 8080
|
||||
name: metrics
|
||||
protocol: TCP
|
||||
resources:
|
||||
limits:
|
||||
cpu: '500m'
|
||||
memory: '300Mi'
|
||||
requests:
|
||||
cpu: '100m'
|
||||
memory: '200Mi'
|
||||
hostNetwork: false
|
||||
priorityClassName: ''
|
||||
securityContext:
|
||||
runAsUser: 8888
|
||||
serviceAccountName: 'seldon-manager'
|
||||
terminationGracePeriodSeconds: 10
|
||||
---
|
||||
# Source: seldon-core-operator/templates/certificate_seldon-serving-cert.yaml
|
||||
apiVersion: cert-manager.io/v1
|
||||
kind: Certificate
|
||||
metadata:
|
||||
labels:
|
||||
app: seldon
|
||||
app.kubernetes.io/instance: 'seldon-core'
|
||||
app.kubernetes.io/name: 'seldon-core-operator'
|
||||
app.kubernetes.io/version: '1.18.1'
|
||||
name: seldon-serving-cert
|
||||
namespace: 'kubeflow'
|
||||
spec:
|
||||
commonName: seldon-webhook-service.$(CERTIFICATE_NAMESPACE).svc
|
||||
dnsNames:
|
||||
- seldon-webhook-service.$(SERVICE_NAMESPACE).svc.cluster.local
|
||||
- seldon-webhook-service.$(SERVICE_NAMESPACE).svc
|
||||
issuerRef:
|
||||
kind: Issuer
|
||||
name: seldon-selfsigned-issuer
|
||||
secretName: seldon-webhook-server-cert
|
||||
---
|
||||
# Source: seldon-core-operator/templates/issuer_seldon-selfsigned-issuer.yaml
|
||||
apiVersion: cert-manager.io/v1
|
||||
kind: Issuer
|
||||
metadata:
|
||||
labels:
|
||||
app: seldon
|
||||
app.kubernetes.io/instance: 'seldon-core'
|
||||
app.kubernetes.io/name: 'seldon-core-operator'
|
||||
app.kubernetes.io/version: '1.18.1'
|
||||
name: seldon-selfsigned-issuer
|
||||
namespace: 'kubeflow'
|
||||
spec:
|
||||
selfSigned: {}
|
||||
+41
@@ -0,0 +1,41 @@
|
||||
apiVersion: app.k8s.io/v1beta1
|
||||
kind: Application
|
||||
metadata:
|
||||
name: seldon-core-operator
|
||||
spec:
|
||||
selector:
|
||||
matchLabels:
|
||||
app.kubernetes.io/component: seldon
|
||||
app.kubernetes.io/instance: seldon-1.2.1
|
||||
app.kubernetes.io/managed-by: kfctl
|
||||
app.kubernetes.io/name: seldon
|
||||
app.kubernetes.io/part-of: kubeflow
|
||||
app.kubernetes.io/version: '1.2.1'
|
||||
componentKinds:
|
||||
- group: apps/v1
|
||||
kind: StatefulSet
|
||||
- group: v1
|
||||
kind: Service
|
||||
- group: apps/v1
|
||||
kind: Deployment
|
||||
- group: v1
|
||||
kind: Secret
|
||||
- group: v1
|
||||
kind: ConfigMap
|
||||
descriptor:
|
||||
type: seldon-core-operator
|
||||
version: v1
|
||||
description: "Seldon allows users to create ML Inference Graphs to deploy their models and serve predictions"
|
||||
maintainers:
|
||||
- email: dev@seldon.io
|
||||
name: Seldon
|
||||
owners:
|
||||
- email: dev@seldon.io
|
||||
name: Seldon
|
||||
keywords:
|
||||
- seldon
|
||||
- inference
|
||||
links:
|
||||
- description: Docs
|
||||
url: https://docs.seldon.io/projects/seldon-core/en/v1.1.0/
|
||||
addOwnerRef: true
|
||||
+10
@@ -0,0 +1,10 @@
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
bases:
|
||||
- ../../base
|
||||
commonLabels:
|
||||
app.kubernetes.io/component: seldon
|
||||
app.kubernetes.io/name: seldon-core-operator
|
||||
kind: Kustomization
|
||||
resources:
|
||||
- application.yaml
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
# # Seldon Core Operator
|
||||
# Below are the overrides for kubeflow defaults
|
||||
|
||||
# Istio gateway must be set to the kubeflow default
|
||||
istio:
|
||||
enabled: true
|
||||
gateway: kubeflow/kubeflow-gateway
|
||||
tlsMode: ""
|
||||
|
||||
# Certmanager using existing cert
|
||||
certManager:
|
||||
enabled: true
|
||||
|
||||
# Creation of resources automated as CRD too large for apply
|
||||
managerCreateResources: true
|
||||
|
||||
# Disable CRD in helm charts as manager creates resources
|
||||
crd:
|
||||
create: false
|
||||
|
||||
kubeflow: true
|
||||
|
||||
Reference in New Issue
Block a user