Change chart directory structure
This commit is contained in:
@@ -0,0 +1,68 @@
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: katib-controller
|
||||
namespace: kubeflow
|
||||
labels:
|
||||
katib.kubeflow.org/component: controller
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
katib.kubeflow.org/component: controller
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
katib.kubeflow.org/component: controller
|
||||
sidecar.istio.io/inject: "false"
|
||||
annotations:
|
||||
prometheus.io/scrape: "true"
|
||||
prometheus.io/port: "8080"
|
||||
spec:
|
||||
serviceAccountName: katib-controller
|
||||
containers:
|
||||
- name: katib-controller
|
||||
image: ghcr.io/kubeflow/katib/katib-controller
|
||||
command: ["./katib-controller"]
|
||||
args:
|
||||
- --katib-config=/katib-config.yaml
|
||||
ports:
|
||||
- containerPort: 8443
|
||||
name: webhook
|
||||
protocol: TCP
|
||||
- containerPort: 8080
|
||||
name: metrics
|
||||
protocol: TCP
|
||||
- containerPort: 18080
|
||||
name: healthz
|
||||
protocol: TCP
|
||||
readinessProbe:
|
||||
httpGet:
|
||||
path: /readyz
|
||||
port: healthz
|
||||
livenessProbe:
|
||||
httpGet:
|
||||
path: /healthz
|
||||
port: healthz
|
||||
env:
|
||||
- name: KATIB_CORE_NAMESPACE
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
fieldPath: metadata.namespace
|
||||
volumeMounts:
|
||||
- mountPath: /tmp/cert
|
||||
name: cert
|
||||
readOnly: true
|
||||
- mountPath: /katib-config.yaml
|
||||
name: katib-config
|
||||
subPath: katib-config.yaml
|
||||
readOnly: true
|
||||
volumes:
|
||||
- name: cert
|
||||
secret:
|
||||
defaultMode: 420
|
||||
secretName: katib-webhook-cert
|
||||
- name: katib-config
|
||||
configMap:
|
||||
name: katib-config
|
||||
@@ -0,0 +1,9 @@
|
||||
---
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
|
||||
resources:
|
||||
- controller.yaml
|
||||
- rbac.yaml
|
||||
- service.yaml
|
||||
- trial-templates.yaml
|
||||
@@ -0,0 +1,149 @@
|
||||
---
|
||||
kind: ClusterRole
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
metadata:
|
||||
name: katib-controller
|
||||
rules:
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- services
|
||||
verbs:
|
||||
- "get"
|
||||
- "list"
|
||||
- "watch"
|
||||
- "create"
|
||||
- "delete"
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- events
|
||||
verbs:
|
||||
- "create"
|
||||
- "patch"
|
||||
- "update"
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- serviceaccounts
|
||||
- persistentvolumes
|
||||
- persistentvolumeclaims
|
||||
verbs:
|
||||
- "get"
|
||||
- "list"
|
||||
- "watch"
|
||||
- "create"
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- namespaces
|
||||
- configmaps
|
||||
verbs:
|
||||
- "get"
|
||||
- "list"
|
||||
- "watch"
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- pods
|
||||
- pods/status
|
||||
verbs:
|
||||
- "get"
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- secrets
|
||||
verbs:
|
||||
- "get"
|
||||
- "list"
|
||||
- "watch"
|
||||
- "patch"
|
||||
- "update"
|
||||
- apiGroups:
|
||||
- apps
|
||||
resources:
|
||||
- deployments
|
||||
verbs:
|
||||
- "get"
|
||||
- "list"
|
||||
- "watch"
|
||||
- "create"
|
||||
- "delete"
|
||||
- apiGroups:
|
||||
- rbac.authorization.k8s.io
|
||||
resources:
|
||||
- roles
|
||||
- rolebindings
|
||||
verbs:
|
||||
- "get"
|
||||
- "create"
|
||||
- "list"
|
||||
- "watch"
|
||||
- apiGroups:
|
||||
- batch
|
||||
resources:
|
||||
- jobs
|
||||
- cronjobs
|
||||
verbs:
|
||||
- "get"
|
||||
- "list"
|
||||
- "watch"
|
||||
- "create"
|
||||
- "delete"
|
||||
- apiGroups:
|
||||
- kubeflow.org
|
||||
resources:
|
||||
- tfjobs
|
||||
- pytorchjobs
|
||||
- mpijobs
|
||||
- xgboostjobs
|
||||
verbs:
|
||||
- "get"
|
||||
- "list"
|
||||
- "watch"
|
||||
- "create"
|
||||
- "delete"
|
||||
- apiGroups:
|
||||
- kubeflow.org
|
||||
resources:
|
||||
- experiments
|
||||
- experiments/status
|
||||
- experiments/finalizers
|
||||
- trials
|
||||
- trials/status
|
||||
- trials/finalizers
|
||||
- suggestions
|
||||
- suggestions/status
|
||||
- suggestions/finalizers
|
||||
verbs:
|
||||
- "*"
|
||||
- apiGroups:
|
||||
- admissionregistration.k8s.io
|
||||
resources:
|
||||
- validatingwebhookconfigurations
|
||||
- mutatingwebhookconfigurations
|
||||
verbs:
|
||||
- "get"
|
||||
- "watch"
|
||||
- "list"
|
||||
- "patch"
|
||||
- "update"
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
name: katib-controller
|
||||
namespace: kubeflow
|
||||
---
|
||||
kind: ClusterRoleBinding
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
metadata:
|
||||
name: katib-controller
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: ClusterRole
|
||||
name: katib-controller
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: katib-controller
|
||||
namespace: kubeflow
|
||||
@@ -0,0 +1,26 @@
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: katib-controller
|
||||
namespace: kubeflow
|
||||
labels:
|
||||
katib.kubeflow.org/component: controller
|
||||
annotations:
|
||||
prometheus.io/port: "8080"
|
||||
prometheus.io/scheme: http
|
||||
prometheus.io/scrape: "true"
|
||||
spec:
|
||||
ports:
|
||||
- port: 443
|
||||
protocol: TCP
|
||||
targetPort: 8443
|
||||
name: webhook
|
||||
- name: metrics
|
||||
port: 8080
|
||||
targetPort: 8080
|
||||
- name: healthz
|
||||
port: 18080
|
||||
targetPort: 18080
|
||||
selector:
|
||||
katib.kubeflow.org/component: controller
|
||||
@@ -0,0 +1,77 @@
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: trial-templates
|
||||
namespace: kubeflow
|
||||
labels:
|
||||
katib.kubeflow.org/component: trial-templates
|
||||
data:
|
||||
defaultTrialTemplate.yaml: |-
|
||||
apiVersion: batch/v1
|
||||
kind: Job
|
||||
spec:
|
||||
template:
|
||||
spec:
|
||||
containers:
|
||||
- name: training-container
|
||||
image: ghcr.io/kubeflow/katib/pytorch-mnist-cpu:v0.18.0
|
||||
command:
|
||||
- "python3"
|
||||
- "/opt/pytorch-mnist/mnist.py"
|
||||
- "--epochs=1"
|
||||
- "--batch-size=16"
|
||||
- "--lr=${trialParameters.learningRate}"
|
||||
- "--momentum=${trialParameters.momentum}"
|
||||
restartPolicy: Never
|
||||
# For ConfigMap templates double quotes must set in commands to correct parse JSON parameters in Trial Template (e.g nn_config, architecture)
|
||||
enasCPUTemplate: |-
|
||||
apiVersion: batch/v1
|
||||
kind: Job
|
||||
spec:
|
||||
template:
|
||||
spec:
|
||||
containers:
|
||||
- name: training-container
|
||||
image: ghcr.io/kubeflow/katib/enas-cnn-cifar10-cpu:v0.18.0
|
||||
command:
|
||||
- python3
|
||||
- -u
|
||||
- RunTrial.py
|
||||
- --num_epochs=1
|
||||
- "--architecture=\"${trialParameters.neuralNetworkArchitecture}\""
|
||||
- "--nn_config=\"${trialParameters.neuralNetworkConfig}\""
|
||||
restartPolicy: Never
|
||||
pytorchJobTemplate: |-
|
||||
apiVersion: kubeflow.org/v1
|
||||
kind: PyTorchJob
|
||||
spec:
|
||||
pytorchReplicaSpecs:
|
||||
Master:
|
||||
replicas: 1
|
||||
restartPolicy: OnFailure
|
||||
template:
|
||||
spec:
|
||||
containers:
|
||||
- name: pytorch
|
||||
image: ghcr.io/kubeflow/katib/pytorch-mnist-cpu:v0.18.0
|
||||
command:
|
||||
- "python3"
|
||||
- "/opt/pytorch-mnist/mnist.py"
|
||||
- "--epochs=1"
|
||||
- "--lr=${trialParameters.learningRate}"
|
||||
- "--momentum=${trialParameters.momentum}"
|
||||
Worker:
|
||||
replicas: 2
|
||||
restartPolicy: OnFailure
|
||||
template:
|
||||
spec:
|
||||
containers:
|
||||
- name: pytorch
|
||||
image: ghcr.io/kubeflow/katib/pytorch-mnist-cpu:v0.18.0
|
||||
command:
|
||||
- "python3"
|
||||
- "/opt/pytorch-mnist/mnist.py"
|
||||
- "--epochs=1"
|
||||
- "--lr=${trialParameters.learningRate}"
|
||||
- "--momentum=${trialParameters.momentum}"
|
||||
@@ -0,0 +1,36 @@
|
||||
---
|
||||
apiVersion: apiextensions.k8s.io/v1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
name: experiments.kubeflow.org
|
||||
spec:
|
||||
group: kubeflow.org
|
||||
scope: Namespaced
|
||||
versions:
|
||||
- name: v1beta1
|
||||
served: true
|
||||
storage: true
|
||||
additionalPrinterColumns:
|
||||
- name: Type
|
||||
type: string
|
||||
jsonPath: .status.conditions[-1:].type
|
||||
- name: Status
|
||||
type: string
|
||||
jsonPath: .status.conditions[-1:].status
|
||||
- name: Age
|
||||
type: date
|
||||
jsonPath: .metadata.creationTimestamp
|
||||
subresources:
|
||||
status: {}
|
||||
schema:
|
||||
openAPIV3Schema:
|
||||
type: object
|
||||
x-kubernetes-preserve-unknown-fields: true
|
||||
names:
|
||||
kind: Experiment
|
||||
singular: experiment
|
||||
plural: experiments
|
||||
categories:
|
||||
- all
|
||||
- kubeflow
|
||||
- katib
|
||||
@@ -0,0 +1,8 @@
|
||||
---
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
|
||||
resources:
|
||||
- experiment.yaml
|
||||
- suggestion.yaml
|
||||
- trial.yaml
|
||||
@@ -0,0 +1,42 @@
|
||||
---
|
||||
apiVersion: apiextensions.k8s.io/v1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
name: suggestions.kubeflow.org
|
||||
spec:
|
||||
group: kubeflow.org
|
||||
scope: Namespaced
|
||||
versions:
|
||||
- name: v1beta1
|
||||
served: true
|
||||
storage: true
|
||||
additionalPrinterColumns:
|
||||
- name: Type
|
||||
type: string
|
||||
jsonPath: .status.conditions[-1:].type
|
||||
- name: Status
|
||||
type: string
|
||||
jsonPath: .status.conditions[-1:].status
|
||||
- name: Requested
|
||||
type: string
|
||||
jsonPath: .spec.requests
|
||||
- name: Assigned
|
||||
type: string
|
||||
jsonPath: .status.suggestionCount
|
||||
- name: Age
|
||||
type: date
|
||||
jsonPath: .metadata.creationTimestamp
|
||||
subresources:
|
||||
status: {}
|
||||
schema:
|
||||
openAPIV3Schema:
|
||||
type: object
|
||||
x-kubernetes-preserve-unknown-fields: true
|
||||
names:
|
||||
kind: Suggestion
|
||||
singular: suggestion
|
||||
plural: suggestions
|
||||
categories:
|
||||
- all
|
||||
- kubeflow
|
||||
- katib
|
||||
@@ -0,0 +1,36 @@
|
||||
---
|
||||
apiVersion: apiextensions.k8s.io/v1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
name: trials.kubeflow.org
|
||||
spec:
|
||||
group: kubeflow.org
|
||||
scope: Namespaced
|
||||
versions:
|
||||
- name: v1beta1
|
||||
served: true
|
||||
storage: true
|
||||
additionalPrinterColumns:
|
||||
- name: Type
|
||||
type: string
|
||||
jsonPath: .status.conditions[-1:].type
|
||||
- name: Status
|
||||
type: string
|
||||
jsonPath: .status.conditions[-1:].status
|
||||
- name: Age
|
||||
type: date
|
||||
jsonPath: .metadata.creationTimestamp
|
||||
subresources:
|
||||
status: {}
|
||||
schema:
|
||||
openAPIV3Schema:
|
||||
type: object
|
||||
x-kubernetes-preserve-unknown-fields: true
|
||||
names:
|
||||
kind: Trial
|
||||
singular: trial
|
||||
plural: trials
|
||||
categories:
|
||||
- all
|
||||
- kubeflow
|
||||
- katib
|
||||
@@ -0,0 +1,41 @@
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: katib-db-manager
|
||||
namespace: kubeflow
|
||||
labels:
|
||||
katib.kubeflow.org/component: db-manager
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
katib.kubeflow.org/component: db-manager
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
katib.kubeflow.org/component: db-manager
|
||||
sidecar.istio.io/inject: "false"
|
||||
spec:
|
||||
containers:
|
||||
- name: katib-db-manager
|
||||
image: ghcr.io/kubeflow/katib/katib-db-manager
|
||||
env:
|
||||
- name: DB_NAME
|
||||
value: "mysql"
|
||||
- name: DB_PASSWORD
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: katib-mysql-secrets
|
||||
key: MYSQL_ROOT_PASSWORD
|
||||
command:
|
||||
- "./katib-db-manager"
|
||||
ports:
|
||||
- name: api
|
||||
containerPort: 6789
|
||||
livenessProbe:
|
||||
grpc:
|
||||
port: 6789
|
||||
initialDelaySeconds: 10
|
||||
periodSeconds: 60
|
||||
failureThreshold: 5
|
||||
@@ -0,0 +1,7 @@
|
||||
---
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
|
||||
resources:
|
||||
- db-manager.yaml
|
||||
- service.yaml
|
||||
@@ -0,0 +1,16 @@
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: katib-db-manager
|
||||
namespace: kubeflow
|
||||
labels:
|
||||
katib.kubeflow.org/component: db-manager
|
||||
spec:
|
||||
type: ClusterIP
|
||||
ports:
|
||||
- port: 6789
|
||||
protocol: TCP
|
||||
name: api
|
||||
selector:
|
||||
katib.kubeflow.org/component: db-manager
|
||||
@@ -0,0 +1,9 @@
|
||||
---
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
|
||||
resources:
|
||||
- mysql.yaml
|
||||
- pvc.yaml
|
||||
- secret.yaml
|
||||
- service.yaml
|
||||
@@ -0,0 +1,73 @@
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: katib-mysql
|
||||
namespace: kubeflow
|
||||
labels:
|
||||
katib.kubeflow.org/component: mysql
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
katib.kubeflow.org/component: mysql
|
||||
strategy:
|
||||
type: Recreate
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
katib.kubeflow.org/component: mysql
|
||||
sidecar.istio.io/inject: "false"
|
||||
spec:
|
||||
containers:
|
||||
- name: katib-mysql
|
||||
image: mysql:8.0.29
|
||||
args:
|
||||
- --datadir
|
||||
- /var/lib/mysql/datadir
|
||||
env:
|
||||
- name: MYSQL_ROOT_PASSWORD
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: katib-mysql-secrets
|
||||
key: MYSQL_ROOT_PASSWORD
|
||||
- name: MYSQL_ALLOW_EMPTY_PASSWORD
|
||||
value: "true"
|
||||
- name: MYSQL_DATABASE
|
||||
value: "katib"
|
||||
ports:
|
||||
- name: dbapi
|
||||
containerPort: 3306
|
||||
readinessProbe:
|
||||
exec:
|
||||
command:
|
||||
- "/bin/bash"
|
||||
- "-c"
|
||||
- "mysql -D ${MYSQL_DATABASE} -u root -p${MYSQL_ROOT_PASSWORD} -e 'SELECT 1'"
|
||||
initialDelaySeconds: 10
|
||||
periodSeconds: 5
|
||||
failureThreshold: 10
|
||||
livenessProbe:
|
||||
exec:
|
||||
command:
|
||||
- "/bin/bash"
|
||||
- "-c"
|
||||
- "mysqladmin ping -u root -p${MYSQL_ROOT_PASSWORD}"
|
||||
initialDelaySeconds: 10
|
||||
periodSeconds: 5
|
||||
failureThreshold: 10
|
||||
startupProbe:
|
||||
exec:
|
||||
command:
|
||||
- "/bin/bash"
|
||||
- "-c"
|
||||
- "mysqladmin ping -u root -p${MYSQL_ROOT_PASSWORD}"
|
||||
periodSeconds: 15
|
||||
failureThreshold: 60
|
||||
volumeMounts:
|
||||
- name: katib-mysql
|
||||
mountPath: /var/lib/mysql
|
||||
volumes:
|
||||
- name: katib-mysql
|
||||
persistentVolumeClaim:
|
||||
claimName: katib-mysql
|
||||
@@ -0,0 +1,12 @@
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
name: katib-mysql
|
||||
namespace: kubeflow
|
||||
spec:
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
resources:
|
||||
requests:
|
||||
storage: 10Gi
|
||||
@@ -0,0 +1,8 @@
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Secret
|
||||
type: Opaque
|
||||
metadata:
|
||||
name: katib-mysql-secrets
|
||||
data:
|
||||
MYSQL_ROOT_PASSWORD: dGVzdA== # "test"
|
||||
@@ -0,0 +1,16 @@
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: katib-mysql
|
||||
namespace: kubeflow
|
||||
labels:
|
||||
katib.kubeflow.org/component: mysql
|
||||
spec:
|
||||
type: ClusterIP
|
||||
ports:
|
||||
- port: 3306
|
||||
protocol: TCP
|
||||
name: dbapi
|
||||
selector:
|
||||
katib.kubeflow.org/component: mysql
|
||||
@@ -0,0 +1,7 @@
|
||||
---
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
namespace: kubeflow
|
||||
resources:
|
||||
# Namespace.
|
||||
- namespace.yaml
|
||||
@@ -0,0 +1,7 @@
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Namespace
|
||||
metadata:
|
||||
name: kubeflow
|
||||
labels:
|
||||
katib.kubeflow.org/metrics-collector-injection: enabled
|
||||
@@ -0,0 +1,9 @@
|
||||
---
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
|
||||
resources:
|
||||
- postgres.yaml
|
||||
- pvc.yaml
|
||||
- secret.yaml
|
||||
- service.yaml
|
||||
@@ -0,0 +1,42 @@
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: katib-postgres
|
||||
namespace: kubeflow
|
||||
labels:
|
||||
katib.kubeflow.org/component: postgres
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
katib.kubeflow.org/component: postgres
|
||||
strategy:
|
||||
type: Recreate
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
katib.kubeflow.org/component: postgres
|
||||
sidecar.istio.io/inject: "false"
|
||||
annotations:
|
||||
spec:
|
||||
containers:
|
||||
- name: katib-postgres
|
||||
image: postgres:14.5-alpine
|
||||
envFrom:
|
||||
- secretRef:
|
||||
name: katib-postgres-secrets
|
||||
env:
|
||||
- name: PGDATA
|
||||
value: /var/lib/postgresql/data/pgdata
|
||||
ports:
|
||||
- name: postgres
|
||||
containerPort: 5432
|
||||
protocol: TCP
|
||||
volumeMounts:
|
||||
- name: katib-postgres
|
||||
mountPath: /var/lib/postgresql/data
|
||||
volumes:
|
||||
- name: katib-postgres
|
||||
persistentVolumeClaim:
|
||||
claimName: katib-postgres
|
||||
@@ -0,0 +1,12 @@
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
name: katib-postgres
|
||||
namespace: kubeflow
|
||||
spec:
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
resources:
|
||||
requests:
|
||||
storage: 3Gi
|
||||
@@ -0,0 +1,10 @@
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Secret
|
||||
type: Opaque
|
||||
metadata:
|
||||
name: katib-postgres-secrets
|
||||
data:
|
||||
POSTGRES_USER: a2F0aWI= # katib
|
||||
POSTGRES_PASSWORD: a2F0aWI= # katib
|
||||
POSTGRES_DB: a2F0aWI= # katib
|
||||
@@ -0,0 +1,16 @@
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: katib-postgres
|
||||
namespace: kubeflow
|
||||
labels:
|
||||
katib.kubeflow.org/component: postgres
|
||||
spec:
|
||||
type: ClusterIP
|
||||
ports:
|
||||
- port: 5432
|
||||
protocol: TCP
|
||||
name: dbapi
|
||||
selector:
|
||||
katib.kubeflow.org/component: postgres
|
||||
@@ -0,0 +1,8 @@
|
||||
---
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
|
||||
resources:
|
||||
- rbac.yaml
|
||||
- service.yaml
|
||||
- ui.yaml
|
||||
@@ -0,0 +1,52 @@
|
||||
---
|
||||
kind: ClusterRole
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
metadata:
|
||||
name: katib-ui
|
||||
rules:
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- configmaps
|
||||
- namespaces
|
||||
verbs:
|
||||
- "*"
|
||||
- apiGroups:
|
||||
- kubeflow.org
|
||||
resources:
|
||||
- experiments
|
||||
- trials
|
||||
- suggestions
|
||||
verbs:
|
||||
- "*"
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- pods
|
||||
verbs:
|
||||
- list
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- pods/log
|
||||
verbs:
|
||||
- get
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
name: katib-ui
|
||||
namespace: kubeflow
|
||||
---
|
||||
kind: ClusterRoleBinding
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
metadata:
|
||||
name: katib-ui
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: ClusterRole
|
||||
name: katib-ui
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: katib-ui
|
||||
namespace: kubeflow
|
||||
@@ -0,0 +1,17 @@
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: katib-ui
|
||||
namespace: kubeflow
|
||||
labels:
|
||||
katib.kubeflow.org/component: ui
|
||||
spec:
|
||||
type: ClusterIP
|
||||
ports:
|
||||
- port: 80
|
||||
protocol: TCP
|
||||
name: ui
|
||||
targetPort: 8080
|
||||
selector:
|
||||
katib.kubeflow.org/component: ui
|
||||
@@ -0,0 +1,35 @@
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: katib-ui
|
||||
namespace: kubeflow
|
||||
labels:
|
||||
katib.kubeflow.org/component: ui
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
katib.kubeflow.org/component: ui
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
katib.kubeflow.org/component: ui
|
||||
sidecar.istio.io/inject: "false"
|
||||
spec:
|
||||
containers:
|
||||
- name: katib-ui
|
||||
image: ghcr.io/kubeflow/katib/katib-ui
|
||||
command:
|
||||
- "./katib-ui"
|
||||
args:
|
||||
- "--port=8080"
|
||||
env:
|
||||
- name: KATIB_CORE_NAMESPACE
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
fieldPath: metadata.namespace
|
||||
ports:
|
||||
- name: ui
|
||||
containerPort: 8080
|
||||
serviceAccountName: katib-ui
|
||||
@@ -0,0 +1,6 @@
|
||||
---
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
|
||||
resources:
|
||||
- webhooks.yaml
|
||||
@@ -0,0 +1,74 @@
|
||||
---
|
||||
apiVersion: admissionregistration.k8s.io/v1
|
||||
kind: ValidatingWebhookConfiguration
|
||||
metadata:
|
||||
name: katib.kubeflow.org
|
||||
webhooks:
|
||||
- name: validator.experiment.katib.kubeflow.org
|
||||
sideEffects: None
|
||||
admissionReviewVersions:
|
||||
- v1
|
||||
clientConfig:
|
||||
service:
|
||||
name: katib-controller
|
||||
namespace: kubeflow
|
||||
path: /validate-experiment
|
||||
rules:
|
||||
- apiGroups:
|
||||
- kubeflow.org
|
||||
apiVersions:
|
||||
- v1beta1
|
||||
operations:
|
||||
- CREATE
|
||||
- UPDATE
|
||||
resources:
|
||||
- experiments
|
||||
---
|
||||
apiVersion: admissionregistration.k8s.io/v1
|
||||
kind: MutatingWebhookConfiguration
|
||||
metadata:
|
||||
name: katib.kubeflow.org
|
||||
webhooks:
|
||||
- name: defaulter.experiment.katib.kubeflow.org
|
||||
sideEffects: None
|
||||
admissionReviewVersions:
|
||||
- v1
|
||||
clientConfig:
|
||||
service:
|
||||
name: katib-controller
|
||||
namespace: kubeflow
|
||||
path: /mutate-experiment
|
||||
rules:
|
||||
- apiGroups:
|
||||
- kubeflow.org
|
||||
apiVersions:
|
||||
- v1beta1
|
||||
operations:
|
||||
- CREATE
|
||||
- UPDATE
|
||||
resources:
|
||||
- experiments
|
||||
- name: mutator.pod.katib.kubeflow.org
|
||||
sideEffects: None
|
||||
admissionReviewVersions:
|
||||
- v1
|
||||
clientConfig:
|
||||
service:
|
||||
name: katib-controller
|
||||
namespace: kubeflow
|
||||
path: /mutate-pod
|
||||
namespaceSelector:
|
||||
matchLabels:
|
||||
katib.kubeflow.org/metrics-collector-injection: enabled
|
||||
matchConditions:
|
||||
- name: 'exclude-katib-controller'
|
||||
expression: 'request.userInfo.username != "system:serviceaccount:kubeflow:katib-controller"'
|
||||
rules:
|
||||
- apiGroups:
|
||||
- ""
|
||||
apiVersions:
|
||||
- v1
|
||||
operations:
|
||||
- CREATE
|
||||
resources:
|
||||
- pods
|
||||
+22
@@ -0,0 +1,22 @@
|
||||
---
|
||||
apiVersion: cert-manager.io/v1
|
||||
kind: Certificate
|
||||
metadata:
|
||||
name: katib-webhook-cert
|
||||
spec:
|
||||
isCA: true
|
||||
commonName: $(KATIB_SERVICE_NAME).$(KATIB_NAMESPACE).svc
|
||||
dnsNames:
|
||||
- $(KATIB_SERVICE_NAME).$(KATIB_NAMESPACE).svc
|
||||
- $(KATIB_SERVICE_NAME).$(KATIB_NAMESPACE).svc.cluster.local
|
||||
issuerRef:
|
||||
kind: Issuer
|
||||
name: katib-selfsigned-issuer
|
||||
secretName: katib-webhook-cert
|
||||
---
|
||||
apiVersion: cert-manager.io/v1
|
||||
kind: Issuer
|
||||
metadata:
|
||||
name: katib-selfsigned-issuer
|
||||
spec:
|
||||
selfSigned: {}
|
||||
+58
@@ -0,0 +1,58 @@
|
||||
---
|
||||
apiVersion: config.kubeflow.org/v1beta1
|
||||
kind: KatibConfig
|
||||
init:
|
||||
controller:
|
||||
webhookPort: 8443
|
||||
trialResources:
|
||||
- Job.v1.batch
|
||||
- TFJob.v1.kubeflow.org
|
||||
- PyTorchJob.v1.kubeflow.org
|
||||
- MPIJob.v1.kubeflow.org
|
||||
- XGBoostJob.v1.kubeflow.org
|
||||
runtime:
|
||||
metricsCollectors:
|
||||
- kind: StdOut
|
||||
image: ghcr.io/kubeflow/katib/file-metrics-collector:v0.18.0
|
||||
- kind: File
|
||||
image: ghcr.io/kubeflow/katib/file-metrics-collector:v0.18.0
|
||||
- kind: TensorFlowEvent
|
||||
image: ghcr.io/kubeflow/katib/tfevent-metrics-collector:v0.18.0
|
||||
resources:
|
||||
limits:
|
||||
memory: 1Gi
|
||||
suggestions:
|
||||
- algorithmName: random
|
||||
image: ghcr.io/kubeflow/katib/suggestion-hyperopt:v0.18.0
|
||||
- algorithmName: tpe
|
||||
image: ghcr.io/kubeflow/katib/suggestion-hyperopt:v0.18.0
|
||||
- algorithmName: grid
|
||||
image: ghcr.io/kubeflow/katib/suggestion-optuna:v0.18.0
|
||||
- algorithmName: hyperband
|
||||
image: ghcr.io/kubeflow/katib/suggestion-hyperband:v0.18.0
|
||||
- algorithmName: bayesianoptimization
|
||||
image: ghcr.io/kubeflow/katib/suggestion-skopt:v0.18.0
|
||||
- algorithmName: cmaes
|
||||
image: ghcr.io/kubeflow/katib/suggestion-goptuna:v0.18.0
|
||||
- algorithmName: sobol
|
||||
image: ghcr.io/kubeflow/katib/suggestion-goptuna:v0.18.0
|
||||
- algorithmName: multivariate-tpe
|
||||
image: ghcr.io/kubeflow/katib/suggestion-optuna:v0.18.0
|
||||
- algorithmName: enas
|
||||
image: ghcr.io/kubeflow/katib/suggestion-enas:v0.18.0
|
||||
resources:
|
||||
limits:
|
||||
memory: 400Mi
|
||||
- algorithmName: darts
|
||||
image: ghcr.io/kubeflow/katib/suggestion-darts:v0.18.0
|
||||
- algorithmName: pbt
|
||||
image: ghcr.io/kubeflow/katib/suggestion-pbt:v0.18.0
|
||||
persistentVolumeClaimSpec:
|
||||
accessModes:
|
||||
- ReadWriteMany
|
||||
resources:
|
||||
requests:
|
||||
storage: 5Gi
|
||||
earlyStoppings:
|
||||
- algorithmName: medianstop
|
||||
image: ghcr.io/kubeflow/katib/earlystopping-medianstop:v0.18.0
|
||||
+69
@@ -0,0 +1,69 @@
|
||||
---
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
namespace: kubeflow
|
||||
resources:
|
||||
# Namespace.
|
||||
- ../../components/namespace
|
||||
# Katib controller.
|
||||
- ../../components/controller/
|
||||
# Katib CRDs.
|
||||
- ../../components/crd/
|
||||
# Katib DB manager.
|
||||
- ../../components/db-manager/
|
||||
# Katib DB mysql.
|
||||
- ../../components/mysql/
|
||||
# Katib UI.
|
||||
- ../../components/ui/
|
||||
# Katib webhooks.
|
||||
- ../../components/webhook/
|
||||
# Cert-manager certificate for webhooks
|
||||
- certificate.yaml
|
||||
images:
|
||||
- name: ghcr.io/kubeflow/katib/katib-controller
|
||||
newName: ghcr.io/kubeflow/katib/katib-controller
|
||||
newTag: v0.18.0
|
||||
- name: ghcr.io/kubeflow/katib/katib-db-manager
|
||||
newName: ghcr.io/kubeflow/katib/katib-db-manager
|
||||
newTag: v0.18.0
|
||||
- name: ghcr.io/kubeflow/katib/katib-ui
|
||||
newName: ghcr.io/kubeflow/katib/katib-ui
|
||||
newTag: v0.18.0
|
||||
|
||||
patchesStrategicMerge:
|
||||
- patches/katib-cert-injection.yaml
|
||||
|
||||
vars:
|
||||
- fieldref:
|
||||
fieldPath: metadata.namespace
|
||||
name: KATIB_NAMESPACE
|
||||
objref:
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
name: katib-controller
|
||||
- fieldref:
|
||||
fieldPath: metadata.name
|
||||
name: KATIB_SERVICE_NAME
|
||||
objref:
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
name: katib-controller
|
||||
- name: KATIB_CERT_NAME
|
||||
objref:
|
||||
kind: Certificate
|
||||
group: cert-manager.io
|
||||
version: v1
|
||||
name: katib-webhook-cert
|
||||
fieldref:
|
||||
fieldpath: metadata.name
|
||||
|
||||
configurations:
|
||||
- params.yaml
|
||||
|
||||
configMapGenerator:
|
||||
- name: katib-config
|
||||
behavior: create
|
||||
files:
|
||||
- katib-config.yaml
|
||||
options:
|
||||
disableNameSuffixHash: true
|
||||
@@ -0,0 +1,19 @@
|
||||
---
|
||||
varReference:
|
||||
- path: spec/commonName
|
||||
kind: Certificate
|
||||
- path: spec/dnsNames
|
||||
kind: Certificate
|
||||
- path: spec/issuerRef/name
|
||||
kind: Certificate
|
||||
- path: metadata/annotations
|
||||
kind: MutatingWebhookConfiguration
|
||||
- path: metadata/annotations
|
||||
kind: ValidatingWebhookConfiguration
|
||||
nameReference:
|
||||
- kind: Issuer
|
||||
group: cert-manager.io
|
||||
fieldSpecs:
|
||||
- kind: Certificate
|
||||
group: cert-manager.io
|
||||
path: spec/issuerRef/name
|
||||
+14
@@ -0,0 +1,14 @@
|
||||
---
|
||||
apiVersion: admissionregistration.k8s.io/v1
|
||||
kind: ValidatingWebhookConfiguration
|
||||
metadata:
|
||||
name: katib.kubeflow.org
|
||||
annotations:
|
||||
cert-manager.io/inject-ca-from: $(KATIB_NAMESPACE)/$(KATIB_CERT_NAME)
|
||||
---
|
||||
apiVersion: admissionregistration.k8s.io/v1
|
||||
kind: MutatingWebhookConfiguration
|
||||
metadata:
|
||||
name: katib.kubeflow.org
|
||||
annotations:
|
||||
cert-manager.io/inject-ca-from: $(KATIB_NAMESPACE)/$(KATIB_CERT_NAME)
|
||||
+60
@@ -0,0 +1,60 @@
|
||||
---
|
||||
apiVersion: config.kubeflow.org/v1beta1
|
||||
kind: KatibConfig
|
||||
init:
|
||||
certGenerator:
|
||||
enable: true
|
||||
controller:
|
||||
webhookPort: 8443
|
||||
trialResources:
|
||||
- Job.v1.batch
|
||||
- TFJob.v1.kubeflow.org
|
||||
- PyTorchJob.v1.kubeflow.org
|
||||
- MPIJob.v1.kubeflow.org
|
||||
- XGBoostJob.v1.kubeflow.org
|
||||
runtime:
|
||||
metricsCollectors:
|
||||
- kind: StdOut
|
||||
image: ghcr.io/kubeflow/katib/file-metrics-collector:v0.18.0
|
||||
- kind: File
|
||||
image: ghcr.io/kubeflow/katib/file-metrics-collector:v0.18.0
|
||||
- kind: TensorFlowEvent
|
||||
image: ghcr.io/kubeflow/katib/tfevent-metrics-collector:v0.18.0
|
||||
resources:
|
||||
limits:
|
||||
memory: 1Gi
|
||||
suggestions:
|
||||
- algorithmName: random
|
||||
image: ghcr.io/kubeflow/katib/suggestion-hyperopt:v0.18.0
|
||||
- algorithmName: tpe
|
||||
image: ghcr.io/kubeflow/katib/suggestion-hyperopt:v0.18.0
|
||||
- algorithmName: grid
|
||||
image: ghcr.io/kubeflow/katib/suggestion-optuna:v0.18.0
|
||||
- algorithmName: hyperband
|
||||
image: ghcr.io/kubeflow/katib/suggestion-hyperband:v0.18.0
|
||||
- algorithmName: bayesianoptimization
|
||||
image: ghcr.io/kubeflow/katib/suggestion-skopt:v0.18.0
|
||||
- algorithmName: cmaes
|
||||
image: ghcr.io/kubeflow/katib/suggestion-goptuna:v0.18.0
|
||||
- algorithmName: sobol
|
||||
image: ghcr.io/kubeflow/katib/suggestion-goptuna:v0.18.0
|
||||
- algorithmName: multivariate-tpe
|
||||
image: ghcr.io/kubeflow/katib/suggestion-optuna:v0.18.0
|
||||
- algorithmName: enas
|
||||
image: ghcr.io/kubeflow/katib/suggestion-enas:v0.18.0
|
||||
resources:
|
||||
limits:
|
||||
memory: 400Mi
|
||||
- algorithmName: darts
|
||||
image: ghcr.io/kubeflow/katib/suggestion-darts:v0.18.0
|
||||
- algorithmName: pbt
|
||||
image: ghcr.io/kubeflow/katib/suggestion-pbt:v0.18.0
|
||||
persistentVolumeClaimSpec:
|
||||
accessModes:
|
||||
- ReadWriteMany
|
||||
resources:
|
||||
requests:
|
||||
storage: 5Gi
|
||||
earlyStoppings:
|
||||
- algorithmName: medianstop
|
||||
image: ghcr.io/kubeflow/katib/earlystopping-medianstop:v0.18.0
|
||||
+45
@@ -0,0 +1,45 @@
|
||||
---
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
namespace: kubeflow
|
||||
resources:
|
||||
# Namespace.
|
||||
- ../../components/namespace/
|
||||
# Katib controller.
|
||||
- ../../components/controller/
|
||||
# Katib CRDs.
|
||||
- ../../components/crd/
|
||||
# Katib DB manager.
|
||||
- ../../components/db-manager/
|
||||
# Katib UI.
|
||||
- ../../components/ui/
|
||||
# Katib webhooks.
|
||||
- ../../components/webhook/
|
||||
images:
|
||||
- name: ghcr.io/kubeflow/katib/katib-controller
|
||||
newName: ghcr.io/kubeflow/katib/katib-controller
|
||||
newTag: v0.18.0
|
||||
- name: ghcr.io/kubeflow/katib/katib-db-manager
|
||||
newName: ghcr.io/kubeflow/katib/katib-db-manager
|
||||
newTag: v0.18.0
|
||||
- name: ghcr.io/kubeflow/katib/katib-ui
|
||||
newName: ghcr.io/kubeflow/katib/katib-ui
|
||||
newTag: v0.18.0
|
||||
patchesStrategicMerge:
|
||||
- patches/db-manager.yaml
|
||||
# Modify katib-mysql-secrets with parameters for the DB.
|
||||
secretGenerator:
|
||||
- name: katib-mysql-secrets
|
||||
envs:
|
||||
- secrets.env
|
||||
# Secret for webhooks certs.
|
||||
- name: katib-webhook-cert
|
||||
options:
|
||||
disableNameSuffixHash: true
|
||||
configMapGenerator:
|
||||
- name: katib-config
|
||||
behavior: create
|
||||
files:
|
||||
- katib-config.yaml
|
||||
options:
|
||||
disableNameSuffixHash: true
|
||||
+39
@@ -0,0 +1,39 @@
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: katib-db-manager
|
||||
namespace: kubeflow
|
||||
spec:
|
||||
template:
|
||||
spec:
|
||||
containers:
|
||||
- name: katib-db-manager
|
||||
env:
|
||||
- name: DB_NAME
|
||||
value: mysql
|
||||
- name: DB_USER
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: katib-mysql-secrets
|
||||
key: DB_USER
|
||||
- name: DB_PASSWORD
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: katib-mysql-secrets
|
||||
key: DB_PASSWORD
|
||||
- name: KATIB_MYSQL_DB_DATABASE
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: katib-mysql-secrets
|
||||
key: KATIB_MYSQL_DB_DATABASE
|
||||
- name: KATIB_MYSQL_DB_HOST
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: katib-mysql-secrets
|
||||
key: KATIB_MYSQL_DB_HOST
|
||||
- name: KATIB_MYSQL_DB_PORT
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: katib-mysql-secrets
|
||||
key: KATIB_MYSQL_DB_PORT
|
||||
@@ -0,0 +1,5 @@
|
||||
KATIB_MYSQL_DB_DATABASE=
|
||||
KATIB_MYSQL_DB_HOST=
|
||||
KATIB_MYSQL_DB_PORT=
|
||||
DB_USER=
|
||||
DB_PASSWORD=
|
||||
+61
@@ -0,0 +1,61 @@
|
||||
---
|
||||
apiVersion: config.kubeflow.org/v1beta1
|
||||
kind: KatibConfig
|
||||
init:
|
||||
certGenerator:
|
||||
enable: true
|
||||
controller:
|
||||
webhookPort: 8443
|
||||
enableLeaderElection: true
|
||||
trialResources:
|
||||
- Job.v1.batch
|
||||
- TFJob.v1.kubeflow.org
|
||||
- PyTorchJob.v1.kubeflow.org
|
||||
- MPIJob.v1.kubeflow.org
|
||||
- XGBoostJob.v1.kubeflow.org
|
||||
runtime:
|
||||
metricsCollectors:
|
||||
- kind: StdOut
|
||||
image: ghcr.io/kubeflow/katib/file-metrics-collector:v0.18.0
|
||||
- kind: File
|
||||
image: ghcr.io/kubeflow/katib/file-metrics-collector:v0.18.0
|
||||
- kind: TensorFlowEvent
|
||||
image: ghcr.io/kubeflow/katib/tfevent-metrics-collector:v0.18.0
|
||||
resources:
|
||||
limits:
|
||||
memory: 1Gi
|
||||
suggestions:
|
||||
- algorithmName: random
|
||||
image: ghcr.io/kubeflow/katib/suggestion-hyperopt:v0.18.0
|
||||
- algorithmName: tpe
|
||||
image: ghcr.io/kubeflow/katib/suggestion-hyperopt:v0.18.0
|
||||
- algorithmName: grid
|
||||
image: ghcr.io/kubeflow/katib/suggestion-optuna:v0.18.0
|
||||
- algorithmName: hyperband
|
||||
image: ghcr.io/kubeflow/katib/suggestion-hyperband:v0.18.0
|
||||
- algorithmName: bayesianoptimization
|
||||
image: ghcr.io/kubeflow/katib/suggestion-skopt:v0.18.0
|
||||
- algorithmName: cmaes
|
||||
image: ghcr.io/kubeflow/katib/suggestion-goptuna:v0.18.0
|
||||
- algorithmName: sobol
|
||||
image: ghcr.io/kubeflow/katib/suggestion-goptuna:v0.18.0
|
||||
- algorithmName: multivariate-tpe
|
||||
image: ghcr.io/kubeflow/katib/suggestion-optuna:v0.18.0
|
||||
- algorithmName: enas
|
||||
image: ghcr.io/kubeflow/katib/suggestion-enas:v0.18.0
|
||||
resources:
|
||||
limits:
|
||||
memory: 400Mi
|
||||
- algorithmName: darts
|
||||
image: ghcr.io/kubeflow/katib/suggestion-darts:v0.18.0
|
||||
- algorithmName: pbt
|
||||
image: ghcr.io/kubeflow/katib/suggestion-pbt:v0.18.0
|
||||
persistentVolumeClaimSpec:
|
||||
accessModes:
|
||||
- ReadWriteMany
|
||||
resources:
|
||||
requests:
|
||||
storage: 5Gi
|
||||
earlyStoppings:
|
||||
- algorithmName: medianstop
|
||||
image: ghcr.io/kubeflow/katib/earlystopping-medianstop:v0.18.0
|
||||
+18
@@ -0,0 +1,18 @@
|
||||
---
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
namespace: kubeflow
|
||||
resources:
|
||||
- ../katib-standalone
|
||||
# rbac for leader-election
|
||||
- leader-election-rbac.yaml
|
||||
replicas:
|
||||
- name: katib-controller
|
||||
count: 2
|
||||
configMapGenerator:
|
||||
- name: katib-config
|
||||
behavior: replace
|
||||
files:
|
||||
- katib-config.yaml
|
||||
options:
|
||||
disableNameSuffixHash: true
|
||||
+27
@@ -0,0 +1,27 @@
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: Role
|
||||
metadata:
|
||||
name: leader-election
|
||||
namespace: kubeflow
|
||||
rules:
|
||||
- apiGroups:
|
||||
- coordination.k8s.io
|
||||
resources:
|
||||
- leases
|
||||
verbs:
|
||||
- "*"
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: RoleBinding
|
||||
metadata:
|
||||
name: leader-election
|
||||
namespace: kubeflow
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: Role
|
||||
name: leader-election
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: katib-controller
|
||||
namespace: kubeflow
|
||||
@@ -0,0 +1,58 @@
|
||||
---
|
||||
apiVersion: config.kubeflow.org/v1beta1
|
||||
kind: KatibConfig
|
||||
init:
|
||||
controller:
|
||||
webhookPort: 8443
|
||||
trialResources:
|
||||
- Job.v1.batch
|
||||
- TFJob.v1.kubeflow.org
|
||||
- PyTorchJob.v1.kubeflow.org
|
||||
- MPIJob.v1.kubeflow.org
|
||||
- XGBoostJob.v1.kubeflow.org
|
||||
runtime:
|
||||
metricsCollectors:
|
||||
- kind: StdOut
|
||||
image: ghcr.io/kubeflow/katib/file-metrics-collector:v0.18.0
|
||||
- kind: File
|
||||
image: ghcr.io/kubeflow/katib/file-metrics-collector:v0.18.0
|
||||
- kind: TensorFlowEvent
|
||||
image: ghcr.io/kubeflow/katib/tfevent-metrics-collector:v0.18.0
|
||||
resources:
|
||||
limits:
|
||||
memory: 1Gi
|
||||
suggestions:
|
||||
- algorithmName: random
|
||||
image: ghcr.io/kubeflow/katib/suggestion-hyperopt:v0.18.0
|
||||
- algorithmName: tpe
|
||||
image: ghcr.io/kubeflow/katib/suggestion-hyperopt:v0.18.0
|
||||
- algorithmName: grid
|
||||
image: ghcr.io/kubeflow/katib/suggestion-optuna:v0.18.0
|
||||
- algorithmName: hyperband
|
||||
image: ghcr.io/kubeflow/katib/suggestion-hyperband:v0.18.0
|
||||
- algorithmName: bayesianoptimization
|
||||
image: ghcr.io/kubeflow/katib/suggestion-skopt:v0.18.0
|
||||
- algorithmName: cmaes
|
||||
image: ghcr.io/kubeflow/katib/suggestion-goptuna:v0.18.0
|
||||
- algorithmName: sobol
|
||||
image: ghcr.io/kubeflow/katib/suggestion-goptuna:v0.18.0
|
||||
- algorithmName: multivariate-tpe
|
||||
image: ghcr.io/kubeflow/katib/suggestion-optuna:v0.18.0
|
||||
- algorithmName: enas
|
||||
image: ghcr.io/kubeflow/katib/suggestion-enas:v0.18.0
|
||||
resources:
|
||||
limits:
|
||||
memory: 400Mi
|
||||
- algorithmName: darts
|
||||
image: ghcr.io/kubeflow/katib/suggestion-darts:v0.18.0
|
||||
- algorithmName: pbt
|
||||
image: ghcr.io/kubeflow/katib/suggestion-pbt:v0.18.0
|
||||
persistentVolumeClaimSpec:
|
||||
accessModes:
|
||||
- ReadWriteMany
|
||||
resources:
|
||||
requests:
|
||||
storage: 5Gi
|
||||
earlyStoppings:
|
||||
- algorithmName: medianstop
|
||||
image: ghcr.io/kubeflow/katib/earlystopping-medianstop:v0.18.0
|
||||
+72
@@ -0,0 +1,72 @@
|
||||
# This kustomization copies the `katib-standalone` one with following exclusions:
|
||||
# - No Job is spawned to generate TLS key for `katib-controller` Service
|
||||
# - Instead, the Service and WebhookConfigurations linked to it are annotated
|
||||
# for OpenShift service controller to handle TLS certification.
|
||||
#
|
||||
# Requires OpenShift version: 4.4+
|
||||
#
|
||||
# To achieve this, run:
|
||||
#
|
||||
# `kustomize build ./manifests/v1beta1/installs/katib-openshift | oc apply -f - -l type!=local`
|
||||
---
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
namespace: kubeflow
|
||||
resources:
|
||||
# Namespace.
|
||||
- ../../components/namespace/
|
||||
# Katib controller.
|
||||
- ../../components/controller/
|
||||
# Katib CRDs.
|
||||
- ../../components/crd/
|
||||
# Katib DB manager.
|
||||
- ../../components/db-manager/
|
||||
# Katib DB mysql.
|
||||
- ../../components/mysql/
|
||||
# Katib UI.
|
||||
- ../../components/ui/
|
||||
# Katib webhooks.
|
||||
- ../../components/webhook/
|
||||
images:
|
||||
- name: ghcr.io/kubeflow/katib/katib-controller
|
||||
newName: ghcr.io/kubeflow/katib/katib-controller
|
||||
newTag: v0.18.0
|
||||
- name: ghcr.io/kubeflow/katib/katib-db-manager
|
||||
newName: ghcr.io/kubeflow/katib/katib-db-manager
|
||||
newTag: v0.18.0
|
||||
- name: ghcr.io/kubeflow/katib/katib-ui
|
||||
newName: ghcr.io/kubeflow/katib/katib-ui
|
||||
newTag: v0.18.0
|
||||
|
||||
patchesJson6902:
|
||||
# Annotate Service to delegate TLS-secret generation to OpenShift service controller
|
||||
# https://docs.openshift.com/container-platform/4.6/security/certificates/service-serving-certificate.html#add-service-certificate_service-serving-certificate
|
||||
- target:
|
||||
group: ""
|
||||
version: v1
|
||||
kind: Service
|
||||
name: katib-controller
|
||||
namespace: kubeflow
|
||||
path: patches/service-serving-cert.yaml
|
||||
# Annotate WebhookConfigurations to delegate `caBundle` population to OpenShift service controller
|
||||
# https://docs.openshift.com/container-platform/4.6/security/certificates/service-serving-certificate.html#add-service-certificate-mutating-webhook_service-serving-certificate
|
||||
- target:
|
||||
group: admissionregistration.k8s.io
|
||||
version: v1
|
||||
kind: ValidatingWebhookConfiguration
|
||||
name: katib.kubeflow.org
|
||||
path: patches/webhook-inject-cabundle.yaml
|
||||
- target:
|
||||
group: admissionregistration.k8s.io
|
||||
version: v1
|
||||
kind: MutatingWebhookConfiguration
|
||||
name: katib.kubeflow.org
|
||||
path: patches/webhook-inject-cabundle.yaml
|
||||
|
||||
configMapGenerator:
|
||||
- name: katib-config
|
||||
behavior: create
|
||||
files:
|
||||
- katib-config.yaml
|
||||
options:
|
||||
disableNameSuffixHash: true
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
---
|
||||
- op: "add"
|
||||
path: "/metadata/annotations/service.beta.openshift.io~1serving-cert-secret-name"
|
||||
value: katib-webhook-cert
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
---
|
||||
- op: "add"
|
||||
path: "/metadata/annotations"
|
||||
value:
|
||||
service.beta.openshift.io/inject-cabundle: "true"
|
||||
+60
@@ -0,0 +1,60 @@
|
||||
---
|
||||
apiVersion: config.kubeflow.org/v1beta1
|
||||
kind: KatibConfig
|
||||
init:
|
||||
certGenerator:
|
||||
enable: true
|
||||
controller:
|
||||
webhookPort: 8443
|
||||
trialResources:
|
||||
- Job.v1.batch
|
||||
- TFJob.v1.kubeflow.org
|
||||
- PyTorchJob.v1.kubeflow.org
|
||||
- MPIJob.v1.kubeflow.org
|
||||
- XGBoostJob.v1.kubeflow.org
|
||||
runtime:
|
||||
metricsCollectors:
|
||||
- kind: StdOut
|
||||
image: ghcr.io/kubeflow/katib/file-metrics-collector:v0.18.0
|
||||
- kind: File
|
||||
image: ghcr.io/kubeflow/katib/file-metrics-collector:v0.18.0
|
||||
- kind: TensorFlowEvent
|
||||
image: ghcr.io/kubeflow/katib/tfevent-metrics-collector:v0.18.0
|
||||
resources:
|
||||
limits:
|
||||
memory: 1Gi
|
||||
suggestions:
|
||||
- algorithmName: random
|
||||
image: ghcr.io/kubeflow/katib/suggestion-hyperopt:v0.18.0
|
||||
- algorithmName: tpe
|
||||
image: ghcr.io/kubeflow/katib/suggestion-hyperopt:v0.18.0
|
||||
- algorithmName: grid
|
||||
image: ghcr.io/kubeflow/katib/suggestion-optuna:v0.18.0
|
||||
- algorithmName: hyperband
|
||||
image: ghcr.io/kubeflow/katib/suggestion-hyperband:v0.18.0
|
||||
- algorithmName: bayesianoptimization
|
||||
image: ghcr.io/kubeflow/katib/suggestion-skopt:v0.18.0
|
||||
- algorithmName: cmaes
|
||||
image: ghcr.io/kubeflow/katib/suggestion-goptuna:v0.18.0
|
||||
- algorithmName: sobol
|
||||
image: ghcr.io/kubeflow/katib/suggestion-goptuna:v0.18.0
|
||||
- algorithmName: multivariate-tpe
|
||||
image: ghcr.io/kubeflow/katib/suggestion-optuna:v0.18.0
|
||||
- algorithmName: enas
|
||||
image: ghcr.io/kubeflow/katib/suggestion-enas:v0.18.0
|
||||
resources:
|
||||
limits:
|
||||
memory: 400Mi
|
||||
- algorithmName: darts
|
||||
image: ghcr.io/kubeflow/katib/suggestion-darts:v0.18.0
|
||||
- algorithmName: pbt
|
||||
image: ghcr.io/kubeflow/katib/suggestion-pbt:v0.18.0
|
||||
persistentVolumeClaimSpec:
|
||||
accessModes:
|
||||
- ReadWriteMany
|
||||
resources:
|
||||
requests:
|
||||
storage: 5Gi
|
||||
earlyStoppings:
|
||||
- algorithmName: medianstop
|
||||
image: ghcr.io/kubeflow/katib/earlystopping-medianstop:v0.18.0
|
||||
+48
@@ -0,0 +1,48 @@
|
||||
---
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
namespace: kubeflow
|
||||
resources:
|
||||
# Namespace.
|
||||
- ../../components/namespace/
|
||||
# Katib controller.
|
||||
- ../../components/controller/
|
||||
# Katib CRDs.
|
||||
- ../../components/crd/
|
||||
# Katib DB manager.
|
||||
- ../../components/db-manager/
|
||||
# Katib DB postgres.
|
||||
- ../../components/postgres/
|
||||
# Katib UI.
|
||||
- ../../components/ui/
|
||||
# Katib webhooks.
|
||||
- ../../components/webhook/
|
||||
images:
|
||||
- name: ghcr.io/kubeflow/katib/katib-controller
|
||||
newName: ghcr.io/kubeflow/katib/katib-controller
|
||||
newTag: v0.18.0
|
||||
- name: ghcr.io/kubeflow/katib/katib-db-manager
|
||||
newName: ghcr.io/kubeflow/katib/katib-db-manager
|
||||
newTag: v0.18.0
|
||||
- name: ghcr.io/kubeflow/katib/katib-ui
|
||||
newName: ghcr.io/kubeflow/katib/katib-ui
|
||||
newTag: v0.18.0
|
||||
patchesJson6902:
|
||||
- target:
|
||||
group: apps
|
||||
version: v1
|
||||
kind: Deployment
|
||||
name: katib-db-manager
|
||||
path: ./patches/db-manager.yaml
|
||||
configMapGenerator:
|
||||
- name: katib-config
|
||||
behavior: create
|
||||
files:
|
||||
- katib-config.yaml
|
||||
options:
|
||||
disableNameSuffixHash: true
|
||||
# Secret for webhooks certs.
|
||||
secretGenerator:
|
||||
- name: katib-webhook-cert
|
||||
options:
|
||||
disableNameSuffixHash: true
|
||||
+8
@@ -0,0 +1,8 @@
|
||||
---
|
||||
- op: replace
|
||||
path: /spec/template/spec/containers/0/env
|
||||
value:
|
||||
- name: DB_NAME
|
||||
value: "postgres"
|
||||
- name: DB_PASSWORD
|
||||
value: "katib"
|
||||
+59
@@ -0,0 +1,59 @@
|
||||
apiVersion: config.kubeflow.org/v1beta1
|
||||
kind: KatibConfig
|
||||
init:
|
||||
certGenerator:
|
||||
enable: true
|
||||
controller:
|
||||
webhookPort: 8443
|
||||
trialResources:
|
||||
- Job.v1.batch
|
||||
- TFJob.v1.kubeflow.org
|
||||
- PyTorchJob.v1.kubeflow.org
|
||||
- MPIJob.v1.kubeflow.org
|
||||
- XGBoostJob.v1.kubeflow.org
|
||||
runtime:
|
||||
metricsCollectors:
|
||||
- kind: StdOut
|
||||
image: ghcr.io/kubeflow/katib/file-metrics-collector:v0.18.0
|
||||
- kind: File
|
||||
image: ghcr.io/kubeflow/katib/file-metrics-collector:v0.18.0
|
||||
- kind: TensorFlowEvent
|
||||
image: ghcr.io/kubeflow/katib/tfevent-metrics-collector:v0.18.0
|
||||
resources:
|
||||
limits:
|
||||
memory: 1Gi
|
||||
suggestions:
|
||||
- algorithmName: random
|
||||
image: ghcr.io/kubeflow/katib/suggestion-hyperopt:v0.18.0
|
||||
- algorithmName: tpe
|
||||
image: ghcr.io/kubeflow/katib/suggestion-hyperopt:v0.18.0
|
||||
- algorithmName: grid
|
||||
image: ghcr.io/kubeflow/katib/suggestion-optuna:v0.18.0
|
||||
- algorithmName: hyperband
|
||||
image: ghcr.io/kubeflow/katib/suggestion-hyperband:v0.18.0
|
||||
- algorithmName: bayesianoptimization
|
||||
image: ghcr.io/kubeflow/katib/suggestion-skopt:v0.18.0
|
||||
- algorithmName: cmaes
|
||||
image: ghcr.io/kubeflow/katib/suggestion-goptuna:v0.18.0
|
||||
- algorithmName: sobol
|
||||
image: ghcr.io/kubeflow/katib/suggestion-goptuna:v0.18.0
|
||||
- algorithmName: multivariate-tpe
|
||||
image: ghcr.io/kubeflow/katib/suggestion-optuna:v0.18.0
|
||||
- algorithmName: enas
|
||||
image: ghcr.io/kubeflow/katib/suggestion-enas:v0.18.0
|
||||
resources:
|
||||
limits:
|
||||
memory: 400Mi
|
||||
- algorithmName: darts
|
||||
image: ghcr.io/kubeflow/katib/suggestion-darts:v0.18.0
|
||||
- algorithmName: pbt
|
||||
image: ghcr.io/kubeflow/katib/suggestion-pbt:v0.18.0
|
||||
persistentVolumeClaimSpec:
|
||||
accessModes:
|
||||
- ReadWriteMany
|
||||
resources:
|
||||
requests:
|
||||
storage: 5Gi
|
||||
earlyStoppings:
|
||||
- algorithmName: medianstop
|
||||
image: ghcr.io/kubeflow/katib/earlystopping-medianstop:v0.18.0
|
||||
+41
@@ -0,0 +1,41 @@
|
||||
---
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
namespace: kubeflow
|
||||
resources:
|
||||
# Namespace.
|
||||
- ../../components/namespace/
|
||||
# Katib controller.
|
||||
- ../../components/controller/
|
||||
# Katib CRDs.
|
||||
- ../../components/crd/
|
||||
# Katib DB manager.
|
||||
- ../../components/db-manager/
|
||||
# Katib DB mysql.
|
||||
- ../../components/mysql/
|
||||
# Katib UI.
|
||||
- ../../components/ui/
|
||||
# Katib webhooks.
|
||||
- ../../components/webhook/
|
||||
images:
|
||||
- name: ghcr.io/kubeflow/katib/katib-controller
|
||||
newName: ghcr.io/kubeflow/katib/katib-controller
|
||||
newTag: v0.18.0
|
||||
- name: ghcr.io/kubeflow/katib/katib-db-manager
|
||||
newName: ghcr.io/kubeflow/katib/katib-db-manager
|
||||
newTag: v0.18.0
|
||||
- name: ghcr.io/kubeflow/katib/katib-ui
|
||||
newName: ghcr.io/kubeflow/katib/katib-ui
|
||||
newTag: v0.18.0
|
||||
configMapGenerator:
|
||||
- name: katib-config
|
||||
behavior: create
|
||||
files:
|
||||
- katib-config.yaml
|
||||
options:
|
||||
disableNameSuffixHash: true
|
||||
# Secret for webhooks certs.
|
||||
secretGenerator:
|
||||
- name: katib-webhook-cert
|
||||
options:
|
||||
disableNameSuffixHash: true
|
||||
+15
@@ -0,0 +1,15 @@
|
||||
---
|
||||
apiVersion: security.istio.io/v1beta1
|
||||
kind: AuthorizationPolicy
|
||||
metadata:
|
||||
name: katib-ui
|
||||
namespace: kubeflow
|
||||
spec:
|
||||
action: ALLOW
|
||||
selector:
|
||||
matchLabels:
|
||||
katib.kubeflow.org/component: ui
|
||||
rules:
|
||||
- from:
|
||||
- source:
|
||||
principals: ["cluster.local/ns/istio-system/sa/istio-ingressgateway-service-account"]
|
||||
+66
@@ -0,0 +1,66 @@
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
name: kubeflow-katib-admin
|
||||
labels:
|
||||
rbac.authorization.kubeflow.org/aggregate-to-kubeflow-admin: "true"
|
||||
aggregationRule:
|
||||
clusterRoleSelectors:
|
||||
- matchLabels:
|
||||
rbac.authorization.kubeflow.org/aggregate-to-kubeflow-katib-admin: "true"
|
||||
rules: []
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
name: kubeflow-katib-edit
|
||||
labels:
|
||||
rbac.authorization.kubeflow.org/aggregate-to-kubeflow-edit: "true"
|
||||
rbac.authorization.kubeflow.org/aggregate-to-kubeflow-katib-admin: "true"
|
||||
rules:
|
||||
- apiGroups:
|
||||
- kubeflow.org
|
||||
resources:
|
||||
- experiments
|
||||
- trials
|
||||
- suggestions
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- delete
|
||||
- deletecollection
|
||||
- patch
|
||||
- update
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- pods
|
||||
verbs:
|
||||
- list
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- pods/log
|
||||
verbs:
|
||||
- get
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
name: kubeflow-katib-view
|
||||
labels:
|
||||
rbac.authorization.kubeflow.org/aggregate-to-kubeflow-view: "true"
|
||||
rules:
|
||||
- apiGroups:
|
||||
- kubeflow.org
|
||||
resources:
|
||||
- experiments
|
||||
- trials
|
||||
- suggestions
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
+56
@@ -0,0 +1,56 @@
|
||||
---
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
namespace: kubeflow
|
||||
resources:
|
||||
- ../katib-cert-manager
|
||||
# Kubeflow Katib components.
|
||||
- kubeflow-katib-roles.yaml
|
||||
- ui-virtual-service.yaml
|
||||
- istio-authorizationpolicy.yaml
|
||||
images:
|
||||
- name: ghcr.io/kubeflow/katib/katib-controller
|
||||
newName: ghcr.io/kubeflow/katib/katib-controller
|
||||
newTag: v0.18.0
|
||||
- name: ghcr.io/kubeflow/katib/katib-db-manager
|
||||
newName: ghcr.io/kubeflow/katib/katib-db-manager
|
||||
newTag: v0.18.0
|
||||
- name: ghcr.io/kubeflow/katib/katib-ui
|
||||
newName: ghcr.io/kubeflow/katib/katib-ui
|
||||
newTag: v0.18.0
|
||||
|
||||
patchesStrategicMerge:
|
||||
- patches/remove-namespace.yaml
|
||||
|
||||
patches:
|
||||
# Extend RBAC permission list of katib-ui so it can
|
||||
# create SubjectAccessReview resources.
|
||||
- target:
|
||||
kind: ClusterRole
|
||||
name: katib-ui
|
||||
group: rbac.authorization.k8s.io
|
||||
version: v1
|
||||
path: patches/ui-rbac.yaml
|
||||
# Enable RBAC authz checks in UI's backend.
|
||||
- target:
|
||||
version: v1
|
||||
kind: Deployment
|
||||
name: katib-ui
|
||||
path: patches/enable-ui-authz-checks.yaml
|
||||
# Allow istio sidecar injection in katib-UI Pod.
|
||||
- target:
|
||||
kind: Deployment
|
||||
name: katib-ui
|
||||
path: patches/istio-sidecar-injection.yaml
|
||||
|
||||
vars:
|
||||
- fieldref:
|
||||
fieldPath: metadata.namespace
|
||||
name: KATIB_UI_NAMESPACE
|
||||
objref:
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
name: katib-ui
|
||||
|
||||
configurations:
|
||||
- params.yaml
|
||||
@@ -0,0 +1,4 @@
|
||||
---
|
||||
varReference:
|
||||
- path: spec/http/route/destination/host
|
||||
kind: VirtualService
|
||||
+6
@@ -0,0 +1,6 @@
|
||||
---
|
||||
- op: add
|
||||
path: /spec/template/spec/containers/0/env/-
|
||||
value:
|
||||
name: APP_DISABLE_AUTH
|
||||
value: "false"
|
||||
+10
@@ -0,0 +1,10 @@
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: "katib-ui"
|
||||
spec:
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
sidecar.istio.io/inject: "true"
|
||||
+6
@@ -0,0 +1,6 @@
|
||||
---
|
||||
$patch: delete
|
||||
apiVersion: v1
|
||||
kind: Namespace
|
||||
metadata:
|
||||
name: kubeflow
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
---
|
||||
- op: add
|
||||
path: /rules/-
|
||||
value:
|
||||
apiGroups: [authorization.k8s.io]
|
||||
resources: [subjectaccessreviews]
|
||||
verbs: [create]
|
||||
+21
@@ -0,0 +1,21 @@
|
||||
---
|
||||
apiVersion: networking.istio.io/v1alpha3
|
||||
kind: VirtualService
|
||||
metadata:
|
||||
name: katib-ui
|
||||
spec:
|
||||
gateways:
|
||||
- kubeflow-gateway
|
||||
hosts:
|
||||
- "*"
|
||||
http:
|
||||
- match:
|
||||
- uri:
|
||||
prefix: /katib/
|
||||
rewrite:
|
||||
uri: /katib/
|
||||
route:
|
||||
- destination:
|
||||
host: katib-ui.$(KATIB_UI_NAMESPACE).svc.cluster.local
|
||||
port:
|
||||
number: 80
|
||||
Reference in New Issue
Block a user