[IBM] split full stack to components to support finer grain customization used in KfDef (#1582)
* add IBM stack components * add IBM stack components * revert seldon test expected data * switch to base_v3 for istio-stack
This commit is contained in:
parent
f95406b14a
commit
ea1a35124b
|
|
@ -0,0 +1,144 @@
|
|||
apiVersion: kfdef.apps.kubeflow.org/v1
|
||||
kind: KfDef
|
||||
metadata:
|
||||
namespace: kubeflow
|
||||
spec:
|
||||
applications:
|
||||
# Install istio in a different namespace: istio-system
|
||||
# Remove this application if istio is already installed
|
||||
- kustomizeConfig:
|
||||
repoRef:
|
||||
name: manifests
|
||||
path: stacks/ibm/application/istio-1-3-1-stack
|
||||
name: istio-stack
|
||||
- kustomizeConfig:
|
||||
repoRef:
|
||||
name: manifests
|
||||
path: stacks/ibm/application/cluster-local-gateway-1-3-1
|
||||
name: cluster-local-gateway
|
||||
- kustomizeConfig:
|
||||
repoRef:
|
||||
name: manifests
|
||||
path: stacks/ibm/application/istio
|
||||
name: istio
|
||||
- kustomizeConfig:
|
||||
repoRef:
|
||||
name: manifests
|
||||
path: stacks/ibm/application/add-anonymous-user-filter
|
||||
name: add-anonymous-user-filter
|
||||
# application
|
||||
- kustomizeConfig:
|
||||
repoRef:
|
||||
name: manifests
|
||||
path: application/v3
|
||||
name: application
|
||||
# bootstrap
|
||||
- kustomizeConfig:
|
||||
repoRef:
|
||||
name: manifests
|
||||
path: stacks/ibm/application/bootstrap
|
||||
name: bootstrap
|
||||
# cert-manager
|
||||
- kustomizeConfig:
|
||||
repoRef:
|
||||
name: manifests
|
||||
path: stacks/ibm/application/cert-manager-crds
|
||||
name: cert-manager-crds
|
||||
- kustomizeConfig:
|
||||
repoRef:
|
||||
name: manifests
|
||||
path: stacks/ibm/application/cert-manager-kube-system-resources
|
||||
name: cert-manager-kube-system-resources
|
||||
- kustomizeConfig:
|
||||
repoRef:
|
||||
name: manifests
|
||||
path: stacks/ibm/application/cert-manager
|
||||
name: cert-manager
|
||||
# Kubeflow components
|
||||
- kustomizeConfig:
|
||||
repoRef:
|
||||
name: manifests
|
||||
path: stacks/ibm/base
|
||||
name: kubeflow-apps
|
||||
- kustomizeConfig:
|
||||
repoRef:
|
||||
name: manifests
|
||||
path: stacks/ibm/components/admission-webhook
|
||||
name: kubeflow-apps
|
||||
- kustomizeConfig:
|
||||
repoRef:
|
||||
name: manifests
|
||||
path: stacks/ibm/components/profile-control-plane
|
||||
name: kubeflow-apps
|
||||
- kustomizeConfig:
|
||||
repoRef:
|
||||
name: manifests
|
||||
path: stacks/ibm/components/metadata
|
||||
name: kubeflow-apps
|
||||
- kustomizeConfig:
|
||||
repoRef:
|
||||
name: manifests
|
||||
path: stacks/ibm/components/argo
|
||||
name: kubeflow-apps
|
||||
- kustomizeConfig:
|
||||
repoRef:
|
||||
name: manifests
|
||||
path: stacks/ibm/components/katib
|
||||
name: kubeflow-apps
|
||||
- kustomizeConfig:
|
||||
repoRef:
|
||||
name: manifests
|
||||
path: stacks/ibm/components/pipelines
|
||||
name: kubeflow-apps
|
||||
- kustomizeConfig:
|
||||
repoRef:
|
||||
name: manifests
|
||||
path: stacks/ibm/components/notebooks
|
||||
name: kubeflow-apps
|
||||
- kustomizeConfig:
|
||||
repoRef:
|
||||
name: manifests
|
||||
path: stacks/ibm/components/pytorch-job
|
||||
name: kubeflow-apps
|
||||
- kustomizeConfig:
|
||||
repoRef:
|
||||
name: manifests
|
||||
path: stacks/ibm/components/tf-job
|
||||
name: kubeflow-apps
|
||||
- kustomizeConfig:
|
||||
repoRef:
|
||||
name: manifests
|
||||
path: stacks/ibm/components/seldon-core-operator
|
||||
name: kubeflow-apps
|
||||
# other applications
|
||||
- kustomizeConfig:
|
||||
repoRef:
|
||||
name: manifests
|
||||
path: metacontroller/base
|
||||
name: metacontroller
|
||||
- kustomizeConfig:
|
||||
repoRef:
|
||||
name: manifests
|
||||
path: stacks/ibm/application/spark-operator
|
||||
name: spark-operator
|
||||
- kustomizeConfig:
|
||||
repoRef:
|
||||
name: manifests
|
||||
path: knative/installs/generic
|
||||
name: knative
|
||||
- kustomizeConfig:
|
||||
repoRef:
|
||||
name: manifests
|
||||
path: kfserving/installs/generic
|
||||
name: kfserving
|
||||
# Spartakus is a separate applications so that kfctl can remove it
|
||||
# to disable usage reporting
|
||||
- kustomizeConfig:
|
||||
repoRef:
|
||||
name: manifests
|
||||
path: stacks/ibm/application/spartakus
|
||||
name: spartakus
|
||||
repos:
|
||||
- name: manifests
|
||||
uri: https://github.com/IBM/manifests/archive/master.tar.gz
|
||||
version: master
|
||||
|
|
@ -2,4 +2,4 @@ apiVersion: kustomize.config.k8s.io/v1beta1
|
|||
kind: Kustomization
|
||||
namespace: istio-system
|
||||
resources:
|
||||
- ../../../../istio-1-3-1/cluster-local-gateway-1-3-1/base
|
||||
- ../../../../istio-1-3-1/cluster-local-gateway-1-3-1/base_v3
|
||||
|
|
|
|||
|
|
@ -2,4 +2,4 @@ apiVersion: kustomize.config.k8s.io/v1beta1
|
|||
kind: Kustomization
|
||||
namespace: istio-system
|
||||
resources:
|
||||
- ../../../../istio/cluster-local-gateway/base
|
||||
- ../../../../istio/cluster-local-gateway/base_v3
|
||||
|
|
|
|||
|
|
@ -3,4 +3,4 @@ kind: Kustomization
|
|||
namespace: istio-system
|
||||
resources:
|
||||
- ../../../../istio-1-3-1/istio-crds-1-3-1/base
|
||||
- ../../../../istio-1-3-1/istio-install-1-3-1/base
|
||||
- ../../../../istio-1-3-1/istio-install-1-3-1/base_v3
|
||||
|
|
|
|||
|
|
@ -2,9 +2,9 @@ apiVersion: kustomize.config.k8s.io/v1beta1
|
|||
kind: Kustomization
|
||||
namespace: kubeflow
|
||||
resources:
|
||||
- ../../../../istio/istio/base
|
||||
- ../../../../istio/istio/base_v3
|
||||
configMapGenerator:
|
||||
- name: istio-parameters
|
||||
- name: istio-config
|
||||
behavior: merge
|
||||
envs:
|
||||
- params.env
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ apiVersion: kustomize.config.k8s.io/v1beta1
|
|||
kind: Kustomization
|
||||
namespace: istio-system
|
||||
resources:
|
||||
- ../../../../istio/oidc-authservice/overlays/application
|
||||
- ../../../../istio/oidc-authservice/base_v3
|
||||
images:
|
||||
- name: busybox
|
||||
newTag: "latest"
|
||||
|
|
@ -10,7 +10,7 @@ images:
|
|||
patchesStrategicMerge:
|
||||
- statefulset-patch.yaml
|
||||
configMapGenerator:
|
||||
- name: oidc-authservice-parameters
|
||||
- name: oidc-authservice-config
|
||||
behavior: merge
|
||||
literals:
|
||||
- client_id=kubeflow-oidc-authservice
|
||||
|
|
|
|||
|
|
@ -0,0 +1,5 @@
|
|||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
namespace: kubeflow
|
||||
resources:
|
||||
- ../../../../seldon/seldon-core-operator/overlays/application
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
clusterDomain=cluster.local
|
||||
userid-header=kubeflow-userid
|
||||
userid-prefix=
|
||||
|
|
@ -0,0 +1,24 @@
|
|||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
namespace: kubeflow
|
||||
configMapGenerator:
|
||||
- name: kubeflow-config
|
||||
envs:
|
||||
- ./config/params.env
|
||||
vars:
|
||||
# We need to define vars at the top level otherwise we will get
|
||||
# conflicts.
|
||||
- fieldref:
|
||||
fieldPath: data.clusterDomain
|
||||
name: clusterDomain
|
||||
objref:
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
name: kubeflow-config
|
||||
- fieldref:
|
||||
fieldPath: metadata.namespace
|
||||
name: namespace
|
||||
objref:
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
name: kubeflow-config
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
namespace: kubeflow
|
||||
resources:
|
||||
- ../../../../admission-webhook/webhook/v3
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
namespace: kubeflow
|
||||
resources:
|
||||
- ../../../../argo/base_v3
|
||||
configMapGenerator:
|
||||
- name: workflow-controller-parameters
|
||||
behavior: merge
|
||||
literals:
|
||||
- containerRuntimeExecutor=pns
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
namespace: kubeflow
|
||||
resources:
|
||||
- ../../../../katib/installs/katib-standalone-ibm
|
||||
vars:
|
||||
- fieldref:
|
||||
fieldpath: metadata.namespace
|
||||
name: katib-ui-namespace
|
||||
objref:
|
||||
kind: Service
|
||||
name: katib-ui
|
||||
apiVersion: v1
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
namespace: kubeflow
|
||||
resources:
|
||||
- ../../application/metadata
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
namespace: kubeflow
|
||||
resources:
|
||||
- ../../application/jupyter-web-app
|
||||
- ../../application/notebook-controller
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
namespace: kubeflow
|
||||
resources:
|
||||
- ../../../../pipeline/minio/installs/ibm
|
||||
- ../../../../pipeline/mysql/installs/ibm
|
||||
- ../../../../pipeline/installs/generic
|
||||
configMapGenerator:
|
||||
- name: pipeline-mysql-parameters
|
||||
behavior: merge
|
||||
literals:
|
||||
- mysqlPvcName=mysql-pv-claim
|
||||
- name: pipeline-minio-parameters
|
||||
behavior: merge
|
||||
literals:
|
||||
- minioPvcName=minio-pv-claim
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
namespace: kubeflow
|
||||
resources:
|
||||
- ../../../../common/centraldashboard/overlays/stacks
|
||||
- ../../../../kubeflow-roles/base
|
||||
- ../../application/profiles
|
||||
configMapGenerator:
|
||||
- name: profiles-config
|
||||
behavior: merge
|
||||
literals:
|
||||
- admin=example@kubeflow.org
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
namespace: kubeflow
|
||||
resources:
|
||||
- ../../../../pytorch-job/pytorch-job-crds/overlays/application
|
||||
- ../../../../pytorch-job/pytorch-operator/overlays/application
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
namespace: kubeflow
|
||||
resources:
|
||||
- ../../../../seldon/seldon-core-operator/overlays/application
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
namespace: kubeflow
|
||||
resources:
|
||||
- ../../../../tf-training/tf-job-crds/overlays/application
|
||||
- ../../../../tf-training/tf-job-operator/overlays/application
|
||||
|
|
@ -5,5 +5,5 @@ kind: ConfigMap
|
|||
metadata:
|
||||
labels:
|
||||
kustomize.component: cluster-local-gateway
|
||||
name: cluster-local-gateway-parameters-tbbdb2842d
|
||||
name: cluster-local-gateway-config
|
||||
namespace: istio-system
|
||||
|
|
@ -5,5 +5,5 @@ kind: ConfigMap
|
|||
metadata:
|
||||
labels:
|
||||
kustomize.component: cluster-local-gateway
|
||||
name: cluster-local-gateway-parameters-tbbdb2842d
|
||||
name: cluster-local-gateway-config
|
||||
namespace: istio-system
|
||||
|
|
@ -3,5 +3,5 @@ data:
|
|||
namespace: istio-system
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: istio-install-parameters-5kmkd2f29g
|
||||
name: istio-install-config
|
||||
namespace: istio-system
|
||||
|
|
@ -6,5 +6,5 @@ kind: ConfigMap
|
|||
metadata:
|
||||
annotations: {}
|
||||
labels: {}
|
||||
name: istio-parameters-t6hhgfg9k2
|
||||
name: istio-config
|
||||
namespace: kubeflow
|
||||
|
|
@ -1,9 +1,6 @@
|
|||
apiVersion: app.k8s.io/v1beta1
|
||||
kind: Application
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/component: oidc-authservice
|
||||
app.kubernetes.io/name: oidc-authservice
|
||||
name: oidc-authservice
|
||||
namespace: istio-system
|
||||
spec:
|
||||
|
|
|
|||
|
|
@ -1,9 +1,6 @@
|
|||
apiVersion: apps/v1
|
||||
kind: StatefulSet
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/component: oidc-authservice
|
||||
app.kubernetes.io/name: oidc-authservice
|
||||
name: authservice
|
||||
namespace: istio-system
|
||||
spec:
|
||||
|
|
@ -11,8 +8,6 @@ spec:
|
|||
selector:
|
||||
matchLabels:
|
||||
app: authservice
|
||||
app.kubernetes.io/component: oidc-authservice
|
||||
app.kubernetes.io/name: oidc-authservice
|
||||
serviceName: authservice
|
||||
template:
|
||||
metadata:
|
||||
|
|
@ -20,8 +15,6 @@ spec:
|
|||
sidecar.istio.io/inject: "false"
|
||||
labels:
|
||||
app: authservice
|
||||
app.kubernetes.io/component: oidc-authservice
|
||||
app.kubernetes.io/name: oidc-authservice
|
||||
spec:
|
||||
containers:
|
||||
- env:
|
||||
|
|
|
|||
|
|
@ -1,9 +1,6 @@
|
|||
apiVersion: networking.istio.io/v1alpha3
|
||||
kind: EnvoyFilter
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/component: oidc-authservice
|
||||
app.kubernetes.io/name: oidc-authservice
|
||||
name: authn-filter
|
||||
namespace: istio-system
|
||||
spec:
|
||||
|
|
@ -33,4 +30,4 @@ spec:
|
|||
listenerMatch:
|
||||
listenerType: GATEWAY
|
||||
workloadLabels:
|
||||
istio: ingressgateway
|
||||
istio: $(gatewaySelector)
|
||||
|
|
|
|||
|
|
@ -13,8 +13,6 @@ data:
|
|||
kind: ConfigMap
|
||||
metadata:
|
||||
annotations: {}
|
||||
labels:
|
||||
app.kubernetes.io/component: oidc-authservice
|
||||
app.kubernetes.io/name: oidc-authservice
|
||||
name: oidc-authservice-parameters
|
||||
labels: {}
|
||||
name: oidc-authservice-config
|
||||
namespace: istio-system
|
||||
|
|
@ -1,9 +1,6 @@
|
|||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/component: oidc-authservice
|
||||
app.kubernetes.io/name: oidc-authservice
|
||||
name: authservice-pvc
|
||||
namespace: istio-system
|
||||
spec:
|
||||
|
|
|
|||
|
|
@ -1,9 +1,6 @@
|
|||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/component: oidc-authservice
|
||||
app.kubernetes.io/name: oidc-authservice
|
||||
name: authservice
|
||||
namespace: istio-system
|
||||
spec:
|
||||
|
|
@ -14,6 +11,4 @@ spec:
|
|||
publishNotReadyAddresses: true
|
||||
selector:
|
||||
app: authservice
|
||||
app.kubernetes.io/component: oidc-authservice
|
||||
app.kubernetes.io/name: oidc-authservice
|
||||
type: ClusterIP
|
||||
|
|
|
|||
|
|
@ -0,0 +1,15 @@
|
|||
package seldon_core_operator
|
||||
|
||||
import (
|
||||
"github.com/kubeflow/manifests/tests"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestKustomize(t *testing.T) {
|
||||
testCase := &tests.KustomizeTestCase{
|
||||
Package: "../../../../../stacks/ibm/application/seldon-core-operator",
|
||||
Expected: "test_data/expected",
|
||||
}
|
||||
|
||||
tests.RunTestCase(t, testCase)
|
||||
}
|
||||
|
|
@ -0,0 +1,86 @@
|
|||
apiVersion: admissionregistration.k8s.io/v1beta1
|
||||
kind: MutatingWebhookConfiguration
|
||||
metadata:
|
||||
annotations:
|
||||
cert-manager.io/inject-ca-from: kubeflow/seldon-serving-cert
|
||||
creationTimestamp: null
|
||||
labels:
|
||||
app: seldon
|
||||
app.kubernetes.io/component: seldon
|
||||
app.kubernetes.io/instance: seldon-core
|
||||
app.kubernetes.io/name: seldon-core-operator
|
||||
app.kubernetes.io/version: 1.2.1
|
||||
name: seldon-mutating-webhook-configuration-kubeflow
|
||||
webhooks:
|
||||
- clientConfig:
|
||||
caBundle: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURCVENDQWUyZ0F3SUJBZ0lSQU9CZGZ4N0xmZXVEZnJ2QXFUK0hDWDh3RFFZSktvWklodmNOQVFFTEJRQXcKSERFYU1CZ0dBMVVFQXhNUlkzVnpkRzl0TFcxbGRISnBZM010WTJFd0hoY05NakF3TnpFd01UYzFOREV4V2hjTgpNakV3TnpFd01UYzFOREV4V2pBY01Sb3dHQVlEVlFRREV4RmpkWE4wYjIwdGJXVjBjbWxqY3kxallUQ0NBU0l3CkRRWUpLb1pJaHZjTkFRRUJCUUFEZ2dFUEFEQ0NBUW9DZ2dFQkFLSEVLQ09YVW1LN2FRS1VHL0ZjbTMwSTVmVnYKTVJlc3dGbi9yb3pxR1I2Rm5HSm9zbjFiZStJY05PZkdvUERUNkJ4T2pYRXVvczRvQjFabjNXamZZL3ZaVnNCagpjSjdCWld3TzZlUmwrUEZNOUV5S0ZwTVhncnVHdjRBTlpOZ3BrejkyYURBTTV2S1RSYng0QUVCRFdjQlgxWE93CjdEdFZrOVNpY0Q5cTdMVGYzWDBYSHF1SlRiQTNmNXhJbndEMWp2ZjltMzdZanNIRnZva3ZscGR3MFpicFhjeWYKVFozYWw0SVJ5SmU3TWJDaTV4Wm9PcmZ0R1NzT2IrNnRTemVKbU5nVjM2N3ZHbnliSEJSSmlUVTBYeGJid3hEawpjazIvNnFFMXgzOWxxUlYvOWNURWk4UE1DbU9oV0dkeFQ3cTJQS1NmeVBhSm50VWVnUndXcjZIdDRVY0NBd0VBCkFhTkNNRUF3RGdZRFZSMFBBUUgvQkFRREFnS2tNQjBHQTFVZEpRUVdNQlFHQ0NzR0FRVUZCd01CQmdnckJnRUYKQlFjREFqQVBCZ05WSFJNQkFmOEVCVEFEQVFIL01BMEdDU3FHU0liM0RRRUJDd1VBQTRJQkFRQXRMcldyeGxmMgpuU2pjNEFvK3FJaHBITXZYc21nVFJXbFNKNXR0aW1tZHE0TkpwWDBMeWJQRmVoQ2RGOTUweXRvejIxMVFZbENECmVKd3k1YXY1eHA2NTdKZ0h0ckRWb1djTmxFUnNMa0JOOElaTlI2THdJdkMrbFZjYzU0RGVRWU5XbG5neSttYnMKT3FoYWlQVXVoWTRjZW9TeENlNDlYSHVnQko4VVdZUTUwcWl4Y1hmRjdzK1JQLzZuQXRhVDRrbWVkek1HckxFbwp1a3JzcXNaOWV5SHNDYmtKTW0rcHROWWtXMUhzU29ORlhHRnZYTE5GTEllZVJpa0hyRk15Tmg3dVhwQjI2cTVrCnVES2lvL0dNNitIRG5GN1p5VXVYTVEyOWhjc1VZZ2tBcVFJZGhKWnV5R281WmpjK1VNL3hyMlFwc0tYSjBmUXoKVHpvR3I0L1JzdTRBCi0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K
|
||||
service:
|
||||
name: seldon-webhook-service
|
||||
namespace: kubeflow
|
||||
path: /mutate-machinelearning-seldon-io-v1-seldondeployment
|
||||
failurePolicy: Fail
|
||||
name: v1.mseldondeployment.kb.io
|
||||
namespaceSelector:
|
||||
matchExpressions:
|
||||
- key: seldon.io/controller-id
|
||||
operator: DoesNotExist
|
||||
matchLabels:
|
||||
serving.kubeflow.org/inferenceservice: enabled
|
||||
rules:
|
||||
- apiGroups:
|
||||
- machinelearning.seldon.io
|
||||
apiVersions:
|
||||
- v1
|
||||
operations:
|
||||
- CREATE
|
||||
- UPDATE
|
||||
resources:
|
||||
- seldondeployments
|
||||
- clientConfig:
|
||||
caBundle: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURCVENDQWUyZ0F3SUJBZ0lSQU9CZGZ4N0xmZXVEZnJ2QXFUK0hDWDh3RFFZSktvWklodmNOQVFFTEJRQXcKSERFYU1CZ0dBMVVFQXhNUlkzVnpkRzl0TFcxbGRISnBZM010WTJFd0hoY05NakF3TnpFd01UYzFOREV4V2hjTgpNakV3TnpFd01UYzFOREV4V2pBY01Sb3dHQVlEVlFRREV4RmpkWE4wYjIwdGJXVjBjbWxqY3kxallUQ0NBU0l3CkRRWUpLb1pJaHZjTkFRRUJCUUFEZ2dFUEFEQ0NBUW9DZ2dFQkFLSEVLQ09YVW1LN2FRS1VHL0ZjbTMwSTVmVnYKTVJlc3dGbi9yb3pxR1I2Rm5HSm9zbjFiZStJY05PZkdvUERUNkJ4T2pYRXVvczRvQjFabjNXamZZL3ZaVnNCagpjSjdCWld3TzZlUmwrUEZNOUV5S0ZwTVhncnVHdjRBTlpOZ3BrejkyYURBTTV2S1RSYng0QUVCRFdjQlgxWE93CjdEdFZrOVNpY0Q5cTdMVGYzWDBYSHF1SlRiQTNmNXhJbndEMWp2ZjltMzdZanNIRnZva3ZscGR3MFpicFhjeWYKVFozYWw0SVJ5SmU3TWJDaTV4Wm9PcmZ0R1NzT2IrNnRTemVKbU5nVjM2N3ZHbnliSEJSSmlUVTBYeGJid3hEawpjazIvNnFFMXgzOWxxUlYvOWNURWk4UE1DbU9oV0dkeFQ3cTJQS1NmeVBhSm50VWVnUndXcjZIdDRVY0NBd0VBCkFhTkNNRUF3RGdZRFZSMFBBUUgvQkFRREFnS2tNQjBHQTFVZEpRUVdNQlFHQ0NzR0FRVUZCd01CQmdnckJnRUYKQlFjREFqQVBCZ05WSFJNQkFmOEVCVEFEQVFIL01BMEdDU3FHU0liM0RRRUJDd1VBQTRJQkFRQXRMcldyeGxmMgpuU2pjNEFvK3FJaHBITXZYc21nVFJXbFNKNXR0aW1tZHE0TkpwWDBMeWJQRmVoQ2RGOTUweXRvejIxMVFZbENECmVKd3k1YXY1eHA2NTdKZ0h0ckRWb1djTmxFUnNMa0JOOElaTlI2THdJdkMrbFZjYzU0RGVRWU5XbG5neSttYnMKT3FoYWlQVXVoWTRjZW9TeENlNDlYSHVnQko4VVdZUTUwcWl4Y1hmRjdzK1JQLzZuQXRhVDRrbWVkek1HckxFbwp1a3JzcXNaOWV5SHNDYmtKTW0rcHROWWtXMUhzU29ORlhHRnZYTE5GTEllZVJpa0hyRk15Tmg3dVhwQjI2cTVrCnVES2lvL0dNNitIRG5GN1p5VXVYTVEyOWhjc1VZZ2tBcVFJZGhKWnV5R281WmpjK1VNL3hyMlFwc0tYSjBmUXoKVHpvR3I0L1JzdTRBCi0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K
|
||||
service:
|
||||
name: seldon-webhook-service
|
||||
namespace: kubeflow
|
||||
path: /mutate-machinelearning-seldon-io-v1alpha2-seldondeployment
|
||||
failurePolicy: Fail
|
||||
name: v1alpha2.mseldondeployment.kb.io
|
||||
namespaceSelector:
|
||||
matchExpressions:
|
||||
- key: seldon.io/controller-id
|
||||
operator: DoesNotExist
|
||||
matchLabels:
|
||||
serving.kubeflow.org/inferenceservice: enabled
|
||||
rules:
|
||||
- apiGroups:
|
||||
- machinelearning.seldon.io
|
||||
apiVersions:
|
||||
- v1alpha2
|
||||
operations:
|
||||
- CREATE
|
||||
- UPDATE
|
||||
resources:
|
||||
- seldondeployments
|
||||
- clientConfig:
|
||||
caBundle: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURCVENDQWUyZ0F3SUJBZ0lSQU9CZGZ4N0xmZXVEZnJ2QXFUK0hDWDh3RFFZSktvWklodmNOQVFFTEJRQXcKSERFYU1CZ0dBMVVFQXhNUlkzVnpkRzl0TFcxbGRISnBZM010WTJFd0hoY05NakF3TnpFd01UYzFOREV4V2hjTgpNakV3TnpFd01UYzFOREV4V2pBY01Sb3dHQVlEVlFRREV4RmpkWE4wYjIwdGJXVjBjbWxqY3kxallUQ0NBU0l3CkRRWUpLb1pJaHZjTkFRRUJCUUFEZ2dFUEFEQ0NBUW9DZ2dFQkFLSEVLQ09YVW1LN2FRS1VHL0ZjbTMwSTVmVnYKTVJlc3dGbi9yb3pxR1I2Rm5HSm9zbjFiZStJY05PZkdvUERUNkJ4T2pYRXVvczRvQjFabjNXamZZL3ZaVnNCagpjSjdCWld3TzZlUmwrUEZNOUV5S0ZwTVhncnVHdjRBTlpOZ3BrejkyYURBTTV2S1RSYng0QUVCRFdjQlgxWE93CjdEdFZrOVNpY0Q5cTdMVGYzWDBYSHF1SlRiQTNmNXhJbndEMWp2ZjltMzdZanNIRnZva3ZscGR3MFpicFhjeWYKVFozYWw0SVJ5SmU3TWJDaTV4Wm9PcmZ0R1NzT2IrNnRTemVKbU5nVjM2N3ZHbnliSEJSSmlUVTBYeGJid3hEawpjazIvNnFFMXgzOWxxUlYvOWNURWk4UE1DbU9oV0dkeFQ3cTJQS1NmeVBhSm50VWVnUndXcjZIdDRVY0NBd0VBCkFhTkNNRUF3RGdZRFZSMFBBUUgvQkFRREFnS2tNQjBHQTFVZEpRUVdNQlFHQ0NzR0FRVUZCd01CQmdnckJnRUYKQlFjREFqQVBCZ05WSFJNQkFmOEVCVEFEQVFIL01BMEdDU3FHU0liM0RRRUJDd1VBQTRJQkFRQXRMcldyeGxmMgpuU2pjNEFvK3FJaHBITXZYc21nVFJXbFNKNXR0aW1tZHE0TkpwWDBMeWJQRmVoQ2RGOTUweXRvejIxMVFZbENECmVKd3k1YXY1eHA2NTdKZ0h0ckRWb1djTmxFUnNMa0JOOElaTlI2THdJdkMrbFZjYzU0RGVRWU5XbG5neSttYnMKT3FoYWlQVXVoWTRjZW9TeENlNDlYSHVnQko4VVdZUTUwcWl4Y1hmRjdzK1JQLzZuQXRhVDRrbWVkek1HckxFbwp1a3JzcXNaOWV5SHNDYmtKTW0rcHROWWtXMUhzU29ORlhHRnZYTE5GTEllZVJpa0hyRk15Tmg3dVhwQjI2cTVrCnVES2lvL0dNNitIRG5GN1p5VXVYTVEyOWhjc1VZZ2tBcVFJZGhKWnV5R281WmpjK1VNL3hyMlFwc0tYSjBmUXoKVHpvR3I0L1JzdTRBCi0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K
|
||||
service:
|
||||
name: seldon-webhook-service
|
||||
namespace: kubeflow
|
||||
path: /mutate-machinelearning-seldon-io-v1alpha3-seldondeployment
|
||||
failurePolicy: Fail
|
||||
name: v1alpha3.mseldondeployment.kb.io
|
||||
namespaceSelector:
|
||||
matchExpressions:
|
||||
- key: seldon.io/controller-id
|
||||
operator: DoesNotExist
|
||||
matchLabels:
|
||||
serving.kubeflow.org/inferenceservice: enabled
|
||||
rules:
|
||||
- apiGroups:
|
||||
- machinelearning.seldon.io
|
||||
apiVersions:
|
||||
- v1alpha3
|
||||
operations:
|
||||
- CREATE
|
||||
- UPDATE
|
||||
resources:
|
||||
- seldondeployments
|
||||
|
|
@ -0,0 +1,86 @@
|
|||
apiVersion: admissionregistration.k8s.io/v1beta1
|
||||
kind: ValidatingWebhookConfiguration
|
||||
metadata:
|
||||
annotations:
|
||||
cert-manager.io/inject-ca-from: kubeflow/seldon-serving-cert
|
||||
creationTimestamp: null
|
||||
labels:
|
||||
app: seldon
|
||||
app.kubernetes.io/component: seldon
|
||||
app.kubernetes.io/instance: seldon-core
|
||||
app.kubernetes.io/name: seldon-core-operator
|
||||
app.kubernetes.io/version: 1.2.1
|
||||
name: seldon-validating-webhook-configuration-kubeflow
|
||||
webhooks:
|
||||
- clientConfig:
|
||||
caBundle: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURCVENDQWUyZ0F3SUJBZ0lSQU9CZGZ4N0xmZXVEZnJ2QXFUK0hDWDh3RFFZSktvWklodmNOQVFFTEJRQXcKSERFYU1CZ0dBMVVFQXhNUlkzVnpkRzl0TFcxbGRISnBZM010WTJFd0hoY05NakF3TnpFd01UYzFOREV4V2hjTgpNakV3TnpFd01UYzFOREV4V2pBY01Sb3dHQVlEVlFRREV4RmpkWE4wYjIwdGJXVjBjbWxqY3kxallUQ0NBU0l3CkRRWUpLb1pJaHZjTkFRRUJCUUFEZ2dFUEFEQ0NBUW9DZ2dFQkFLSEVLQ09YVW1LN2FRS1VHL0ZjbTMwSTVmVnYKTVJlc3dGbi9yb3pxR1I2Rm5HSm9zbjFiZStJY05PZkdvUERUNkJ4T2pYRXVvczRvQjFabjNXamZZL3ZaVnNCagpjSjdCWld3TzZlUmwrUEZNOUV5S0ZwTVhncnVHdjRBTlpOZ3BrejkyYURBTTV2S1RSYng0QUVCRFdjQlgxWE93CjdEdFZrOVNpY0Q5cTdMVGYzWDBYSHF1SlRiQTNmNXhJbndEMWp2ZjltMzdZanNIRnZva3ZscGR3MFpicFhjeWYKVFozYWw0SVJ5SmU3TWJDaTV4Wm9PcmZ0R1NzT2IrNnRTemVKbU5nVjM2N3ZHbnliSEJSSmlUVTBYeGJid3hEawpjazIvNnFFMXgzOWxxUlYvOWNURWk4UE1DbU9oV0dkeFQ3cTJQS1NmeVBhSm50VWVnUndXcjZIdDRVY0NBd0VBCkFhTkNNRUF3RGdZRFZSMFBBUUgvQkFRREFnS2tNQjBHQTFVZEpRUVdNQlFHQ0NzR0FRVUZCd01CQmdnckJnRUYKQlFjREFqQVBCZ05WSFJNQkFmOEVCVEFEQVFIL01BMEdDU3FHU0liM0RRRUJDd1VBQTRJQkFRQXRMcldyeGxmMgpuU2pjNEFvK3FJaHBITXZYc21nVFJXbFNKNXR0aW1tZHE0TkpwWDBMeWJQRmVoQ2RGOTUweXRvejIxMVFZbENECmVKd3k1YXY1eHA2NTdKZ0h0ckRWb1djTmxFUnNMa0JOOElaTlI2THdJdkMrbFZjYzU0RGVRWU5XbG5neSttYnMKT3FoYWlQVXVoWTRjZW9TeENlNDlYSHVnQko4VVdZUTUwcWl4Y1hmRjdzK1JQLzZuQXRhVDRrbWVkek1HckxFbwp1a3JzcXNaOWV5SHNDYmtKTW0rcHROWWtXMUhzU29ORlhHRnZYTE5GTEllZVJpa0hyRk15Tmg3dVhwQjI2cTVrCnVES2lvL0dNNitIRG5GN1p5VXVYTVEyOWhjc1VZZ2tBcVFJZGhKWnV5R281WmpjK1VNL3hyMlFwc0tYSjBmUXoKVHpvR3I0L1JzdTRBCi0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K
|
||||
service:
|
||||
name: seldon-webhook-service
|
||||
namespace: kubeflow
|
||||
path: /validate-machinelearning-seldon-io-v1-seldondeployment
|
||||
failurePolicy: Fail
|
||||
name: v1.vseldondeployment.kb.io
|
||||
namespaceSelector:
|
||||
matchExpressions:
|
||||
- key: seldon.io/controller-id
|
||||
operator: DoesNotExist
|
||||
matchLabels:
|
||||
serving.kubeflow.org/inferenceservice: enabled
|
||||
rules:
|
||||
- apiGroups:
|
||||
- machinelearning.seldon.io
|
||||
apiVersions:
|
||||
- v1
|
||||
operations:
|
||||
- CREATE
|
||||
- UPDATE
|
||||
resources:
|
||||
- seldondeployments
|
||||
- clientConfig:
|
||||
caBundle: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURCVENDQWUyZ0F3SUJBZ0lSQU9CZGZ4N0xmZXVEZnJ2QXFUK0hDWDh3RFFZSktvWklodmNOQVFFTEJRQXcKSERFYU1CZ0dBMVVFQXhNUlkzVnpkRzl0TFcxbGRISnBZM010WTJFd0hoY05NakF3TnpFd01UYzFOREV4V2hjTgpNakV3TnpFd01UYzFOREV4V2pBY01Sb3dHQVlEVlFRREV4RmpkWE4wYjIwdGJXVjBjbWxqY3kxallUQ0NBU0l3CkRRWUpLb1pJaHZjTkFRRUJCUUFEZ2dFUEFEQ0NBUW9DZ2dFQkFLSEVLQ09YVW1LN2FRS1VHL0ZjbTMwSTVmVnYKTVJlc3dGbi9yb3pxR1I2Rm5HSm9zbjFiZStJY05PZkdvUERUNkJ4T2pYRXVvczRvQjFabjNXamZZL3ZaVnNCagpjSjdCWld3TzZlUmwrUEZNOUV5S0ZwTVhncnVHdjRBTlpOZ3BrejkyYURBTTV2S1RSYng0QUVCRFdjQlgxWE93CjdEdFZrOVNpY0Q5cTdMVGYzWDBYSHF1SlRiQTNmNXhJbndEMWp2ZjltMzdZanNIRnZva3ZscGR3MFpicFhjeWYKVFozYWw0SVJ5SmU3TWJDaTV4Wm9PcmZ0R1NzT2IrNnRTemVKbU5nVjM2N3ZHbnliSEJSSmlUVTBYeGJid3hEawpjazIvNnFFMXgzOWxxUlYvOWNURWk4UE1DbU9oV0dkeFQ3cTJQS1NmeVBhSm50VWVnUndXcjZIdDRVY0NBd0VBCkFhTkNNRUF3RGdZRFZSMFBBUUgvQkFRREFnS2tNQjBHQTFVZEpRUVdNQlFHQ0NzR0FRVUZCd01CQmdnckJnRUYKQlFjREFqQVBCZ05WSFJNQkFmOEVCVEFEQVFIL01BMEdDU3FHU0liM0RRRUJDd1VBQTRJQkFRQXRMcldyeGxmMgpuU2pjNEFvK3FJaHBITXZYc21nVFJXbFNKNXR0aW1tZHE0TkpwWDBMeWJQRmVoQ2RGOTUweXRvejIxMVFZbENECmVKd3k1YXY1eHA2NTdKZ0h0ckRWb1djTmxFUnNMa0JOOElaTlI2THdJdkMrbFZjYzU0RGVRWU5XbG5neSttYnMKT3FoYWlQVXVoWTRjZW9TeENlNDlYSHVnQko4VVdZUTUwcWl4Y1hmRjdzK1JQLzZuQXRhVDRrbWVkek1HckxFbwp1a3JzcXNaOWV5SHNDYmtKTW0rcHROWWtXMUhzU29ORlhHRnZYTE5GTEllZVJpa0hyRk15Tmg3dVhwQjI2cTVrCnVES2lvL0dNNitIRG5GN1p5VXVYTVEyOWhjc1VZZ2tBcVFJZGhKWnV5R281WmpjK1VNL3hyMlFwc0tYSjBmUXoKVHpvR3I0L1JzdTRBCi0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K
|
||||
service:
|
||||
name: seldon-webhook-service
|
||||
namespace: kubeflow
|
||||
path: /validate-machinelearning-seldon-io-v1alpha2-seldondeployment
|
||||
failurePolicy: Fail
|
||||
name: v1alpha2.vseldondeployment.kb.io
|
||||
namespaceSelector:
|
||||
matchExpressions:
|
||||
- key: seldon.io/controller-id
|
||||
operator: DoesNotExist
|
||||
matchLabels:
|
||||
serving.kubeflow.org/inferenceservice: enabled
|
||||
rules:
|
||||
- apiGroups:
|
||||
- machinelearning.seldon.io
|
||||
apiVersions:
|
||||
- v1alpha2
|
||||
operations:
|
||||
- CREATE
|
||||
- UPDATE
|
||||
resources:
|
||||
- seldondeployments
|
||||
- clientConfig:
|
||||
caBundle: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURCVENDQWUyZ0F3SUJBZ0lSQU9CZGZ4N0xmZXVEZnJ2QXFUK0hDWDh3RFFZSktvWklodmNOQVFFTEJRQXcKSERFYU1CZ0dBMVVFQXhNUlkzVnpkRzl0TFcxbGRISnBZM010WTJFd0hoY05NakF3TnpFd01UYzFOREV4V2hjTgpNakV3TnpFd01UYzFOREV4V2pBY01Sb3dHQVlEVlFRREV4RmpkWE4wYjIwdGJXVjBjbWxqY3kxallUQ0NBU0l3CkRRWUpLb1pJaHZjTkFRRUJCUUFEZ2dFUEFEQ0NBUW9DZ2dFQkFLSEVLQ09YVW1LN2FRS1VHL0ZjbTMwSTVmVnYKTVJlc3dGbi9yb3pxR1I2Rm5HSm9zbjFiZStJY05PZkdvUERUNkJ4T2pYRXVvczRvQjFabjNXamZZL3ZaVnNCagpjSjdCWld3TzZlUmwrUEZNOUV5S0ZwTVhncnVHdjRBTlpOZ3BrejkyYURBTTV2S1RSYng0QUVCRFdjQlgxWE93CjdEdFZrOVNpY0Q5cTdMVGYzWDBYSHF1SlRiQTNmNXhJbndEMWp2ZjltMzdZanNIRnZva3ZscGR3MFpicFhjeWYKVFozYWw0SVJ5SmU3TWJDaTV4Wm9PcmZ0R1NzT2IrNnRTemVKbU5nVjM2N3ZHbnliSEJSSmlUVTBYeGJid3hEawpjazIvNnFFMXgzOWxxUlYvOWNURWk4UE1DbU9oV0dkeFQ3cTJQS1NmeVBhSm50VWVnUndXcjZIdDRVY0NBd0VBCkFhTkNNRUF3RGdZRFZSMFBBUUgvQkFRREFnS2tNQjBHQTFVZEpRUVdNQlFHQ0NzR0FRVUZCd01CQmdnckJnRUYKQlFjREFqQVBCZ05WSFJNQkFmOEVCVEFEQVFIL01BMEdDU3FHU0liM0RRRUJDd1VBQTRJQkFRQXRMcldyeGxmMgpuU2pjNEFvK3FJaHBITXZYc21nVFJXbFNKNXR0aW1tZHE0TkpwWDBMeWJQRmVoQ2RGOTUweXRvejIxMVFZbENECmVKd3k1YXY1eHA2NTdKZ0h0ckRWb1djTmxFUnNMa0JOOElaTlI2THdJdkMrbFZjYzU0RGVRWU5XbG5neSttYnMKT3FoYWlQVXVoWTRjZW9TeENlNDlYSHVnQko4VVdZUTUwcWl4Y1hmRjdzK1JQLzZuQXRhVDRrbWVkek1HckxFbwp1a3JzcXNaOWV5SHNDYmtKTW0rcHROWWtXMUhzU29ORlhHRnZYTE5GTEllZVJpa0hyRk15Tmg3dVhwQjI2cTVrCnVES2lvL0dNNitIRG5GN1p5VXVYTVEyOWhjc1VZZ2tBcVFJZGhKWnV5R281WmpjK1VNL3hyMlFwc0tYSjBmUXoKVHpvR3I0L1JzdTRBCi0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K
|
||||
service:
|
||||
name: seldon-webhook-service
|
||||
namespace: kubeflow
|
||||
path: /validate-machinelearning-seldon-io-v1alpha3-seldondeployment
|
||||
failurePolicy: Fail
|
||||
name: v1alpha3.vseldondeployment.kb.io
|
||||
namespaceSelector:
|
||||
matchExpressions:
|
||||
- key: seldon.io/controller-id
|
||||
operator: DoesNotExist
|
||||
matchLabels:
|
||||
serving.kubeflow.org/inferenceservice: enabled
|
||||
rules:
|
||||
- apiGroups:
|
||||
- machinelearning.seldon.io
|
||||
apiVersions:
|
||||
- v1alpha3
|
||||
operations:
|
||||
- CREATE
|
||||
- UPDATE
|
||||
resources:
|
||||
- seldondeployments
|
||||
File diff suppressed because it is too large
Load Diff
|
|
@ -0,0 +1,46 @@
|
|||
apiVersion: app.k8s.io/v1beta1
|
||||
kind: Application
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/component: seldon
|
||||
app.kubernetes.io/name: seldon-core-operator
|
||||
name: seldon-core-operator
|
||||
namespace: kubeflow
|
||||
spec:
|
||||
addOwnerRef: true
|
||||
componentKinds:
|
||||
- group: apps/v1
|
||||
kind: StatefulSet
|
||||
- group: v1
|
||||
kind: Service
|
||||
- group: apps/v1
|
||||
kind: Deployment
|
||||
- group: v1
|
||||
kind: Secret
|
||||
- group: v1
|
||||
kind: ConfigMap
|
||||
descriptor:
|
||||
description: Seldon allows users to create ML Inference Graphs to deploy their
|
||||
models and serve predictions
|
||||
keywords:
|
||||
- seldon
|
||||
- inference
|
||||
links:
|
||||
- description: Docs
|
||||
url: https://docs.seldon.io/projects/seldon-core/en/v1.1.0/
|
||||
maintainers:
|
||||
- email: dev@seldon.io
|
||||
name: Seldon
|
||||
owners:
|
||||
- email: dev@seldon.io
|
||||
name: Seldon
|
||||
type: seldon-core-operator
|
||||
version: v1
|
||||
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
|
||||
|
|
@ -0,0 +1,160 @@
|
|||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
labels:
|
||||
app: seldon
|
||||
app.kubernetes.io/component: seldon
|
||||
app.kubernetes.io/instance: seldon-core
|
||||
app.kubernetes.io/name: seldon-core-operator
|
||||
app.kubernetes.io/version: 1.2.1
|
||||
control-plane: seldon-controller-manager
|
||||
name: seldon-controller-manager
|
||||
namespace: kubeflow
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: seldon
|
||||
app.kubernetes.io/component: seldon
|
||||
app.kubernetes.io/instance: seldon1
|
||||
app.kubernetes.io/name: seldon-core-operator
|
||||
app.kubernetes.io/version: v0.5
|
||||
control-plane: seldon-controller-manager
|
||||
template:
|
||||
metadata:
|
||||
annotations:
|
||||
prometheus.io/scrape: "true"
|
||||
sidecar.istio.io/inject: "false"
|
||||
labels:
|
||||
app: seldon
|
||||
app.kubernetes.io/component: seldon
|
||||
app.kubernetes.io/instance: seldon1
|
||||
app.kubernetes.io/name: seldon-core-operator
|
||||
app.kubernetes.io/version: v0.5
|
||||
control-plane: seldon-controller-manager
|
||||
spec:
|
||||
containers:
|
||||
- args:
|
||||
- --enable-leader-election
|
||||
- --webhook-port=443
|
||||
- --create-resources=$(MANAGER_CREATE_RESOURCES)
|
||||
- ""
|
||||
command:
|
||||
- /manager
|
||||
env:
|
||||
- name: WATCH_NAMESPACE
|
||||
value: ""
|
||||
- name: RELATED_IMAGE_EXECUTOR
|
||||
value: ""
|
||||
- name: RELATED_IMAGE_ENGINE
|
||||
value: ""
|
||||
- name: RELATED_IMAGE_STORAGE_INITIALIZER
|
||||
value: ""
|
||||
- name: RELATED_IMAGE_SKLEARNSERVER_REST
|
||||
value: ""
|
||||
- name: RELATED_IMAGE_SKLEARNSERVER_GRPC
|
||||
value: ""
|
||||
- name: RELATED_IMAGE_XGBOOSTSERVER_REST
|
||||
value: ""
|
||||
- name: RELATED_IMAGE_XGBOOSTSERVER_GRPC
|
||||
value: ""
|
||||
- name: RELATED_IMAGE_MLFLOWSERVER_REST
|
||||
value: ""
|
||||
- name: RELATED_IMAGE_MLFLOWSERVER_GRPC
|
||||
value: ""
|
||||
- name: RELATED_IMAGE_TFPROXY_REST
|
||||
value: ""
|
||||
- name: RELATED_IMAGE_TFPROXY_GRPC
|
||||
value: ""
|
||||
- name: RELATED_IMAGE_TENSORFLOW
|
||||
value: ""
|
||||
- name: RELATED_IMAGE_EXPLAINER
|
||||
value: ""
|
||||
- name: MANAGER_CREATE_RESOURCES
|
||||
value: "false"
|
||||
- name: POD_NAMESPACE
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
fieldPath: metadata.namespace
|
||||
- name: CONTROLLER_ID
|
||||
value: ""
|
||||
- name: AMBASSADOR_ENABLED
|
||||
value: "true"
|
||||
- name: AMBASSADOR_SINGLE_NAMESPACE
|
||||
value: "false"
|
||||
- name: ENGINE_CONTAINER_IMAGE_AND_VERSION
|
||||
value: docker.io/seldonio/engine:1.2.1
|
||||
- name: ENGINE_CONTAINER_IMAGE_PULL_POLICY
|
||||
value: IfNotPresent
|
||||
- name: ENGINE_CONTAINER_SERVICE_ACCOUNT_NAME
|
||||
value: default
|
||||
- name: ENGINE_CONTAINER_USER
|
||||
value: "8888"
|
||||
- name: ENGINE_LOG_MESSAGES_EXTERNALLY
|
||||
value: "false"
|
||||
- name: PREDICTIVE_UNIT_SERVICE_PORT
|
||||
value: "9000"
|
||||
- name: PREDICTIVE_UNIT_DEFAULT_ENV_SECRET_REF_NAME
|
||||
value: ""
|
||||
- name: PREDICTIVE_UNIT_METRICS_PORT_NAME
|
||||
value: metrics
|
||||
- name: ENGINE_SERVER_GRPC_PORT
|
||||
value: "5001"
|
||||
- name: ENGINE_SERVER_PORT
|
||||
value: "8000"
|
||||
- name: ENGINE_PROMETHEUS_PATH
|
||||
value: /prometheus
|
||||
- name: ISTIO_ENABLED
|
||||
value: "true"
|
||||
- name: ISTIO_GATEWAY
|
||||
value: kubeflow/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.2.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: DEFAULT_USER_ID
|
||||
value: "8888"
|
||||
image: docker.io/seldonio/seldon-core-operator:1.2.1
|
||||
imagePullPolicy: IfNotPresent
|
||||
name: manager
|
||||
ports:
|
||||
- containerPort: 443
|
||||
name: webhook-server
|
||||
protocol: TCP
|
||||
- containerPort: 8080
|
||||
name: metrics
|
||||
protocol: TCP
|
||||
resources:
|
||||
limits:
|
||||
cpu: 500m
|
||||
memory: 300Mi
|
||||
requests:
|
||||
cpu: 100m
|
||||
memory: 200Mi
|
||||
volumeMounts:
|
||||
- mountPath: /tmp/k8s-webhook-server/serving-certs
|
||||
name: cert
|
||||
readOnly: true
|
||||
serviceAccountName: seldon-manager
|
||||
terminationGracePeriodSeconds: 10
|
||||
volumes:
|
||||
- name: cert
|
||||
secret:
|
||||
defaultMode: 420
|
||||
secretName: seldon-webhook-server-cert
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
apiVersion: cert-manager.io/v1alpha2
|
||||
kind: Certificate
|
||||
metadata:
|
||||
labels:
|
||||
app: seldon
|
||||
app.kubernetes.io/component: seldon
|
||||
app.kubernetes.io/instance: seldon-core
|
||||
app.kubernetes.io/name: seldon-core-operator
|
||||
app.kubernetes.io/version: 1.2.1
|
||||
name: seldon-serving-cert
|
||||
namespace: kubeflow
|
||||
spec:
|
||||
commonName: seldon-webhook-service.kubeflow.svc
|
||||
dnsNames:
|
||||
- seldon-webhook-service.kubeflow.svc.cluster.local
|
||||
- seldon-webhook-service.kubeflow.svc
|
||||
issuerRef:
|
||||
kind: Issuer
|
||||
name: seldon-selfsigned-issuer
|
||||
secretName: seldon-webhook-server-cert
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
apiVersion: cert-manager.io/v1alpha2
|
||||
kind: Issuer
|
||||
metadata:
|
||||
labels:
|
||||
app: seldon
|
||||
app.kubernetes.io/component: seldon
|
||||
app.kubernetes.io/instance: seldon-core
|
||||
app.kubernetes.io/name: seldon-core-operator
|
||||
app.kubernetes.io/version: 1.2.1
|
||||
name: seldon-selfsigned-issuer
|
||||
namespace: kubeflow
|
||||
spec:
|
||||
selfSigned: {}
|
||||
|
|
@ -0,0 +1,175 @@
|
|||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
creationTimestamp: null
|
||||
labels:
|
||||
app: seldon
|
||||
app.kubernetes.io/component: seldon
|
||||
app.kubernetes.io/instance: seldon-core
|
||||
app.kubernetes.io/name: seldon-core-operator
|
||||
app.kubernetes.io/version: 1.2.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:
|
||||
- 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:
|
||||
- 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
|
||||
|
|
@ -0,0 +1,36 @@
|
|||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
creationTimestamp: null
|
||||
labels:
|
||||
app: seldon
|
||||
app.kubernetes.io/component: seldon
|
||||
app.kubernetes.io/instance: seldon-core
|
||||
app.kubernetes.io/name: seldon-core-operator
|
||||
app.kubernetes.io/version: 1.2.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
|
||||
|
|
@ -0,0 +1,18 @@
|
|||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRoleBinding
|
||||
metadata:
|
||||
labels:
|
||||
app: seldon
|
||||
app.kubernetes.io/component: seldon
|
||||
app.kubernetes.io/instance: seldon-core
|
||||
app.kubernetes.io/name: seldon-core-operator
|
||||
app.kubernetes.io/version: 1.2.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
|
||||
|
|
@ -0,0 +1,18 @@
|
|||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRoleBinding
|
||||
metadata:
|
||||
labels:
|
||||
app: seldon
|
||||
app.kubernetes.io/component: seldon
|
||||
app.kubernetes.io/instance: seldon-core
|
||||
app.kubernetes.io/name: seldon-core-operator
|
||||
app.kubernetes.io/version: 1.2.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
|
||||
|
|
@ -0,0 +1,38 @@
|
|||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: Role
|
||||
metadata:
|
||||
labels:
|
||||
app: seldon
|
||||
app.kubernetes.io/component: seldon
|
||||
app.kubernetes.io/instance: seldon-core
|
||||
app.kubernetes.io/name: seldon-core-operator
|
||||
app.kubernetes.io/version: 1.2.1
|
||||
name: seldon-leader-election-role
|
||||
namespace: kubeflow
|
||||
rules:
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- configmaps
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- configmaps/status
|
||||
verbs:
|
||||
- get
|
||||
- update
|
||||
- patch
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- events
|
||||
verbs:
|
||||
- create
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: RoleBinding
|
||||
metadata:
|
||||
labels:
|
||||
app: seldon
|
||||
app.kubernetes.io/component: seldon
|
||||
app.kubernetes.io/instance: seldon-core
|
||||
app.kubernetes.io/name: seldon-core-operator
|
||||
app.kubernetes.io/version: 1.2.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
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
apiVersion: v1
|
||||
data:
|
||||
credentials: '{"gcs":{"gcsCredentialFileName":"gcloud-application-credentials.json"},"s3":{"s3AccessKeyIDName":"awsAccessKeyID","s3SecretAccessKeyName":"awsSecretAccessKey"}}'
|
||||
explainer: '{"image":"seldonio/alibiexplainer:1.2.1"}'
|
||||
predictor_servers: '{"MLFLOW_SERVER":{"grpc":{"defaultImageVersion":"1.2.1","image":"seldonio/mlflowserver_grpc"},"rest":{"defaultImageVersion":"1.2.1","image":"seldonio/mlflowserver_rest"}},"SKLEARN_SERVER":{"grpc":{"defaultImageVersion":"1.2.1","image":"seldonio/sklearnserver_grpc"},"rest":{"defaultImageVersion":"1.2.1","image":"seldonio/sklearnserver_rest"}},"TENSORFLOW_SERVER":{"grpc":{"defaultImageVersion":"1.2.1","image":"seldonio/tfserving-proxy_grpc"},"rest":{"defaultImageVersion":"1.2.1","image":"seldonio/tfserving-proxy_rest"},"tensorflow":true,"tfImage":"tensorflow/serving:2.1.0"},"XGBOOST_SERVER":{"grpc":{"defaultImageVersion":"1.2.1","image":"seldonio/xgboostserver_grpc"},"rest":{"defaultImageVersion":"1.2.1","image":"seldonio/xgboostserver_rest"}}}'
|
||||
storageInitializer: '{"cpuLimit":"1","cpuRequest":"100m","image":"gcr.io/kfserving/storage-initializer:0.2.2","memoryLimit":"1Gi","memoryRequest":"100Mi"}'
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
labels:
|
||||
app: seldon
|
||||
app.kubernetes.io/component: seldon
|
||||
app.kubernetes.io/instance: seldon-core
|
||||
app.kubernetes.io/name: seldon-core-operator
|
||||
app.kubernetes.io/version: 1.2.1
|
||||
control-plane: seldon-controller-manager
|
||||
name: seldon-config
|
||||
namespace: kubeflow
|
||||
|
|
@ -0,0 +1,22 @@
|
|||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
labels:
|
||||
app: seldon
|
||||
app.kubernetes.io/component: seldon
|
||||
app.kubernetes.io/instance: seldon-core
|
||||
app.kubernetes.io/name: seldon-core-operator
|
||||
app.kubernetes.io/version: 1.2.1
|
||||
name: seldon-webhook-service
|
||||
namespace: kubeflow
|
||||
spec:
|
||||
ports:
|
||||
- port: 443
|
||||
targetPort: 443
|
||||
selector:
|
||||
app: seldon
|
||||
app.kubernetes.io/component: seldon
|
||||
app.kubernetes.io/instance: seldon1
|
||||
app.kubernetes.io/name: seldon-core-operator
|
||||
app.kubernetes.io/version: v0.5
|
||||
control-plane: seldon-controller-manager
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
labels:
|
||||
app: seldon
|
||||
app.kubernetes.io/component: seldon
|
||||
app.kubernetes.io/instance: seldon-core
|
||||
app.kubernetes.io/name: seldon-core-operator
|
||||
app.kubernetes.io/version: 1.2.1
|
||||
name: seldon-manager
|
||||
namespace: kubeflow
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
package base
|
||||
|
||||
import (
|
||||
"github.com/kubeflow/manifests/tests"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestKustomize(t *testing.T) {
|
||||
testCase := &tests.KustomizeTestCase{
|
||||
Package: "../../../../stacks/ibm/base",
|
||||
Expected: "test_data/expected",
|
||||
}
|
||||
|
||||
tests.RunTestCase(t, testCase)
|
||||
}
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
apiVersion: v1
|
||||
data:
|
||||
clusterDomain: cluster.local
|
||||
userid-header: kubeflow-userid
|
||||
userid-prefix: ""
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: kubeflow-config-d7dttg89h2
|
||||
namespace: kubeflow
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
package admission_webhook
|
||||
|
||||
import (
|
||||
"github.com/kubeflow/manifests/tests"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestKustomize(t *testing.T) {
|
||||
testCase := &tests.KustomizeTestCase{
|
||||
Package: "../../../../../stacks/ibm/components/admission-webhook",
|
||||
Expected: "test_data/expected",
|
||||
}
|
||||
|
||||
tests.RunTestCase(t, testCase)
|
||||
}
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
apiVersion: admissionregistration.k8s.io/v1beta1
|
||||
kind: MutatingWebhookConfiguration
|
||||
metadata:
|
||||
annotations:
|
||||
cert-manager.io/inject-ca-from: kubeflow/admission-webhook-cert
|
||||
labels:
|
||||
app: admission-webhook
|
||||
app.kubernetes.io/component: poddefaults
|
||||
app.kubernetes.io/name: poddefaults
|
||||
kustomize.component: admission-webhook
|
||||
name: admission-webhook-mutating-webhook-configuration
|
||||
webhooks:
|
||||
- clientConfig:
|
||||
caBundle: ""
|
||||
service:
|
||||
name: admission-webhook-service
|
||||
namespace: kubeflow
|
||||
path: /apply-poddefault
|
||||
name: admission-webhook-deployment.kubeflow.org
|
||||
namespaceSelector:
|
||||
matchLabels:
|
||||
app.kubernetes.io/part-of: kubeflow-profile
|
||||
rules:
|
||||
- apiGroups:
|
||||
- ""
|
||||
apiVersions:
|
||||
- v1
|
||||
operations:
|
||||
- CREATE
|
||||
resources:
|
||||
- pods
|
||||
|
|
@ -0,0 +1,56 @@
|
|||
apiVersion: apiextensions.k8s.io/v1beta1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
labels:
|
||||
app: admission-webhook
|
||||
app.kubernetes.io/component: poddefaults
|
||||
app.kubernetes.io/name: poddefaults
|
||||
kustomize.component: admission-webhook
|
||||
name: poddefaults.kubeflow.org
|
||||
spec:
|
||||
group: kubeflow.org
|
||||
names:
|
||||
kind: PodDefault
|
||||
plural: poddefaults
|
||||
singular: poddefault
|
||||
scope: Namespaced
|
||||
validation:
|
||||
openAPIV3Schema:
|
||||
properties:
|
||||
apiVersion:
|
||||
type: string
|
||||
kind:
|
||||
type: string
|
||||
metadata:
|
||||
type: object
|
||||
spec:
|
||||
properties:
|
||||
desc:
|
||||
type: string
|
||||
env:
|
||||
items:
|
||||
type: object
|
||||
type: array
|
||||
envFrom:
|
||||
items:
|
||||
type: object
|
||||
type: array
|
||||
selector:
|
||||
type: object
|
||||
serviceAccountName:
|
||||
type: string
|
||||
volumeMounts:
|
||||
items:
|
||||
type: object
|
||||
type: array
|
||||
volumes:
|
||||
items:
|
||||
type: object
|
||||
type: array
|
||||
required:
|
||||
- selector
|
||||
type: object
|
||||
status:
|
||||
type: object
|
||||
type: object
|
||||
version: v1alpha1
|
||||
|
|
@ -0,0 +1,39 @@
|
|||
apiVersion: app.k8s.io/v1beta1
|
||||
kind: Application
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/component: poddefaults
|
||||
app.kubernetes.io/name: poddefaults
|
||||
name: webhook
|
||||
namespace: kubeflow
|
||||
spec:
|
||||
addOwnerRef: true
|
||||
componentKinds:
|
||||
- group: core
|
||||
kind: ConfigMap
|
||||
- group: apps
|
||||
kind: StatefulSet
|
||||
- group: core
|
||||
kind: Service
|
||||
- group: core
|
||||
kind: ServiceAccount
|
||||
descriptor:
|
||||
description: injects volume, volume mounts, env vars into PodDefault
|
||||
keywords:
|
||||
- admission-webhook
|
||||
- kubeflow
|
||||
links:
|
||||
- description: About
|
||||
url: https://github.com/kubeflow/kubeflow/tree/master/components/admission-webhook
|
||||
maintainers: []
|
||||
owners: []
|
||||
type: bootstrap
|
||||
version: v1beta1
|
||||
selector:
|
||||
matchLabels:
|
||||
app.kubernetes.io/component: bootstrap
|
||||
app.kubernetes.io/instance: webhook-v1.0.0
|
||||
app.kubernetes.io/managed-by: kfctl
|
||||
app.kubernetes.io/name: webhook
|
||||
app.kubernetes.io/part-of: webhook
|
||||
app.kubernetes.io/version: v1.0.0
|
||||
|
|
@ -0,0 +1,42 @@
|
|||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
labels:
|
||||
app: admission-webhook
|
||||
app.kubernetes.io/component: poddefaults
|
||||
app.kubernetes.io/name: poddefaults
|
||||
kustomize.component: admission-webhook
|
||||
name: admission-webhook-deployment
|
||||
namespace: kubeflow
|
||||
spec:
|
||||
selector:
|
||||
matchLabels:
|
||||
app: admission-webhook
|
||||
app.kubernetes.io/component: poddefaults
|
||||
app.kubernetes.io/name: poddefaults
|
||||
kustomize.component: admission-webhook
|
||||
template:
|
||||
metadata:
|
||||
annotations:
|
||||
sidecar.istio.io/inject: "false"
|
||||
labels:
|
||||
app: admission-webhook
|
||||
app.kubernetes.io/component: poddefaults
|
||||
app.kubernetes.io/name: poddefaults
|
||||
kustomize.component: admission-webhook
|
||||
spec:
|
||||
containers:
|
||||
- args:
|
||||
- --tlsCertFile=/etc/webhook/certs/tls.crt
|
||||
- --tlsKeyFile=/etc/webhook/certs/tls.key
|
||||
image: gcr.io/kubeflow-images-public/admission-webhook:vmaster-gaf96e4e3
|
||||
name: admission-webhook
|
||||
volumeMounts:
|
||||
- mountPath: /etc/webhook/certs
|
||||
name: webhook-cert
|
||||
readOnly: true
|
||||
serviceAccountName: admission-webhook-service-account
|
||||
volumes:
|
||||
- name: webhook-cert
|
||||
secret:
|
||||
secretName: webhook-certs
|
||||
|
|
@ -0,0 +1,18 @@
|
|||
apiVersion: cert-manager.io/v1alpha2
|
||||
kind: Certificate
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/component: poddefaults
|
||||
app.kubernetes.io/name: poddefaults
|
||||
name: admission-webhook-cert
|
||||
namespace: kubeflow
|
||||
spec:
|
||||
commonName: admission-webhook-service.kubeflow.svc
|
||||
dnsNames:
|
||||
- admission-webhook-service.kubeflow.svc
|
||||
- admission-webhook-service.kubeflow.svc.cluster.local
|
||||
isCA: true
|
||||
issuerRef:
|
||||
kind: ClusterIssuer
|
||||
name: kubeflow-self-signing-issuer
|
||||
secretName: webhook-certs
|
||||
|
|
@ -0,0 +1,22 @@
|
|||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
labels:
|
||||
app: admission-webhook
|
||||
app.kubernetes.io/component: poddefaults
|
||||
app.kubernetes.io/name: poddefaults
|
||||
kustomize.component: admission-webhook
|
||||
name: admission-webhook-cluster-role
|
||||
rules:
|
||||
- apiGroups:
|
||||
- kubeflow.org
|
||||
resources:
|
||||
- poddefaults
|
||||
verbs:
|
||||
- get
|
||||
- watch
|
||||
- list
|
||||
- update
|
||||
- create
|
||||
- patch
|
||||
- delete
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
aggregationRule:
|
||||
clusterRoleSelectors:
|
||||
- matchLabels:
|
||||
rbac.authorization.kubeflow.org/aggregate-to-kubeflow-poddefaults-admin: "true"
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
labels:
|
||||
app: admission-webhook
|
||||
app.kubernetes.io/component: poddefaults
|
||||
app.kubernetes.io/name: poddefaults
|
||||
kustomize.component: admission-webhook
|
||||
rbac.authorization.kubeflow.org/aggregate-to-kubeflow-admin: "true"
|
||||
name: admission-webhook-kubeflow-poddefaults-admin
|
||||
rules: []
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
aggregationRule:
|
||||
clusterRoleSelectors:
|
||||
- matchLabels:
|
||||
rbac.authorization.kubeflow.org/aggregate-to-kubeflow-poddefaults-edit: "true"
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
labels:
|
||||
app: admission-webhook
|
||||
app.kubernetes.io/component: poddefaults
|
||||
app.kubernetes.io/name: poddefaults
|
||||
kustomize.component: admission-webhook
|
||||
rbac.authorization.kubeflow.org/aggregate-to-kubeflow-edit: "true"
|
||||
name: admission-webhook-kubeflow-poddefaults-edit
|
||||
rules: []
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
labels:
|
||||
app: admission-webhook
|
||||
app.kubernetes.io/component: poddefaults
|
||||
app.kubernetes.io/name: poddefaults
|
||||
kustomize.component: admission-webhook
|
||||
rbac.authorization.kubeflow.org/aggregate-to-kubeflow-poddefaults-admin: "true"
|
||||
rbac.authorization.kubeflow.org/aggregate-to-kubeflow-poddefaults-edit: "true"
|
||||
rbac.authorization.kubeflow.org/aggregate-to-kubeflow-view: "true"
|
||||
name: admission-webhook-kubeflow-poddefaults-view
|
||||
rules:
|
||||
- apiGroups:
|
||||
- kubeflow.org
|
||||
resources:
|
||||
- poddefaults
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRoleBinding
|
||||
metadata:
|
||||
labels:
|
||||
app: admission-webhook
|
||||
app.kubernetes.io/component: poddefaults
|
||||
app.kubernetes.io/name: poddefaults
|
||||
kustomize.component: admission-webhook
|
||||
name: admission-webhook-cluster-role-binding
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: ClusterRole
|
||||
name: admission-webhook-cluster-role
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: admission-webhook-service-account
|
||||
namespace: kubeflow
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
apiVersion: v1
|
||||
data:
|
||||
issuer: kubeflow-self-signing-issuer
|
||||
namespace: kubeflow
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
annotations: {}
|
||||
labels:
|
||||
app: admission-webhook
|
||||
app.kubernetes.io/component: poddefaults
|
||||
app.kubernetes.io/name: poddefaults
|
||||
kustomize.component: admission-webhook
|
||||
name: admission-webhook-admission-webhook-parameters
|
||||
namespace: kubeflow
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
labels:
|
||||
app: admission-webhook
|
||||
app.kubernetes.io/component: poddefaults
|
||||
app.kubernetes.io/name: poddefaults
|
||||
kustomize.component: admission-webhook
|
||||
name: admission-webhook-service
|
||||
namespace: kubeflow
|
||||
spec:
|
||||
ports:
|
||||
- port: 443
|
||||
targetPort: 443
|
||||
selector:
|
||||
app: admission-webhook
|
||||
app.kubernetes.io/component: poddefaults
|
||||
app.kubernetes.io/name: poddefaults
|
||||
kustomize.component: admission-webhook
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
labels:
|
||||
app: admission-webhook
|
||||
app.kubernetes.io/component: poddefaults
|
||||
app.kubernetes.io/name: poddefaults
|
||||
kustomize.component: admission-webhook
|
||||
name: admission-webhook-service-account
|
||||
namespace: kubeflow
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
package argo
|
||||
|
||||
import (
|
||||
"github.com/kubeflow/manifests/tests"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestKustomize(t *testing.T) {
|
||||
testCase := &tests.KustomizeTestCase{
|
||||
Package: "../../../../../stacks/ibm/components/argo",
|
||||
Expected: "test_data/expected",
|
||||
}
|
||||
|
||||
tests.RunTestCase(t, testCase)
|
||||
}
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
apiVersion: apiextensions.k8s.io/v1beta1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/component: argo
|
||||
app.kubernetes.io/name: argo
|
||||
kustomize.component: argo
|
||||
name: workflows.argoproj.io
|
||||
spec:
|
||||
group: argoproj.io
|
||||
names:
|
||||
kind: Workflow
|
||||
listKind: WorkflowList
|
||||
plural: workflows
|
||||
shortNames:
|
||||
- wf
|
||||
singular: workflow
|
||||
scope: Namespaced
|
||||
version: v1alpha1
|
||||
|
|
@ -0,0 +1,39 @@
|
|||
apiVersion: app.k8s.io/v1beta1
|
||||
kind: Application
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/component: argo
|
||||
app.kubernetes.io/name: argo
|
||||
kustomize.component: argo
|
||||
name: argo
|
||||
namespace: kubeflow
|
||||
spec:
|
||||
addOwnerRef: true
|
||||
componentKinds:
|
||||
- group: core
|
||||
kind: ConfigMap
|
||||
- group: apps
|
||||
kind: Deployment
|
||||
- group: core
|
||||
kind: ServiceAccount
|
||||
- group: core
|
||||
kind: Service
|
||||
- group: networking.istio.io
|
||||
kind: VirtualService
|
||||
descriptor:
|
||||
description: Argo Workflows is an open source container-native workflow engine
|
||||
for orchestrating parallel jobs on Kubernetes
|
||||
keywords:
|
||||
- argo
|
||||
- kubeflow
|
||||
links:
|
||||
- description: About
|
||||
url: https://github.com/argoproj/argo
|
||||
maintainers: []
|
||||
owners: []
|
||||
type: argo
|
||||
version: v1beta1
|
||||
selector:
|
||||
matchLabels:
|
||||
app.kubernetes.io/component: argo
|
||||
app.kubernetes.io/name: argo
|
||||
|
|
@ -0,0 +1,66 @@
|
|||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
labels:
|
||||
app: argo-ui
|
||||
app.kubernetes.io/component: argo
|
||||
app.kubernetes.io/name: argo
|
||||
kustomize.component: argo
|
||||
name: argo-ui
|
||||
namespace: kubeflow
|
||||
spec:
|
||||
progressDeadlineSeconds: 600
|
||||
replicas: 1
|
||||
revisionHistoryLimit: 10
|
||||
selector:
|
||||
matchLabels:
|
||||
app: argo-ui
|
||||
app.kubernetes.io/component: argo
|
||||
app.kubernetes.io/name: argo
|
||||
kustomize.component: argo
|
||||
strategy:
|
||||
rollingUpdate:
|
||||
maxSurge: 25%
|
||||
maxUnavailable: 25%
|
||||
type: RollingUpdate
|
||||
template:
|
||||
metadata:
|
||||
annotations:
|
||||
sidecar.istio.io/inject: "false"
|
||||
creationTimestamp: null
|
||||
labels:
|
||||
app: argo-ui
|
||||
app.kubernetes.io/component: argo
|
||||
app.kubernetes.io/name: argo
|
||||
kustomize.component: argo
|
||||
spec:
|
||||
containers:
|
||||
- env:
|
||||
- name: ARGO_NAMESPACE
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
apiVersion: v1
|
||||
fieldPath: metadata.namespace
|
||||
- name: IN_CLUSTER
|
||||
value: "true"
|
||||
- name: ENABLE_WEB_CONSOLE
|
||||
value: "false"
|
||||
- name: BASE_HREF
|
||||
value: /argo/
|
||||
image: argoproj/argoui:v2.3.0
|
||||
imagePullPolicy: IfNotPresent
|
||||
name: argo-ui
|
||||
readinessProbe:
|
||||
httpGet:
|
||||
path: /
|
||||
port: 8001
|
||||
resources: {}
|
||||
terminationMessagePath: /dev/termination-log
|
||||
terminationMessagePolicy: File
|
||||
dnsPolicy: ClusterFirst
|
||||
restartPolicy: Always
|
||||
schedulerName: default-scheduler
|
||||
securityContext: {}
|
||||
serviceAccount: argo-ui
|
||||
serviceAccountName: argo-ui
|
||||
terminationGracePeriodSeconds: 30
|
||||
|
|
@ -0,0 +1,61 @@
|
|||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
labels:
|
||||
app: workflow-controller
|
||||
app.kubernetes.io/component: argo
|
||||
app.kubernetes.io/name: argo
|
||||
kustomize.component: argo
|
||||
name: workflow-controller
|
||||
namespace: kubeflow
|
||||
spec:
|
||||
progressDeadlineSeconds: 600
|
||||
replicas: 1
|
||||
revisionHistoryLimit: 10
|
||||
selector:
|
||||
matchLabels:
|
||||
app: workflow-controller
|
||||
app.kubernetes.io/component: argo
|
||||
app.kubernetes.io/name: argo
|
||||
kustomize.component: argo
|
||||
strategy:
|
||||
rollingUpdate:
|
||||
maxSurge: 25%
|
||||
maxUnavailable: 25%
|
||||
type: RollingUpdate
|
||||
template:
|
||||
metadata:
|
||||
annotations:
|
||||
sidecar.istio.io/inject: "false"
|
||||
creationTimestamp: null
|
||||
labels:
|
||||
app: workflow-controller
|
||||
app.kubernetes.io/component: argo
|
||||
app.kubernetes.io/name: argo
|
||||
kustomize.component: argo
|
||||
spec:
|
||||
containers:
|
||||
- args:
|
||||
- --configmap
|
||||
- workflow-controller-configmap
|
||||
command:
|
||||
- workflow-controller
|
||||
env:
|
||||
- name: ARGO_NAMESPACE
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
apiVersion: v1
|
||||
fieldPath: metadata.namespace
|
||||
image: argoproj/workflow-controller:v2.3.0
|
||||
imagePullPolicy: IfNotPresent
|
||||
name: workflow-controller
|
||||
resources: {}
|
||||
terminationMessagePath: /dev/termination-log
|
||||
terminationMessagePolicy: File
|
||||
dnsPolicy: ClusterFirst
|
||||
restartPolicy: Always
|
||||
schedulerName: default-scheduler
|
||||
securityContext: {}
|
||||
serviceAccount: argo
|
||||
serviceAccountName: argo
|
||||
terminationGracePeriodSeconds: 30
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
apiVersion: networking.istio.io/v1alpha3
|
||||
kind: VirtualService
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/component: argo
|
||||
app.kubernetes.io/name: argo
|
||||
kustomize.component: argo
|
||||
name: argo-ui
|
||||
namespace: kubeflow
|
||||
spec:
|
||||
gateways:
|
||||
- kubeflow-gateway
|
||||
hosts:
|
||||
- '*'
|
||||
http:
|
||||
- match:
|
||||
- uri:
|
||||
prefix: /argo/
|
||||
rewrite:
|
||||
uri: /
|
||||
route:
|
||||
- destination:
|
||||
host: argo-ui.$(namespace).svc.$(clusterDomain)
|
||||
port:
|
||||
number: 80
|
||||
|
|
@ -0,0 +1,35 @@
|
|||
apiVersion: rbac.authorization.k8s.io/v1beta1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
labels:
|
||||
app: argo
|
||||
app.kubernetes.io/component: argo
|
||||
app.kubernetes.io/name: argo
|
||||
kustomize.component: argo
|
||||
name: argo-ui
|
||||
rules:
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- pods
|
||||
- pods/exec
|
||||
- pods/log
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- secrets
|
||||
verbs:
|
||||
- get
|
||||
- apiGroups:
|
||||
- argoproj.io
|
||||
resources:
|
||||
- workflows
|
||||
- workflows/finalizers
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
|
|
@ -0,0 +1,54 @@
|
|||
apiVersion: rbac.authorization.k8s.io/v1beta1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
labels:
|
||||
app: argo
|
||||
app.kubernetes.io/component: argo
|
||||
app.kubernetes.io/name: argo
|
||||
kustomize.component: argo
|
||||
name: argo
|
||||
rules:
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- pods
|
||||
- pods/exec
|
||||
verbs:
|
||||
- create
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- update
|
||||
- patch
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- configmaps
|
||||
verbs:
|
||||
- get
|
||||
- watch
|
||||
- list
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- persistentvolumeclaims
|
||||
verbs:
|
||||
- create
|
||||
- delete
|
||||
- apiGroups:
|
||||
- argoproj.io
|
||||
resources:
|
||||
- workflows
|
||||
- workflows/finalizers
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- update
|
||||
- patch
|
||||
- apiGroups:
|
||||
- sparkoperator.k8s.io
|
||||
resources:
|
||||
- sparkapplications
|
||||
verbs:
|
||||
- '*'
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
apiVersion: rbac.authorization.k8s.io/v1beta1
|
||||
kind: ClusterRoleBinding
|
||||
metadata:
|
||||
labels:
|
||||
app: argo-ui
|
||||
app.kubernetes.io/component: argo
|
||||
app.kubernetes.io/name: argo
|
||||
kustomize.component: argo
|
||||
name: argo-ui
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: ClusterRole
|
||||
name: argo-ui
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: argo-ui
|
||||
namespace: kubeflow
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
apiVersion: rbac.authorization.k8s.io/v1beta1
|
||||
kind: ClusterRoleBinding
|
||||
metadata:
|
||||
labels:
|
||||
app: argo
|
||||
app.kubernetes.io/component: argo
|
||||
app.kubernetes.io/name: argo
|
||||
kustomize.component: argo
|
||||
name: argo
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: ClusterRole
|
||||
name: argo
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: argo
|
||||
namespace: kubeflow
|
||||
|
|
@ -0,0 +1,32 @@
|
|||
apiVersion: v1
|
||||
data:
|
||||
config: |
|
||||
{
|
||||
executorImage: argoproj/argoexec:v2.3.0,
|
||||
containerRuntimeExecutor: pns,
|
||||
artifactRepository:
|
||||
{
|
||||
s3: {
|
||||
bucket: mlpipeline,
|
||||
keyPrefix: artifacts,
|
||||
endpoint: minio-service.kubeflow:9000,
|
||||
insecure: true,
|
||||
accessKeySecret: {
|
||||
name: mlpipeline-minio-artifact,
|
||||
key: accesskey
|
||||
},
|
||||
secretKeySecret: {
|
||||
name: mlpipeline-minio-artifact,
|
||||
key: secretkey
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/component: argo
|
||||
app.kubernetes.io/name: argo
|
||||
kustomize.component: argo
|
||||
name: workflow-controller-configmap
|
||||
namespace: kubeflow
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
apiVersion: v1
|
||||
data:
|
||||
artifactRepositoryAccessKeySecretKey: accesskey
|
||||
artifactRepositoryAccessKeySecretName: mlpipeline-minio-artifact
|
||||
artifactRepositoryBucket: mlpipeline
|
||||
artifactRepositoryEndpoint: minio-service.kubeflow:9000
|
||||
artifactRepositoryInsecure: "true"
|
||||
artifactRepositoryKeyPrefix: artifacts
|
||||
artifactRepositorySecretKeySecretKey: secretkey
|
||||
artifactRepositorySecretKeySecretName: mlpipeline-minio-artifact
|
||||
clusterDomain: cluster.local
|
||||
containerRuntimeExecutor: pns
|
||||
executorImage: argoproj/argoexec:v2.3.0
|
||||
namespace: ""
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
annotations: {}
|
||||
labels:
|
||||
app.kubernetes.io/component: argo
|
||||
app.kubernetes.io/name: argo
|
||||
kustomize.component: argo
|
||||
name: workflow-controller-parameters
|
||||
namespace: kubeflow
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
labels:
|
||||
app: argo-ui
|
||||
app.kubernetes.io/component: argo
|
||||
app.kubernetes.io/name: argo
|
||||
kustomize.component: argo
|
||||
name: argo-ui
|
||||
namespace: kubeflow
|
||||
spec:
|
||||
ports:
|
||||
- port: 80
|
||||
targetPort: 8001
|
||||
selector:
|
||||
app: argo-ui
|
||||
app.kubernetes.io/component: argo
|
||||
app.kubernetes.io/name: argo
|
||||
kustomize.component: argo
|
||||
sessionAffinity: None
|
||||
type: NodePort
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/component: argo
|
||||
app.kubernetes.io/name: argo
|
||||
kustomize.component: argo
|
||||
name: argo-ui
|
||||
namespace: kubeflow
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/component: argo
|
||||
app.kubernetes.io/name: argo
|
||||
kustomize.component: argo
|
||||
name: argo
|
||||
namespace: kubeflow
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
package katib
|
||||
|
||||
import (
|
||||
"github.com/kubeflow/manifests/tests"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestKustomize(t *testing.T) {
|
||||
testCase := &tests.KustomizeTestCase{
|
||||
Package: "../../../../../stacks/ibm/components/katib",
|
||||
Expected: "test_data/expected",
|
||||
}
|
||||
|
||||
tests.RunTestCase(t, testCase)
|
||||
}
|
||||
|
|
@ -0,0 +1,28 @@
|
|||
apiVersion: apiextensions.k8s.io/v1beta1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/component: katib
|
||||
app.kubernetes.io/name: katib-crds
|
||||
name: experiments.kubeflow.org
|
||||
spec:
|
||||
additionalPrinterColumns:
|
||||
- JSONPath: .status.conditions[-1:].type
|
||||
name: Status
|
||||
type: string
|
||||
- JSONPath: .metadata.creationTimestamp
|
||||
name: Age
|
||||
type: date
|
||||
group: kubeflow.org
|
||||
names:
|
||||
categories:
|
||||
- all
|
||||
- kubeflow
|
||||
- katib
|
||||
kind: Experiment
|
||||
plural: experiments
|
||||
singular: experiment
|
||||
scope: Namespaced
|
||||
subresources:
|
||||
status: {}
|
||||
version: v1alpha3
|
||||
|
|
@ -0,0 +1,37 @@
|
|||
apiVersion: apiextensions.k8s.io/v1beta1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/component: katib
|
||||
app.kubernetes.io/name: katib-crds
|
||||
name: suggestions.kubeflow.org
|
||||
spec:
|
||||
additionalPrinterColumns:
|
||||
- JSONPath: .status.conditions[-1:].type
|
||||
name: Type
|
||||
type: string
|
||||
- JSONPath: .status.conditions[-1:].status
|
||||
name: Status
|
||||
type: string
|
||||
- JSONPath: .spec.requests
|
||||
name: Requested
|
||||
type: string
|
||||
- JSONPath: .status.suggestionCount
|
||||
name: Assigned
|
||||
type: string
|
||||
- JSONPath: .metadata.creationTimestamp
|
||||
name: Age
|
||||
type: date
|
||||
group: kubeflow.org
|
||||
names:
|
||||
categories:
|
||||
- all
|
||||
- kubeflow
|
||||
- katib
|
||||
kind: Suggestion
|
||||
plural: suggestions
|
||||
singular: suggestion
|
||||
scope: Namespaced
|
||||
subresources:
|
||||
status: {}
|
||||
version: v1alpha3
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
apiVersion: apiextensions.k8s.io/v1beta1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/component: katib
|
||||
app.kubernetes.io/name: katib-crds
|
||||
name: trials.kubeflow.org
|
||||
spec:
|
||||
additionalPrinterColumns:
|
||||
- JSONPath: .status.conditions[-1:].type
|
||||
name: Type
|
||||
type: string
|
||||
- JSONPath: .status.conditions[-1:].status
|
||||
name: Status
|
||||
type: string
|
||||
- JSONPath: .metadata.creationTimestamp
|
||||
name: Age
|
||||
type: date
|
||||
group: kubeflow.org
|
||||
names:
|
||||
categories:
|
||||
- all
|
||||
- kubeflow
|
||||
- katib
|
||||
kind: Trial
|
||||
plural: trials
|
||||
singular: trial
|
||||
scope: Namespaced
|
||||
subresources:
|
||||
status: {}
|
||||
version: v1alpha3
|
||||
|
|
@ -0,0 +1,70 @@
|
|||
apiVersion: app.k8s.io/v1beta1
|
||||
kind: Application
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/component: katib
|
||||
app.kubernetes.io/name: katib-controller
|
||||
name: katib-controller
|
||||
namespace: kubeflow
|
||||
spec:
|
||||
addOwnerRef: true
|
||||
componentKinds:
|
||||
- group: core
|
||||
kind: Service
|
||||
- group: apps
|
||||
kind: Deployment
|
||||
- group: core
|
||||
kind: Secret
|
||||
- group: core
|
||||
kind: ServiceAccount
|
||||
- group: kubeflow.org
|
||||
kind: Experiment
|
||||
- group: kubeflow.org
|
||||
kind: Suggestion
|
||||
- group: kubeflow.org
|
||||
kind: Trial
|
||||
descriptor:
|
||||
description: Katib is a service for hyperparameter tuning and neural architecture
|
||||
search.
|
||||
keywords:
|
||||
- katib
|
||||
- katib-controller
|
||||
- hyperparameter tuning
|
||||
links:
|
||||
- description: About
|
||||
url: https://github.com/kubeflow/katib
|
||||
maintainers:
|
||||
- email: gaoce@caicloud.io
|
||||
name: Ce Gao
|
||||
- email: johnugeo@cisco.com
|
||||
name: Johnu George
|
||||
- email: liuhougang6@126.com
|
||||
name: Hougang Liu
|
||||
- email: ricliu@google.com
|
||||
name: Richard Liu
|
||||
- email: yuji.oshima0x3fd@gmail.com
|
||||
name: YujiOshima
|
||||
- email: andrey.velichkevich@gmail.com
|
||||
name: Andrey Velichkevich
|
||||
owners:
|
||||
- email: gaoce@caicloud.io
|
||||
name: Ce Gao
|
||||
- email: johnugeo@cisco.com
|
||||
name: Johnu George
|
||||
- email: liuhougang6@126.com
|
||||
name: Hougang Liu
|
||||
- email: ricliu@google.com
|
||||
name: Richard Liu
|
||||
- email: yuji.oshima0x3fd@gmail.com
|
||||
name: YujiOshima
|
||||
- email: andrey.velichkevich@gmail.com
|
||||
name: Andrey Velichkevich
|
||||
type: katib
|
||||
version: v1alpha3
|
||||
selector:
|
||||
matchLabels:
|
||||
app.kubernetes.io/component: katib
|
||||
app.kubernetes.io/instance: katib-controller
|
||||
app.kubernetes.io/managed-by: kfctl
|
||||
app.kubernetes.io/name: katib-controller
|
||||
app.kubernetes.io/part-of: kubeflow
|
||||
|
|
@ -0,0 +1,68 @@
|
|||
apiVersion: app.k8s.io/v1beta1
|
||||
kind: Application
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/component: katib
|
||||
app.kubernetes.io/name: katib-crds
|
||||
name: katib-crds
|
||||
namespace: kubeflow
|
||||
spec:
|
||||
addOwnerRef: true
|
||||
componentKinds:
|
||||
- group: core
|
||||
kind: Service
|
||||
- group: apps
|
||||
kind: Deployment
|
||||
- group: core
|
||||
kind: ServiceAccount
|
||||
- group: kubeflow.org
|
||||
kind: Experiment
|
||||
- group: kubeflow.org
|
||||
kind: Suggestion
|
||||
- group: kubeflow.org
|
||||
kind: Trial
|
||||
descriptor:
|
||||
description: Katib is a service for hyperparameter tuning and neural architecture
|
||||
search.
|
||||
keywords:
|
||||
- katib
|
||||
- katib-controller
|
||||
- hyperparameter tuning
|
||||
links:
|
||||
- description: About
|
||||
url: https://github.com/kubeflow/katib
|
||||
maintainers:
|
||||
- email: gaoce@caicloud.io
|
||||
name: Ce Gao
|
||||
- email: johnugeo@cisco.com
|
||||
name: Johnu George
|
||||
- email: liuhougang6@126.com
|
||||
name: Hougang Liu
|
||||
- email: ricliu@google.com
|
||||
name: Richard Liu
|
||||
- email: yuji.oshima0x3fd@gmail.com
|
||||
name: YujiOshima
|
||||
- email: andrey.velichkevich@gmail.com
|
||||
name: Andrey Velichkevich
|
||||
owners:
|
||||
- email: gaoce@caicloud.io
|
||||
name: Ce Gao
|
||||
- email: johnugeo@cisco.com
|
||||
name: Johnu George
|
||||
- email: liuhougang6@126.com
|
||||
name: Hougang Liu
|
||||
- email: ricliu@google.com
|
||||
name: Richard Liu
|
||||
- email: yuji.oshima0x3fd@gmail.com
|
||||
name: YujiOshima
|
||||
- email: andrey.velichkevich@gmail.com
|
||||
name: Andrey Velichkevich
|
||||
type: katib
|
||||
version: v1alpha3
|
||||
selector:
|
||||
matchLabels:
|
||||
app.kubernetes.io/component: katib
|
||||
app.kubernetes.io/instance: katib-crds
|
||||
app.kubernetes.io/managed-by: kfctl
|
||||
app.kubernetes.io/name: katib-crds
|
||||
app.kubernetes.io/part-of: kubeflow
|
||||
|
|
@ -0,0 +1,56 @@
|
|||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
labels:
|
||||
app: katib-controller
|
||||
app.kubernetes.io/component: katib
|
||||
app.kubernetes.io/name: katib-controller
|
||||
name: katib-controller
|
||||
namespace: kubeflow
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: katib-controller
|
||||
app.kubernetes.io/component: katib
|
||||
app.kubernetes.io/name: katib-controller
|
||||
template:
|
||||
metadata:
|
||||
annotations:
|
||||
prometheus.io/scrape: "true"
|
||||
sidecar.istio.io/inject: "false"
|
||||
labels:
|
||||
app: katib-controller
|
||||
app.kubernetes.io/component: katib
|
||||
app.kubernetes.io/name: katib-controller
|
||||
spec:
|
||||
containers:
|
||||
- args:
|
||||
- --webhook-port=8443
|
||||
command:
|
||||
- ./katib-controller
|
||||
env:
|
||||
- name: KATIB_CORE_NAMESPACE
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
fieldPath: metadata.namespace
|
||||
image: gcr.io/kubeflow-images-public/katib/v1alpha3/katib-controller:ce89cbf
|
||||
imagePullPolicy: IfNotPresent
|
||||
name: katib-controller
|
||||
ports:
|
||||
- containerPort: 8443
|
||||
name: webhook
|
||||
protocol: TCP
|
||||
- containerPort: 8080
|
||||
name: metrics
|
||||
protocol: TCP
|
||||
volumeMounts:
|
||||
- mountPath: /tmp/cert
|
||||
name: cert
|
||||
readOnly: true
|
||||
serviceAccountName: katib-controller
|
||||
volumes:
|
||||
- name: cert
|
||||
secret:
|
||||
defaultMode: 420
|
||||
secretName: katib-controller
|
||||
|
|
@ -0,0 +1,60 @@
|
|||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
labels:
|
||||
app: katib
|
||||
app.kubernetes.io/component: katib
|
||||
app.kubernetes.io/name: katib-controller
|
||||
component: db-manager
|
||||
name: katib-db-manager
|
||||
namespace: kubeflow
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: katib
|
||||
app.kubernetes.io/component: katib
|
||||
app.kubernetes.io/name: katib-controller
|
||||
component: db-manager
|
||||
template:
|
||||
metadata:
|
||||
annotations:
|
||||
sidecar.istio.io/inject: "false"
|
||||
labels:
|
||||
app: katib
|
||||
app.kubernetes.io/component: katib
|
||||
app.kubernetes.io/name: katib-controller
|
||||
component: db-manager
|
||||
name: katib-db-manager
|
||||
spec:
|
||||
containers:
|
||||
- command:
|
||||
- ./katib-db-manager
|
||||
env:
|
||||
- name: DB_NAME
|
||||
value: mysql
|
||||
- name: DB_PASSWORD
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: MYSQL_ROOT_PASSWORD
|
||||
name: katib-mysql-secrets
|
||||
image: gcr.io/kubeflow-images-public/katib/v1alpha3/katib-db-manager:ce89cbf
|
||||
imagePullPolicy: IfNotPresent
|
||||
livenessProbe:
|
||||
exec:
|
||||
command:
|
||||
- /bin/grpc_health_probe
|
||||
- -addr=:6789
|
||||
failureThreshold: 5
|
||||
initialDelaySeconds: 10
|
||||
periodSeconds: 60
|
||||
name: katib-db-manager
|
||||
ports:
|
||||
- containerPort: 6789
|
||||
name: api
|
||||
readinessProbe:
|
||||
exec:
|
||||
command:
|
||||
- /bin/grpc_health_probe
|
||||
- -addr=:6789
|
||||
initialDelaySeconds: 5
|
||||
|
|
@ -0,0 +1,65 @@
|
|||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
labels:
|
||||
app: katib
|
||||
app.kubernetes.io/component: katib
|
||||
app.kubernetes.io/name: katib-controller
|
||||
component: mysql
|
||||
name: katib-mysql
|
||||
namespace: kubeflow
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: katib
|
||||
app.kubernetes.io/component: katib
|
||||
app.kubernetes.io/name: katib-controller
|
||||
component: mysql
|
||||
template:
|
||||
metadata:
|
||||
annotations:
|
||||
sidecar.istio.io/inject: "false"
|
||||
labels:
|
||||
app: katib
|
||||
app.kubernetes.io/component: katib
|
||||
app.kubernetes.io/name: katib-controller
|
||||
component: mysql
|
||||
name: katib-mysql
|
||||
spec:
|
||||
containers:
|
||||
- args:
|
||||
- --datadir
|
||||
- /var/lib/mysql/datadir
|
||||
env:
|
||||
- name: MYSQL_ROOT_PASSWORD
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: MYSQL_ROOT_PASSWORD
|
||||
name: katib-mysql-secrets
|
||||
- name: MYSQL_ALLOW_EMPTY_PASSWORD
|
||||
value: "true"
|
||||
- name: MYSQL_DATABASE
|
||||
value: katib
|
||||
image: mysql:5.6
|
||||
name: katib-mysql
|
||||
ports:
|
||||
- containerPort: 3306
|
||||
name: dbapi
|
||||
readinessProbe:
|
||||
exec:
|
||||
command:
|
||||
- /bin/bash
|
||||
- -c
|
||||
- mysql -D ${MYSQL_DATABASE} -u root -p${MYSQL_ROOT_PASSWORD} -e 'SELECT
|
||||
1'
|
||||
initialDelaySeconds: 5
|
||||
periodSeconds: 10
|
||||
timeoutSeconds: 1
|
||||
volumeMounts:
|
||||
- mountPath: /var/lib/mysql
|
||||
name: katib-mysql
|
||||
volumes:
|
||||
- name: katib-mysql
|
||||
persistentVolumeClaim:
|
||||
claimName: katib-mysql
|
||||
|
|
@ -0,0 +1,46 @@
|
|||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
labels:
|
||||
app: katib
|
||||
app.kubernetes.io/component: katib
|
||||
app.kubernetes.io/name: katib-controller
|
||||
component: ui
|
||||
name: katib-ui
|
||||
namespace: kubeflow
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: katib
|
||||
app.kubernetes.io/component: katib
|
||||
app.kubernetes.io/name: katib-controller
|
||||
component: ui
|
||||
template:
|
||||
metadata:
|
||||
annotations:
|
||||
sidecar.istio.io/inject: "false"
|
||||
labels:
|
||||
app: katib
|
||||
app.kubernetes.io/component: katib
|
||||
app.kubernetes.io/name: katib-controller
|
||||
component: ui
|
||||
name: katib-ui
|
||||
spec:
|
||||
containers:
|
||||
- args:
|
||||
- --port=8080
|
||||
command:
|
||||
- ./katib-ui
|
||||
env:
|
||||
- name: KATIB_CORE_NAMESPACE
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
fieldPath: metadata.namespace
|
||||
image: gcr.io/kubeflow-images-public/katib/v1alpha3/katib-ui:ce89cbf
|
||||
imagePullPolicy: IfNotPresent
|
||||
name: katib-ui
|
||||
ports:
|
||||
- containerPort: 8080
|
||||
name: ui
|
||||
serviceAccountName: katib-ui
|
||||
|
|
@ -0,0 +1,24 @@
|
|||
apiVersion: networking.istio.io/v1alpha3
|
||||
kind: VirtualService
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/component: katib
|
||||
app.kubernetes.io/name: katib-controller
|
||||
name: katib-ui
|
||||
namespace: kubeflow
|
||||
spec:
|
||||
gateways:
|
||||
- kubeflow-gateway
|
||||
hosts:
|
||||
- '*'
|
||||
http:
|
||||
- match:
|
||||
- uri:
|
||||
prefix: /katib/
|
||||
rewrite:
|
||||
uri: /katib/
|
||||
route:
|
||||
- destination:
|
||||
host: katib-ui.kubeflow.svc.$(clusterDomain)
|
||||
port:
|
||||
number: 80
|
||||
|
|
@ -0,0 +1,75 @@
|
|||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/component: katib
|
||||
app.kubernetes.io/name: katib-controller
|
||||
name: katib-controller
|
||||
rules:
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- configmaps
|
||||
- serviceaccounts
|
||||
- services
|
||||
- secrets
|
||||
- events
|
||||
- namespaces
|
||||
verbs:
|
||||
- '*'
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- pods
|
||||
- pods/log
|
||||
- pods/status
|
||||
verbs:
|
||||
- '*'
|
||||
- apiGroups:
|
||||
- apps
|
||||
resources:
|
||||
- deployments
|
||||
verbs:
|
||||
- '*'
|
||||
- apiGroups:
|
||||
- batch
|
||||
resources:
|
||||
- jobs
|
||||
- cronjobs
|
||||
verbs:
|
||||
- '*'
|
||||
- apiGroups:
|
||||
- apiextensions.k8s.io
|
||||
resources:
|
||||
- customresourcedefinitions
|
||||
verbs:
|
||||
- create
|
||||
- get
|
||||
- apiGroups:
|
||||
- admissionregistration.k8s.io
|
||||
resources:
|
||||
- validatingwebhookconfigurations
|
||||
- mutatingwebhookconfigurations
|
||||
verbs:
|
||||
- '*'
|
||||
- apiGroups:
|
||||
- kubeflow.org
|
||||
resources:
|
||||
- experiments
|
||||
- experiments/status
|
||||
- experiments/finalizers
|
||||
- trials
|
||||
- trials/status
|
||||
- trials/finalizers
|
||||
- suggestions
|
||||
- suggestions/status
|
||||
- suggestions/finalizers
|
||||
verbs:
|
||||
- '*'
|
||||
- apiGroups:
|
||||
- kubeflow.org
|
||||
resources:
|
||||
- tfjobs
|
||||
- pytorchjobs
|
||||
verbs:
|
||||
- '*'
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/component: katib
|
||||
app.kubernetes.io/name: katib-controller
|
||||
name: katib-ui
|
||||
rules:
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- configmaps
|
||||
- namespaces
|
||||
verbs:
|
||||
- '*'
|
||||
- apiGroups:
|
||||
- kubeflow.org
|
||||
resources:
|
||||
- experiments
|
||||
- trials
|
||||
- suggestions
|
||||
verbs:
|
||||
- '*'
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
aggregationRule:
|
||||
clusterRoleSelectors:
|
||||
- matchLabels:
|
||||
rbac.authorization.kubeflow.org/aggregate-to-kubeflow-katib-admin: "true"
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/component: katib
|
||||
app.kubernetes.io/name: katib-controller
|
||||
rbac.authorization.kubeflow.org/aggregate-to-kubeflow-admin: "true"
|
||||
name: kubeflow-katib-admin
|
||||
rules: []
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/component: katib
|
||||
app.kubernetes.io/name: katib-controller
|
||||
rbac.authorization.kubeflow.org/aggregate-to-kubeflow-edit: "true"
|
||||
rbac.authorization.kubeflow.org/aggregate-to-kubeflow-katib-admin: "true"
|
||||
name: kubeflow-katib-edit
|
||||
rules:
|
||||
- apiGroups:
|
||||
- kubeflow.org
|
||||
resources:
|
||||
- experiments
|
||||
- trials
|
||||
- suggestions
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- delete
|
||||
- deletecollection
|
||||
- patch
|
||||
- update
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/component: katib
|
||||
app.kubernetes.io/name: katib-controller
|
||||
rbac.authorization.kubeflow.org/aggregate-to-kubeflow-view: "true"
|
||||
name: kubeflow-katib-view
|
||||
rules:
|
||||
- apiGroups:
|
||||
- kubeflow.org
|
||||
resources:
|
||||
- experiments
|
||||
- trials
|
||||
- suggestions
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRoleBinding
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/component: katib
|
||||
app.kubernetes.io/name: katib-controller
|
||||
name: katib-controller
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: ClusterRole
|
||||
name: katib-controller
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: katib-controller
|
||||
namespace: kubeflow
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRoleBinding
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/component: katib
|
||||
app.kubernetes.io/name: katib-controller
|
||||
name: katib-ui
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: ClusterRole
|
||||
name: katib-ui
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: katib-ui
|
||||
namespace: kubeflow
|
||||
|
|
@ -0,0 +1,59 @@
|
|||
apiVersion: v1
|
||||
data:
|
||||
metrics-collector-sidecar: |-
|
||||
{
|
||||
"StdOut": {
|
||||
"image": "gcr.io/kubeflow-images-public/katib/v1alpha3/file-metrics-collector:ce89cbf"
|
||||
},
|
||||
"File": {
|
||||
"image": "gcr.io/kubeflow-images-public/katib/v1alpha3/file-metrics-collector:ce89cbf"
|
||||
},
|
||||
"TensorFlowEvent": {
|
||||
"image": "gcr.io/kubeflow-images-public/katib/v1alpha3/tfevent-metrics-collector:ce89cbf",
|
||||
"resources": {
|
||||
"limits": {
|
||||
"memory": "1Gi"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
suggestion: |-
|
||||
{
|
||||
"random": {
|
||||
"image": "gcr.io/kubeflow-images-public/katib/v1alpha3/suggestion-hyperopt:ce89cbf"
|
||||
},
|
||||
"grid": {
|
||||
"image": "gcr.io/kubeflow-images-public/katib/v1alpha3/suggestion-chocolate:ce89cbf"
|
||||
},
|
||||
"hyperband": {
|
||||
"image": "gcr.io/kubeflow-images-public/katib/v1alpha3/suggestion-hyperband:ce89cbf"
|
||||
},
|
||||
"bayesianoptimization": {
|
||||
"image": "gcr.io/kubeflow-images-public/katib/v1alpha3/suggestion-skopt:ce89cbf"
|
||||
},
|
||||
"tpe": {
|
||||
"image": "gcr.io/kubeflow-images-public/katib/v1alpha3/suggestion-hyperopt:ce89cbf"
|
||||
},
|
||||
"enas": {
|
||||
"image": "gcr.io/kubeflow-images-public/katib/v1alpha3/suggestion-enas:ce89cbf",
|
||||
"imagePullPolicy": "Always",
|
||||
"resources": {
|
||||
"limits": {
|
||||
"memory": "200Mi"
|
||||
}
|
||||
}
|
||||
},
|
||||
"cmaes": {
|
||||
"image": "gcr.io/kubeflow-images-public/katib/v1alpha3/suggestion-goptuna:ce89cbf"
|
||||
},
|
||||
"darts": {
|
||||
"image": "gcr.io/kubeflow-images-public/katib/v1alpha3/suggestion-darts:ce89cbf"
|
||||
}
|
||||
}
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/component: katib
|
||||
app.kubernetes.io/name: katib-controller
|
||||
name: katib-config
|
||||
namespace: kubeflow
|
||||
|
|
@ -0,0 +1,97 @@
|
|||
apiVersion: v1
|
||||
data:
|
||||
defaultTrialTemplate.yaml: |-
|
||||
apiVersion: batch/v1
|
||||
kind: Job
|
||||
metadata:
|
||||
name: {{.Trial}}
|
||||
namespace: {{.NameSpace}}
|
||||
spec:
|
||||
template:
|
||||
spec:
|
||||
containers:
|
||||
- name: {{.Trial}}
|
||||
image: docker.io/kubeflowkatib/mxnet-mnist
|
||||
command:
|
||||
- "python3"
|
||||
- "/opt/mxnet-mnist/mnist.py"
|
||||
- "--batch-size=64"
|
||||
{{- with .HyperParameters}}
|
||||
{{- range .}}
|
||||
- "{{.Name}}={{.Value}}"
|
||||
{{- end}}
|
||||
{{- end}}
|
||||
restartPolicy: Never
|
||||
enasCPUTemplate: |-
|
||||
apiVersion: batch/v1
|
||||
kind: Job
|
||||
metadata:
|
||||
name: {{.Trial}}
|
||||
namespace: {{.NameSpace}}
|
||||
spec:
|
||||
template:
|
||||
spec:
|
||||
containers:
|
||||
- name: {{.Trial}}
|
||||
image: docker.io/kubeflowkatib/enas-cnn-cifar10-cpu
|
||||
command:
|
||||
- "python3.5"
|
||||
- "-u"
|
||||
- "RunTrial.py"
|
||||
{{- with .HyperParameters}}
|
||||
{{- range .}}
|
||||
- "--{{.Name}}=\"{{.Value}}\""
|
||||
{{- end}}
|
||||
{{- end}}
|
||||
- "--num_epochs=1"
|
||||
restartPolicy: Never
|
||||
pytorchJobTemplate: |-
|
||||
apiVersion: "kubeflow.org/v1"
|
||||
kind: PyTorchJob
|
||||
metadata:
|
||||
name: {{.Trial}}
|
||||
namespace: {{.NameSpace}}
|
||||
spec:
|
||||
pytorchReplicaSpecs:
|
||||
Master:
|
||||
replicas: 1
|
||||
restartPolicy: OnFailure
|
||||
template:
|
||||
spec:
|
||||
containers:
|
||||
- name: pytorch
|
||||
image: gcr.io/kubeflow-ci/pytorch-dist-mnist-test:v1.0
|
||||
imagePullPolicy: Always
|
||||
command:
|
||||
- "python"
|
||||
- "/var/mnist.py"
|
||||
{{- with .HyperParameters}}
|
||||
{{- range .}}
|
||||
- "{{.Name}}={{.Value}}"
|
||||
{{- end}}
|
||||
{{- end}}
|
||||
Worker:
|
||||
replicas: 2
|
||||
restartPolicy: OnFailure
|
||||
template:
|
||||
spec:
|
||||
containers:
|
||||
- name: pytorch
|
||||
image: gcr.io/kubeflow-ci/pytorch-dist-mnist-test:v1.0
|
||||
imagePullPolicy: Always
|
||||
command:
|
||||
- "python"
|
||||
- "/var/mnist.py"
|
||||
{{- with .HyperParameters}}
|
||||
{{- range .}}
|
||||
- "{{.Name}}={{.Value}}"
|
||||
{{- end}}
|
||||
{{- end}}
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
labels:
|
||||
app: katib-trial-templates
|
||||
app.kubernetes.io/component: katib
|
||||
app.kubernetes.io/name: katib-controller
|
||||
name: trial-template-labeled
|
||||
namespace: kubeflow
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
apiVersion: v1
|
||||
data:
|
||||
defaultTrialTemplate.yaml: |-
|
||||
apiVersion: batch/v1
|
||||
kind: Job
|
||||
metadata:
|
||||
name: {{.Trial}}
|
||||
namespace: {{.NameSpace}}
|
||||
spec:
|
||||
template:
|
||||
spec:
|
||||
containers:
|
||||
- name: {{.Trial}}
|
||||
image: docker.io/kubeflowkatib/mxnet-mnist
|
||||
command:
|
||||
- "python3"
|
||||
- "/opt/mxnet-mnist/mnist.py"
|
||||
- "--batch-size=64"
|
||||
{{- with .HyperParameters}}
|
||||
{{- range .}}
|
||||
- "{{.Name}}={{.Value}}"
|
||||
{{- end}}
|
||||
{{- end}}
|
||||
restartPolicy: Never
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/component: katib
|
||||
app.kubernetes.io/name: katib-controller
|
||||
name: trial-template
|
||||
namespace: kubeflow
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/component: katib
|
||||
app.kubernetes.io/name: katib-controller
|
||||
name: katib-mysql
|
||||
namespace: kubeflow
|
||||
spec:
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
resources:
|
||||
requests:
|
||||
storage: 10Gi
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
apiVersion: v1
|
||||
kind: Secret
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/component: katib
|
||||
app.kubernetes.io/name: katib-controller
|
||||
name: katib-controller
|
||||
namespace: kubeflow
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue