From dfdd6dc98ad956bd78551d6a628adff633ab4ce3 Mon Sep 17 00:00:00 2001 From: Andrey Velichkevich Date: Thu, 7 May 2020 03:43:09 +0100 Subject: [PATCH] Build image for DARTS Suggestion (#1178) * Build image for darts Update katib config with darts * Update prow * Fix e2e test --- .../katib-controller/katib-config.yaml | 3 ++ prow_config.yaml | 2 + test/e2e/v1alpha3/resume-e2e-experiment.go | 2 +- test/e2e/v1alpha3/run-e2e-experiment.go | 2 +- .../v1alpha3/build-suggestion-darts.sh | 42 +++++++++++++++++++ .../components/workflows-v1alpha3.libsonnet | 9 +++- 6 files changed, 57 insertions(+), 3 deletions(-) create mode 100755 test/scripts/v1alpha3/build-suggestion-darts.sh diff --git a/manifests/v1alpha3/katib-controller/katib-config.yaml b/manifests/v1alpha3/katib-controller/katib-config.yaml index 2070dc3f611..e93dc73780f 100644 --- a/manifests/v1alpha3/katib-controller/katib-config.yaml +++ b/manifests/v1alpha3/katib-controller/katib-config.yaml @@ -49,5 +49,8 @@ data: }, "cmaes": { "image": "gcr.io/kubeflow-images-public/katib/v1alpha3/suggestion-goptuna" + }, + "darts": { + "image": "gcr.io/kubeflow-images-public/katib/v1alpha3/suggestion-darts" } } diff --git a/prow_config.yaml b/prow_config.yaml index 9ca7fa536f2..d9210eadea9 100644 --- a/prow_config.yaml +++ b/prow_config.yaml @@ -30,6 +30,7 @@ workflows: - cmd/suggestion/hyperband/v1alpha3/* - cmd/suggestion/hyperopt/v1alpha3/* - cmd/suggestion/nas/enas/v1alpha3/* + - cmd/suggestion/nas/darts/v1alpha3/* - cmd/suggestion/skopt/v1alpha3/* - cmd/suggestion/goptuna/v1alpha3/* - cmd/ui/v1alpha3/* @@ -71,6 +72,7 @@ workflows: - cmd/suggestion/hyperband/v1alpha3/* - cmd/suggestion/hyperopt/v1alpha3/* - cmd/suggestion/nas/enas/v1alpha3/* + - cmd/suggestion/nas/darts/v1alpha3/* - cmd/suggestion/skopt/v1alpha3/* - cmd/suggestion/goptuna/v1alpha3/* - cmd/ui/v1alpha3/* diff --git a/test/e2e/v1alpha3/resume-e2e-experiment.go b/test/e2e/v1alpha3/resume-e2e-experiment.go index 125d4c3da82..10aa97f895e 100644 --- a/test/e2e/v1alpha3/resume-e2e-experiment.go +++ b/test/e2e/v1alpha3/resume-e2e-experiment.go @@ -143,7 +143,7 @@ func main() { } metricVal, err := strconv.ParseFloat(*metricValStr, 64) - if err != nil && + if err == nil && ((exp.Spec.Objective.Goal != nil && objectiveType == commonv1alpha3.ObjectiveTypeMinimize && metricVal < goal) || (exp.Spec.Objective.Goal != nil && objectiveType == commonv1alpha3.ObjectiveTypeMaximize && metricVal > goal)) { log.Print("Objective Goal reached") diff --git a/test/e2e/v1alpha3/run-e2e-experiment.go b/test/e2e/v1alpha3/run-e2e-experiment.go index c3a1a3c0474..d5c268ac466 100644 --- a/test/e2e/v1alpha3/run-e2e-experiment.go +++ b/test/e2e/v1alpha3/run-e2e-experiment.go @@ -126,7 +126,7 @@ func main() { } metricVal, err := strconv.ParseFloat(*metricValStr, 64) - if err != nil && + if err == nil && ((exp.Spec.Objective.Goal != nil && objectiveType == commonv1alpha3.ObjectiveTypeMinimize && metricVal < goal) || (exp.Spec.Objective.Goal != nil && objectiveType == commonv1alpha3.ObjectiveTypeMaximize && metricVal > goal)) { log.Print("Objective Goal reached") diff --git a/test/scripts/v1alpha3/build-suggestion-darts.sh b/test/scripts/v1alpha3/build-suggestion-darts.sh new file mode 100755 index 00000000000..34b53ba9099 --- /dev/null +++ b/test/scripts/v1alpha3/build-suggestion-darts.sh @@ -0,0 +1,42 @@ +#!/bin/bash + +# Copyright 2018 The Kubeflow Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# This shell script is used to build an image from our argo workflow + +set -o errexit +set -o nounset +set -o pipefail + +export PATH=${GOPATH}/bin:/usr/local/go/bin:${PATH} +REGISTRY="${GCP_REGISTRY}" +PROJECT="${GCP_PROJECT}" +GO_DIR=${GOPATH}/src/github.com/${REPO_OWNER}/${REPO_NAME}-suggestion-darts +VERSION=$(git describe --tags --always --dirty) + +echo "Activating service-account" +gcloud auth activate-service-account --key-file=${GOOGLE_APPLICATION_CREDENTIALS} + +echo "Copy source to GOPATH" +mkdir -p ${GO_DIR} +cp -r cmd ${GO_DIR}/cmd +cp -r pkg ${GO_DIR}/pkg +cp -r vendor ${GO_DIR}/vendor + +cd ${GO_DIR} + +cp cmd/suggestion/nas/darts/v1alpha3/Dockerfile . +gcloud builds submit . --tag=${REGISTRY}/${REPO_NAME}/v1alpha3/suggestion-darts:${VERSION} --project=${PROJECT} +gcloud container images add-tag --quiet ${REGISTRY}/${REPO_NAME}/v1alpha3/suggestion-darts:${VERSION} ${REGISTRY}/${REPO_NAME}/v1alpha3/suggestion-darts:latest --verbosity=info diff --git a/test/workflows/components/workflows-v1alpha3.libsonnet b/test/workflows/components/workflows-v1alpha3.libsonnet index 00bbe6af2d4..9f7d3211882 100644 --- a/test/workflows/components/workflows-v1alpha3.libsonnet +++ b/test/workflows/components/workflows-v1alpha3.libsonnet @@ -243,6 +243,10 @@ name: "build-suggestion-goptuna", template: "build-suggestion-goptuna", }, + { + name: "build-suggestion-darts", + template: "build-suggestion-darts", + }, { name: "build-earlystopping-median", template: "build-earlystopping-median", @@ -434,7 +438,10 @@ ]), // build-suggestion-enas $.parts(namespace, name, overrides).e2e(prow_env, bucket).buildTemplate("build-suggestion-goptuna", testWorkerImage, [ "test/scripts/v1alpha3/build-suggestion-goptuna.sh", - ]), // build-suggestion-enas + ]), // build-suggestion-goptuna + $.parts(namespace, name, overrides).e2e(prow_env, bucket).buildTemplate("build-suggestion-darts", testWorkerImage, [ + "test/scripts/v1alpha3/build-suggestion-darts.sh", + ]), // build-suggestion-darts $.parts(namespace, name, overrides).e2e(prow_env, bucket).buildTemplate("build-earlystopping-median", testWorkerImage, [ "test/scripts/v1alpha3/build-earlystopping-median.sh", ]), // build-earlystopping-median