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
|
- name: num-examples
|
||||||
container:
|
container:
|
||||||
name: model-training
|
name: model-training
|
||||||
image: docker.io/kubeflowkatib/mxnet-mnist:latest
|
image: docker.io/kubeflowkatib/mxnet-mnist:v0.15.0
|
||||||
command:
|
command:
|
||||||
- "python3"
|
- "python3"
|
||||||
- "/opt/mxnet-mnist/mnist.py"
|
- "/opt/mxnet-mnist/mnist.py"
|
||||||
|
|
|
@ -62,7 +62,7 @@ spec:
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: training-container
|
- name: training-container
|
||||||
image: docker.io/kubeflowkatib/pytorch-mnist-cpu:latest
|
image: docker.io/kubeflowkatib/pytorch-mnist-cpu:v0.15.0
|
||||||
command:
|
command:
|
||||||
- "python3"
|
- "python3"
|
||||||
- "/opt/pytorch-mnist/mnist.py"
|
- "/opt/pytorch-mnist/mnist.py"
|
||||||
|
|
|
@ -54,7 +54,7 @@ spec:
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: training-container
|
- name: training-container
|
||||||
image: docker.io/kubeflowkatib/mxnet-mnist:latest
|
image: docker.io/kubeflowkatib/mxnet-mnist:v0.15.0
|
||||||
command:
|
command:
|
||||||
- "python3"
|
- "python3"
|
||||||
- "/opt/mxnet-mnist/mnist.py"
|
- "/opt/mxnet-mnist/mnist.py"
|
||||||
|
|
|
@ -57,7 +57,7 @@ spec:
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: training-container
|
- name: training-container
|
||||||
image: docker.io/kubeflowkatib/mxnet-mnist:latest
|
image: docker.io/kubeflowkatib/mxnet-mnist:v0.15.0
|
||||||
command:
|
command:
|
||||||
- "python3"
|
- "python3"
|
||||||
- "/opt/mxnet-mnist/mnist.py"
|
- "/opt/mxnet-mnist/mnist.py"
|
||||||
|
|
|
@ -57,7 +57,7 @@ spec:
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: training-container
|
- name: training-container
|
||||||
image: docker.io/kubeflowkatib/mxnet-mnist:latest
|
image: docker.io/kubeflowkatib/mxnet-mnist:v0.15.0
|
||||||
command:
|
command:
|
||||||
- "python3"
|
- "python3"
|
||||||
- "/opt/mxnet-mnist/mnist.py"
|
- "/opt/mxnet-mnist/mnist.py"
|
||||||
|
|
|
@ -55,7 +55,7 @@ spec:
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: training-container
|
- name: training-container
|
||||||
image: docker.io/kubeflowkatib/mxnet-mnist:latest
|
image: docker.io/kubeflowkatib/mxnet-mnist:v0.15.0
|
||||||
command:
|
command:
|
||||||
- "python3"
|
- "python3"
|
||||||
- "/opt/mxnet-mnist/mnist.py"
|
- "/opt/mxnet-mnist/mnist.py"
|
||||||
|
|
|
@ -69,7 +69,7 @@ spec:
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: training-container
|
- name: training-container
|
||||||
image: docker.io/kubeflowkatib/mxnet-mnist:latest
|
image: docker.io/kubeflowkatib/mxnet-mnist:v0.15.0
|
||||||
command:
|
command:
|
||||||
- "python3"
|
- "python3"
|
||||||
- "/opt/mxnet-mnist/mnist.py"
|
- "/opt/mxnet-mnist/mnist.py"
|
||||||
|
|
|
@ -54,7 +54,7 @@ spec:
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: training-container
|
- name: training-container
|
||||||
image: docker.io/kubeflowkatib/mxnet-mnist:latest
|
image: docker.io/kubeflowkatib/mxnet-mnist:v0.15.0
|
||||||
command:
|
command:
|
||||||
- "python3"
|
- "python3"
|
||||||
- "/opt/mxnet-mnist/mnist.py"
|
- "/opt/mxnet-mnist/mnist.py"
|
||||||
|
|
|
@ -54,7 +54,7 @@ spec:
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: training-container
|
- name: training-container
|
||||||
image: docker.io/kubeflowkatib/mxnet-mnist:latest
|
image: docker.io/kubeflowkatib/mxnet-mnist:v0.15.0
|
||||||
command:
|
command:
|
||||||
- "python3"
|
- "python3"
|
||||||
- "/opt/mxnet-mnist/mnist.py"
|
- "/opt/mxnet-mnist/mnist.py"
|
||||||
|
|
|
@ -43,7 +43,7 @@ spec:
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: training-container
|
- name: training-container
|
||||||
image: docker.io/kubeflowkatib/simple-pbt:latest
|
image: docker.io/kubeflowkatib/simple-pbt:v0.15.0
|
||||||
command:
|
command:
|
||||||
- "python3"
|
- "python3"
|
||||||
- "/opt/pbt/pbt_test.py"
|
- "/opt/pbt/pbt_test.py"
|
||||||
|
|
|
@ -54,7 +54,7 @@ spec:
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: training-container
|
- name: training-container
|
||||||
image: docker.io/kubeflowkatib/mxnet-mnist:latest
|
image: docker.io/kubeflowkatib/mxnet-mnist:v0.15.0
|
||||||
command:
|
command:
|
||||||
- "python3"
|
- "python3"
|
||||||
- "/opt/mxnet-mnist/mnist.py"
|
- "/opt/mxnet-mnist/mnist.py"
|
||||||
|
|
|
@ -54,7 +54,7 @@ spec:
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: training-container
|
- name: training-container
|
||||||
image: docker.io/kubeflowkatib/mxnet-mnist:latest
|
image: docker.io/kubeflowkatib/mxnet-mnist:v0.15.0
|
||||||
command:
|
command:
|
||||||
- "python3"
|
- "python3"
|
||||||
- "/opt/mxnet-mnist/mnist.py"
|
- "/opt/mxnet-mnist/mnist.py"
|
||||||
|
|
|
@ -46,7 +46,7 @@ spec:
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: pytorch
|
- name: pytorch
|
||||||
image: docker.io/kubeflowkatib/pytorch-mnist-cpu:latest
|
image: docker.io/kubeflowkatib/pytorch-mnist-cpu:v0.15.0
|
||||||
command:
|
command:
|
||||||
- "python3"
|
- "python3"
|
||||||
- "/opt/pytorch-mnist/mnist.py"
|
- "/opt/pytorch-mnist/mnist.py"
|
||||||
|
@ -61,7 +61,7 @@ spec:
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: pytorch
|
- name: pytorch
|
||||||
image: docker.io/kubeflowkatib/pytorch-mnist-cpu:latest
|
image: docker.io/kubeflowkatib/pytorch-mnist-cpu:v0.15.0
|
||||||
command:
|
command:
|
||||||
- "python3"
|
- "python3"
|
||||||
- "/opt/pytorch-mnist/mnist.py"
|
- "/opt/pytorch-mnist/mnist.py"
|
||||||
|
|
|
@ -56,7 +56,7 @@ spec:
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: tensorflow
|
- name: tensorflow
|
||||||
image: docker.io/kubeflowkatib/tf-mnist-with-summaries:latest
|
image: docker.io/kubeflowkatib/tf-mnist-with-summaries:v0.15.0
|
||||||
command:
|
command:
|
||||||
- "python"
|
- "python"
|
||||||
- "/opt/tf-mnist-with-summaries/mnist.py"
|
- "/opt/tf-mnist-with-summaries/mnist.py"
|
||||||
|
|
|
@ -67,7 +67,7 @@ spec:
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: training-container
|
- name: training-container
|
||||||
image: docker.io/kubeflowkatib/pytorch-mnist-cpu:latest
|
image: docker.io/kubeflowkatib/pytorch-mnist-cpu:v0.15.0
|
||||||
command:
|
command:
|
||||||
- "python3"
|
- "python3"
|
||||||
- "/opt/pytorch-mnist/mnist.py"
|
- "/opt/pytorch-mnist/mnist.py"
|
||||||
|
|
|
@ -52,7 +52,7 @@ spec:
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: training-container
|
- name: training-container
|
||||||
image: docker.io/kubeflowkatib/pytorch-mnist-cpu:latest
|
image: docker.io/kubeflowkatib/pytorch-mnist-cpu:v0.15.0
|
||||||
command:
|
command:
|
||||||
- "python3"
|
- "python3"
|
||||||
- "/opt/pytorch-mnist/mnist.py"
|
- "/opt/pytorch-mnist/mnist.py"
|
||||||
|
|
|
@ -54,7 +54,7 @@ spec:
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: training-container
|
- name: training-container
|
||||||
image: docker.io/kubeflowkatib/pytorch-mnist-cpu:latest
|
image: docker.io/kubeflowkatib/pytorch-mnist-cpu:v0.15.0
|
||||||
command:
|
command:
|
||||||
- "python3"
|
- "python3"
|
||||||
- "/opt/pytorch-mnist/mnist.py"
|
- "/opt/pytorch-mnist/mnist.py"
|
||||||
|
|
|
@ -59,7 +59,7 @@ spec:
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: training-container
|
- name: training-container
|
||||||
image: docker.io/kubeflowkatib/mxnet-mnist:latest
|
image: docker.io/kubeflowkatib/mxnet-mnist:v0.15.0
|
||||||
command:
|
command:
|
||||||
- "python3"
|
- "python3"
|
||||||
- "/opt/mxnet-mnist/mnist.py"
|
- "/opt/mxnet-mnist/mnist.py"
|
||||||
|
|
|
@ -60,7 +60,7 @@ spec:
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: training-container
|
- name: training-container
|
||||||
image: docker.io/kubeflowkatib/darts-cnn-cifar10-cpu:latest
|
image: docker.io/kubeflowkatib/darts-cnn-cifar10-cpu:v0.15.0
|
||||||
command:
|
command:
|
||||||
- python3
|
- python3
|
||||||
- run_trial.py
|
- run_trial.py
|
||||||
|
|
|
@ -77,7 +77,7 @@ spec:
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: training-container
|
- name: training-container
|
||||||
image: docker.io/kubeflowkatib/darts-cnn-cifar10-gpu:latest
|
image: docker.io/kubeflowkatib/darts-cnn-cifar10-gpu:v0.15.0
|
||||||
command:
|
command:
|
||||||
- python3
|
- python3
|
||||||
- run_trial.py
|
- run_trial.py
|
||||||
|
|
|
@ -139,7 +139,7 @@ spec:
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: training-container
|
- name: training-container
|
||||||
image: docker.io/kubeflowkatib/enas-cnn-cifar10-cpu:latest
|
image: docker.io/kubeflowkatib/enas-cnn-cifar10-cpu:v0.15.0
|
||||||
command:
|
command:
|
||||||
- python3
|
- python3
|
||||||
- -u
|
- -u
|
||||||
|
|
|
@ -136,7 +136,7 @@ spec:
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: training-container
|
- name: training-container
|
||||||
image: docker.io/kubeflowkatib/enas-cnn-cifar10-gpu:latest
|
image: docker.io/kubeflowkatib/enas-cnn-cifar10-gpu:v0.15.0
|
||||||
command:
|
command:
|
||||||
- python3
|
- python3
|
||||||
- -u
|
- -u
|
||||||
|
|
|
@ -55,7 +55,7 @@ spec:
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: training-container
|
- name: training-container
|
||||||
image: docker.io/kubeflowkatib/mxnet-mnist:latest
|
image: docker.io/kubeflowkatib/mxnet-mnist:v0.15.0
|
||||||
command:
|
command:
|
||||||
- "python3"
|
- "python3"
|
||||||
- "/opt/mxnet-mnist/mnist.py"
|
- "/opt/mxnet-mnist/mnist.py"
|
||||||
|
|
|
@ -55,7 +55,7 @@ spec:
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: training-container
|
- name: training-container
|
||||||
image: docker.io/kubeflowkatib/mxnet-mnist:latest
|
image: docker.io/kubeflowkatib/mxnet-mnist:v0.15.0
|
||||||
command:
|
command:
|
||||||
- "python3"
|
- "python3"
|
||||||
- "/opt/mxnet-mnist/mnist.py"
|
- "/opt/mxnet-mnist/mnist.py"
|
||||||
|
|
|
@ -89,7 +89,7 @@ spec:
|
||||||
description: Number of training examples
|
description: Number of training examples
|
||||||
steps:
|
steps:
|
||||||
- name: model-training
|
- name: model-training
|
||||||
image: docker.io/kubeflowkatib/mxnet-mnist:latest
|
image: docker.io/kubeflowkatib/mxnet-mnist:v0.15.0
|
||||||
command:
|
command:
|
||||||
- "python3"
|
- "python3"
|
||||||
- "/opt/mxnet-mnist/mnist.py"
|
- "/opt/mxnet-mnist/mnist.py"
|
||||||
|
|
|
@ -60,7 +60,7 @@ spec:
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: training-container
|
- name: training-container
|
||||||
image: docker.io/kubeflowkatib/mxnet-mnist:latest
|
image: docker.io/kubeflowkatib/mxnet-mnist:v0.15.0
|
||||||
command:
|
command:
|
||||||
- "python3"
|
- "python3"
|
||||||
- "/opt/mxnet-mnist/mnist.py"
|
- "/opt/mxnet-mnist/mnist.py"
|
||||||
|
|
|
@ -8,13 +8,13 @@ data:
|
||||||
metrics-collector-sidecar: |-
|
metrics-collector-sidecar: |-
|
||||||
{
|
{
|
||||||
"StdOut": {
|
"StdOut": {
|
||||||
"image": "docker.io/kubeflowkatib/file-metrics-collector:latest"
|
"image": "docker.io/kubeflowkatib/file-metrics-collector:v0.15.0"
|
||||||
},
|
},
|
||||||
"File": {
|
"File": {
|
||||||
"image": "docker.io/kubeflowkatib/file-metrics-collector:latest"
|
"image": "docker.io/kubeflowkatib/file-metrics-collector:v0.15.0"
|
||||||
},
|
},
|
||||||
"TensorFlowEvent": {
|
"TensorFlowEvent": {
|
||||||
"image": "docker.io/kubeflowkatib/tfevent-metrics-collector:latest",
|
"image": "docker.io/kubeflowkatib/tfevent-metrics-collector:v0.15.0",
|
||||||
"resources": {
|
"resources": {
|
||||||
"limits": {
|
"limits": {
|
||||||
"memory": "1Gi"
|
"memory": "1Gi"
|
||||||
|
@ -25,31 +25,31 @@ data:
|
||||||
suggestion: |-
|
suggestion: |-
|
||||||
{
|
{
|
||||||
"random": {
|
"random": {
|
||||||
"image": "docker.io/kubeflowkatib/suggestion-hyperopt:latest"
|
"image": "docker.io/kubeflowkatib/suggestion-hyperopt:v0.15.0"
|
||||||
},
|
},
|
||||||
"tpe": {
|
"tpe": {
|
||||||
"image": "docker.io/kubeflowkatib/suggestion-hyperopt:latest"
|
"image": "docker.io/kubeflowkatib/suggestion-hyperopt:v0.15.0"
|
||||||
},
|
},
|
||||||
"grid": {
|
"grid": {
|
||||||
"image": "docker.io/kubeflowkatib/suggestion-optuna:latest"
|
"image": "docker.io/kubeflowkatib/suggestion-optuna:v0.15.0"
|
||||||
},
|
},
|
||||||
"hyperband": {
|
"hyperband": {
|
||||||
"image": "docker.io/kubeflowkatib/suggestion-hyperband:latest"
|
"image": "docker.io/kubeflowkatib/suggestion-hyperband:v0.15.0"
|
||||||
},
|
},
|
||||||
"bayesianoptimization": {
|
"bayesianoptimization": {
|
||||||
"image": "docker.io/kubeflowkatib/suggestion-skopt:latest"
|
"image": "docker.io/kubeflowkatib/suggestion-skopt:v0.15.0"
|
||||||
},
|
},
|
||||||
"cmaes": {
|
"cmaes": {
|
||||||
"image": "docker.io/kubeflowkatib/suggestion-goptuna:latest"
|
"image": "docker.io/kubeflowkatib/suggestion-goptuna:v0.15.0"
|
||||||
},
|
},
|
||||||
"sobol": {
|
"sobol": {
|
||||||
"image": "docker.io/kubeflowkatib/suggestion-goptuna:latest"
|
"image": "docker.io/kubeflowkatib/suggestion-goptuna:v0.15.0"
|
||||||
},
|
},
|
||||||
"multivariate-tpe": {
|
"multivariate-tpe": {
|
||||||
"image": "docker.io/kubeflowkatib/suggestion-optuna:latest"
|
"image": "docker.io/kubeflowkatib/suggestion-optuna:v0.15.0"
|
||||||
},
|
},
|
||||||
"enas": {
|
"enas": {
|
||||||
"image": "docker.io/kubeflowkatib/suggestion-enas:latest",
|
"image": "docker.io/kubeflowkatib/suggestion-enas:v0.15.0",
|
||||||
"resources": {
|
"resources": {
|
||||||
"limits": {
|
"limits": {
|
||||||
"memory": "200Mi"
|
"memory": "200Mi"
|
||||||
|
@ -57,10 +57,10 @@ data:
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"darts": {
|
"darts": {
|
||||||
"image": "docker.io/kubeflowkatib/suggestion-darts:latest"
|
"image": "docker.io/kubeflowkatib/suggestion-darts:v0.15.0"
|
||||||
},
|
},
|
||||||
"pbt": {
|
"pbt": {
|
||||||
"image": "docker.io/kubeflowkatib/suggestion-pbt:latest",
|
"image": "docker.io/kubeflowkatib/suggestion-pbt:v0.15.0",
|
||||||
"persistentVolumeClaimSpec": {
|
"persistentVolumeClaimSpec": {
|
||||||
"accessModes": [
|
"accessModes": [
|
||||||
"ReadWriteMany"
|
"ReadWriteMany"
|
||||||
|
@ -76,6 +76,6 @@ data:
|
||||||
early-stopping: |-
|
early-stopping: |-
|
||||||
{
|
{
|
||||||
"medianstop": {
|
"medianstop": {
|
||||||
"image": "docker.io/kubeflowkatib/earlystopping-medianstop:latest"
|
"image": "docker.io/kubeflowkatib/earlystopping-medianstop:v0.15.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,7 +15,7 @@ data:
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: training-container
|
- name: training-container
|
||||||
image: docker.io/kubeflowkatib/mxnet-mnist:latest
|
image: docker.io/kubeflowkatib/mxnet-mnist:v0.15.0
|
||||||
command:
|
command:
|
||||||
- "python3"
|
- "python3"
|
||||||
- "/opt/mxnet-mnist/mnist.py"
|
- "/opt/mxnet-mnist/mnist.py"
|
||||||
|
@ -33,7 +33,7 @@ data:
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: training-container
|
- name: training-container
|
||||||
image: docker.io/kubeflowkatib/enas-cnn-cifar10-cpu:latest
|
image: docker.io/kubeflowkatib/enas-cnn-cifar10-cpu:v0.15.0
|
||||||
command:
|
command:
|
||||||
- python3
|
- python3
|
||||||
- -u
|
- -u
|
||||||
|
@ -54,7 +54,7 @@ data:
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: pytorch
|
- name: pytorch
|
||||||
image: docker.io/kubeflowkatib/pytorch-mnist-cpu:latest
|
image: docker.io/kubeflowkatib/pytorch-mnist-cpu:v0.15.0
|
||||||
command:
|
command:
|
||||||
- "python3"
|
- "python3"
|
||||||
- "/opt/pytorch-mnist/mnist.py"
|
- "/opt/pytorch-mnist/mnist.py"
|
||||||
|
@ -68,7 +68,7 @@ data:
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: pytorch
|
- name: pytorch
|
||||||
image: docker.io/kubeflowkatib/pytorch-mnist-cpu:latest
|
image: docker.io/kubeflowkatib/pytorch-mnist-cpu:v0.15.0
|
||||||
command:
|
command:
|
||||||
- "python3"
|
- "python3"
|
||||||
- "/opt/pytorch-mnist/mnist.py"
|
- "/opt/pytorch-mnist/mnist.py"
|
||||||
|
|
|
@ -22,13 +22,13 @@ resources:
|
||||||
images:
|
images:
|
||||||
- name: docker.io/kubeflowkatib/katib-controller
|
- name: docker.io/kubeflowkatib/katib-controller
|
||||||
newName: docker.io/kubeflowkatib/katib-controller
|
newName: docker.io/kubeflowkatib/katib-controller
|
||||||
newTag: latest
|
newTag: v0.15.0
|
||||||
- name: docker.io/kubeflowkatib/katib-db-manager
|
- name: docker.io/kubeflowkatib/katib-db-manager
|
||||||
newName: 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
|
- name: docker.io/kubeflowkatib/katib-ui
|
||||||
newName: docker.io/kubeflowkatib/katib-ui
|
newName: docker.io/kubeflowkatib/katib-ui
|
||||||
newTag: latest
|
newTag: v0.15.0
|
||||||
|
|
||||||
patchesStrategicMerge:
|
patchesStrategicMerge:
|
||||||
- patches/katib-cert-injection.yaml
|
- patches/katib-cert-injection.yaml
|
||||||
|
|
|
@ -20,16 +20,16 @@ resources:
|
||||||
images:
|
images:
|
||||||
- name: docker.io/kubeflowkatib/katib-controller
|
- name: docker.io/kubeflowkatib/katib-controller
|
||||||
newName: docker.io/kubeflowkatib/katib-controller
|
newName: docker.io/kubeflowkatib/katib-controller
|
||||||
newTag: latest
|
newTag: v0.15.0
|
||||||
- name: docker.io/kubeflowkatib/katib-db-manager
|
- name: docker.io/kubeflowkatib/katib-db-manager
|
||||||
newName: 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
|
- name: docker.io/kubeflowkatib/katib-ui
|
||||||
newName: docker.io/kubeflowkatib/katib-ui
|
newName: docker.io/kubeflowkatib/katib-ui
|
||||||
newTag: latest
|
newTag: v0.15.0
|
||||||
- name: docker.io/kubeflowkatib/cert-generator
|
- name: docker.io/kubeflowkatib/cert-generator
|
||||||
newName: docker.io/kubeflowkatib/cert-generator
|
newName: docker.io/kubeflowkatib/cert-generator
|
||||||
newTag: latest
|
newTag: v0.15.0
|
||||||
patchesStrategicMerge:
|
patchesStrategicMerge:
|
||||||
- patches/db-manager.yaml
|
- patches/db-manager.yaml
|
||||||
# Modify katib-mysql-secrets with parameters for the DB.
|
# Modify katib-mysql-secrets with parameters for the DB.
|
||||||
|
|
|
@ -30,13 +30,13 @@ resources:
|
||||||
images:
|
images:
|
||||||
- name: docker.io/kubeflowkatib/katib-controller
|
- name: docker.io/kubeflowkatib/katib-controller
|
||||||
newName: docker.io/kubeflowkatib/katib-controller
|
newName: docker.io/kubeflowkatib/katib-controller
|
||||||
newTag: latest
|
newTag: v0.15.0
|
||||||
- name: docker.io/kubeflowkatib/katib-db-manager
|
- name: docker.io/kubeflowkatib/katib-db-manager
|
||||||
newName: 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
|
- name: docker.io/kubeflowkatib/katib-ui
|
||||||
newName: docker.io/kubeflowkatib/katib-ui
|
newName: docker.io/kubeflowkatib/katib-ui
|
||||||
newTag: latest
|
newTag: v0.15.0
|
||||||
|
|
||||||
patchesJson6902:
|
patchesJson6902:
|
||||||
# Annotate Service to delegate TLS-secret generation to OpenShift service controller
|
# Annotate Service to delegate TLS-secret generation to OpenShift service controller
|
||||||
|
|
|
@ -22,16 +22,16 @@ resources:
|
||||||
images:
|
images:
|
||||||
- name: docker.io/kubeflowkatib/katib-controller
|
- name: docker.io/kubeflowkatib/katib-controller
|
||||||
newName: docker.io/kubeflowkatib/katib-controller
|
newName: docker.io/kubeflowkatib/katib-controller
|
||||||
newTag: latest
|
newTag: v0.15.0
|
||||||
- name: docker.io/kubeflowkatib/katib-db-manager
|
- name: docker.io/kubeflowkatib/katib-db-manager
|
||||||
newName: 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
|
- name: docker.io/kubeflowkatib/katib-ui
|
||||||
newName: docker.io/kubeflowkatib/katib-ui
|
newName: docker.io/kubeflowkatib/katib-ui
|
||||||
newTag: latest
|
newTag: v0.15.0
|
||||||
- name: docker.io/kubeflowkatib/cert-generator
|
- name: docker.io/kubeflowkatib/cert-generator
|
||||||
newName: docker.io/kubeflowkatib/cert-generator
|
newName: docker.io/kubeflowkatib/cert-generator
|
||||||
newTag: latest
|
newTag: v0.15.0
|
||||||
patchesJson6902:
|
patchesJson6902:
|
||||||
- target:
|
- target:
|
||||||
group: apps
|
group: apps
|
||||||
|
|
|
@ -22,13 +22,13 @@ resources:
|
||||||
images:
|
images:
|
||||||
- name: docker.io/kubeflowkatib/katib-controller
|
- name: docker.io/kubeflowkatib/katib-controller
|
||||||
newName: docker.io/kubeflowkatib/katib-controller
|
newName: docker.io/kubeflowkatib/katib-controller
|
||||||
newTag: latest
|
newTag: v0.15.0
|
||||||
- name: docker.io/kubeflowkatib/katib-db-manager
|
- name: docker.io/kubeflowkatib/katib-db-manager
|
||||||
newName: 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
|
- name: docker.io/kubeflowkatib/katib-ui
|
||||||
newName: docker.io/kubeflowkatib/katib-ui
|
newName: docker.io/kubeflowkatib/katib-ui
|
||||||
newTag: latest
|
newTag: v0.15.0
|
||||||
- name: docker.io/kubeflowkatib/cert-generator
|
- name: docker.io/kubeflowkatib/cert-generator
|
||||||
newName: docker.io/kubeflowkatib/cert-generator
|
newName: docker.io/kubeflowkatib/cert-generator
|
||||||
newTag: latest
|
newTag: v0.15.0
|
||||||
|
|
|
@ -11,13 +11,13 @@ resources:
|
||||||
images:
|
images:
|
||||||
- name: docker.io/kubeflowkatib/katib-controller
|
- name: docker.io/kubeflowkatib/katib-controller
|
||||||
newName: docker.io/kubeflowkatib/katib-controller
|
newName: docker.io/kubeflowkatib/katib-controller
|
||||||
newTag: latest
|
newTag: v0.15.0
|
||||||
- name: docker.io/kubeflowkatib/katib-db-manager
|
- name: docker.io/kubeflowkatib/katib-db-manager
|
||||||
newName: 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
|
- name: docker.io/kubeflowkatib/katib-ui
|
||||||
newName: docker.io/kubeflowkatib/katib-ui
|
newName: docker.io/kubeflowkatib/katib-ui
|
||||||
newTag: latest
|
newTag: v0.15.0
|
||||||
|
|
||||||
patchesStrategicMerge:
|
patchesStrategicMerge:
|
||||||
- patches/remove-namespace.yaml
|
- patches/remove-namespace.yaml
|
||||||
|
|
|
@ -5,7 +5,7 @@ spec:
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: training-container
|
- name: training-container
|
||||||
image: docker.io/kubeflowkatib/mxnet-mnist:latest
|
image: docker.io/kubeflowkatib/mxnet-mnist:v0.15.0
|
||||||
command:
|
command:
|
||||||
- "python3"
|
- "python3"
|
||||||
- "/opt/mxnet-mnist/mnist.py"
|
- "/opt/mxnet-mnist/mnist.py"
|
||||||
|
|
|
@ -5,7 +5,7 @@ spec:
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: training-container
|
- name: training-container
|
||||||
image: docker.io/kubeflowkatib/enas-cnn-cifar10-cpu:latest
|
image: docker.io/kubeflowkatib/enas-cnn-cifar10-cpu:v0.15.0
|
||||||
command:
|
command:
|
||||||
- python3
|
- python3
|
||||||
- -u
|
- -u
|
||||||
|
|
|
@ -42,7 +42,6 @@ class Operator(CharmBase):
|
||||||
|
|
||||||
def set_pod_spec(self, event):
|
def set_pod_spec(self, event):
|
||||||
try:
|
try:
|
||||||
|
|
||||||
self._check_leader()
|
self._check_leader()
|
||||||
|
|
||||||
interfaces = self._get_interfaces()
|
interfaces = self._get_interfaces()
|
||||||
|
|
|
@ -729,9 +729,9 @@ func fetchMasterPodName(clientset *kubernetes.Clientset, trial *trialsv1beta1.Tr
|
||||||
}
|
}
|
||||||
|
|
||||||
if len(podList.Items) == 0 {
|
if len(podList.Items) == 0 {
|
||||||
return "", errors.New(`Logs for the trial could not be found.
|
return "", errors.New(`Failed to find logs for this Trial. Make sure you've set "spec.trialTemplate.retain"
|
||||||
Was 'retain: true' specified in the Experiment definition?
|
field to "true" in the Experiment definition. If this error persists then the Pod's logs are not currently
|
||||||
An example can be found here: https://github.com/kubeflow/katib/blob/7bf39225f7235ee4ba6cf285ecc2c455c6471234/examples/v1beta1/argo/argo-workflow.yaml#L33`)
|
persisted in the cluster.`)
|
||||||
}
|
}
|
||||||
if len(podList.Items) > 1 {
|
if len(podList.Items) > 1 {
|
||||||
return "", errors.New("More than one master replica found")
|
return "", errors.New("More than one master replica found")
|
||||||
|
|
|
@ -46,6 +46,16 @@
|
||||||
></app-trial-overview>
|
></app-trial-overview>
|
||||||
</ng-template>
|
</ng-template>
|
||||||
</mat-tab>
|
</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">
|
<mat-tab label="YAML">
|
||||||
<ng-template matTabContent>
|
<ng-template matTabContent>
|
||||||
<app-trial-yaml [trialJson]="trialDetails"></app-trial-yaml>
|
<app-trial-yaml [trialJson]="trialDetails"></app-trial-yaml>
|
||||||
|
|
|
@ -21,6 +21,7 @@ let NamespaceServiceStub: Partial<NamespaceService>;
|
||||||
KWABackendServiceStub = {
|
KWABackendServiceStub = {
|
||||||
getTrial: () => of([]),
|
getTrial: () => of([]),
|
||||||
getTrialInfo: () => of(),
|
getTrialInfo: () => of(),
|
||||||
|
getTrialLogs: () => of(),
|
||||||
};
|
};
|
||||||
|
|
||||||
NamespaceServiceStub = {
|
NamespaceServiceStub = {
|
||||||
|
|
|
@ -30,6 +30,8 @@ export class TrialDetailsComponent implements OnInit, OnDestroy {
|
||||||
experimentName: string;
|
experimentName: string;
|
||||||
showTrialGraph: boolean = false;
|
showTrialGraph: boolean = false;
|
||||||
options: {};
|
options: {};
|
||||||
|
trialLogs: string;
|
||||||
|
logsRequestError: string;
|
||||||
chartData: ChartPoint[] = [];
|
chartData: ChartPoint[] = [];
|
||||||
yScaleMax = 0;
|
yScaleMax = 0;
|
||||||
yScaleMin = 1;
|
yScaleMin = 1;
|
||||||
|
@ -133,6 +135,17 @@ export class TrialDetailsComponent implements OnInit, OnDestroy {
|
||||||
}
|
}
|
||||||
this.pageLoading = false;
|
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 {
|
private trialStatus(trial: TrialK8s): StatusEnum {
|
||||||
|
|
|
@ -16,6 +16,7 @@ import {
|
||||||
PanelModule,
|
PanelModule,
|
||||||
} from 'kubeflow';
|
} from 'kubeflow';
|
||||||
import { NgxEchartsModule } from 'ngx-echarts';
|
import { NgxEchartsModule } from 'ngx-echarts';
|
||||||
|
import { TrialLogsModule } from './trial-logs/trial-logs.module';
|
||||||
|
|
||||||
@NgModule({
|
@NgModule({
|
||||||
declarations: [TrialDetailsComponent],
|
declarations: [TrialDetailsComponent],
|
||||||
|
@ -36,6 +37,7 @@ import { NgxEchartsModule } from 'ngx-echarts';
|
||||||
NgxEchartsModule.forRoot({
|
NgxEchartsModule.forRoot({
|
||||||
echarts: () => import('echarts'),
|
echarts: () => import('echarts'),
|
||||||
}),
|
}),
|
||||||
|
TrialLogsModule,
|
||||||
],
|
],
|
||||||
exports: [TrialDetailsComponent],
|
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 })
|
.post(url, { postData: exp })
|
||||||
.pipe(catchError(error => this.parseError(error)));
|
.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(
|
setuptools.setup(
|
||||||
name="kubeflow-katib",
|
name="kubeflow-katib",
|
||||||
version="0.14.0",
|
version="0.15.0",
|
||||||
author="Kubeflow Authors",
|
author="Kubeflow Authors",
|
||||||
author_email="premnath.vel@gmail.com",
|
author_email="premnath.vel@gmail.com",
|
||||||
license="Apache License Version 2.0",
|
license="Apache License Version 2.0",
|
||||||
|
|
|
@ -52,7 +52,7 @@ spec:
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: training-container
|
- name: training-container
|
||||||
image: docker.io/kubeflowkatib/mxnet-mnist:latest
|
image: docker.io/kubeflowkatib/mxnet-mnist:v0.15.0
|
||||||
command:
|
command:
|
||||||
- "python3"
|
- "python3"
|
||||||
- "/opt/mxnet-mnist/mnist.py"
|
- "/opt/mxnet-mnist/mnist.py"
|
||||||
|
|
|
@ -52,7 +52,7 @@ spec:
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: training-container
|
- name: training-container
|
||||||
image: docker.io/kubeflowkatib/mxnet-mnist:latest
|
image: docker.io/kubeflowkatib/mxnet-mnist:v0.15.0
|
||||||
command:
|
command:
|
||||||
- "python3"
|
- "python3"
|
||||||
- "/opt/mxnet-mnist/mnist.py"
|
- "/opt/mxnet-mnist/mnist.py"
|
||||||
|
|
Loading…
Reference in New Issue