Commit 36cdff8c by rawmind0

Kubeflow release v0.6.2

parent 45407671
......@@ -2,9 +2,9 @@ apiVersion: v1
appVersion: "1.0"
description: Machine Learning Toolkit for Kubernetes
name: kubeflow
version: 0.1.0
version: 0.6.2
icon: file://../icon.jpg
maintainers:
- name: guangbochen
- name: Raul
email: support@rancher.com
home: https://www.kubeflow.org/docs/about/kubeflow/
......@@ -2,6 +2,13 @@
The Kubeflow project is dedicated to making deployments of machine learning (ML) workflows on Kubernetes simple, portable and scalable. Our goal is not to recreate other services, but to provide a straightforward way to deploy best-of-breed open-source systems for ML to diverse infrastructures. Anywhere you are running Kubernetes, you should be able to run Kubeflow
## Requirements
Kubeflow need some requirements in order to work properly:
- Kubeflow 0.6 is just compatible with k8s 1.14 and 1.15. [Compatibility table](https://www.kubeflow.org/docs/started/k8s/overview/#minimum-system-requirements)
- Istio with ingress gateway should be deployed or enabled on k8s cluster.
- Storageclass should be configured on k8s cluster to enable persistence volumes.
## Who should consider using Kubeflow?
Based on the current functionality you should consider using Kubeflow if:
......
......@@ -2,6 +2,13 @@
The Kubeflow project is dedicated to making deployments of machine learning (ML) workflows on Kubernetes simple, portable and scalable. Our goal is not to recreate other services, but to provide a straightforward way to deploy best-of-breed open-source systems for ML to diverse infrastructures. Anywhere you are running Kubernetes, you should be able to run Kubeflow
## Requirements
Kubeflow need some requirements in order to work properly:
- Kubeflow 0.6 is just compatible with k8s 1.14 and 1.15. [Compatibility table](https://www.kubeflow.org/docs/started/k8s/overview/#minimum-system-requirements)
- Istio with ingress gateway should be deployed or enabled on k8s cluster.
- Storageclass should be configured on k8s cluster to enable persistence volumes
## Who should consider using Kubeflow?
Based on the current functionality you should consider using Kubeflow if:
......@@ -11,3 +18,7 @@ Based on the current functionality you should consider using Kubeflow if:
- You want to launch training jobs that use resources – such as additional CPUs or GPUs – that aren’t available on your personal computer
- You want to combine TensorFlow with other processes
> For example, you may want to use [tensorflow/agents](https://github.com/google-research/batch-ppo) to run simulations to generate data for training reinforcement learning models.
## How it works?
For more details of how Kubeflow works please reference the [Kubeflow Doc](https://www.kubeflow.org/docs/about/kubeflow/).
apiVersion: v1
kind: ServiceAccount
metadata:
labels:
kustomize.component: admission-webhook-bootstrap
name: admission-webhook-bootstrap-service-account
namespace: kubeflow
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRole
metadata:
labels:
kustomize.component: admission-webhook-bootstrap
name: admission-webhook-bootstrap-cluster-role
rules:
- apiGroups:
- admissionregistration.k8s.io
resources:
- mutatingwebhookconfigurations
verbs:
- '*'
- apiGroups:
- ""
resources:
- secrets
verbs:
- '*'
- apiGroups:
- ""
resources:
- pods
verbs:
- list
- delete
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
labels:
kustomize.component: admission-webhook-bootstrap
name: admission-webhook-bootstrap-cluster-role-binding
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: admission-webhook-bootstrap-cluster-role
subjects:
- kind: ServiceAccount
name: admission-webhook-bootstrap-service-account
namespace: kubeflow
---
apiVersion: v1
data:
create_ca.sh: "#!/bin/bash\n\nset -e\n\nusage() {\n cat <<EOF\nGenerate certificate
suitable for use with an sidecar-injector webhook service.\nThis script uses k8s'
CertificateSigningRequest API to a generate a\ncertificate signed by k8s CA suitable
for use with sidecar-injector webhook\nservices. This requires permissions to
create and approve CSR. See\nhttps://kubernetes.io/docs/tasks/tls/managing-tls-in-a-cluster
for\ndetailed explantion and additional instructions.\nThe server key/cert k8s
CA cert are stored in a k8s secret.\nusage: ${0} [OPTIONS]\nThe following flags
are required.\n --service Service name of webhook.\n --namespace
\ Namespace where webhook service and secret reside.\n --secret Secret
name for CA certificate and server certificate/key pair.\nEOF\n exit 1\n}\n\nwhile
[[ $# -gt 0 ]]; do\n case ${1} in\n --service)\n service=\"$2\"\n
\ shift\n ;;\n --secret)\n secret=\"$2\"\n
\ shift\n ;;\n --namespace)\n namespace=\"$2\"\n
\ shift\n ;;\n *)\n usage\n ;;\n
\ esac\n shift\ndone\n\n[ -z ${service} ] && service=admission-webhook-service\n[
-z ${secret} ] && secret=webhook-certs\n[ -z ${namespace} ] && namespace=kubeflow\n[
-z ${namespace} ] && namespace=default\n\nwebhookDeploymentName=admission-webhook-deployment\nmutatingWebhookConfigName=admission-webhook-mutating-webhook-configuration\necho
${service}\necho ${namespace}\necho ${secret}\necho ${webhookDeploymentName}\necho
${mutatingWebhookconfigName}\nif [ ! -x \"$(command -v openssl)\" ]; then\n echo
\"openssl not found\"\n exit 1\nfi\ncsrName=${service}.${namespace}\ntmpdir=$(mktemp
-d)\necho \"creating certs in tmpdir ${tmpdir} \"\n\n# x509 outputs a self signed
certificate instead of certificate request, later used as self signed root CA\nopenssl
req -x509 -newkey rsa:2048 -keyout ${tmpdir}/self_ca.key -out ${tmpdir}/self_ca.crt
-days 365 -nodes -subj /C=/ST=/L=/O=/OU=/CN=test-certificate-authority\n\ncat
<<EOF >> ${tmpdir}/csr.conf\n[req]\nreq_extensions = v3_req\ndistinguished_name
= req_distinguished_name\n[req_distinguished_name]\n[ v3_req ]\nbasicConstraints
= CA:FALSE\nkeyUsage = nonRepudiation, digitalSignature, keyEncipherment\nextendedKeyUsage
= serverAuth\nsubjectAltName = @alt_names\n[alt_names]\nDNS.1 = ${service}\nDNS.2
= ${service}.${namespace}\nDNS.3 = ${service}.${namespace}.svc\nEOF\n\nopenssl
genrsa -out ${tmpdir}/server-key.pem 2048\nopenssl req -new -key ${tmpdir}/server-key.pem
-subj \"/CN=${service}.${namespace}.svc\" -out ${tmpdir}/server.csr -config ${tmpdir}/csr.conf\n\n#
Self sign\nopenssl x509 -req -days 365 -in ${tmpdir}/server.csr -CA ${tmpdir}/self_ca.crt
-CAkey ${tmpdir}/self_ca.key -CAcreateserial -out ${tmpdir}/server-cert.pem\n\n#
create the secret with CA cert and server cert/key\nkubectl create secret generic
${secret} \\\n --from-file=key.pem=${tmpdir}/server-key.pem \\\n --from-file=cert.pem=${tmpdir}/server-cert.pem
\\\n --dry-run -o yaml |\n kubectl -n ${namespace} apply -f -\n\n# Webhook
pod needs to be restarted so that the service reload the secret\n# http://github.com/kueflow/kubeflow/issues/3227\t\nwebhookPod=$(kubectl
get pods -n ${namespace} |grep ${webhookDeploymentName} |awk '{print $1;}')\n#
ignore error if webhook pod does not exist\nkubectl delete pod ${webhookPod} 2>/dev/null
|| true\necho \"webhook ${webhookPod} is restarted to utilize the new secret\"\n\ncat
${tmpdir}/self_ca.crt\n\n# -a means base64 encode\ncaBundle=$(cat ${tmpdir}/self_ca.crt
| openssl enc -a -A)\necho ${caBundle}\n\npatchString='[{\"op\": \"replace\",
\"path\": \"/webhooks/0/clientConfig/caBundle\", \"value\":\"{{`{{CA_BUNDLE}}`}}\"}]'\npatchString=$(echo
${patchString} | sed \"s|{{`{{CA_BUNDLE}}`}}|${caBundle}|g\")\necho ${patchString}\n\ncheckWebhookConfig()
{\n currentBundle=$(kubectl get mutatingwebhookconfigurations -n ${namespace}
${mutatingWebhookConfigName} -o jsonpath='{.webhooks[0].clientConfig.caBundle}')\n
\ [[ \"$currentBundle\" == \"$caBundle\" ]]\n}\n\nwhile true; do\n if ! checkWebhookConfig;
then\n echo \"patching ca bundle for webhook configuration...\"\n kubectl
patch mutatingwebhookconfiguration ${mutatingWebhookConfigName} \\\n --type='json'
-p=\"${patchString}\"\n fi\n sleep 10\ndone\n"
namespace: kubeflow
webhookNamePrefix: admission-webhook-
kind: ConfigMap
metadata:
annotations: {}
labels:
kustomize.component: admission-webhook-bootstrap
name: admission-webhook-bootstrap-config-map
namespace: kubeflow
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
labels:
kustomize.component: admission-webhook-bootstrap
name: admission-webhook-bootstrap-stateful-set
namespace: kubeflow
spec:
replicas: 1
selector:
matchLabels:
kustomize.component: admission-webhook-bootstrap
serviceName: service
template:
metadata:
labels:
kustomize.component: admission-webhook-bootstrap
spec:
containers:
- command:
- sh
- /var/webhook-config/create_ca.sh
image: gcr.io/kubeflow-images-public/ingress-setup:latest
name: bootstrap
volumeMounts:
- mountPath: /var/webhook-config/
name: admission-webhook-config
restartPolicy: Always
serviceAccountName: admission-webhook-bootstrap-service-account
volumes:
- configMap:
name: admission-webhook-bootstrap-config-map
name: admission-webhook-config
volumeClaimTemplates: []
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
labels:
app: admission-webhook
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
---
apiVersion: admissionregistration.k8s.io/v1beta1
kind: MutatingWebhookConfiguration
metadata:
labels:
app: admission-webhook
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
rules:
- apiGroups:
- ""
apiVersions:
- v1
operations:
- CREATE
resources:
- pods
---
apiVersion: v1
kind: ServiceAccount
metadata:
labels:
app: admission-webhook
kustomize.component: admission-webhook
name: admission-webhook-service-account
namespace: kubeflow
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
labels:
app: admission-webhook
kustomize.component: admission-webhook
name: admission-webhook-cluster-role
rules:
- apiGroups:
- kubeflow.org
resources:
- poddefaults
verbs:
- get
- watch
- list
- update
- create
- patch
- delete
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
labels:
app: admission-webhook
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
---
apiVersion: v1
data:
namespace: kubeflow
kind: ConfigMap
metadata:
labels:
app: admission-webhook
kustomize.component: admission-webhook
name: admission-webhook-admission-webhook-parameters
namespace: kubeflow
---
apiVersion: v1
kind: Service
metadata:
labels:
app: admission-webhook
kustomize.component: admission-webhook
name: admission-webhook-service
namespace: kubeflow
spec:
ports:
- port: 443
targetPort: 443
selector:
app: admission-webhook
kustomize.component: admission-webhook
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: admission-webhook
kustomize.component: admission-webhook
name: admission-webhook-deployment
namespace: kubeflow
spec:
selector:
matchLabels:
app: admission-webhook
kustomize.component: admission-webhook
template:
metadata:
labels:
app: admission-webhook
kustomize.component: admission-webhook
spec:
containers:
- image: gcr.io/kubeflow-images-public/admission-webhook:v20190520-v0-139-gcee39dbc-dirty-0d8f4c
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
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
labels:
ksonnet.io/component: ambassador
name: ambassador
namespace: kubeflow
spec:
replicas: {{ .Values.ambassador.replicas }}
template:
metadata:
labels:
service: ambassador
namespace: kubeflow
spec:
containers:
- name: ambassador
env:
- name: AMBASSADOR_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
- name: AMBASSADOR_SINGLE_NAMESPACE
value: "true"
image: "{{ .Values.ambassador.image.repository }}:{{ .Values.ambassador.image.tag }}"
livenessProbe:
httpGet:
path: /ambassador/v0/check_alive
port: 8877
initialDelaySeconds: 30
periodSeconds: 30
readinessProbe:
httpGet:
path: /ambassador/v0/check_ready
port: 8877
initialDelaySeconds: 30
periodSeconds: 30
resources:
limits:
cpu: 1
memory: 400Mi
requests:
cpu: 200m
memory: 100Mi
- name: statsd
image: "{{ .Values.ambassador.statsdImage.repository }}:{{ .Values.ambassador.statsdImage.tag }}"
- name: statsd-sink
image: "{{ .Values.ambassador.exporterImage.repository }}:{{ .Values.ambassador.exporterImage.tag }}"
restartPolicy: Always
serviceAccountName: ambassador
apiVersion: v1
kind: ServiceAccount
metadata:
labels:
ksonnet.io/component: ambassador
name: ambassador
namespace: kubeflow
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: Role
metadata:
labels:
ksonnet.io/component: ambassador
name: ambassador
namespace: kubeflow
rules:
- apiGroups:
- ""
resources:
- services
verbs:
- get
- list
- watch
- apiGroups:
- ""
resources:
- configmaps
verbs:
- create
- update
- patch
- get
- list
- watch
- apiGroups:
- ""
resources:
- secrets
verbs:
- get
- list
- watch
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: RoleBinding
metadata:
labels:
ksonnet.io/component: ambassador
name: ambassador
namespace: kubeflow
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: ambassador
subjects:
- kind: ServiceAccount
name: ambassador
namespace: kubeflow
apiVersion: v1
kind: Service
metadata:
labels:
ksonnet.io/component: ambassador
service: ambassador
{{- if eq .Values.ambassador.service.type "Rancher-Proxy" }}
kubernetes.io/cluster-service: "true"
{{- end }}
name: ambassador
namespace: kubeflow
spec:
ports:
- name: ambassador
port: 80
targetPort: 80
{{- if .Values.ambassador.service.nodePort }}
nodePort: {{ .Values.ambassador.service.nodePort }}
{{- end }}
selector:
service: ambassador
{{- if eq .Values.ambassador.service.type "Rancher-Proxy" }}
type: ClusterIP
{{- else }}
type: {{ .Values.ambassador.service.type }}
{{- end }}
---
apiVersion: v1
kind: Service
metadata:
labels:
ksonnet.io/component: ambassador
service: ambassador-admin
name: ambassador-admin
namespace: kubeflow
spec:
ports:
- name: ambassador-admin
port: 8877
targetPort: 8877
selector:
service: ambassador
type: ClusterIP
---
apiVersion: v1
kind: Service
metadata:
annotations:
getambassador.io/config: |-
---
apiVersion: ambassador/v0
kind: Mapping
name: k8s-dashboard-ui-mapping
prefix: /k8s/ui/
rewrite: /
tls: true
service: kubernetes-dashboard.kube-system
labels:
ksonnet.io/component: ambassador
name: k8s-dashboard
namespace: kubeflow
spec:
ports:
- port: 443
targetPort: 8443
selector:
k8s-app: kubernetes-dashboard
type: ClusterIP
---
apiVersion: v1
kind: Service
metadata:
annotations:
prometheus.io/port: "9102"
prometheus.io/scrape: "true"
labels:
ksonnet.io/component: ambassador
service: ambassador
name: statsd-sink
namespace: kubeflow
spec:
ports:
- name: statsd-sink
port: 9102
protocol: TCP
targetPort: 9102
selector:
service: ambassador
type: ClusterIP
apiVersion: v1
kind: ServiceAccount
metadata:
labels:
app.kubernetes.io/component: kubeflow
app.kubernetes.io/instance: kubeflow
app.kubernetes.io/managed-by: kfctl
app.kubernetes.io/name: kubeflow
app.kubernetes.io/part-of: kubeflow
app.kubernetes.io/version: v0.6
name: application-controller-service-account
namespace: kubeflow
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
labels:
app.kubernetes.io/component: kubeflow
app.kubernetes.io/instance: kubeflow
app.kubernetes.io/managed-by: kfctl
app.kubernetes.io/name: kubeflow
app.kubernetes.io/part-of: kubeflow
app.kubernetes.io/version: v0.6
name: application-controller-cluster-role
rules:
- apiGroups:
- '*'
resources:
- '*'
verbs:
- get
- list
- update
- patch
- watch
- apiGroups:
- app.k8s.io
resources:
- '*'
verbs:
- '*'
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
labels:
app.kubernetes.io/component: kubeflow
app.kubernetes.io/instance: kubeflow
app.kubernetes.io/managed-by: kfctl
app.kubernetes.io/name: kubeflow
app.kubernetes.io/part-of: kubeflow
app.kubernetes.io/version: v0.6
name: application-controller-cluster-role-binding
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: application-controller-cluster-role
subjects:
- kind: ServiceAccount
name: application-controller-service-account
namespace: kubeflow
---
apiVersion: v1
data:
project: {{ .Values.applicationController.project }}
kind: ConfigMap
metadata:
labels:
app.kubernetes.io/component: kubeflow
app.kubernetes.io/instance: kubeflow
app.kubernetes.io/managed-by: kfctl
app.kubernetes.io/name: kubeflow
app.kubernetes.io/part-of: kubeflow
app.kubernetes.io/version: v0.6
name: application-controller-parameters
namespace: kubeflow
---
apiVersion: v1
kind: Service
metadata:
labels:
app.kubernetes.io/component: kubeflow
app.kubernetes.io/instance: kubeflow
app.kubernetes.io/managed-by: kfctl
app.kubernetes.io/name: kubeflow
app.kubernetes.io/part-of: kubeflow
app.kubernetes.io/version: v0.6
name: application-controller-service
namespace: kubeflow
spec:
ports:
- port: 443
selector:
app.kubernetes.io/component: kubeflow
app.kubernetes.io/instance: kubeflow
app.kubernetes.io/managed-by: kfctl
app.kubernetes.io/name: kubeflow
app.kubernetes.io/part-of: kubeflow
app.kubernetes.io/version: v0.6
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
labels:
app.kubernetes.io/component: kubeflow
app.kubernetes.io/instance: kubeflow
app.kubernetes.io/managed-by: kfctl
app.kubernetes.io/name: kubeflow
app.kubernetes.io/part-of: kubeflow
app.kubernetes.io/version: v0.6
name: application-controller-stateful-set
namespace: kubeflow
spec:
selector:
matchLabels:
app.kubernetes.io/component: kubeflow
app.kubernetes.io/instance: kubeflow
app.kubernetes.io/managed-by: kfctl
app.kubernetes.io/name: kubeflow
app.kubernetes.io/part-of: kubeflow
app.kubernetes.io/version: v0.6
serviceName: application-controller-service
template:
metadata:
labels:
app.kubernetes.io/component: kubeflow
app.kubernetes.io/instance: kubeflow
app.kubernetes.io/managed-by: kfctl
app.kubernetes.io/name: kubeflow
app.kubernetes.io/part-of: kubeflow
app.kubernetes.io/version: v0.6
spec:
containers:
- command:
- /root/manager
env:
- name: project
valueFrom:
configMapKeyRef:
name: application-controller-parameters
key: project
image: gcr.io/kubeflow-images-public/kubernetes-sigs/application:1.0-beta
imagePullPolicy: Always
name: manager
serviceAccountName: application-controller-service-account
volumeClaimTemplates: []
---
apiVersion: app.k8s.io/v1beta1
kind: Application
metadata:
labels:
app.kubernetes.io/component: kubeflow
app.kubernetes.io/instance: kubeflow
app.kubernetes.io/managed-by: kfctl
app.kubernetes.io/name: kubeflow
app.kubernetes.io/part-of: kubeflow
app.kubernetes.io/version: v0.6
name: kubeflow
namespace: kubeflow
spec:
addOwnerRef: true
componentKinds:
- group: app.k8s.io
kind: Application
descriptor:
description: application that aggregates all kubeflow applications
keywords:
- kubeflow
links:
- description: About
url: https://kubeflow.org
maintainers:
- email: jlewi@google.com
name: Jeremy Lewi
- email: kam.d.kasravi@intel.com
name: Kam Kasravi
owners:
- email: jlewi@google.com
name: Jeremy Lewi
type: kubeflow
version: v0.6.2
selector:
matchLabels:
app.kubernetes.io/managed-by: kfctl
app.kubernetes.io/part-of: kubeflow
app.kubernetes.io/version: v0.6
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
creationTimestamp: null
name: applications.app.k8s.io
annotations:
"helm.sh/hook": crd-install
"helm.sh/hook-weight": "-5"
spec:
group: app.k8s.io
names:
kind: Application
plural: applications
scope: Namespaced
validation:
openAPIV3Schema:
properties:
apiVersion:
type: string
kind:
type: string
metadata:
type: object
spec:
properties:
addOwnerRef:
type: boolean
assemblyPhase:
type: string
componentKinds:
items:
type: object
type: array
descriptor:
properties:
description:
type: string
icons:
items:
properties:
size:
type: string
src:
type: string
type:
type: string
required:
- src
type: object
type: array
keywords:
items:
type: string
type: array
links:
items:
properties:
description:
type: string
url:
type: string
type: object
type: array
maintainers:
items:
properties:
email:
type: string
name:
type: string
url:
type: string
type: object
type: array
notes:
type: string
owners:
items:
properties:
email:
type: string
name:
type: string
url:
type: string
type: object
type: array
type:
type: string
version:
type: string
type: object
info:
items:
properties:
name:
type: string
type:
type: string
value:
type: string
valueFrom:
properties:
configMapKeyRef:
properties:
apiVersion:
type: string
fieldPath:
type: string
key:
type: string
kind:
type: string
name:
type: string
namespace:
type: string
resourceVersion:
type: string
uid:
type: string
type: object
ingressRef:
properties:
apiVersion:
type: string
fieldPath:
type: string
host:
type: string
kind:
type: string
name:
type: string
namespace:
type: string
path:
type: string
resourceVersion:
type: string
uid:
type: string
type: object
secretKeyRef:
properties:
apiVersion:
type: string
fieldPath:
type: string
key:
type: string
kind:
type: string
name:
type: string
namespace:
type: string
resourceVersion:
type: string
uid:
type: string
type: object
serviceRef:
properties:
apiVersion:
type: string
fieldPath:
type: string
kind:
type: string
name:
type: string
namespace:
type: string
path:
type: string
port:
format: int32
type: integer
resourceVersion:
type: string
uid:
type: string
type: object
type:
type: string
type: object
type: object
type: array
selector:
type: object
type: object
status:
properties:
components:
items:
properties:
group:
type: string
kind:
type: string
link:
type: string
name:
type: string
status:
type: string
type: object
type: array
conditions:
items:
properties:
lastTransitionTime:
format: date-time
type: string
lastUpdateTime:
format: date-time
type: string
message:
type: string
reason:
type: string
status:
type: string
type:
type: string
required:
- type
- status
type: object
type: array
observedGeneration:
format: int64
type: integer
type: object
version: v1beta1
status:
acceptedNames:
kind: ""
plural: ""
conditions: []
storedVersions: []
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
labels:
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
---
apiVersion: v1
kind: ServiceAccount
metadata:
labels:
kustomize.component: argo
name: argo
namespace: kubeflow
---
apiVersion: v1
kind: ServiceAccount
metadata:
labels:
kustomize.component: argo
name: argo-ui
namespace: kubeflow
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRole
metadata:
labels:
app: 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
verbs:
- get
- list
- watch
- update
- patch
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRole
metadata:
labels:
app: 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
verbs:
- get
- list
- watch
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
labels:
app: argo
kustomize.component: argo
name: argo
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: argo
subjects:
- kind: ServiceAccount
name: argo
namespace: kubeflow
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
labels:
app: argo-ui
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
---
apiVersion: v1
data:
config: |
{
executorImage: {{ .Values.argo.executorImage | quote }},
artifactRepository:
{
s3: {
bucket: {{ .Values.argo.artifactRepositoryBucket | quote }},
keyPrefix: {{ .Values.argo.artifactRepositoryKeyPrefix | quote }},
endpoint: {{ .Values.argo.artifactRepositoryEndpoint | quote }},
insecure: {{ .Values.argo.artifactRepositoryInsecure }},
accessKeySecret: {
name: {{ .Values.argo.artifactRepositoryAccessKeySecretName | quote }},
key: {{ .Values.argo.artifactRepositoryAccessKeySecretKey | quote }}
},
secretKeySecret: {
name: {{ .Values.argo.artifactRepositorySecretKeySecretName | quote }},
key: {{ .Values.argo.artifactRepositorySecretKeySecretKey | quote }}
}
}
}
}
kind: ConfigMap
metadata:
labels:
kustomize.component: argo
name: workflow-controller-configmap
namespace: kubeflow
---
apiVersion: v1
data:
artifactRepositoryAccessKeySecretKey: {{ .Values.argo.artifactRepositoryAccessKeySecretKey | quote }}
artifactRepositoryAccessKeySecretName: {{ .Values.argo.artifactRepositoryAccessKeySecretName | quote }}
artifactRepositoryBucket: {{ .Values.argo.artifactRepositoryBucket | quote }}
artifactRepositoryEndpoint: {{ .Values.argo.artifactRepositoryEndpoint | quote }}
artifactRepositoryInsecure: {{ .Values.argo.artifactRepositoryInsecure | quote }}
artifactRepositoryKeyPrefix: {{ .Values.argo.artifactRepositoryKeyPrefix }}
artifactRepositorySecretKeySecretKey: {{ .Values.argo.artifactRepositorySecretKeySecretKey | quote }}
artifactRepositorySecretKeySecretName: {{ .Values.argo.artifactRepositorySecretKeySecretName | quote }}
clusterDomain: {{ .Values.clusterDomain | quote }}
executorImage: {{ .Values.argo.executorImage | quote }}
namespace: kubeflow
kind: ConfigMap
metadata:
labels:
kustomize.component: argo
name: workflow-controller-parameters
namespace: kubeflow
---
apiVersion: v1
kind: Service
metadata:
annotations:
getambassador.io/config: |-
---
apiVersion: ambassador/v0
kind: Mapping
name: argo-ui-mapping
prefix: /argo/
service: argo-ui.kubeflow
labels:
app: argo-ui
kustomize.component: argo
name: argo-ui
namespace: kubeflow
spec:
ports:
- port: 80
targetPort: 8001
selector:
app: argo-ui
kustomize.component: argo
sessionAffinity: None
type: NodePort
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: argo-ui
kustomize.component: argo
name: argo-ui
namespace: kubeflow
spec:
progressDeadlineSeconds: 600
replicas: 1
revisionHistoryLimit: 10
selector:
matchLabels:
app: argo-ui
kustomize.component: argo
strategy:
rollingUpdate:
maxSurge: 25%
maxUnavailable: 25%
type: RollingUpdate
template:
metadata:
creationTimestamp: null
labels:
app: argo-ui
kustomize.component: argo
spec:
containers:
- env:
- name: ARGO_NAMESPACE
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.namespace
- name: IN_CLUSTER
value: "true"
- 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
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: workflow-controller
kustomize.component: argo
name: workflow-controller
namespace: kubeflow
spec:
progressDeadlineSeconds: 600
replicas: 1
revisionHistoryLimit: 10
selector:
matchLabels:
app: workflow-controller
kustomize.component: argo
strategy:
rollingUpdate:
maxSurge: 25%
maxUnavailable: 25%
type: RollingUpdate
template:
metadata:
creationTimestamp: null
labels:
app: workflow-controller
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
---
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: argo-ui
namespace: kubeflow
spec:
gateways:
- kubeflow-gateway
hosts:
- '*'
http:
- match:
- uri:
prefix: /argo/
rewrite:
uri: /
route:
- destination:
host: argo-ui.kubeflow.svc.{{ .Values.clusterDomain }}
port:
number: 80
apiVersion: v1
kind: ServiceAccount
metadata:
labels:
ksonnet.io/component: centraldashboard
name: centraldashboard
namespace: kubeflow
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRole
metadata:
labels:
app: centraldashboard
ksonnet.io/component: centraldashboard
name: centraldashboard
namespace: kubeflow
rules:
- apiGroups:
- ""
resources:
- pods
- pods/exec
- pods/log
verbs:
- get
- list
- watch
- apiGroups:
- ""
resources:
- secrets
verbs:
- get
apiVersion: v1
kind: ServiceAccount
metadata:
labels:
kustomize.component: centraldashboard
name: centraldashboard
namespace: kubeflow
---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
labels:
app: centraldashboard
kustomize.component: centraldashboard
name: centraldashboard
namespace: kubeflow
rules:
- apiGroups:
- ""
- app.k8s.io
resources:
- applications
- pods
- pods/exec
- pods/log
verbs:
- get
- list
- watch
- apiGroups:
- ""
resources:
- secrets
verbs:
- get
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
labels:
app: centraldashboard
kustomize.component: centraldashboard
name: centraldashboard
rules:
- apiGroups:
- ""
resources:
- events
- namespaces
- nodes
verbs:
- get
- list
- watch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
labels:
app: centraldashboard
kustomize.component: centraldashboard
name: centraldashboard
namespace: kubeflow
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: centraldashboard
subjects:
- kind: ServiceAccount
name: centraldashboard
namespace: kubeflow
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
labels:
app: centraldashboard
kustomize.component: centraldashboard
name: centraldashboard
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: centraldashboard
subjects:
- kind: ServiceAccount
name: centraldashboard
namespace: kubeflow
---
apiVersion: v1
data:
clusterDomain: {{ .Values.clusterDomain }}
userid-header: {{ .Values.centraldashboard.useridHeader }}
userid-prefix: {{ .Values.centraldashboard.useridPrefix }}
kind: ConfigMap
metadata:
labels:
kustomize.component: centraldashboard
name: centraldashboard-parameters
namespace: kubeflow
---
apiVersion: v1
kind: Service
metadata:
annotations:
......@@ -12,35 +112,80 @@ metadata:
service: centraldashboard.kubeflow
labels:
app: centraldashboard
ksonnet.io/component: centraldashboard
kustomize.component: centraldashboard
name: centraldashboard
namespace: kubeflow
spec:
ports:
- port: 80
protocol: TCP
targetPort: 8082
selector:
app: centraldashboard
kustomize.component: centraldashboard
sessionAffinity: None
type: ClusterIP
---
apiVersion: extensions/v1beta1
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: centraldashboard
ksonnet.io/component: centraldashboard
kustomize.component: centraldashboard
name: centraldashboard
namespace: kubeflow
spec:
replicas: 1
selector:
matchLabels:
app: centraldashboard
kustomize.component: centraldashboard
template:
metadata:
labels:
app: centraldashboard
kustomize.component: centraldashboard
spec:
containers:
- image: "{{ .Values.centraldashboard.image.repository }}:{{ .Values.centraldashboard.image.tag }}"
- env:
- name: USERID_HEADER
valueFrom:
configMapKeyRef:
name: centraldashboard-parameters
key: userid-header
- name: USERID_PREFIX
valueFrom:
configMapKeyRef:
name: centraldashboard-parameters
key: userid-prefix
- name: PROFILES_KFAM_SERVICE_HOST
value: profiles-kfam.kubeflow
image: gcr.io/kubeflow-images-public/centraldashboard:v20190823-v0.6.0-rc.0-69-gcb7dab59
imagePullPolicy: IfNotPresent
name: centraldashboard
ports:
- containerPort: 8082
protocol: TCP
serviceAccountName: centraldashboard
---
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: centraldashboard
namespace: kubeflow
spec:
gateways:
- kubeflow-gateway
hosts:
- '*'
http:
- match:
- uri:
prefix: /
rewrite:
uri: /
route:
- destination:
host: centraldashboard.kubeflow.svc.{{ .Values.clusterDomain }}
port:
number: 80
{{- if .Values.chainerOperator.enabled }}
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
labels:
ksonnet.io/component: chainer-operator
annotations:
"helm.sh/hook": crd-install
"helm.sh/hook-delete-policy": before-hook-creation
name: chainerjobs.kubeflow.org
spec:
group: kubeflow.org
names:
categories:
- all
kind: ChainerJob
plural: chainerjobs
shortNames:
- chj
- chjs
- chjob
- chjobs
singular: chainerjob
scope: Namespaced
version: v1alpha1
{{- end }}
{{- if .Values.chainerOperator.enabled }}
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: chainer-operator
ksonnet.io/component: chainer-operator
name: chainer-operator
namespace: kubeflow
spec:
replicas: 1
selector:
matchLabels:
app: chainer-operator
template:
metadata:
labels:
app: chainer-operator
spec:
containers:
- args:
- -v
- "2"
- -stderrthreshold
- INFO
image: "{{ .Values.chainerOperator.image.repository }}:{{ .Values.chainerOperator.image.tag }}"
imagePullPolicy: Always
name: chainer-operator
serviceAccountName: chainer-operator
{{- end }}
apiVersion: v1
data:
clusterRbacConfig: {{ .Values.istio.clusterRbacConfig | quote }}
kind: ConfigMap
kind: ConfigMap
metadata:
name: istio-parameters-tt477f6588
namespace: kubeflow
---
apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
name: kubeflow-gateway
namespace: kubeflow
spec:
selector:
istio: ingressgateway
servers:
- hosts:
- '*'
port:
name: http
number: 80
protocol: HTTP
---
apiVersion: networking.istio.io/v1alpha3
kind: ServiceEntry
metadata:
name: google-api-entry
namespace: kubeflow
spec:
hosts:
- www.googleapis.com
location: MESH_EXTERNAL
ports:
- name: https
number: 443
protocol: HTTPS
resolution: DNS
---
apiVersion: networking.istio.io/v1alpha3
kind: ServiceEntry
metadata:
name: google-storage-api-entry
namespace: kubeflow
spec:
hosts:
- storage.googleapis.com
location: MESH_EXTERNAL
ports:
- name: https
number: 443
protocol: HTTPS
resolution: DNS
---
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: google-api-vs
namespace: kubeflow
spec:
hosts:
- www.googleapis.com
tls:
- match:
- port: 443
sni_hosts:
- www.googleapis.com
route:
- destination:
host: www.googleapis.com
port:
number: 443
weight: 100
---
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: google-storage-api-vs
namespace: kubeflow
spec:
hosts:
- storage.googleapis.com
tls:
- match:
- port: 443
sni_hosts:
- storage.googleapis.com
route:
- destination:
host: storage.googleapis.com
port:
number: 443
weight: 100
---
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: grafana-vs
namespace: kubeflow
spec:
gateways:
- kubeflow-gateway
hosts:
- '*'
http:
- match:
- method:
exact: GET
uri:
prefix: /istio/grafana/
rewrite:
uri: /
route:
- destination:
host: grafana.istio-system.svc.cluster.local
port:
number: 3000
---
apiVersion: rbac.istio.io/v1alpha1
kind: ClusterRbacConfig
metadata:
name: default
namespace: kubeflow
spec:
mode: {{ .Values.istio.clusterRbacConfig | quote }}
{{- if .Values.jupyterhub.enabled }}
apiVersion: v1
kind: ConfigMap
metadata:
labels:
ksonnet.io/component: jupyterhub
name: jupyterhub-config
namespace: kubeflow
data:
{{ (.Files.Glob "scripts/jupyterhub_config.py").AsConfig | indent 2 }}
{{- end }}
{{- if .Values.jupyterhub.enabled }}
apiVersion: v1
kind: ServiceAccount
metadata:
labels:
app: jupyter-hub
ksonnet.io/component: jupyterhub
name: jupyter-hub
namespace: kubeflow
---
apiVersion: v1
kind: ServiceAccount
metadata:
labels:
ksonnet.io/component: jupyterhub
name: jupyter-notebook
namespace: kubeflow
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: Role
metadata:
labels:
ksonnet.io/component: jupyterhub
name: jupyter-notebook-role
namespace: kubeflow
rules:
- apiGroups:
- ""
resources:
- pods
- services
verbs:
- '*'
- apiGroups:
- ""
- apps
- extensions
resources:
- deployments
- replicasets
verbs:
- '*'
- apiGroups:
- kubeflow.org
resources:
- '*'
verbs:
- '*'
- apiGroups:
- batch
resources:
- jobs
verbs:
- '*'
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: Role
metadata:
labels:
ksonnet.io/component: jupyterhub
name: jupyter-role
namespace: kubeflow
rules:
- apiGroups:
- ""
resources:
- pods
- persistentvolumeclaims
verbs:
- get
- watch
- list
- create
- delete
- apiGroups:
- ""
resources:
- events
verbs:
- get
- watch
- list
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: RoleBinding
metadata:
labels:
ksonnet.io/component: jupyterhub
name: jupyter-notebook-role
namespace: kubeflow
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: jupyter-notebook-role
subjects:
- kind: ServiceAccount
name: jupyter-notebook
namespace: kubeflow
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: RoleBinding
metadata:
labels:
ksonnet.io/component: jupyterhub
name: jupyter-role
namespace: kubeflow
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: jupyter-role
subjects:
- kind: ServiceAccount
name: jupyter-hub
namespace: kubeflow
{{- end }}
{{- if .Values.jupyterhub.enabled }}
apiVersion: v1
kind: Service
metadata:
annotations:
prometheus.io/scrape: "true"
labels:
app: tf-hub
ksonnet.io/component: jupyterhub
name: tf-hub-0
namespace: kubeflow
spec:
clusterIP: None
ports:
- name: hub
port: 8000
selector:
app: tf-hub
---
apiVersion: v1
kind: Service
metadata:
annotations:
getambassador.io/config: |-
---
apiVersion: ambassador/v0
kind: Mapping
name: tf-hub-lb-hub-mapping
prefix: /hub/
rewrite: /hub/
timeout_ms: 300000
service: tf-hub-lb.kubeflow
use_websocket: true
---
apiVersion: ambassador/v0
kind: Mapping
name: tf-hub-lb-user-mapping
prefix: /user/
rewrite: /user/
timeout_ms: 300000
service: tf-hub-lb.kubeflow
use_websocket: true
labels:
app: tf-hub-lb
ksonnet.io/component: jupyterhub
name: tf-hub-lb
namespace: kubeflow
spec:
ports:
- name: hub
port: 80
targetPort: 8000
selector:
app: tf-hub
type: {{ .Values.jupyterhub.service.type }}
{{- end }}
{{- if .Values.jupyterhub.enabled }}
apiVersion: apps/v1beta1
kind: StatefulSet
metadata:
labels:
ksonnet.io/component: jupyterhub
name: tf-hub
namespace: kubeflow
spec:
replicas: 1
serviceName: ""
template:
metadata:
labels:
app: tf-hub
spec:
containers:
- command:
- jupyterhub
- -f
- /etc/config/jupyterhub_config.py
env:
- name: NOTEBOOK_PVC_MOUNT
value: /home/jovyan
- name: CLOUD_NAME
value: "null"
- name: REGISTRY
value: gcr.io
- name: REPO_NAME
value: kubeflow-images-public
- name: KF_AUTHENTICATOR
value: "null"
- name: DEFAULT_JUPYTERLAB
value: "false"
- name: KF_PVC_LIST
value: "null"
image: "{{ .Values.jupyterhub.image.repository }}:{{ .Values.jupyterhub.image.tag }}"
name: tf-hub
ports:
- containerPort: 8000
- containerPort: 8081
volumeMounts:
- mountPath: /etc/config
name: config-volume
serviceAccountName: jupyter-hub
volumes:
- configMap:
name: jupyterhub-config
name: config-volume
updateStrategy:
type: RollingUpdate
{{- end }}
apiVersion: v1
kind: ConfigMap
metadata:
labels:
ksonnet.io/component: katib
name: metricscollector-template
namespace: kubeflow
data:
defaultMetricsCollectorTemplate.yaml: "apiVersion: batch/v1beta1\nkind: CronJob\nmetadata:\n
\ name: {{.WorkerId}}\n namespace: {{.NameSpace}} \nspec:\n schedule: \"*/1
* * * *\"\n successfulJobsHistoryLimit: 1\n failedJobsHistoryLimit: 1\n jobTemplate:\n
\ spec:\n template:\n spec:\n serviceAccountName: metrics-collector\n
\ containers:\n - name: {{.WorkerId}}\n image: katib/metrics-collector\n
\ args:\n - \"./metricscollector\"\n - \"-s\"\n
\ - \"{{.StudyId}}\"\n - \"-t\"\n - \"{{.TrialId}}\"\n
\ - \"-w\"\n - \"{{.WorkerId}}\"\n - \"-n\"\n
\ - \"{{.NameSpace}}\"\n restartPolicy: Never\n"
---
apiVersion: v1
kind: ConfigMap
metadata:
labels:
ksonnet.io/component: katib
name: worker-template
namespace: kubeflow
data:
defaultWorkerTemplate.yaml: |
apiVersion: batch/v1
namespace: kubeflow
kind: Job
metadata:
name: {{.WorkerId}}
spec:
template:
spec:
containers:
- name: {{.WorkerId}}
image: alpine
restartPolicy: Never
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
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: v1alpha2
---
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
name: trials.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: Trial
plural: trials
singular: trial
scope: Namespaced
subresources:
status: {}
version: v1alpha2
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: katib-controller
namespace: kubeflow
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: katib-controller
rules:
- apiGroups:
- ""
resources:
- configmaps
- serviceaccounts
- services
- secrets
verbs:
- '*'
- apiGroups:
- ""
resources:
- pods
- pods/log
- pods/status
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
- trials
- trials/status
verbs:
- '*'
- apiGroups:
- kubeflow.org
resources:
- tfjobs
- pytorchjobs
verbs:
- '*'
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: katib-controller
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: katib-controller
subjects:
- kind: ServiceAccount
name: katib-controller
namespace: kubeflow
---
apiVersion: v1
data:
defaultTrialTemplate.yaml: |-
apiVersion: batch/v1
kind: Job
metadata:
name: {{`{{.Trial}}`}}
namespace: {{`{{.NameSpace}}`}}
spec:
template:
spec:
containers:
- name: {{`{{.Trial}}`}}
image: alpine
restartPolicy: Never
kind: ConfigMap
metadata:
name: trial-template
namespace: kubeflow
---
apiVersion: v1
kind: Secret
metadata:
name: katib-controller
namespace: kubeflow
---
apiVersion: v1
kind: Service
metadata:
name: katib-controller
namespace: kubeflow
spec:
ports:
- port: 443
protocol: TCP
targetPort: 443
selector:
app: katib-controller
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: katib-controller
name: katib-controller
namespace: kubeflow
spec:
replicas: 1
selector:
matchLabels:
app: katib-controller
template:
metadata:
labels:
app: katib-controller
spec:
containers:
- command:
- ./katib-controller
env:
- name: KATIB_CORE_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
image: gcr.io/kubeflow-images-public/katib/v1alpha2/katib-controller:v0.6.0-rc.0
imagePullPolicy: IfNotPresent
name: katib-controller
ports:
- containerPort: 443
name: webhook
protocol: TCP
volumeMounts:
- mountPath: /tmp/cert
name: cert
readOnly: true
serviceAccountName: katib-controller
volumes:
- name: cert
secret:
defaultMode: 420
secretName: katib-controller
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
labels:
ksonnet.io/component: katib
annotations:
"helm.sh/hook": crd-install
"helm.sh/hook-delete-policy": before-hook-creation
name: studyjobs.kubeflow.org
spec:
group: kubeflow.org
names:
kind: StudyJob
plural: studyjobs
singular: studyjob
version: v1alpha1
apiVersion: v1
data:
MYSQL_ROOT_PASSWORD: {{ .Values.katib.db.password | b64enc | quote }}
kind: Secret
metadata:
name: katib-db-secrets
namespace: kubeflow
type: Opaque
---
apiVersion: v1
kind: Service
metadata:
labels:
app: katib
component: db
name: katib-db
namespace: kubeflow
spec:
ports:
- name: dbapi
port: 3306
protocol: TCP
selector:
app: katib
component: db
type: ClusterIP
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: katib
component: db
name: katib-db
namespace: kubeflow
spec:
replicas: 1
selector:
matchLabels:
app: katib
component: db
template:
metadata:
labels:
app: katib
component: db
name: katib-db
spec:
containers:
- args:
- --datadir
- /var/lib/mysql/datadir
env:
- name: MYSQL_ROOT_PASSWORD
valueFrom:
secretKeyRef:
key: MYSQL_ROOT_PASSWORD
name: katib-db-secrets
- name: MYSQL_ALLOW_EMPTY_PASSWORD
value: "true"
- name: MYSQL_DATABASE
value: katib
image: mysql:8.0.3
name: katib-db
ports:
- containerPort: 3306
name: dbapi
readinessProbe:
exec:
command:
- /bin/bash
- -c
- mysql -D $$MYSQL_DATABASE -p$$MYSQL_ROOT_PASSWORD -e 'SELECT 1'
initialDelaySeconds: 5
periodSeconds: 2
timeoutSeconds: 1
volumeMounts:
- mountPath: /var/lib/mysql
name: katib-db-pvc
volumes:
- name: katib-db-pvc
{{- if .Values.katib.db.persistence.enabled }}
persistentVolumeClaim:
claimName: katib-db-pvc
{{- else }}
emptyDir: {}
{{ end }}
{{- if .Values.katib.db.persistence.enabled }}
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: katib-db-pvc
namespace: kubeflow
spec:
accessModes:
- {{ .Values.katib.db.persistence.accessMode | quote }}
resources:
requests:
storage: {{ .Values.katib.db.persistence.size | quote }}
storageClassName: {{ .Values.katib.db.persistence.storageClass | quote }}
{{- end -}}
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
labels:
app: studyjob-controller
ksonnet.io/component: katib
name: studyjob-controller
namespace: kubeflow
spec:
replicas: 1
selector:
matchLabels:
app: studyjob-controller
template:
metadata:
labels:
app: studyjob-controller
spec:
containers:
- image: "{{ .Values.katib.studyJobControllerImage.repository }}:{{ .Values.katib.studyJobControllerImage.tag }}"
imagePullPolicy: Always
name: studyjob-controller
volumeMounts:
- mountPath: /worker-template
name: worker-template
- mountPath: /metricscollector-template
name: metricscollector-template
serviceAccountName: studyjob-controller
volumes:
- configMap:
name: worker-template
name: worker-template
- configMap:
name: metricscollector-template
name: metricscollector-template
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
labels:
app: vizier
component: core
ksonnet.io/component: katib
name: vizier-core
namespace: kubeflow
spec:
replicas: 1
template:
metadata:
labels:
app: vizier
component: core
name: vizier-core
spec:
containers:
- args:
- ./vizier-manager
- -w
- kubernetes
- -i
- k-cluster.example.net
image: "{{ .Values.katib.vizierCoreImage.repository }}:{{ .Values.katib.vizierCoreImage.tag }}"
# image: gcr.io/kubeflow-images-public/katib/vizier-core:v0.1.2-alpha-45-g3dce496
name: vizier-core
ports:
- containerPort: 6789
name: api
serviceAccountName: vizier-core
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
labels:
app: vizier
component: db
ksonnet.io/component: katib
name: vizier-db
namespace: kubeflow
spec:
replicas: 1
template:
metadata:
labels:
app: vizier
component: db
name: vizier-db
spec:
containers:
- args:
- --datadir
- /var/lib/mysql/datadir
env:
- name: MYSQL_ROOT_PASSWORD
value: test
- name: MYSQL_ALLOW_EMPTY_PASSWORD
value: "true"
- name: MYSQL_DATABASE
value: vizier
image: "{{ .Values.katib.vizierDbImage.repository }}:{{ .Values.katib.vizierDbImage.tag }}"
name: vizier-db
ports:
- containerPort: 3306
name: dbapi
volumeMounts:
- mountPath: /var/lib/mysql
name: vizier-db
volumes:
- name: vizier-db
{{- if .Values.katib.vizierdb.persistence.enabled }}
persistentVolumeClaim:
claimName: {{ .Values.katib.vizierdb.persistence.existingClaim | default ("vizier-db") }}
{{- else }}
emptyDir: {}
{{- end }}
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
labels:
app: vizier
component: suggestion-bayesianoptimization
ksonnet.io/component: katib
name: vizier-suggestion-bayesianoptimization
namespace: kubeflow
spec:
replicas: 1
template:
metadata:
labels:
app: vizier
component: suggestion-bayesianoptimization
name: vizier-suggestion-bayesianoptimization
spec:
containers:
- image: "{{ .Values.katib.suggestionBayesianOptimizationImage.repository }}:{{ .Values.katib.suggestionBayesianOptimizationImage.tag }}"
name: vizier-suggestion-bayesianoptimization
ports:
- containerPort: 6789
name: api
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
labels:
app: vizier
component: suggestion-grid
ksonnet.io/component: katib
name: vizier-suggestion-grid
namespace: kubeflow
spec:
replicas: 1
template:
metadata:
labels:
app: vizier
component: suggestion-grid
name: vizier-suggestion-grid
spec:
containers:
- image: "{{ .Values.katib.suggestionGridImage.repository }}:{{ .Values.katib.suggestionGridImage.tag }}"
# - image: gcr.io/kubeflow-images-public/katib/suggestion-grid:v0.1.2-alpha-45-g3dce496
name: vizier-suggestion-grid
ports:
- containerPort: 6789
name: api
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
labels:
app: vizier
component: suggestion-hyperband
ksonnet.io/component: katib
name: vizier-suggestion-hyperband
namespace: kubeflow
spec:
replicas: 1
template:
metadata:
labels:
app: vizier
component: suggestion-hyperband
name: vizier-suggestion-hyperband
spec:
containers:
- image: "{{ .Values.katib.suggestionHyperbandImage.repository }}:{{ .Values.katib.suggestionHyperbandImage.tag }}"
# - image: gcr.io/kubeflow-images-public/katib/suggestion-hyperband:v0.1.2-alpha-45-g3dce496
name: vizier-suggestion-hyperband
ports:
- containerPort: 6789
name: api
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
labels:
app: vizier
component: suggestion-random
ksonnet.io/component: katib
name: vizier-suggestion-random
namespace: kubeflow
spec:
replicas: 1
template:
metadata:
labels:
app: vizier
component: suggestion-random
name: vizier-suggestion-random
spec:
containers:
- image: "{{ .Values.katib.suggestionRandomImage.repository }}:{{ .Values.katib.suggestionRandomImage.tag }}"
# - image: gcr.io/kubeflow-images-public/katib/suggestion-random:v0.1.2-alpha-45-g3dce496
name: vizier-suggestion-random
ports:
- containerPort: 6789
name: api
apiVersion: v1
kind: Service
metadata:
labels:
app: katib
component: manager
name: katib-manager
namespace: kubeflow
spec:
ports:
- name: api
port: 6789
protocol: TCP
selector:
app: katib
component: manager
type: ClusterIP
---
apiVersion: v1
kind: Service
metadata:
labels:
app: katib
component: manager-rest
name: katib-manager-rest
namespace: kubeflow
spec:
ports:
- name: api
port: 80
protocol: TCP
selector:
app: katib
component: manager-rest
type: ClusterIP
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: katib
component: manager
name: katib-manager
namespace: kubeflow
spec:
replicas: 1
selector:
matchLabels:
app: katib
component: manager
template:
metadata:
labels:
app: katib
component: manager
name: katib-manager
spec:
containers:
- command:
- ./katib-manager
env:
- name: MYSQL_ROOT_PASSWORD
valueFrom:
secretKeyRef:
key: MYSQL_ROOT_PASSWORD
name: katib-db-secrets
image: gcr.io/kubeflow-images-public/katib/v1alpha2/katib-manager:v0.6.0-rc.0
imagePullPolicy: IfNotPresent
livenessProbe:
exec:
command:
- /bin/grpc_health_probe
- -addr=:6789
initialDelaySeconds: 10
name: katib-manager
ports:
- containerPort: 6789
name: api
readinessProbe:
exec:
command:
- /bin/grpc_health_probe
- -addr=:6789
initialDelaySeconds: 5
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: katib
component: manager-rest
name: katib-manager-rest
namespace: kubeflow
spec:
replicas: 1
selector:
matchLabels:
app: katib
component: manager-rest
template:
metadata:
labels:
app: katib
component: manager-rest
name: katib-manager-rest
spec:
containers:
- command:
- ./katib-manager-rest
image: gcr.io/kubeflow-images-public/katib/v1alpha2/katib-manager-rest:v0.6.0-rc.0
imagePullPolicy: IfNotPresent
name: katib-manager-rest
ports:
- containerPort: 80
name: api
apiVersion: v1
kind: Service
metadata:
labels:
app: modeldb
component: backend
ksonnet.io/component: katib
name: modeldb-backend
namespace: kubeflow
spec:
ports:
- name: api
port: 6543
protocol: TCP
selector:
app: modeldb
component: backend
type: ClusterIP
---
apiVersion: v1
kind: Service
metadata:
labels:
app: modeldb
component: db
ksonnet.io/component: katib
name: modeldb-db
namespace: kubeflow
spec:
ports:
- name: dbapi
port: 27017
protocol: TCP
selector:
app: modeldb
component: db
type: ClusterIP
---
apiVersion: v1
kind: Service
metadata:
annotations:
getambassador.io/config: |-
---
apiVersion: ambassador/v0
kind: Mapping
name: modeldb-mapping
prefix: /katib/
rewrite: /katib/
method: GET
service: modeldb-frontend.kubeflow:3000
labels:
app: modeldb
component: frontend
ksonnet.io/component: katib
name: modeldb-frontend
namespace: kubeflow
spec:
ports:
- name: api
port: 3000
protocol: TCP
selector:
app: modeldb
component: frontend
type: ClusterIP
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
labels:
app: modeldb
component: backend
ksonnet.io/component: katib
name: modeldb-backend
namespace: kubeflow
spec:
replicas: 1
template:
metadata:
labels:
app: modeldb
component: backend
name: modeldb-backend
spec:
containers:
- args:
- modeldb-db
image: "{{ .Values.katib.modeldbImage.repository }}:{{ .Values.katib.modeldbImage.tag }}"
name: modeldb-backend
ports:
- containerPort: 6543
name: api
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
labels:
app: modeldb
component: db
ksonnet.io/component: katib
name: modeldb-db
namespace: kubeflow
spec:
replicas: 1
template:
metadata:
labels:
app: modeldb
component: db
name: modeldb-db
spec:
containers:
- image: "{{ .Values.katib.modeldbDatabaseImage.repository }}:{{ .Values.katib.modeldbDatabaseImage.tag }}"
name: modeldb-db
ports:
- containerPort: 27017
name: dbapi
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
labels:
app: modeldb
component: frontend
ksonnet.io/component: katib
name: modeldb-frontend
namespace: kubeflow
spec:
replicas: 1
template:
metadata:
labels:
app: modeldb
component: frontend
name: modeldb-frontend
spec:
containers:
- args:
- modeldb-backend
env:
- name: ROOT_PATH
value: /katib
# image: gcr.io/kubeflow-images-public/katib/katib-frontend:v0.1.2-alpha-45-g3dce496
image: "{{ .Values.katib.modeldbFrontendImage.repository }}:{{ .Values.katib.modeldbFrontendImage.tag }}"
imagePullPolicy: IfNotPresent
name: modeldb-frontend
ports:
- containerPort: 3000
name: webapi
{{- if and .Values.katib.vizierdb.persistence.enabled (not .Values.katib.vizierdb.persistence.existingClaim) }}
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
labels:
app: vizier
component: db
ksonnet.io/component: katib
name: vizier-db
namespace: kubeflow
spec:
accessModes:
- {{ .Values.katib.vizierdb.persistence.accessMode | quote }}
resources:
requests:
storage: {{ .Values.katib.vizierdb.persistence.size | quote }}
{{- if .Values.katib.vizierdb.persistence.storageClass }}
{{- if (eq "-" .Values.katib.vizierdb.persistence.storageClass) }}
storageClassName: ""
{{- else }}
storageClassName: "{{ .Values.katib.vizierdb.persistence.storageClass }}"
{{- end }}
{{- end }}
{{- end -}}
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
labels:
ksonnet.io/component: katib
name: metrics-collector
rules:
- apiGroups:
- ""
resources:
- pods
- pods/log
- pods/status
verbs:
- '*'
- apiGroups:
- batch
resources:
- jobs
verbs:
- '*'
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
labels:
ksonnet.io/component: katib
name: studyjob-controller
rules:
- apiGroups:
- ""
resources:
- configmaps
- serviceaccounts
verbs:
- create
- update
- list
- watch
- apiGroups:
- batch
resources:
- jobs
- cronjobs
verbs:
- '*'
- apiGroups:
- apiextensions.k8s.io
resources:
- customresourcedefinitions
verbs:
- create
- get
- apiGroups:
- kubeflow.org
resources:
- studyjobs
verbs:
- '*'
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRole
metadata:
labels:
ksonnet.io/component: katib
name: vizier-core
rules:
- apiGroups:
- ""
resources:
- pods
- nodes
- nodes/*
- pods/log
- pods/status
- services
- persistentvolumes
- persistentvolumes/status
- persistentvolumeclaims
- persistentvolumeclaims/status
verbs:
- '*'
- apiGroups:
- batch
resources:
- jobs
- jobs/status
verbs:
- '*'
- apiGroups:
- extensions
resources:
- ingresses
- ingresses/status
- deployments
- deployments/status
verbs:
- '*'
- apiGroups:
- ""
resources:
- services
verbs:
- '*'
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
labels:
ksonnet.io/component: katib
name: vizier-core
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: vizier-core
subjects:
- kind: ServiceAccount
name: vizier-core
namespace: kubeflow
---
apiVersion: v1
kind: ServiceAccount
metadata:
labels:
ksonnet.io/component: katib
name: metrics-collector
namespace: kubeflow
---
apiVersion: v1
kind: ServiceAccount
metadata:
labels:
ksonnet.io/component: katib
name: studyjob-controller
namespace: kubeflow
---
apiVersion: v1
kind: ServiceAccount
metadata:
labels:
ksonnet.io/component: katib
name: vizier-core
namespace: kubeflow
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
labels:
ksonnet.io/component: katib
name: metrics-collector
namespace: kubeflow
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: metrics-collector
subjects:
- kind: ServiceAccount
name: metrics-collector
namespace: kubeflow
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
labels:
ksonnet.io/component: katib
name: studyjob-controller
namespace: kubeflow
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: studyjob-controller
subjects:
- kind: ServiceAccount
name: studyjob-controller
namespace: kubeflow
apiVersion: v1
kind: Service
metadata:
labels:
app: katib
component: suggestion-bayesianoptimization
name: katib-suggestion-bayesianoptimization
namespace: kubeflow
spec:
ports:
- name: api
port: 6789
protocol: TCP
selector:
app: katib
component: suggestion-bayesianoptimization
type: ClusterIP
---
apiVersion: v1
kind: Service
metadata:
labels:
app: katib
component: suggestion-grid
name: katib-suggestion-grid
namespace: kubeflow
spec:
ports:
- name: api
port: 6789
protocol: TCP
selector:
app: katib
component: suggestion-grid
type: ClusterIP
---
apiVersion: v1
kind: Service
metadata:
labels:
app: katib
component: suggestion-hyperband
name: katib-suggestion-hyperband
namespace: kubeflow
spec:
ports:
- name: api
port: 6789
protocol: TCP
selector:
app: katib
component: suggestion-hyperband
type: ClusterIP
---
apiVersion: v1
kind: Service
metadata:
labels:
app: katib
component: suggestion-nasrl
name: katib-suggestion-nasrl
namespace: kubeflow
spec:
ports:
- name: api
port: 6789
protocol: TCP
selector:
app: katib
component: suggestion-nasrl
type: ClusterIP
---
apiVersion: v1
kind: Service
metadata:
labels:
app: katib
component: suggestion-random
name: katib-suggestion-random
namespace: kubeflow
spec:
ports:
- name: api
port: 6789
protocol: TCP
selector:
app: katib
component: suggestion-random
type: ClusterIP
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: katib
component: suggestion-bayesianoptimization
name: katib-suggestion-bayesianoptimization
namespace: kubeflow
spec:
replicas: 1
selector:
matchLabels:
app: katib
component: suggestion-bayesianoptimization
template:
metadata:
labels:
app: katib
component: suggestion-bayesianoptimization
name: katib-suggestion-bayesianoptimization
spec:
containers:
- image: gcr.io/kubeflow-images-public/katib/v1alpha2/suggestion-bayesianoptimization:v0.6.0-rc.0
imagePullPolicy: IfNotPresent
name: katib-suggestion-bayesianoptimization
ports:
- containerPort: 6789
name: api
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: katib
component: suggestion-grid
name: katib-suggestion-grid
namespace: kubeflow
spec:
replicas: 1
selector:
matchLabels:
app: katib
component: suggestion-grid
template:
metadata:
labels:
app: katib
component: suggestion-grid
name: katib-suggestion-grid
spec:
containers:
- image: gcr.io/kubeflow-images-public/katib/v1alpha2/suggestion-grid:v0.6.0-rc.0
imagePullPolicy: IfNotPresent
name: katib-suggestion-grid
ports:
- containerPort: 6789
name: api
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: katib
component: suggestion-hyperband
name: katib-suggestion-hyperband
namespace: kubeflow
spec:
replicas: 1
selector:
matchLabels:
app: katib
component: suggestion-hyperband
template:
metadata:
labels:
app: katib
component: suggestion-hyperband
name: katib-suggestion-hyperband
spec:
containers:
- image: gcr.io/kubeflow-images-public/katib/v1alpha2/suggestion-hyperband:v0.6.0-rc.0
imagePullPolicy: IfNotPresent
name: katib-suggestion-hyperband
ports:
- containerPort: 6789
name: api
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: katib
component: suggestion-nasrl
name: katib-suggestion-nasrl
namespace: kubeflow
spec:
replicas: 1
selector:
matchLabels:
app: katib
component: suggestion-nasrl
template:
metadata:
labels:
app: katib
component: suggestion-nasrl
name: katib-suggestion-nasrl
spec:
containers:
- image: gcr.io/kubeflow-images-public/katib/v1alpha2/suggestion-nasrl:v0.6.0-rc.0
name: katib-suggestion-nasrl
ports:
- containerPort: 6789
name: api
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: katib
component: suggestion-random
name: katib-suggestion-random
namespace: kubeflow
spec:
replicas: 1
selector:
matchLabels:
app: katib
component: suggestion-random
template:
metadata:
labels:
app: katib
component: suggestion-random
name: katib-suggestion-random
spec:
containers:
- image: gcr.io/kubeflow-images-public/katib/v1alpha2/suggestion-random:v0.6.0-rc.0
imagePullPolicy: IfNotPresent
name: katib-suggestion-random
ports:
- containerPort: 6789
name: api
apiVersion: v1
kind: Service
metadata:
labels:
app: vizier
component: core
ksonnet.io/component: katib
name: vizier-core
namespace: kubeflow
spec:
ports:
- name: api
{{- if .Values.katib.vizier.service.nodePort }}
nodePort: {{ .Values.katib.vizier.service.nodePort }}
{{- end }}
port: 6789
protocol: TCP
selector:
app: vizier
component: core
type: {{ .Values.katib.vizier.service.type }}
---
apiVersion: v1
kind: Service
metadata:
labels:
app: vizier
component: db
ksonnet.io/component: katib
name: vizier-db
namespace: kubeflow
spec:
ports:
- name: dbapi
port: 3306
protocol: TCP
selector:
app: vizier
component: db
type: ClusterIP
---
apiVersion: v1
kind: Service
metadata:
labels:
app: vizier
component: suggestion-bayesianoptimization
ksonnet.io/component: katib
name: vizier-suggestion-bayesianoptimization
namespace: kubeflow
spec:
ports:
- name: api
port: 6789
protocol: TCP
selector:
app: vizier
component: suggestion-bayesianoptimization
type: ClusterIP
---
apiVersion: v1
kind: Service
metadata:
labels:
app: vizier
component: suggestion-grid
ksonnet.io/component: katib
name: vizier-suggestion-grid
namespace: kubeflow
spec:
ports:
- name: api
port: 6789
protocol: TCP
selector:
app: vizier
component: suggestion-grid
type: ClusterIP
---
apiVersion: v1
kind: Service
metadata:
labels:
app: vizier
component: suggestion-hyperband
ksonnet.io/component: katib
name: vizier-suggestion-hyperband
namespace: kubeflow
spec:
ports:
- name: api
port: 6789
protocol: TCP
selector:
app: vizier
component: suggestion-hyperband
type: ClusterIP
---
apiVersion: v1
kind: Service
metadata:
labels:
app: vizier
component: suggestion-random
ksonnet.io/component: katib
name: vizier-suggestion-random
namespace: kubeflow
spec:
ports:
- name: api
port: 6789
protocol: TCP
selector:
app: vizier
component: suggestion-random
type: ClusterIP
apiVersion: v1
kind: ServiceAccount
metadata:
name: katib-ui
namespace: kubeflow
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: katib-ui
rules:
- apiGroups:
- ""
resources:
- configmaps
verbs:
- '*'
- apiGroups:
- kubeflow.org
resources:
- experiments
- trials
verbs:
- '*'
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: katib-ui
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: katib-ui
subjects:
- kind: ServiceAccount
name: katib-ui
namespace: kubeflow
---
apiVersion: v1
data:
clusterDomain: {{ .Values.clusterDomain | quote }}
kind: ConfigMap
metadata:
name: katib-parameters
namespace: kubeflow
---
apiVersion: v1
kind: Service
metadata:
labels:
app: katib
component: ui
name: katib-ui
namespace: kubeflow
spec:
ports:
- name: ui
port: 80
protocol: TCP
selector:
app: katib
component: ui
type: ClusterIP
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: katib
component: ui
name: katib-ui
namespace: kubeflow
spec:
replicas: 1
selector:
matchLabels:
app: katib
component: ui
template:
metadata:
labels:
app: katib
component: ui
name: katib-ui
spec:
containers:
- command:
- ./katib-ui
image: gcr.io/kubeflow-images-public/katib/v1alpha2/katib-ui:v0.6.0-rc.0
imagePullPolicy: IfNotPresent
name: katib-ui
ports:
- containerPort: 80
name: ui
serviceAccountName: katib-ui
---
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
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.{{ .Values.clusterDomain }}
port:
number: 80
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
labels:
kustomize.component: metacontroller
name: compositecontrollers.metacontroller.k8s.io
spec:
group: metacontroller.k8s.io
names:
kind: CompositeController
plural: compositecontrollers
shortNames:
- cc
- cctl
singular: compositecontroller
scope: Cluster
version: v1alpha1
---
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
labels:
kustomize.component: metacontroller
name: controllerrevisions.metacontroller.k8s.io
spec:
group: metacontroller.k8s.io
names:
kind: ControllerRevision
plural: controllerrevisions
singular: controllerrevision
scope: Namespaced
version: v1alpha1
---
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
labels:
kustomize.component: metacontroller
name: decoratorcontrollers.metacontroller.k8s.io
spec:
group: metacontroller.k8s.io
names:
kind: DecoratorController
plural: decoratorcontrollers
shortNames:
- dec
- decorators
singular: decoratorcontroller
scope: Cluster
version: v1alpha1
---
apiVersion: v1
kind: ServiceAccount
metadata:
labels:
kustomize.component: metacontroller
name: meta-controller-service
namespace: kubeflow
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
labels:
kustomize.component: metacontroller
name: meta-controller-cluster-role-binding
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
- kind: ServiceAccount
name: meta-controller-service
namespace: kubeflow
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
labels:
app: metacontroller
kustomize.component: metacontroller
name: metacontroller
namespace: kubeflow
spec:
replicas: 1
selector:
matchLabels:
app: metacontroller
kustomize.component: metacontroller
serviceName: ""
template:
metadata:
labels:
app: metacontroller
kustomize.component: metacontroller
spec:
containers:
- command:
- /usr/bin/metacontroller
- --logtostderr
- -v=4
- --discovery-interval=20s
image: metacontroller/metacontroller:v0.3.0
imagePullPolicy: Always
name: metacontroller
ports:
- containerPort: 2345
resources:
limits:
cpu: "4"
memory: 4Gi
requests:
cpu: 500m
memory: 1Gi
securityContext:
allowPrivilegeEscalation: true
privileged: true
serviceAccountName: meta-controller-service
volumeClaimTemplates: []
apiVersion: v1
kind: ServiceAccount
metadata:
labels:
kustomize.component: metadata
name: metadata-ui
namespace: kubeflow
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: Role
metadata:
labels:
app: metadata-ui
kustomize.component: metadata
name: metadata-ui
namespace: kubeflow
rules:
- apiGroups:
- ""
resources:
- pods
- pods/log
verbs:
- create
- get
- list
- apiGroups:
- kubeflow.org
resources:
- viewers
verbs:
- create
- get
- list
- watch
- delete
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: RoleBinding
metadata:
labels:
app: metadata-ui
kustomize.component: metadata
name: metadata-ui
namespace: kubeflow
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: metadata-ui
subjects:
- kind: ServiceAccount
name: ui
namespace: kubeflow
---
apiVersion: v1
data:
uiClusterDomain: {{ .Values.clusterDomain | quote }}
kind: ConfigMap
metadata:
labels:
kustomize.component: metadata
name: metadata-ui-parameters-b6c8ghff7c
namespace: kubeflow
---
apiVersion: v1
data:
MYSQL_ROOT_PASSWORD: {{ .Values.metadata.db.password | b64enc | quote }}
kind: Secret
metadata:
labels:
kustomize.component: metadata
name: metadata-db-secrets
namespace: kubeflow
type: Opaque
---
apiVersion: v1
kind: Service
metadata:
labels:
component: db
kustomize.component: metadata
name: metadata-db
namespace: kubeflow
spec:
ports:
- name: dbapi
port: 3306
protocol: TCP
selector:
component: db
kustomize.component: metadata
type: ClusterIP
---
apiVersion: v1
kind: Service
metadata:
labels:
app: metadata
kustomize.component: metadata
name: metadata-service
namespace: kubeflow
spec:
ports:
- name: backendapi
port: 8080
protocol: TCP
selector:
component: server
kustomize.component: metadata
type: ClusterIP
---
apiVersion: v1
kind: Service
metadata:
labels:
app: metadata-ui
kustomize.component: metadata
name: metadata-ui
namespace: kubeflow
spec:
ports:
- port: 80
targetPort: 3000
selector:
app: metadata-ui
kustomize.component: metadata
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: metadata-ui
kustomize.component: metadata
name: metadata-ui
namespace: kubeflow
spec:
selector:
matchLabels:
app: metadata-ui
kustomize.component: metadata
template:
metadata:
labels:
app: metadata-ui
kustomize.component: metadata
name: ui
spec:
containers:
- image: gcr.io/kubeflow-images-public/metadata-frontend:v0.1.8
imagePullPolicy: IfNotPresent
name: metadata-ui
ports:
- containerPort: 3000
serviceAccountName: metadata-ui
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
component: db
kustomize.component: metadata
name: metadata-db
namespace: kubeflow
spec:
replicas: 1
selector:
matchLabels:
kustomize.component: metadata
template:
metadata:
labels:
component: db
kustomize.component: metadata
name: db
spec:
containers:
- args:
- --datadir
- /var/lib/mysql/datadir
env:
- name: MYSQL_ROOT_PASSWORD
valueFrom:
secretKeyRef:
key: MYSQL_ROOT_PASSWORD
name: metadata-db-secrets
- name: MYSQL_ALLOW_EMPTY_PASSWORD
value: "true"
- name: MYSQL_DATABASE
value: metadb
image: mysql:8.0.3
name: db-container
ports:
- containerPort: 3306
name: dbapi
readinessProbe:
exec:
command:
- /bin/bash
- -c
- mysql -D $$MYSQL_DATABASE -p$$MYSQL_ROOT_PASSWORD -e 'SELECT 1'
initialDelaySeconds: 5
periodSeconds: 2
timeoutSeconds: 1
volumeMounts:
- mountPath: /var/lib/mysql
name: metadata-db-pvc
volumes:
- name: metadata-db-pvc
{{- if .Values.metadata.db.persistence.enabled }}
persistentVolumeClaim:
claimName: metadata-db-pvc
{{- else }}
emptyDir: {}
{{ end }}
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
component: server
kustomize.component: metadata
name: metadata-deployment
namespace: kubeflow
spec:
replicas: 3
selector:
matchLabels:
kustomize.component: metadata
template:
metadata:
labels:
component: server
kustomize.component: metadata
spec:
containers:
- command:
- ./server/server
- --http_port=8080
- --mysql_service_host=metadata-db.kubeflow
- --mysql_service_port=3306
- --mysql_service_user=root
- --mysql_service_password=$(MYSQL_ROOT_PASSWORD)
- --mlmd_db_name=metadb
env:
- name: MYSQL_ROOT_PASSWORD
valueFrom:
secretKeyRef:
key: MYSQL_ROOT_PASSWORD
name: metadata-db-secrets
image: gcr.io/kubeflow-images-public/metadata:v0.1.8
name: container
ports:
- containerPort: 8080
name: backendapi
---
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: metadata-ui
namespace: kubeflow
spec:
gateways:
- kubeflow-gateway
hosts:
- '*'
http:
- match:
- uri:
prefix: /metadata
rewrite:
uri: /metadata
route:
- destination:
host: metadata-ui.kubeflow.svc.{{ .Values.clusterDomain }}
port:
number: 80
timeout: 300s
{{- if .Values.metadata.db.persistence.enabled }}
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
labels:
kustomize.component: metadata
name: metadata-db-pvc
namespace: kubeflow
spec:
accessModes:
- {{ .Values.metadata.db.persistence.accessMode | quote }}
resources:
requests:
storage: {{ .Values.metadata.db.persistence.size | quote }}
storageClassName: {{ .Values.metadata.db.persistence.storageClass | quote }}
{{- end -}}
\ No newline at end of file
apiVersion: v1
kind: ServiceAccount
metadata:
name: metrics-collector
namespace: kubeflow
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: metrics-collector
rules:
- apiGroups:
- ""
resources:
- pods
- pods/log
- pods/status
verbs:
- '*'
- apiGroups:
- batch
resources:
- jobs
verbs:
- '*'
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: metrics-collector
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: metrics-collector
subjects:
- kind: ServiceAccount
name: metrics-collector
namespace: kubeflow
---
apiVersion: v1
data:
defaultMetricsCollectorTemplate.yaml: |-
apiVersion: batch/v1beta1
kind: CronJob
metadata:
name: {{`{{.Trial}}`}}
namespace: {{`{{.NameSpace}}`}}
spec:
schedule: "*/1 * * * *"
successfulJobsHistoryLimit: 0
failedJobsHistoryLimit: 1
jobTemplate:
spec:
backoffLimit: 0
template:
spec:
serviceAccountName: metrics-collector
containers:
- name: {{`{{.Trial}}`}}
image: gcr.io/kubeflow-images-public/katib/v1alpha2/metrics-collector:v0.1.2-alpha-289-g14dad8b
imagePullPolicy: IfNotPresent
command: ["./metricscollector"]
args:
- "-e"
- "{{`{{.Experiment}}`}}"
- "-t"
- "{{`{{.Trial}}`}}"
- "-k"
- "{{`{{.JobKind}}`}}"
- "-n"
- "{{`{{.NameSpace}}`}}"
- "-m"
- "{{`{{.ManagerService}}`}}"
- "-mn"
- "{{`{{.MetricNames}}`}}"
restartPolicy: Never
kind: ConfigMap
metadata:
name: metrics-collector-template
namespace: kubeflow
apiVersion: v1
data:
minioPvcName: {{ .Values.minio.persistence.pvcName | quote }}
kind: ConfigMap
metadata:
labels:
app: minio
name: pipeline-minio-parameters
namespace: kubeflow
---
apiVersion: v1
data:
accessKey: {{ .Values.minio.accessKey | b64enc | quote }}
secretKey: {{ .Values.minio.secretKey | b64enc | quote }}
kind: Secret
metadata:
labels:
app: minio
name: mlpipeline-minio-artifact
namespace: kubeflow
type: Opaque
---
apiVersion: v1
kind: Service
metadata:
labels:
app: minio
name: minio-service
namespace: kubeflow
spec:
ports:
- port: 9000
protocol: TCP
targetPort: 9000
selector:
app: minio
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: minio
name: minio
namespace: kubeflow
spec:
selector:
matchLabels:
app: minio
strategy:
type: Recreate
template:
metadata:
labels:
app: minio
spec:
containers:
- args:
- server
- /data
env:
- name: MINIO_ACCESS_KEY
valueFrom:
secretKeyRef:
key: accessKey
name: mlpipeline-minio-artifact
- name: MINIO_SECRET_KEY
valueFrom:
secretKeyRef:
key: secretKey
name: mlpipeline-minio-artifact
image: minio/minio:RELEASE.2018-02-09T22-40-05Z
name: minio
ports:
- containerPort: 9000
volumeMounts:
- mountPath: /data
name: data
subPath: minio
volumes:
- name: data
{{- if .Values.minio.persistence.enabled }}
persistentVolumeClaim:
claimName: {{ .Values.minio.persistence.pvcName }}
{{- else }}
emptyDir: {}
{{ end }}
{{- if .Values.minio.persistence.enabled }}
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
labels:
app: minio
name: {{ .Values.minio.persistence.pvcName | quote }}
namespace: kubeflow
spec:
accessModes:
- {{ .Values.minio.persistence.accessMode | quote }}
resources:
requests:
storage: {{ .Values.minio.persistence.size | quote }}
storageClassName: {{ .Values.minio.persistence.storageClass | quote }}
{{- end -}}
\ No newline at end of file
apiVersion: v1
kind: ServiceAccount
metadata:
labels:
app: ml-pipeline-persistenceagent
name: ml-pipeline-persistenceagent
namespace: kubeflow
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRole
metadata:
labels:
app: ml-pipeline-persistenceagent
name: ml-pipeline-persistenceagent
rules:
- apiGroups:
- argoproj.io
resources:
- workflows
verbs:
- get
- list
- watch
- apiGroups:
- kubeflow.org
resources:
- scheduledworkflows
verbs:
- get
- list
- watch
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
labels:
app: ml-pipeline-persistenceagent
name: ml-pipeline-persistenceagent
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
- kind: ServiceAccount
name: ml-pipeline-persistenceagent
namespace: kubeflow
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: ml-pipeline-persistenceagent
name: ml-pipeline-persistenceagent
namespace: kubeflow
spec:
selector:
matchLabels:
app: ml-pipeline-persistenceagent
template:
metadata:
labels:
app: ml-pipeline-persistenceagent
spec:
containers:
- env:
- name: POD_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
image: gcr.io/ml-pipeline/persistenceagent:0.1.23
imagePullPolicy: IfNotPresent
name: ml-pipeline-persistenceagent
serviceAccountName: ml-pipeline-persistenceagent
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
labels:
app: ml-pipeline-scheduledworkflow
name: scheduledworkflows.kubeflow.org
spec:
group: kubeflow.org
names:
kind: ScheduledWorkflow
listKind: ScheduledWorkflowList
plural: scheduledworkflows
shortNames:
- swf
singular: scheduledworkflow
scope: Namespaced
versions:
- name: v1beta1
served: true
storage: true
---
apiVersion: v1
kind: ServiceAccount
metadata:
labels:
app: ml-pipeline-scheduledworkflow
name: ml-pipeline-scheduledworkflow
namespace: kubeflow
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: Role
metadata:
labels:
app: ml-pipeline-scheduledworkflow
name: ml-pipeline-scheduledworkflow
namespace: kubeflow
rules:
- apiGroups:
- argoproj.io
resources:
- workflows
verbs:
- create
- get
- list
- watch
- update
- patch
- delete
- apiGroups:
- kubeflow.org
resources:
- scheduledworkflows
verbs:
- create
- get
- list
- watch
- update
- patch
- delete
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
labels:
app: ml-pipeline-scheduledworkflow
name: ml-pipeline-scheduledworkflow
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
- kind: ServiceAccount
name: ml-pipeline-scheduledworkflow
namespace: kubeflow
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: ml-pipeline-scheduledworkflow
name: ml-pipeline-scheduledworkflow
namespace: kubeflow
spec:
selector:
matchLabels:
app: ml-pipeline-scheduledworkflow
template:
metadata:
labels:
app: ml-pipeline-scheduledworkflow
spec:
containers:
- env:
- name: POD_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
image: gcr.io/ml-pipeline/scheduledworkflow:0.1.23
imagePullPolicy: IfNotPresent
name: ml-pipeline-scheduledworkflow
serviceAccountName: ml-pipeline-scheduledworkflow
apiVersion: v1
kind: ServiceAccount
metadata:
name: ml-pipeline-ui
namespace: kubeflow
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: Role
metadata:
labels:
app: ml-pipeline-ui
name: ml-pipeline-ui
namespace: kubeflow
rules:
- apiGroups:
- ""
resources:
- pods
- pods/log
verbs:
- create
- get
- list
- apiGroups:
- kubeflow.org
resources:
- viewers
verbs:
- create
- get
- list
- watch
- delete
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: RoleBinding
metadata:
labels:
app: ml-pipeline-ui
name: ml-pipeline-ui
namespace: kubeflow
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: ml-pipeline-ui
subjects:
- kind: ServiceAccount
name: ml-pipeline-ui
namespace: kubeflow
---
apiVersion: v1
data:
uiClusterDomain: cluster.local
kind: ConfigMap
metadata:
name: ui-parameters-hb792fcf5d
namespace: kubeflow
---
apiVersion: v1
kind: Service
metadata:
annotations:
getambassador.io/config: |-
---
apiVersion: ambassador/v0
kind: Mapping
name: pipeline-tensorboard-ui-mapping
prefix: /data
rewrite: /data
timeout_ms: 300000
service: ml-pipeline-ui.kubeflow
use_websocket: true
labels:
app: ml-pipeline-tensorboard-ui
name: ml-pipeline-tensorboard-ui
namespace: kubeflow
spec:
ports:
- port: 80
targetPort: 3000
selector:
app: ml-pipeline-tensorboard-ui
---
apiVersion: v1
kind: Service
metadata:
annotations:
getambassador.io/config: |-
---
apiVersion: ambassador/v0
kind: Mapping
name: pipelineui-mapping
prefix: /pipeline
rewrite: /pipeline
timeout_ms: 300000
service: ml-pipeline-ui.kubeflow
use_websocket: true
labels:
app: ml-pipeline-ui
name: ml-pipeline-ui
namespace: kubeflow
spec:
ports:
- port: 80
targetPort: 3000
selector:
app: ml-pipeline-ui
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: ml-pipeline-ui
name: ml-pipeline-ui
namespace: kubeflow
spec:
selector:
matchLabels:
app: ml-pipeline-ui
template:
metadata:
labels:
app: ml-pipeline-ui
spec:
containers:
- image: gcr.io/ml-pipeline/frontend:0.1.23
imagePullPolicy: IfNotPresent
name: ml-pipeline-ui
ports:
- containerPort: 3000
serviceAccountName: ml-pipeline-ui
---
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: ml-pipeline-tensorboard-ui
namespace: kubeflow
spec:
gateways:
- kubeflow-gateway
hosts:
- '*'
http:
- match:
- uri:
prefix: /data
rewrite:
uri: /data
route:
- destination:
host: ml-pipeline-tensorboard-ui.kubeflow.svc.{{ .Values.clusterDomain }}
port:
number: 80
timeout: 300s
---
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: ml-pipeline-ui
namespace: kubeflow
spec:
gateways:
- kubeflow-gateway
hosts:
- '*'
http:
- match:
- uri:
prefix: /pipeline
rewrite:
uri: /pipeline
route:
- destination:
host: ml-pipeline-ui.kubeflow.svc.{{ .Values.clusterDomain }}
port:
number: 80
timeout: 300s
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
labels:
app: ml-pipeline-viewer-crd
name: viewers.kubeflow.org
spec:
group: kubeflow.org
names:
kind: Viewer
listKind: ViewerList
plural: viewers
shortNames:
- vi
singular: viewer
scope: Namespaced
versions:
- name: v1beta1
served: true
storage: true
---
apiVersion: v1
kind: ServiceAccount
metadata:
labels:
app: ml-pipeline-viewer-crd
name: ml-pipeline-viewer-crd-service-account
namespace: kubeflow
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRole
metadata:
labels:
app: ml-pipeline-viewer-crd
name: ml-pipeline-viewer-controller-role
rules:
- apiGroups:
- '*'
resources:
- deployments
- services
verbs:
- create
- get
- list
- watch
- update
- patch
- delete
- apiGroups:
- kubeflow.org
resources:
- viewers
verbs:
- create
- get
- list
- watch
- update
- patch
- delete
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
labels:
app: ml-pipeline-viewer-crd
name: ml-pipeline-viewer-crd-role-binding
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: ml-pipeline-viewer-controller-role
subjects:
- kind: ServiceAccount
name: ml-pipeline-viewer-crd-service-account
namespace: kubeflow
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: ml-pipeline-viewer-crd
name: ml-pipeline-viewer-controller-deployment
namespace: kubeflow
spec:
selector:
matchLabels:
app: ml-pipeline-viewer-crd
template:
metadata:
labels:
app: ml-pipeline-viewer-crd
spec:
containers:
- env:
- name: POD_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
image: gcr.io/ml-pipeline/viewer-crd-controller:0.1.23
imagePullPolicy: Always
name: ml-pipeline-viewer-controller
serviceAccountName: ml-pipeline-viewer-crd-service-account
apiVersion: v1
kind: ServiceAccount
metadata:
labels:
app: ml-pipeline
name: ml-pipeline
namespace: kubeflow
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: Role
metadata:
labels:
app: ml-pipeline
name: ml-pipeline
namespace: kubeflow
rules:
- apiGroups:
- argoproj.io
resources:
- workflows
verbs:
- create
- get
- list
- watch
- update
- patch
- delete
- apiGroups:
- kubeflow.org
resources:
- scheduledworkflows
verbs:
- create
- get
- list
- update
- patch
- delete
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: RoleBinding
metadata:
labels:
app: ml-pipeline
name: ml-pipeline
namespace: kubeflow
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: ml-pipeline
subjects:
- kind: ServiceAccount
name: ml-pipeline
namespace: kubeflow
---
apiVersion: v1
kind: Service
metadata:
labels:
app: ml-pipeline
name: ml-pipeline
namespace: kubeflow
spec:
ports:
- name: http
port: 8888
protocol: TCP
targetPort: 8888
- name: grpc
port: 8887
protocol: TCP
targetPort: 8887
selector:
app: ml-pipeline
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: ml-pipeline
name: ml-pipeline
namespace: kubeflow
spec:
selector:
matchLabels:
app: ml-pipeline
template:
metadata:
labels:
app: ml-pipeline
spec:
containers:
- env:
- name: POD_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
image: gcr.io/ml-pipeline/api-server:0.1.23
imagePullPolicy: IfNotPresent
name: ml-pipeline-api-server
ports:
- containerPort: 8888
- containerPort: 8887
serviceAccountName: ml-pipeline
{{- if .Values.mxnetOperator.enabled }}
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
labels:
ksonnet.io/component: mxnet-operator
annotations:
"helm.sh/hook": crd-install
"helm.sh/hook-delete-policy": before-hook-creation
name: mxjobs.kubeflow.org
spec:
group: kubeflow.org
names:
kind: MXJob
plural: mxjobs
singular: mxjob
version: v1alpha1
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRole
metadata:
labels:
app: mxnet-operator
ksonnet.io/component: mxnet-operator
name: mxnet-operator
rules:
- apiGroups:
- kubeflow.org
resources: - mxjobs
verbs:
- '*'
- apiGroups:
- apiextensions.k8s.io
resources:
- customresourcedefinitions
verbs:
- '*'
- apiGroups:
- storage.k8s.io
resources:
- storageclasses
verbs:
- '*'
- apiGroups:
- batch
resources:
- jobs
verbs:
- '*'
- apiGroups:
- ""
resources:
- configmaps
- pods
- services
- endpoints
- persistentvolumeclaims
- events
verbs:
- '*'
- apiGroups:
- apps
- extensions
resources:
- deployments
verbs:
- '*'
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
labels:
app: mxnet-operator
ksonnet.io/component: mxnet-operator
name: mxnet-operator
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: mxnet-operator
subjects:
- kind: ServiceAccount
name: mxnet-operator
namespace: kubeflow
---
apiVersion: v1
data:
controller_config_file.yaml: |-
{
}
kind: ConfigMap
metadata:
labels:
ksonnet.io/component: mxnet-operator
name: mxnet-operator-config
namespace: kubeflow
---
apiVersion: v1
kind: ServiceAccount
metadata:
labels:
app: mxnet-operator
ksonnet.io/component: mxnet-operator
name: mxnet-operator
namespace: kubeflow
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
labels:
ksonnet.io/component: mxnet-operator
name: mxnet-operator
namespace: kubeflow
spec:
replicas: 1
template:
metadata:
labels:
name: mxnet-operator
spec:
containers:
- command:
- /opt/mlkube/mxnet-operator
- --alsologtostderr
- -v=1
env:
- name: MY_POD_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
- name: MY_POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
image: "{{ .Values.mxnetOperator.image.repository }}:{{ .Values.mxnetOperator.image.tag }}"
imagePullPolicy: Always
name: mxnet-operator
volumeMounts:
- mountPath: /etc/config
name: config-volume
serviceAccountName: mxnet-operator
volumes:
- configMap:
name: mxnet-operator-config
name: config-volume
{{- end }}
apiVersion: v1
data:
mysqlPvcName: {{ .Values.mysql.persistence.pvcName | quote }}
kind: ConfigMap
metadata:
labels:
app: mysql
name: pipeline-mysql-parameters
namespace: kubeflow
---
apiVersion: v1
kind: Service
metadata:
labels:
app: mysql
name: mysql
namespace: kubeflow
spec:
ports:
- port: 3306
selector:
app: mysql
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: mysql
name: mysql
namespace: kubeflow
spec:
selector:
matchLabels:
app: mysql
strategy:
type: Recreate
template:
metadata:
labels:
app: mysql
spec:
containers:
- env:
- name: MYSQL_ALLOW_EMPTY_PASSWORD
value: "true"
image: mysql:5.6
name: mysql
ports:
- containerPort: 3306
name: mysql
volumeMounts:
- mountPath: /var/lib/mysql
name: mysql-persistent-storage
volumes:
- name: mysql-persistent-storage
{{- if .Values.mysql.persistence.enabled }}
persistentVolumeClaim:
claimName: {{ .Values.mysql.persistence.pvcName | quote }}
{{- else }}
emptyDir: {}
{{ end }}
{{- if .Values.mysql.persistence.enabled }}
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
labels:
app: mysql
name: {{ .Values.mysql.persistence.pvcName | quote }}
namespace: kubeflow
spec:
accessModes:
- {{ .Values.mysql.persistence.accessMode | quote }}
resources:
requests:
storage: {{ .Values.mysql.persistence.size | quote }}
storageClassName: {{ .Values.mysql.persistence.storageClass | quote }}
{{- end -}}
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment