Unverified Commit 1c9c6518 by Denise Committed by GitHub

Merge pull request #342 from rawmind0/master

Updated kubeflow chart to v0.6.2
parents 51cbce66 36cdff8c
# Patterns to ignore when building packages.
# This supports shell glob matching, relative path matching, and
# negation (prefixed with !). Only one pattern per line.
.DS_Store
# Common VCS dirs
.git/
.gitignore
.bzr/
.bzrignore
.hg/
.hgignore
.svn/
# Common backup files
*.swp
*.bak
*.tmp
*~
# Various IDEs
.project
.idea/
*.tmproj
apiVersion: v1
appVersion: "1.0"
description: Machine Learning Toolkit for Kubernetes
name: kubeflow
version: 0.6.2
icon: file://../icon.jpg
maintainers:
- name: Raul
email: support@rancher.com
home: https://www.kubeflow.org/docs/about/kubeflow/
# Kubeflow
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:
- You want to train/serve TensorFlow models in different environments (e.g. local, on prem, and cloud)
- You want to use Jupyter notebooks to manage TensorFlow training jobs
- 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.
This list is based ONLY on current capabilities. We are investing significant resources to expand the functionality and actively soliciting help from companies and individuals interested in contributing (see [Contributing](https://www.kubeflow.org/docs/about/contributing/)).
## How it works?
For more details of how Kubeflow works please reference the [Kubeflow Doc](https://www.kubeflow.org/docs/about/kubeflow/).
# Kubeflow
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:
- You want to train/serve TensorFlow models in different environments (e.g. local, on prem, and cloud)
- You want to use Jupyter notebooks to manage TensorFlow training jobs
- 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/).
categories:
- machine learning
rancher_max_version: 2.3.3
labels:
io.rancher.certified: experimental
namespace: kubeflow
questions:
- variable: profiles.admin
default: johnDoe@acme.com
description: "Kubeflow admin"
required: true
type: string
label: Admin
- variable: applicationController.project
default: "test"
description: "Application controller project"
required: true
type: string
label: Application controller project
- variable: argo.executorImage
default: "argoproj/argoexec:v2.3.0"
description: "Argo executor image"
required: true
type: string
label: Argo executor image
- variable: argo.artifactRepositoryBucket
default: "mlpipeline"
description: "Argo artifact repository bucket"
required: true
type: string
label: Argo artifact repository bucket
- variable: argo.artifactRepositoryKeyPrefix
default: "artifacts"
description: "Argo artifact repository key prefix"
required: true
type: string
label: Argo artifact repository key prefix
- variable: argo.artifactRepositoryAccessKeySecretName
default: "mlpipeline-minio-artifact"
description: "Argo artifact repository access key name"
required: true
type: string
label: Argo artifact repository access key name
- variable: argo.artifactRepositoryAccessKeySecretKey
default: "accesskey"
description: "Argo artifact repository access key secret"
required: true
type: password
label: Argo artifact repository access key secret
- variable: argo.artifactRepositorySecretKeySecretName
default: "mlpipeline-minio-artifact"
description: "Argo artifact repository secret key name"
required: true
type: string
label: Argo artifact repository secret key name
- variable: argo.artifactRepositorySecretKeySecretKey
default: "secretkey"
description: "Argo artifact repository secret key secret"
required: true
type: password
label: Argo artifact repository secret key secret
- variable: clusterDomain
default: "cluster.local"
description: "K8s cluster domain"
required: true
type: string
label: K8s cluster domain
- variable: katib.db.password
default: test
description: "Katib db password"
required: true
type: password
label: Katib db password
- variable: katib.db.persistence.enabled
default: false
description: "Enable persistent volume for katib db"
type: boolean
required: true
label: Katib db Persistent Volume Enabled
show_subquestion_if: true
group: "Katib db Settings"
subquestions:
- variable: katib.db.persistence.size
default: "10Gi"
description: "Katib db Persistent Volume Size"
type: string
label: Katib db Volume Size
- variable: katib.db.persistence.storageClass
default: ""
description: "If undefined or null, uses the default StorageClass. Default to null"
type: storageclass
label: Default StorageClass for katib db
- variable: metadata.db.password
default: test
description: "Metadata db password"
type: password
label: Metadata db password
- variable: metadata.db.persistence.enabled
default: false
description: "Enable persistent volume for metadata db"
type: boolean
required: true
label: Metadata db Persistent Volume Enabled
show_subquestion_if: true
group: "Metadata db Settings"
subquestions:
- variable: metadata.db.persistence.size
default: "10Gi"
description: "Metadata db Persistent Volume Size"
type: string
label: Metadata db Volume Size
- variable: metadata.db.persistence.storageClass
default: ""
description: "If undefined or null, uses the default StorageClass. Default to null"
type: storageclass
label: Default StorageClass for metadata db
- variable: minio.accessKey
default: minio
description: "Minio access key"
required: true
type: string
label: Minio access key
- variable: minio.secretKey
default: minio123
description: "Minio secret key"
required: true
type: password
label: Minio secret key
- variable: minio.persistence.enabled
default: false
description: "Enable persistent volume for minio"
type: boolean
required: true
label: Minio Persistent Volume Enabled
show_subquestion_if: true
group: "Minio Settings"
subquestions:
- variable: minio.persistence.size
default: "20Gi"
description: "Minio Persistent Volume Size"
type: string
label: Minio Volume Size
- variable: minio.persistence.storageClass
default: ""
description: "If undefined or null, uses the default StorageClass. Default to null"
type: storageclass
label: Default StorageClass for minio
- variable: mysql.persistence.enabled
default: false
description: "Enable persistent volume for mysql"
type: boolean
required: true
label: Mysql Persistent Volume Enabled
show_subquestion_if: true
group: "Mysql Settings"
subquestions:
- variable: mysql.persistence.size
default: "20Gi"
description: "Mysql Persistent Volume Size"
type: string
label: Mysql Volume Size
- variable: mysql.persistence.storageClass
default: ""
description: "If undefined or null, uses the default StorageClass. Default to null"
type: storageclass
label: Default StorageClass for mysql
- variable: spartakus.usageId
default: test
description: "Spartakus Usage ID"
required: true
type: string
label: Usage ID
{{/* vim: set filetype=mustache: */}}
{{/*
Expand the name of the chart.
*/}}
{{- define "kubeflow.name" -}}
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{/*
Create a default fully qualified app name.
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
If release name contains chart name it will be used as a full name.
*/}}
{{- define "kubeflow.fullname" -}}
{{- if .Values.fullnameOverride -}}
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
{{- else -}}
{{- $name := default .Chart.Name .Values.nameOverride -}}
{{- if contains $name .Release.Name -}}
{{- .Release.Name | trunc 63 | trimSuffix "-" -}}
{{- else -}}
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{- end -}}
{{- end -}}
{{/*
Create chart name and version as used by the chart label.
*/}}
{{- define "kubeflow.chart" -}}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
{{- end -}}
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: 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:
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:
getambassador.io/config: |-
---
apiVersion: ambassador/v0
kind: Mapping
name: centralui-mapping
prefix: /
rewrite: /
service: centraldashboard.kubeflow
labels:
app: 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: apps/v1
kind: Deployment
metadata:
labels:
app: 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:
- 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
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 }}
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: 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: 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: 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: 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
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
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
labels:
app: notebook-controller
app.kubernetes.io/component: notebook
app.kubernetes.io/instance: notebook-controller
app.kubernetes.io/managed-by: kfctl
app.kubernetes.io/name: notebook-controller
app.kubernetes.io/part-of: kubeflow
app.kubernetes.io/version: v0.6
kustomize.component: notebook-controller
name: notebooks.kubeflow.org
spec:
group: kubeflow.org
names:
kind: Notebook
plural: notebooks
singular: notebook
scope: Namespaced
subresources:
status: {}
validation:
openAPIV3Schema:
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation
of an object. Servers should convert recognized schemas to the latest
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources'
type: string
kind:
description: 'Kind is a string value representing the REST resource this
object represents. Servers may infer this from the endpoint the client
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds'
type: string
metadata:
type: object
spec:
properties:
template:
description: 'INSERT ADDITIONAL SPEC FIELDS - desired state of cluster
Important: Run "make" to regenerate code after modifying this file'
properties:
spec:
type: object
type: object
type: object
status:
properties:
conditions:
description: Conditions is an array of current conditions
items:
properties:
type:
description: Type of the confition/
type: string
required:
- type
type: object
type: array
required:
- conditions
type: object
version: v1alpha1
status:
acceptedNames:
kind: ""
plural: ""
conditions: []
storedVersions: []
---
apiVersion: v1
kind: ServiceAccount
metadata:
labels:
app: notebook-controller
app.kubernetes.io/component: notebook
app.kubernetes.io/instance: notebook-controller
app.kubernetes.io/managed-by: kfctl
app.kubernetes.io/name: notebook-controller
app.kubernetes.io/part-of: kubeflow
app.kubernetes.io/version: v0.6
kustomize.component: notebook-controller
name: notebook-controller-service-account
namespace: kubeflow
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
labels:
app: notebook-controller
app.kubernetes.io/component: notebook
app.kubernetes.io/instance: notebook-controller
app.kubernetes.io/managed-by: kfctl
app.kubernetes.io/name: notebook-controller
app.kubernetes.io/part-of: kubeflow
app.kubernetes.io/version: v0.6
kustomize.component: notebook-controller
name: notebook-controller-role
rules:
- apiGroups:
- apps
resources:
- statefulsets
- deployments
verbs:
- '*'
- apiGroups:
- ""
resources:
- pods
verbs:
- get
- list
- watch
- apiGroups:
- ""
resources:
- services
verbs:
- '*'
- apiGroups:
- kubeflow.org
resources:
- notebooks
- notebooks/status
verbs:
- '*'
- apiGroups:
- networking.istio.io
resources:
- virtualservices
verbs:
- '*'
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
labels:
app: notebook-controller
app.kubernetes.io/component: notebook
app.kubernetes.io/instance: notebook-controller
app.kubernetes.io/managed-by: kfctl
app.kubernetes.io/name: notebook-controller
app.kubernetes.io/part-of: kubeflow
app.kubernetes.io/version: v0.6
kustomize.component: notebook-controller
name: notebook-controller-role-binding
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: notebook-controller-role
subjects:
- kind: ServiceAccount
name: notebook-controller-service-account
namespace: kubeflow
---
apiVersion: v1
data:
POD_LABELS: {{ .Values.notebookController.podLabels | quote }}
USE_ISTIO: {{ .Values.notebookController.useIstio | quote }}
kind: ConfigMap
metadata:
annotations: {}
labels:
app: notebook-controller
app.kubernetes.io/component: notebook
app.kubernetes.io/instance: notebook-controller
app.kubernetes.io/managed-by: kfctl
app.kubernetes.io/name: notebook-controller
app.kubernetes.io/part-of: kubeflow
app.kubernetes.io/version: v0.6
kustomize.component: notebook-controller
name: notebook-controller-parameters
namespace: kubeflow
---
apiVersion: v1
kind: Service
metadata:
labels:
app: notebook-controller
app.kubernetes.io/component: notebook
app.kubernetes.io/instance: notebook-controller
app.kubernetes.io/managed-by: kfctl
app.kubernetes.io/name: notebook-controller
app.kubernetes.io/part-of: kubeflow
app.kubernetes.io/version: v0.6
kustomize.component: notebook-controller
name: notebook-controller-service
namespace: kubeflow
spec:
ports:
- port: 443
selector:
app: notebook-controller
app.kubernetes.io/component: notebook
app.kubernetes.io/instance: notebook-controller
app.kubernetes.io/managed-by: kfctl
app.kubernetes.io/name: notebook-controller
app.kubernetes.io/part-of: kubeflow
app.kubernetes.io/version: v0.6
kustomize.component: notebook-controller
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: notebook-controller
app.kubernetes.io/component: notebook
app.kubernetes.io/instance: notebook-controller
app.kubernetes.io/managed-by: kfctl
app.kubernetes.io/name: notebook-controller
app.kubernetes.io/part-of: kubeflow
app.kubernetes.io/version: v0.6
kustomize.component: notebook-controller
name: notebook-controller-deployment
namespace: kubeflow
spec:
selector:
matchLabels:
app: notebook-controller
app.kubernetes.io/component: notebook
app.kubernetes.io/instance: notebook-controller
app.kubernetes.io/managed-by: kfctl
app.kubernetes.io/name: notebook-controller
app.kubernetes.io/part-of: kubeflow
app.kubernetes.io/version: v0.6
kustomize.component: notebook-controller
template:
metadata:
labels:
app: notebook-controller
app.kubernetes.io/component: notebook
app.kubernetes.io/instance: notebook-controller
app.kubernetes.io/managed-by: kfctl
app.kubernetes.io/name: notebook-controller
app.kubernetes.io/part-of: kubeflow
app.kubernetes.io/version: v0.6
kustomize.component: notebook-controller
spec:
containers:
- command:
- /manager
env:
- name: USE_ISTIO
valueFrom:
configMapKeyRef:
name: notebook-controller-parameters
key: USE_ISTIO
- name: POD_LABELS
valueFrom:
configMapKeyRef:
name: notebook-controller-parameters
key: POD_LABELS
image: gcr.io/kubeflow-images-public/notebook-controller:v20190603-v0-175-geeca4530-e3b0c4
imagePullPolicy: Always
name: manager
serviceAccountName: notebook-controller-service-account
---
apiVersion: app.k8s.io/v1beta1
kind: Application
metadata:
labels:
app.kubernetes.io/component: notebook
app.kubernetes.io/instance: notebook-controller
app.kubernetes.io/managed-by: kfctl
app.kubernetes.io/name: notebook-controller
app.kubernetes.io/part-of: kubeflow
app.kubernetes.io/version: v0.6
name: notebook-controller
namespace: kubeflow
spec:
addOwnerRef: true
componentKinds:
- group: core
kind: Service
- group: apps
kind: Deployment
- group: core
kind: ServiceAccount
descriptor:
description: Notebooks controller allows users to create a custom resource \"Notebook\"
(jupyter notebook).
keywords:
- jupyter
- notebook
- notebook-controller
- jupyterhub
links:
- description: About
url: https://github.com/kubeflow/kubeflow/tree/master/components/notebook-controller
maintainers:
- email: lunkai@google.com
name: Lun-kai Hsu
owners:
- email: lunkai@gogle.com
name: Lun-kai Hsu
type: notebook-controller
version: v0.6.2
selector:
matchLabels:
app.kubernetes.io/component: notebook
app.kubernetes.io/instance: notebook-controller
app.kubernetes.io/managed-by: kfctl
app.kubernetes.io/name: notebook-controller
app.kubernetes.io/part-of: kubeflow
app.kubernetes.io/version: v0.6
apiVersion: v1
kind: ServiceAccount
metadata:
labels:
app: pipeline-runner
name: pipeline-runner
namespace: kubeflow
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRole
metadata:
labels:
app: pipeline-runner
name: pipeline-runner
rules:
- apiGroups:
- ""
resources:
- secrets
verbs:
- get
- apiGroups:
- ""
resources:
- configmaps
verbs:
- get
- watch
- list
- apiGroups:
- ""
resources:
- persistentvolumeclaims
verbs:
- create
- delete
- get
- apiGroups:
- snapshot.storage.k8s.io
resources:
- volumesnapshots
verbs:
- create
- delete
- get
- apiGroups:
- argoproj.io
resources:
- workflows
verbs:
- get
- list
- watch
- update
- patch
- apiGroups:
- ""
resources:
- pods
- pods/exec
- pods/log
- 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: ClusterRoleBinding
metadata:
labels:
app: pipeline-runner
name: pipeline-runner
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: pipeline-runner
subjects:
- kind: ServiceAccount
name: pipeline-runner
namespace: kubeflow
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
creationTimestamp: null
labels:
controller-tools.k8s.io: "1.0"
kustomize.component: profiles
name: profiles.kubeflow.org
spec:
group: kubeflow.org
names:
kind: Profile
plural: profiles
scope: Cluster
validation:
openAPIV3Schema:
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation
of an object. Servers should convert recognized schemas to the latest
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources'
type: string
kind:
description: 'Kind is a string value representing the REST resource this
object represents. Servers may infer this from the endpoint the client
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds'
type: string
metadata:
type: object
spec:
properties:
owner:
description: The profile owner
type: object
type: object
status:
properties:
message:
type: string
status:
description: 'INSERT ADDITIONAL STATUS FIELD - define observed state
of cluster Important: Run "make" to regenerate code after modifying
this file'
type: string
type: object
version: v1alpha1
status:
acceptedNames:
kind: ""
plural: ""
conditions: []
storedVersions: []
---
apiVersion: v1
kind: ServiceAccount
metadata:
labels:
kustomize.component: profiles
name: profiles-controller-service-account
namespace: kubeflow
---
apiVersion: v1
kind: ServiceAccount
metadata:
labels:
kustomize.component: profiles
name: profiles-default-service-account
namespace: kubeflow
---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
labels:
kustomize.component: profiles
name: profiles-default-role
namespace: kubeflow
rules:
- apiGroups:
- kubeflow.org
resources:
- profiles
verbs:
- create
- watch
- list
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
labels:
kustomize.component: profiles
name: profiles-default-role-binding
namespace: kubeflow
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: profiles-default-role
subjects:
- kind: ServiceAccount
name: profiles-default-service-account
namespace: kubeflow
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
labels:
kustomize.component: profiles
name: profiles-cluster-role-binding
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
- kind: ServiceAccount
name: profiles-controller-service-account
namespace: kubeflow
---
apiVersion: v1
data:
admin: {{ .Values.profiles.admin | quote }}
userid-header: {{ .Values.profiles.useridHeader | quote }}
userid-prefix: {{ .Values.profiles.useridPrefix | quote }}
kind: ConfigMap
metadata:
labels:
kustomize.component: profiles
name: profiles-profiles-parameters-m59gt2c45h
namespace: kubeflow
---
apiVersion: v1
kind: Service
metadata:
labels:
kustomize.component: profiles
name: profiles-kfam
namespace: kubeflow
spec:
ports:
- port: 8081
selector:
kustomize.component: profiles
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
kustomize.component: profiles
name: profiles-deployment
namespace: kubeflow
spec:
selector:
matchLabels:
kustomize.component: profiles
template:
metadata:
labels:
kustomize.component: profiles
spec:
containers:
- args:
- -userid-header
- {{ .Values.profiles.useridHeader | quote }}
- -userid-prefix
- {{ .Values.profiles.useridPrefix | quote }}
command:
- /manager
image: gcr.io/kubeflow-images-public/profile-controller:v20190619-v0-219-gbd3daa8c-dirty-1ced0e
imagePullPolicy: Always
name: manager
- args:
- -cluster-admin
- {{ .Values.profiles.admin | quote }}
- -userid-header
- {{ .Values.profiles.useridHeader | quote }}
- -userid-prefix
- {{ .Values.profiles.useridPrefix | quote }}
command:
- /opt/kubeflow/access-management
image: gcr.io/kubeflow-images-public/kfam:v20190612-v0-170-ga06cdb79-dirty-a33ee4
imagePullPolicy: Always
name: kfam
serviceAccountName: profiles-controller-service-account
---
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: kfam
namespace: kubeflow
spec:
gateways:
- kubeflow-gateway
hosts:
- '*'
http:
- headers:
request:
add:
x-forwarded-prefix: /kfam
match:
- uri:
prefix: /kfam/
rewrite:
uri: /kfam/
route:
- destination:
host: profiles-kfam.kubeflow.svc.cluster.local
port:
number: 8081
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
name: pytorchjobs.kubeflow.org
spec:
additionalPrinterColumns:
- JSONPath: .status.conditions[-1:].type
name: State
type: string
- JSONPath: .metadata.creationTimestamp
name: Age
type: date
group: kubeflow.org
names:
kind: PyTorchJob
plural: pytorchjobs
singular: pytorchjob
scope: Namespaced
subresources:
status: {}
validation:
openAPIV3Schema:
properties:
spec:
properties:
pytorchReplicaSpecs:
properties:
Master:
properties:
replicas:
maximum: 1
minimum: 1
type: integer
Worker:
properties:
replicas:
minimum: 1
type: integer
versions:
- name: v1beta2
served: true
storage: false
- name: v1
served: true
storage: true
apiVersion: v1
kind: ServiceAccount
metadata:
labels:
app: pytorch-operator
kustomize.component: pytorch-operator
name: pytorch-operator
namespace: kubeflow
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRole
metadata:
labels:
app: pytorch-operator
kustomize.component: pytorch-operator
name: pytorch-operator
rules:
- apiGroups:
- kubeflow.org
resources:
- pytorchjobs
- pytorchjobs/status
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: pytorch-operator
kustomize.component: pytorch-operator
name: pytorch-operator
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: pytorch-operator
subjects:
- kind: ServiceAccount
name: pytorch-operator
namespace: kubeflow
---
apiVersion: v1
data:
controller_config_file.yaml: |-
{
}
kind: ConfigMap
metadata:
labels:
kustomize.component: pytorch-operator
name: pytorch-operator-config
namespace: kubeflow
---
apiVersion: v1
kind: Service
metadata:
annotations:
prometheus.io/path: /metrics
prometheus.io/port: "8443"
prometheus.io/scrape: "true"
labels:
app: pytorch-operator
kustomize.component: pytorch-operator
name: pytorch-operator
namespace: kubeflow
spec:
ports:
- name: monitoring-port
port: 8443
targetPort: 8443
selector:
kustomize.component: pytorch-operator
name: pytorch-operator
type: ClusterIP
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
kustomize.component: pytorch-operator
name: pytorch-operator
namespace: kubeflow
spec:
replicas: 1
selector:
matchLabels:
kustomize.component: pytorch-operator
name: pytorch-operator
template:
metadata:
labels:
kustomize.component: pytorch-operator
name: pytorch-operator
spec:
containers:
- command:
- /pytorch-operator.v1
- --alsologtostderr
- -v=1
- --monitoring-port=8443
env:
- name: MY_POD_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
- name: MY_POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
image: gcr.io/kubeflow-images-public/pytorch-operator:v1.0.0-rc.0
name: pytorch-operator
volumeMounts:
- mountPath: /etc/config
name: config-volume
serviceAccountName: pytorch-operator
volumes:
- configMap:
name: pytorch-operator-config
name: config-volume
This source diff could not be displayed because it is too large. You can view the blob instead.
apiVersion: v1
kind: ServiceAccount
metadata:
labels:
app: spartakus
kustomize.component: spartakus
name: spartakus
namespace: kubeflow
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRole
metadata:
labels:
app: spartakus
kustomize.component: spartakus
name: spartakus
rules:
- apiGroups:
- ""
resources:
- nodes
verbs:
- get
- list
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
labels:
app: spartakus
kustomize.component: spartakus
name: spartakus
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: spartakus
subjects:
- kind: ServiceAccount
name: spartakus
namespace: kubeflow
---
apiVersion: v1
data:
usageId: {{ .Values.spartakus.usageId | quote }}
kind: ConfigMap
metadata:
labels:
kustomize.component: spartakus
name: spartakus-parameters
namespace: kubeflow
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: spartakus
kustomize.component: spartakus
name: spartakus-volunteer
namespace: kubeflow
spec:
replicas: 1
selector:
matchLabels:
kustomize.component: spartakus
template:
metadata:
labels:
app: spartakus-volunteer
kustomize.component: spartakus
spec:
containers:
- args:
- volunteer
- --cluster-id={{ .Values.spartakus.usageId | quote }}
- --database=https://stats-collector.kubeflow.org
image: gcr.io/google_containers/spartakus-amd64:v1.1.0
name: volunteer
serviceAccountName: spartakus
apiVersion: v1
data:
clusterDomain: {{ .Values.clusterDomain | quote }}
namespace: kubeflow
kind: ConfigMap
metadata:
labels:
kustomize.component: tensorboard
name: parameters-dgd4h256h5
namespace: kubeflow
---
apiVersion: v1
kind: Service
metadata:
annotations:
getambassador.io/config: |-
---
apiVersion: ambassador/v0
kind: Mapping
name: tb-mapping-tensorboard-get
prefix: /tensorboard/ tensorboard/
rewrite: /
method: GET
service: tensorboard.kubeflow:9000
labels:
app: tensorboard
kustomize.component: tensorboard
name: tensorboard
namespace: kubeflow
spec:
ports:
- name: tb
port: 9000
targetPort: 6006
selector:
app: tensorboard
kustomize.component: tensorboard
type: ClusterIP
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: tensorboard
kustomize.component: tensorboard
name: tensorboard
namespace: kubeflow
spec:
replicas: 1
selector:
matchLabels:
kustomize.component: tensorboard
template:
metadata:
labels:
app: tensorboard
kustomize.component: tensorboard
spec:
containers:
- args:
- --logdir=logs
- --port=6006
command:
- /usr/local/bin/tensorboard
image: tensorflow/tensorflow:1.8.0
imagePullPolicy: IfNotPresent
name: tensorboard
ports:
- containerPort: 6006
resources:
limits:
cpu: "4"
memory: 4Gi
requests:
cpu: "1"
memory: 1Gi
---
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: tensorboard
namespace: kubeflow
spec:
gateways:
- kubeflow-gateway
hosts:
- '*'
http:
- match:
- uri:
prefix: /tensorboard/tensorboard/
rewrite:
uri: /
route:
- destination:
host: tensorboard.kubeflow.svc.{{ .Values.clusterDomain }}
port:
number: 9000
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
labels:
kustomize.component: tf-job-operator
name: tfjobs.kubeflow.org
spec:
additionalPrinterColumns:
- JSONPath: .status.conditions[-1:].type
name: State
type: string
- JSONPath: .metadata.creationTimestamp
name: Age
type: date
group: kubeflow.org
names:
kind: TFJob
plural: tfjobs
singular: tfjob
scope: Namespaced
subresources:
status: {}
validation:
openAPIV3Schema:
properties:
spec:
properties:
tfReplicaSpecs:
properties:
Chief:
properties:
replicas:
maximum: 1
minimum: 1
type: integer
PS:
properties:
replicas:
minimum: 1
type: integer
Worker:
properties:
replicas:
minimum: 1
type: integer
version: v1
versions:
- name: v1
served: true
storage: true
- name: v1beta2
served: true
storage: false
---
apiVersion: v1
kind: ServiceAccount
metadata:
labels:
app: tf-job-dashboard
kustomize.component: tf-job-operator
name: tf-job-dashboard
namespace: kubeflow
---
apiVersion: v1
kind: ServiceAccount
metadata:
labels:
app: tf-job-operator
kustomize.component: tf-job-operator
name: tf-job-operator
namespace: kubeflow
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRole
metadata:
labels:
app: tf-job-dashboard
kustomize.component: tf-job-operator
name: tf-job-dashboard
rules:
- apiGroups:
- tensorflow.org
- kubeflow.org
resources:
- tfjobs
- tfjobs/status
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
- pods/log
- namespaces
verbs:
- '*'
- apiGroups:
- apps
- extensions
resources:
- deployments
verbs:
- '*'
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRole
metadata:
labels:
app: tf-job-operator
kustomize.component: tf-job-operator
name: tf-job-operator
rules:
- apiGroups:
- tensorflow.org
- kubeflow.org
resources:
- tfjobs
- tfjobs/status
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: tf-job-dashboard
kustomize.component: tf-job-operator
name: tf-job-dashboard
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: tf-job-dashboard
subjects:
- kind: ServiceAccount
name: tf-job-dashboard
namespace: kubeflow
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
labels:
app: tf-job-operator
kustomize.component: tf-job-operator
name: tf-job-operator
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: tf-job-operator
subjects:
- kind: ServiceAccount
name: tf-job-operator
namespace: kubeflow
---
apiVersion: v1
data:
clusterDomain: {{ .Values.clusterDomain | quote }}
namespace: kubeflow
kind: ConfigMap
metadata:
labels:
kustomize.component: tf-job-operator
name: parameters-dgd4h256h5
namespace: kubeflow
---
apiVersion: v1
data:
controller_config_file.yaml: |-
{
"grpcServerFilePath": "/opt/mlkube/grpc_tensorflow_server/grpc_tensorflow_server.py"
}
kind: ConfigMap
metadata:
labels:
kustomize.component: tf-job-operator
name: tf-job-operator-config
namespace: kubeflow
---
apiVersion: v1
kind: Service
metadata:
annotations:
getambassador.io/config: |-
---
apiVersion: ambassador/v0
kind: Mapping
name: tfjobs-ui-mapping
prefix: /tfjobs/
rewrite: /tfjobs/
service: tf-job-dashboard.kubeflow
labels:
kustomize.component: tf-job-operator
name: tf-job-dashboard
namespace: kubeflow
spec:
ports:
- port: 80
targetPort: 8080
selector:
kustomize.component: tf-job-operator
name: tf-job-dashboard
type: ClusterIP
---
apiVersion: v1
kind: Service
metadata:
annotations:
prometheus.io/path: /metrics
prometheus.io/port: "8443"
prometheus.io/scrape: "true"
labels:
app: tf-job-operator
kustomize.component: tf-job-operator
name: tf-job-operator
namespace: kubeflow
spec:
ports:
- name: monitoring-port
port: 8443
targetPort: 8443
selector:
kustomize.component: tf-job-operator
name: tf-job-operator
type: ClusterIP
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
kustomize.component: tf-job-operator
name: tf-job-dashboard
namespace: kubeflow
spec:
selector:
matchLabels:
kustomize.component: tf-job-operator
template:
metadata:
labels:
kustomize.component: tf-job-operator
name: tf-job-dashboard
spec:
containers:
- command:
- /opt/tensorflow_k8s/dashboard/backend
env:
- name: KUBEFLOW_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
image: gcr.io/kubeflow-images-public/tf_operator:v0.6.0.rc0
name: tf-job-dashboard
ports:
- containerPort: 8080
serviceAccountName: tf-job-dashboard
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
kustomize.component: tf-job-operator
name: tf-job-operator
namespace: kubeflow
spec:
replicas: 1
selector:
matchLabels:
kustomize.component: tf-job-operator
template:
metadata:
labels:
kustomize.component: tf-job-operator
name: tf-job-operator
spec:
containers:
- command:
- /opt/kubeflow/tf-operator.v1
- --alsologtostderr
- -v=1
- --monitoring-port=8443
env:
- name: MY_POD_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
- name: MY_POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
image: gcr.io/kubeflow-images-public/tf_operator:v0.6.0.rc0
name: tf-job-operator
volumeMounts:
- mountPath: /etc/config
name: config-volume
serviceAccountName: tf-job-operator
volumes:
- configMap:
name: tf-job-operator-config
name: config-volume
---
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: tf-job-dashboard
namespace: kubeflow
spec:
gateways:
- kubeflow-gateway
hosts:
- '*'
http:
- match:
- uri:
prefix: /tfjobs/
rewrite:
uri: /tfjobs/
route:
- destination:
host: tf-job-dashboard.kubeflow.svc.{{ .Values.clusterDomain }}
port:
number: 80
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