mirror of https://github.com/kubeflow/katib.git
Compare commits
5 Commits
Author | SHA1 | Date |
---|---|---|
|
05ab6f012a | |
|
6dc3555b6e | |
|
ff1d4d0c08 | |
|
6f15555a89 | |
|
e536de778c |
|
@ -76,7 +76,7 @@ spec:
|
|||
- name: num-examples
|
||||
container:
|
||||
name: model-training
|
||||
image: docker.io/kubeflowkatib/mxnet-mnist:latest
|
||||
image: docker.io/kubeflowkatib/mxnet-mnist:v0.15.0
|
||||
command:
|
||||
- "python3"
|
||||
- "/opt/mxnet-mnist/mnist.py"
|
||||
|
|
|
@ -62,7 +62,7 @@ spec:
|
|||
spec:
|
||||
containers:
|
||||
- name: training-container
|
||||
image: docker.io/kubeflowkatib/pytorch-mnist-cpu:latest
|
||||
image: docker.io/kubeflowkatib/pytorch-mnist-cpu:v0.15.0
|
||||
command:
|
||||
- "python3"
|
||||
- "/opt/pytorch-mnist/mnist.py"
|
||||
|
|
|
@ -54,7 +54,7 @@ spec:
|
|||
spec:
|
||||
containers:
|
||||
- name: training-container
|
||||
image: docker.io/kubeflowkatib/mxnet-mnist:latest
|
||||
image: docker.io/kubeflowkatib/mxnet-mnist:v0.15.0
|
||||
command:
|
||||
- "python3"
|
||||
- "/opt/mxnet-mnist/mnist.py"
|
||||
|
|
|
@ -57,7 +57,7 @@ spec:
|
|||
spec:
|
||||
containers:
|
||||
- name: training-container
|
||||
image: docker.io/kubeflowkatib/mxnet-mnist:latest
|
||||
image: docker.io/kubeflowkatib/mxnet-mnist:v0.15.0
|
||||
command:
|
||||
- "python3"
|
||||
- "/opt/mxnet-mnist/mnist.py"
|
||||
|
|
|
@ -57,7 +57,7 @@ spec:
|
|||
spec:
|
||||
containers:
|
||||
- name: training-container
|
||||
image: docker.io/kubeflowkatib/mxnet-mnist:latest
|
||||
image: docker.io/kubeflowkatib/mxnet-mnist:v0.15.0
|
||||
command:
|
||||
- "python3"
|
||||
- "/opt/mxnet-mnist/mnist.py"
|
||||
|
|
|
@ -55,7 +55,7 @@ spec:
|
|||
spec:
|
||||
containers:
|
||||
- name: training-container
|
||||
image: docker.io/kubeflowkatib/mxnet-mnist:latest
|
||||
image: docker.io/kubeflowkatib/mxnet-mnist:v0.15.0
|
||||
command:
|
||||
- "python3"
|
||||
- "/opt/mxnet-mnist/mnist.py"
|
||||
|
|
|
@ -69,7 +69,7 @@ spec:
|
|||
spec:
|
||||
containers:
|
||||
- name: training-container
|
||||
image: docker.io/kubeflowkatib/mxnet-mnist:latest
|
||||
image: docker.io/kubeflowkatib/mxnet-mnist:v0.15.0
|
||||
command:
|
||||
- "python3"
|
||||
- "/opt/mxnet-mnist/mnist.py"
|
||||
|
|
|
@ -54,7 +54,7 @@ spec:
|
|||
spec:
|
||||
containers:
|
||||
- name: training-container
|
||||
image: docker.io/kubeflowkatib/mxnet-mnist:latest
|
||||
image: docker.io/kubeflowkatib/mxnet-mnist:v0.15.0
|
||||
command:
|
||||
- "python3"
|
||||
- "/opt/mxnet-mnist/mnist.py"
|
||||
|
|
|
@ -54,7 +54,7 @@ spec:
|
|||
spec:
|
||||
containers:
|
||||
- name: training-container
|
||||
image: docker.io/kubeflowkatib/mxnet-mnist:latest
|
||||
image: docker.io/kubeflowkatib/mxnet-mnist:v0.15.0
|
||||
command:
|
||||
- "python3"
|
||||
- "/opt/mxnet-mnist/mnist.py"
|
||||
|
|
|
@ -43,7 +43,7 @@ spec:
|
|||
spec:
|
||||
containers:
|
||||
- name: training-container
|
||||
image: docker.io/kubeflowkatib/simple-pbt:latest
|
||||
image: docker.io/kubeflowkatib/simple-pbt:v0.15.0
|
||||
command:
|
||||
- "python3"
|
||||
- "/opt/pbt/pbt_test.py"
|
||||
|
|
|
@ -54,7 +54,7 @@ spec:
|
|||
spec:
|
||||
containers:
|
||||
- name: training-container
|
||||
image: docker.io/kubeflowkatib/mxnet-mnist:latest
|
||||
image: docker.io/kubeflowkatib/mxnet-mnist:v0.15.0
|
||||
command:
|
||||
- "python3"
|
||||
- "/opt/mxnet-mnist/mnist.py"
|
||||
|
|
|
@ -54,7 +54,7 @@ spec:
|
|||
spec:
|
||||
containers:
|
||||
- name: training-container
|
||||
image: docker.io/kubeflowkatib/mxnet-mnist:latest
|
||||
image: docker.io/kubeflowkatib/mxnet-mnist:v0.15.0
|
||||
command:
|
||||
- "python3"
|
||||
- "/opt/mxnet-mnist/mnist.py"
|
||||
|
|
|
@ -46,7 +46,7 @@ spec:
|
|||
spec:
|
||||
containers:
|
||||
- name: pytorch
|
||||
image: docker.io/kubeflowkatib/pytorch-mnist-cpu:latest
|
||||
image: docker.io/kubeflowkatib/pytorch-mnist-cpu:v0.15.0
|
||||
command:
|
||||
- "python3"
|
||||
- "/opt/pytorch-mnist/mnist.py"
|
||||
|
@ -61,7 +61,7 @@ spec:
|
|||
spec:
|
||||
containers:
|
||||
- name: pytorch
|
||||
image: docker.io/kubeflowkatib/pytorch-mnist-cpu:latest
|
||||
image: docker.io/kubeflowkatib/pytorch-mnist-cpu:v0.15.0
|
||||
command:
|
||||
- "python3"
|
||||
- "/opt/pytorch-mnist/mnist.py"
|
||||
|
|
|
@ -56,7 +56,7 @@ spec:
|
|||
spec:
|
||||
containers:
|
||||
- name: tensorflow
|
||||
image: docker.io/kubeflowkatib/tf-mnist-with-summaries:latest
|
||||
image: docker.io/kubeflowkatib/tf-mnist-with-summaries:v0.15.0
|
||||
command:
|
||||
- "python"
|
||||
- "/opt/tf-mnist-with-summaries/mnist.py"
|
||||
|
|
|
@ -67,7 +67,7 @@ spec:
|
|||
spec:
|
||||
containers:
|
||||
- name: training-container
|
||||
image: docker.io/kubeflowkatib/pytorch-mnist-cpu:latest
|
||||
image: docker.io/kubeflowkatib/pytorch-mnist-cpu:v0.15.0
|
||||
command:
|
||||
- "python3"
|
||||
- "/opt/pytorch-mnist/mnist.py"
|
||||
|
|
|
@ -52,7 +52,7 @@ spec:
|
|||
spec:
|
||||
containers:
|
||||
- name: training-container
|
||||
image: docker.io/kubeflowkatib/pytorch-mnist-cpu:latest
|
||||
image: docker.io/kubeflowkatib/pytorch-mnist-cpu:v0.15.0
|
||||
command:
|
||||
- "python3"
|
||||
- "/opt/pytorch-mnist/mnist.py"
|
||||
|
|
|
@ -54,7 +54,7 @@ spec:
|
|||
spec:
|
||||
containers:
|
||||
- name: training-container
|
||||
image: docker.io/kubeflowkatib/pytorch-mnist-cpu:latest
|
||||
image: docker.io/kubeflowkatib/pytorch-mnist-cpu:v0.15.0
|
||||
command:
|
||||
- "python3"
|
||||
- "/opt/pytorch-mnist/mnist.py"
|
||||
|
|
|
@ -59,7 +59,7 @@ spec:
|
|||
spec:
|
||||
containers:
|
||||
- name: training-container
|
||||
image: docker.io/kubeflowkatib/mxnet-mnist:latest
|
||||
image: docker.io/kubeflowkatib/mxnet-mnist:v0.15.0
|
||||
command:
|
||||
- "python3"
|
||||
- "/opt/mxnet-mnist/mnist.py"
|
||||
|
|
|
@ -60,7 +60,7 @@ spec:
|
|||
spec:
|
||||
containers:
|
||||
- name: training-container
|
||||
image: docker.io/kubeflowkatib/darts-cnn-cifar10-cpu:latest
|
||||
image: docker.io/kubeflowkatib/darts-cnn-cifar10-cpu:v0.15.0
|
||||
command:
|
||||
- python3
|
||||
- run_trial.py
|
||||
|
|
|
@ -77,7 +77,7 @@ spec:
|
|||
spec:
|
||||
containers:
|
||||
- name: training-container
|
||||
image: docker.io/kubeflowkatib/darts-cnn-cifar10-gpu:latest
|
||||
image: docker.io/kubeflowkatib/darts-cnn-cifar10-gpu:v0.15.0
|
||||
command:
|
||||
- python3
|
||||
- run_trial.py
|
||||
|
|
|
@ -139,7 +139,7 @@ spec:
|
|||
spec:
|
||||
containers:
|
||||
- name: training-container
|
||||
image: docker.io/kubeflowkatib/enas-cnn-cifar10-cpu:latest
|
||||
image: docker.io/kubeflowkatib/enas-cnn-cifar10-cpu:v0.15.0
|
||||
command:
|
||||
- python3
|
||||
- -u
|
||||
|
|
|
@ -136,7 +136,7 @@ spec:
|
|||
spec:
|
||||
containers:
|
||||
- name: training-container
|
||||
image: docker.io/kubeflowkatib/enas-cnn-cifar10-gpu:latest
|
||||
image: docker.io/kubeflowkatib/enas-cnn-cifar10-gpu:v0.15.0
|
||||
command:
|
||||
- python3
|
||||
- -u
|
||||
|
|
|
@ -55,7 +55,7 @@ spec:
|
|||
spec:
|
||||
containers:
|
||||
- name: training-container
|
||||
image: docker.io/kubeflowkatib/mxnet-mnist:latest
|
||||
image: docker.io/kubeflowkatib/mxnet-mnist:v0.15.0
|
||||
command:
|
||||
- "python3"
|
||||
- "/opt/mxnet-mnist/mnist.py"
|
||||
|
|
|
@ -55,7 +55,7 @@ spec:
|
|||
spec:
|
||||
containers:
|
||||
- name: training-container
|
||||
image: docker.io/kubeflowkatib/mxnet-mnist:latest
|
||||
image: docker.io/kubeflowkatib/mxnet-mnist:v0.15.0
|
||||
command:
|
||||
- "python3"
|
||||
- "/opt/mxnet-mnist/mnist.py"
|
||||
|
|
|
@ -89,7 +89,7 @@ spec:
|
|||
description: Number of training examples
|
||||
steps:
|
||||
- name: model-training
|
||||
image: docker.io/kubeflowkatib/mxnet-mnist:latest
|
||||
image: docker.io/kubeflowkatib/mxnet-mnist:v0.15.0
|
||||
command:
|
||||
- "python3"
|
||||
- "/opt/mxnet-mnist/mnist.py"
|
||||
|
|
|
@ -60,7 +60,7 @@ spec:
|
|||
spec:
|
||||
containers:
|
||||
- name: training-container
|
||||
image: docker.io/kubeflowkatib/mxnet-mnist:latest
|
||||
image: docker.io/kubeflowkatib/mxnet-mnist:v0.15.0
|
||||
command:
|
||||
- "python3"
|
||||
- "/opt/mxnet-mnist/mnist.py"
|
||||
|
|
|
@ -8,13 +8,13 @@ data:
|
|||
metrics-collector-sidecar: |-
|
||||
{
|
||||
"StdOut": {
|
||||
"image": "docker.io/kubeflowkatib/file-metrics-collector:latest"
|
||||
"image": "docker.io/kubeflowkatib/file-metrics-collector:v0.15.0"
|
||||
},
|
||||
"File": {
|
||||
"image": "docker.io/kubeflowkatib/file-metrics-collector:latest"
|
||||
"image": "docker.io/kubeflowkatib/file-metrics-collector:v0.15.0"
|
||||
},
|
||||
"TensorFlowEvent": {
|
||||
"image": "docker.io/kubeflowkatib/tfevent-metrics-collector:latest",
|
||||
"image": "docker.io/kubeflowkatib/tfevent-metrics-collector:v0.15.0",
|
||||
"resources": {
|
||||
"limits": {
|
||||
"memory": "1Gi"
|
||||
|
@ -25,31 +25,31 @@ data:
|
|||
suggestion: |-
|
||||
{
|
||||
"random": {
|
||||
"image": "docker.io/kubeflowkatib/suggestion-hyperopt:latest"
|
||||
"image": "docker.io/kubeflowkatib/suggestion-hyperopt:v0.15.0"
|
||||
},
|
||||
"tpe": {
|
||||
"image": "docker.io/kubeflowkatib/suggestion-hyperopt:latest"
|
||||
"image": "docker.io/kubeflowkatib/suggestion-hyperopt:v0.15.0"
|
||||
},
|
||||
"grid": {
|
||||
"image": "docker.io/kubeflowkatib/suggestion-optuna:latest"
|
||||
"image": "docker.io/kubeflowkatib/suggestion-optuna:v0.15.0"
|
||||
},
|
||||
"hyperband": {
|
||||
"image": "docker.io/kubeflowkatib/suggestion-hyperband:latest"
|
||||
"image": "docker.io/kubeflowkatib/suggestion-hyperband:v0.15.0"
|
||||
},
|
||||
"bayesianoptimization": {
|
||||
"image": "docker.io/kubeflowkatib/suggestion-skopt:latest"
|
||||
"image": "docker.io/kubeflowkatib/suggestion-skopt:v0.15.0"
|
||||
},
|
||||
"cmaes": {
|
||||
"image": "docker.io/kubeflowkatib/suggestion-goptuna:latest"
|
||||
"image": "docker.io/kubeflowkatib/suggestion-goptuna:v0.15.0"
|
||||
},
|
||||
"sobol": {
|
||||
"image": "docker.io/kubeflowkatib/suggestion-goptuna:latest"
|
||||
"image": "docker.io/kubeflowkatib/suggestion-goptuna:v0.15.0"
|
||||
},
|
||||
"multivariate-tpe": {
|
||||
"image": "docker.io/kubeflowkatib/suggestion-optuna:latest"
|
||||
"image": "docker.io/kubeflowkatib/suggestion-optuna:v0.15.0"
|
||||
},
|
||||
"enas": {
|
||||
"image": "docker.io/kubeflowkatib/suggestion-enas:latest",
|
||||
"image": "docker.io/kubeflowkatib/suggestion-enas:v0.15.0",
|
||||
"resources": {
|
||||
"limits": {
|
||||
"memory": "200Mi"
|
||||
|
@ -57,10 +57,10 @@ data:
|
|||
}
|
||||
},
|
||||
"darts": {
|
||||
"image": "docker.io/kubeflowkatib/suggestion-darts:latest"
|
||||
"image": "docker.io/kubeflowkatib/suggestion-darts:v0.15.0"
|
||||
},
|
||||
"pbt": {
|
||||
"image": "docker.io/kubeflowkatib/suggestion-pbt:latest",
|
||||
"image": "docker.io/kubeflowkatib/suggestion-pbt:v0.15.0",
|
||||
"persistentVolumeClaimSpec": {
|
||||
"accessModes": [
|
||||
"ReadWriteMany"
|
||||
|
@ -76,6 +76,6 @@ data:
|
|||
early-stopping: |-
|
||||
{
|
||||
"medianstop": {
|
||||
"image": "docker.io/kubeflowkatib/earlystopping-medianstop:latest"
|
||||
"image": "docker.io/kubeflowkatib/earlystopping-medianstop:v0.15.0"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -15,7 +15,7 @@ data:
|
|||
spec:
|
||||
containers:
|
||||
- name: training-container
|
||||
image: docker.io/kubeflowkatib/mxnet-mnist:latest
|
||||
image: docker.io/kubeflowkatib/mxnet-mnist:v0.15.0
|
||||
command:
|
||||
- "python3"
|
||||
- "/opt/mxnet-mnist/mnist.py"
|
||||
|
@ -33,7 +33,7 @@ data:
|
|||
spec:
|
||||
containers:
|
||||
- name: training-container
|
||||
image: docker.io/kubeflowkatib/enas-cnn-cifar10-cpu:latest
|
||||
image: docker.io/kubeflowkatib/enas-cnn-cifar10-cpu:v0.15.0
|
||||
command:
|
||||
- python3
|
||||
- -u
|
||||
|
@ -54,7 +54,7 @@ data:
|
|||
spec:
|
||||
containers:
|
||||
- name: pytorch
|
||||
image: docker.io/kubeflowkatib/pytorch-mnist-cpu:latest
|
||||
image: docker.io/kubeflowkatib/pytorch-mnist-cpu:v0.15.0
|
||||
command:
|
||||
- "python3"
|
||||
- "/opt/pytorch-mnist/mnist.py"
|
||||
|
@ -68,7 +68,7 @@ data:
|
|||
spec:
|
||||
containers:
|
||||
- name: pytorch
|
||||
image: docker.io/kubeflowkatib/pytorch-mnist-cpu:latest
|
||||
image: docker.io/kubeflowkatib/pytorch-mnist-cpu:v0.15.0
|
||||
command:
|
||||
- "python3"
|
||||
- "/opt/pytorch-mnist/mnist.py"
|
||||
|
|
|
@ -22,13 +22,13 @@ resources:
|
|||
images:
|
||||
- name: docker.io/kubeflowkatib/katib-controller
|
||||
newName: docker.io/kubeflowkatib/katib-controller
|
||||
newTag: latest
|
||||
newTag: v0.15.0
|
||||
- name: docker.io/kubeflowkatib/katib-db-manager
|
||||
newName: docker.io/kubeflowkatib/katib-db-manager
|
||||
newTag: latest
|
||||
newTag: v0.15.0
|
||||
- name: docker.io/kubeflowkatib/katib-ui
|
||||
newName: docker.io/kubeflowkatib/katib-ui
|
||||
newTag: latest
|
||||
newTag: v0.15.0
|
||||
|
||||
patchesStrategicMerge:
|
||||
- patches/katib-cert-injection.yaml
|
||||
|
|
|
@ -20,16 +20,16 @@ resources:
|
|||
images:
|
||||
- name: docker.io/kubeflowkatib/katib-controller
|
||||
newName: docker.io/kubeflowkatib/katib-controller
|
||||
newTag: latest
|
||||
newTag: v0.15.0
|
||||
- name: docker.io/kubeflowkatib/katib-db-manager
|
||||
newName: docker.io/kubeflowkatib/katib-db-manager
|
||||
newTag: latest
|
||||
newTag: v0.15.0
|
||||
- name: docker.io/kubeflowkatib/katib-ui
|
||||
newName: docker.io/kubeflowkatib/katib-ui
|
||||
newTag: latest
|
||||
newTag: v0.15.0
|
||||
- name: docker.io/kubeflowkatib/cert-generator
|
||||
newName: docker.io/kubeflowkatib/cert-generator
|
||||
newTag: latest
|
||||
newTag: v0.15.0
|
||||
patchesStrategicMerge:
|
||||
- patches/db-manager.yaml
|
||||
# Modify katib-mysql-secrets with parameters for the DB.
|
||||
|
|
|
@ -30,13 +30,13 @@ resources:
|
|||
images:
|
||||
- name: docker.io/kubeflowkatib/katib-controller
|
||||
newName: docker.io/kubeflowkatib/katib-controller
|
||||
newTag: latest
|
||||
newTag: v0.15.0
|
||||
- name: docker.io/kubeflowkatib/katib-db-manager
|
||||
newName: docker.io/kubeflowkatib/katib-db-manager
|
||||
newTag: latest
|
||||
newTag: v0.15.0
|
||||
- name: docker.io/kubeflowkatib/katib-ui
|
||||
newName: docker.io/kubeflowkatib/katib-ui
|
||||
newTag: latest
|
||||
newTag: v0.15.0
|
||||
|
||||
patchesJson6902:
|
||||
# Annotate Service to delegate TLS-secret generation to OpenShift service controller
|
||||
|
|
|
@ -22,16 +22,16 @@ resources:
|
|||
images:
|
||||
- name: docker.io/kubeflowkatib/katib-controller
|
||||
newName: docker.io/kubeflowkatib/katib-controller
|
||||
newTag: latest
|
||||
newTag: v0.15.0
|
||||
- name: docker.io/kubeflowkatib/katib-db-manager
|
||||
newName: docker.io/kubeflowkatib/katib-db-manager
|
||||
newTag: latest
|
||||
newTag: v0.15.0
|
||||
- name: docker.io/kubeflowkatib/katib-ui
|
||||
newName: docker.io/kubeflowkatib/katib-ui
|
||||
newTag: latest
|
||||
newTag: v0.15.0
|
||||
- name: docker.io/kubeflowkatib/cert-generator
|
||||
newName: docker.io/kubeflowkatib/cert-generator
|
||||
newTag: latest
|
||||
newTag: v0.15.0
|
||||
patchesJson6902:
|
||||
- target:
|
||||
group: apps
|
||||
|
|
|
@ -22,13 +22,13 @@ resources:
|
|||
images:
|
||||
- name: docker.io/kubeflowkatib/katib-controller
|
||||
newName: docker.io/kubeflowkatib/katib-controller
|
||||
newTag: latest
|
||||
newTag: v0.15.0
|
||||
- name: docker.io/kubeflowkatib/katib-db-manager
|
||||
newName: docker.io/kubeflowkatib/katib-db-manager
|
||||
newTag: latest
|
||||
newTag: v0.15.0
|
||||
- name: docker.io/kubeflowkatib/katib-ui
|
||||
newName: docker.io/kubeflowkatib/katib-ui
|
||||
newTag: latest
|
||||
newTag: v0.15.0
|
||||
- name: docker.io/kubeflowkatib/cert-generator
|
||||
newName: docker.io/kubeflowkatib/cert-generator
|
||||
newTag: latest
|
||||
newTag: v0.15.0
|
||||
|
|
|
@ -11,13 +11,13 @@ resources:
|
|||
images:
|
||||
- name: docker.io/kubeflowkatib/katib-controller
|
||||
newName: docker.io/kubeflowkatib/katib-controller
|
||||
newTag: latest
|
||||
newTag: v0.15.0
|
||||
- name: docker.io/kubeflowkatib/katib-db-manager
|
||||
newName: docker.io/kubeflowkatib/katib-db-manager
|
||||
newTag: latest
|
||||
newTag: v0.15.0
|
||||
- name: docker.io/kubeflowkatib/katib-ui
|
||||
newName: docker.io/kubeflowkatib/katib-ui
|
||||
newTag: latest
|
||||
newTag: v0.15.0
|
||||
|
||||
patchesStrategicMerge:
|
||||
- patches/remove-namespace.yaml
|
||||
|
|
|
@ -5,7 +5,7 @@ spec:
|
|||
spec:
|
||||
containers:
|
||||
- name: training-container
|
||||
image: docker.io/kubeflowkatib/mxnet-mnist:latest
|
||||
image: docker.io/kubeflowkatib/mxnet-mnist:v0.15.0
|
||||
command:
|
||||
- "python3"
|
||||
- "/opt/mxnet-mnist/mnist.py"
|
||||
|
|
|
@ -5,7 +5,7 @@ spec:
|
|||
spec:
|
||||
containers:
|
||||
- name: training-container
|
||||
image: docker.io/kubeflowkatib/enas-cnn-cifar10-cpu:latest
|
||||
image: docker.io/kubeflowkatib/enas-cnn-cifar10-cpu:v0.15.0
|
||||
command:
|
||||
- python3
|
||||
- -u
|
||||
|
|
|
@ -42,7 +42,6 @@ class Operator(CharmBase):
|
|||
|
||||
def set_pod_spec(self, event):
|
||||
try:
|
||||
|
||||
self._check_leader()
|
||||
|
||||
interfaces = self._get_interfaces()
|
||||
|
|
|
@ -729,9 +729,9 @@ func fetchMasterPodName(clientset *kubernetes.Clientset, trial *trialsv1beta1.Tr
|
|||
}
|
||||
|
||||
if len(podList.Items) == 0 {
|
||||
return "", errors.New(`Logs for the trial could not be found.
|
||||
Was 'retain: true' specified in the Experiment definition?
|
||||
An example can be found here: https://github.com/kubeflow/katib/blob/7bf39225f7235ee4ba6cf285ecc2c455c6471234/examples/v1beta1/argo/argo-workflow.yaml#L33`)
|
||||
return "", errors.New(`Failed to find logs for this Trial. Make sure you've set "spec.trialTemplate.retain"
|
||||
field to "true" in the Experiment definition. If this error persists then the Pod's logs are not currently
|
||||
persisted in the cluster.`)
|
||||
}
|
||||
if len(podList.Items) > 1 {
|
||||
return "", errors.New("More than one master replica found")
|
||||
|
|
|
@ -46,6 +46,16 @@
|
|||
></app-trial-overview>
|
||||
</ng-template>
|
||||
</mat-tab>
|
||||
|
||||
<mat-tab label="LOGS">
|
||||
<ng-template matTabContent>
|
||||
<app-trial-logs
|
||||
[trialLogs]="trialLogs"
|
||||
[logsRequestError]="logsRequestError"
|
||||
></app-trial-logs>
|
||||
</ng-template>
|
||||
</mat-tab>
|
||||
|
||||
<mat-tab label="YAML">
|
||||
<ng-template matTabContent>
|
||||
<app-trial-yaml [trialJson]="trialDetails"></app-trial-yaml>
|
||||
|
|
|
@ -21,6 +21,7 @@ let NamespaceServiceStub: Partial<NamespaceService>;
|
|||
KWABackendServiceStub = {
|
||||
getTrial: () => of([]),
|
||||
getTrialInfo: () => of(),
|
||||
getTrialLogs: () => of(),
|
||||
};
|
||||
|
||||
NamespaceServiceStub = {
|
||||
|
|
|
@ -30,6 +30,8 @@ export class TrialDetailsComponent implements OnInit, OnDestroy {
|
|||
experimentName: string;
|
||||
showTrialGraph: boolean = false;
|
||||
options: {};
|
||||
trialLogs: string;
|
||||
logsRequestError: string;
|
||||
chartData: ChartPoint[] = [];
|
||||
yScaleMax = 0;
|
||||
yScaleMin = 1;
|
||||
|
@ -133,6 +135,17 @@ export class TrialDetailsComponent implements OnInit, OnDestroy {
|
|||
}
|
||||
this.pageLoading = false;
|
||||
});
|
||||
|
||||
this.backendService.getTrialLogs(this.trialName, this.namespace).subscribe(
|
||||
logs => {
|
||||
this.trialLogs = logs;
|
||||
this.logsRequestError = null;
|
||||
},
|
||||
error => {
|
||||
this.trialLogs = null;
|
||||
this.logsRequestError = error;
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
private trialStatus(trial: TrialK8s): StatusEnum {
|
||||
|
|
|
@ -16,6 +16,7 @@ import {
|
|||
PanelModule,
|
||||
} from 'kubeflow';
|
||||
import { NgxEchartsModule } from 'ngx-echarts';
|
||||
import { TrialLogsModule } from './trial-logs/trial-logs.module';
|
||||
|
||||
@NgModule({
|
||||
declarations: [TrialDetailsComponent],
|
||||
|
@ -36,6 +37,7 @@ import { NgxEchartsModule } from 'ngx-echarts';
|
|||
NgxEchartsModule.forRoot({
|
||||
echarts: () => import('echarts'),
|
||||
}),
|
||||
TrialLogsModule,
|
||||
],
|
||||
exports: [TrialDetailsComponent],
|
||||
})
|
||||
|
|
|
@ -0,0 +1,15 @@
|
|||
<!--if no logs are present at all then show a warning message-->
|
||||
<ng-container *ngIf="logsRequestError">
|
||||
<lib-panel icon="error" color="warn">
|
||||
{{ logsRequestError }}
|
||||
</lib-panel>
|
||||
</ng-container>
|
||||
|
||||
<ng-container *ngIf="!logsRequestError">
|
||||
<lib-logs-viewer
|
||||
class="logs-viewer"
|
||||
heading="Trial Logs"
|
||||
[subHeading]="''"
|
||||
[logs]="logs"
|
||||
></lib-logs-viewer>
|
||||
</ng-container>
|
|
@ -0,0 +1,9 @@
|
|||
lib-panel {
|
||||
display: block;
|
||||
margin-top: 1rem;
|
||||
}
|
||||
|
||||
.logs-viewer {
|
||||
margin-bottom: 2rem;
|
||||
margin-top: 1rem;
|
||||
}
|
|
@ -0,0 +1,36 @@
|
|||
import { CommonModule } from '@angular/common';
|
||||
import { ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
import {
|
||||
HeadingSubheadingRowModule,
|
||||
KubeflowModule,
|
||||
LogsViewerModule,
|
||||
} from 'kubeflow';
|
||||
|
||||
import { TrialLogsComponent } from './trial-logs.component';
|
||||
|
||||
describe('TrialLogsComponent', () => {
|
||||
let component: TrialLogsComponent;
|
||||
let fixture: ComponentFixture<TrialLogsComponent>;
|
||||
|
||||
beforeEach(async () => {
|
||||
await TestBed.configureTestingModule({
|
||||
declarations: [TrialLogsComponent],
|
||||
imports: [
|
||||
CommonModule,
|
||||
KubeflowModule,
|
||||
HeadingSubheadingRowModule,
|
||||
LogsViewerModule,
|
||||
],
|
||||
}).compileComponents();
|
||||
});
|
||||
|
||||
beforeEach(() => {
|
||||
fixture = TestBed.createComponent(TrialLogsComponent);
|
||||
component = fixture.componentInstance;
|
||||
fixture.detectChanges();
|
||||
});
|
||||
|
||||
it('should create', () => {
|
||||
expect(component).toBeTruthy();
|
||||
});
|
||||
});
|
|
@ -0,0 +1,21 @@
|
|||
import { Component, Input } from '@angular/core';
|
||||
|
||||
@Component({
|
||||
selector: 'app-trial-logs',
|
||||
templateUrl: './trial-logs.component.html',
|
||||
styleUrls: ['./trial-logs.component.scss'],
|
||||
})
|
||||
export class TrialLogsComponent {
|
||||
public logs: string[];
|
||||
|
||||
@Input() logsRequestError: string;
|
||||
|
||||
@Input()
|
||||
set trialLogs(trialLogs: string) {
|
||||
if (!trialLogs) {
|
||||
return;
|
||||
}
|
||||
|
||||
this.logs = trialLogs.split('\n');
|
||||
}
|
||||
}
|
|
@ -0,0 +1,20 @@
|
|||
import { NgModule } from '@angular/core';
|
||||
import { CommonModule } from '@angular/common';
|
||||
import { TrialLogsComponent } from './trial-logs.component';
|
||||
import {
|
||||
HeadingSubheadingRowModule,
|
||||
KubeflowModule,
|
||||
LogsViewerModule,
|
||||
} from 'kubeflow';
|
||||
|
||||
@NgModule({
|
||||
declarations: [TrialLogsComponent],
|
||||
imports: [
|
||||
CommonModule,
|
||||
KubeflowModule,
|
||||
HeadingSubheadingRowModule,
|
||||
LogsViewerModule,
|
||||
],
|
||||
exports: [TrialLogsComponent],
|
||||
})
|
||||
export class TrialLogsModule {}
|
|
@ -102,4 +102,25 @@ export class KWABackendService extends BackendService {
|
|||
.post(url, { postData: exp })
|
||||
.pipe(catchError(error => this.parseError(error)));
|
||||
}
|
||||
|
||||
getTrialLogs(name: string, namespace: string): Observable<any> {
|
||||
const url = `/katib/fetch_trial_logs/?trialName=${name}&namespace=${namespace}`;
|
||||
|
||||
return this.http
|
||||
.get(url)
|
||||
.pipe(catchError(error => this.handleError(error, false)));
|
||||
}
|
||||
|
||||
// ---------------------------Error Handling---------------------------------
|
||||
|
||||
// Override common service's getBackendErrorLog
|
||||
// in order to properly show the message the backend has sent
|
||||
public getBackendErrorLog(error: HttpErrorResponse): string {
|
||||
if (error.error === null) {
|
||||
return error.message;
|
||||
} else {
|
||||
// Show the message the backend has sent
|
||||
return error.error.log ? error.error.log : error.error;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -37,7 +37,7 @@ if os.path.exists(katib_grpc_api_file):
|
|||
|
||||
setuptools.setup(
|
||||
name="kubeflow-katib",
|
||||
version="0.14.0",
|
||||
version="0.15.0",
|
||||
author="Kubeflow Authors",
|
||||
author_email="premnath.vel@gmail.com",
|
||||
license="Apache License Version 2.0",
|
||||
|
|
|
@ -52,7 +52,7 @@ spec:
|
|||
spec:
|
||||
containers:
|
||||
- name: training-container
|
||||
image: docker.io/kubeflowkatib/mxnet-mnist:latest
|
||||
image: docker.io/kubeflowkatib/mxnet-mnist:v0.15.0
|
||||
command:
|
||||
- "python3"
|
||||
- "/opt/mxnet-mnist/mnist.py"
|
||||
|
|
|
@ -52,7 +52,7 @@ spec:
|
|||
spec:
|
||||
containers:
|
||||
- name: training-container
|
||||
image: docker.io/kubeflowkatib/mxnet-mnist:latest
|
||||
image: docker.io/kubeflowkatib/mxnet-mnist:v0.15.0
|
||||
command:
|
||||
- "python3"
|
||||
- "/opt/mxnet-mnist/mnist.py"
|
||||
|
|
Loading…
Reference in New Issue