update kubeflow dip-catalog

This commit is contained in:
ChanghoWoo
2025-01-13 02:31:27 +00:00
parent 1dc1181a03
commit 5451f16d72
1959 changed files with 602337 additions and 0 deletions
+46
View File
@@ -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 -
+4
View File
@@ -0,0 +1,4 @@
approvers:
- adriangonz
- ahousley
+92
View File
@@ -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"}}}
```
+33
View File
@@ -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: {}
@@ -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
@@ -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