From 28aa3b2c7d87515a10242aa6de9aa4ac238a7a90 Mon Sep 17 00:00:00 2001 From: Sam DeLuca Date: Wed, 27 Mar 2019 13:56:56 -0400 Subject: [PATCH] 2.5.0 rc->release (#20) (#21) * adding a jenkinsfile * a small change which will hopefully speed up jenkins builds a lot * cleanup of docker push logic * cleanup of docker push logic * cleanup of docker push logic * cleanup of docker push logic * cleanup of docker push logic * changing the import path * preserving original link in a readme * use semantic version tagging (#9) * [CSE-11] adding config file loader (#10) * adding configmap loader * PR #10 should have been a minor version not a patch (#11) * adding autodeploy to jenkinsfile (#12) * fixing autodeployments (#13) * [CSE-13] extended error handling for workflows (#16) * wip * mixed case imports cause all sorts of problems, switch to lowercase * fixing build issu * fixing error deserialization * fixing error deserialization * unmatched string logic * make workflows fail on error trigger * properly evaluate workflow failures * dev version bump * serialize errors and warnings into wf crd * ugh go types * rewriting error handling to support file sources * temporarily commenting out a test * fixing warning handler * fixing error handling fixing executor fixing executor Fixing executor fixing executor fixing executor fixing executor asdf fixing executor fixing operator operator fixing executor cleanup * cleaning up types * updating codegen * fixing version * updating codegen * add podname and stage name to error result * version 2.5.0->2.4.0 * ErrorCondition->ExceptionCondition * codegen * [CS-14] merging UI update into rc (#18) * update node * UI tweaks * fixing a comment * versionbump * fixing build errors --- .argo-ci/ci.yaml | 10 +- Branding Assets.md | 2 +- CONTRIBUTING.md | 4 +- Jenkinsfile | 8 +- Makefile | 2 +- README.md | 6 +- VERSION | 2 +- api/openapi-spec/swagger.json | 60 +++- cmd/argo/commands/common.go | 12 +- cmd/argo/commands/delete.go | 2 +- cmd/argo/commands/get.go | 24 +- cmd/argo/commands/lint.go | 4 +- cmd/argo/commands/list.go | 8 +- cmd/argo/commands/logs.go | 6 +- cmd/argo/commands/resubmit.go | 2 +- cmd/argo/commands/resume.go | 2 +- cmd/argo/commands/retry.go | 2 +- cmd/argo/commands/root.go | 2 +- cmd/argo/commands/submit.go | 8 +- cmd/argo/commands/suspend.go | 2 +- cmd/argo/commands/terminate.go | 2 +- cmd/argo/commands/wait.go | 2 +- cmd/argo/commands/watch.go | 2 +- cmd/argo/main.go | 2 +- cmd/argoexec/commands/resource.go | 2 +- cmd/argoexec/commands/root.go | 12 +- cmd/argoexec/commands/wait.go | 14 + cmd/argoexec/main.go | 2 +- cmd/workflow-controller/main.go | 6 +- community/README.md | 4 +- demo.md | 6 +- errors/errors_test.go | 2 +- examples/README.md | 10 +- examples/extended-errors.yaml | 40 +++ examples/input-artifact-git.yaml | 4 +- hack/gen-openapi-spec/main.go | 6 +- hack/update-codegen.sh | 2 +- hack/update-openapigen.sh | 4 +- .../workflow/v1alpha1/openapi_generated.go | 294 ++++++++++++------ pkg/apis/workflow/v1alpha1/register.go | 2 +- pkg/apis/workflow/v1alpha1/types.go | 23 ++ .../v1alpha1/zz_generated.deepcopy.go | 52 ++++ pkg/client/clientset/versioned/clientset.go | 2 +- .../versioned/fake/clientset_generated.go | 6 +- .../clientset/versioned/fake/register.go | 2 +- .../clientset/versioned/scheme/register.go | 2 +- .../workflow/v1alpha1/fake/fake_workflow.go | 2 +- .../v1alpha1/fake/fake_workflow_client.go | 2 +- .../typed/workflow/v1alpha1/workflow.go | 4 +- .../workflow/v1alpha1/workflow_client.go | 4 +- .../informers/externalversions/factory.go | 6 +- .../informers/externalversions/generic.go | 2 +- .../internalinterfaces/factory_interfaces.go | 2 +- .../externalversions/workflow/interface.go | 4 +- .../workflow/v1alpha1/interface.go | 2 +- .../workflow/v1alpha1/workflow.go | 8 +- .../listers/workflow/v1alpha1/workflow.go | 2 +- test/e2e/functional/git-clone-test.yaml | 2 +- test/e2e/wait_test.go | 2 +- test/e2e/workflow_test.go | 2 +- test/test.go | 2 +- ui/README.md | 2 +- util/cmd/cmd.go | 2 +- util/retry/retry.go | 2 +- workflow/artifacts/artifactory/artifactory.go | 4 +- .../artifacts/artifactory/artifactory_test.go | 4 +- workflow/artifacts/artifacts.go | 2 +- workflow/artifacts/gcs/gcs.go | 4 +- workflow/artifacts/git/git.go | 4 +- workflow/artifacts/http/http.go | 6 +- workflow/artifacts/raw/raw.go | 4 +- workflow/artifacts/raw/raw_test.go | 4 +- workflow/artifacts/s3/s3.go | 2 +- workflow/common/common.go | 6 +- workflow/common/util.go | 6 +- workflow/controller/config.go | 8 +- workflow/controller/controller.go | 12 +- workflow/controller/controller_test.go | 4 +- workflow/controller/dag.go | 6 +- workflow/controller/dag_test.go | 4 +- workflow/controller/exec_control.go | 6 +- workflow/controller/operator.go | 94 +++++- workflow/controller/operator_test.go | 6 +- workflow/controller/scope.go | 4 +- workflow/controller/steps.go | 6 +- workflow/controller/suspend.go | 2 +- workflow/controller/workflowpod.go | 6 +- workflow/controller/workflowpod_test.go | 2 +- workflow/executor/docker/docker.go | 6 +- workflow/executor/executor.go | 204 ++++++++++-- workflow/executor/executor_test.go | 4 +- workflow/executor/kubelet/client.go | 6 +- workflow/executor/kubelet/kubelet.go | 2 +- workflow/executor/resource.go | 2 +- workflow/metrics/collector.go | 4 +- workflow/ttlcontroller/ttlcontroller.go | 8 +- workflow/ttlcontroller/ttlcontroller_test.go | 6 +- workflow/util/util.go | 24 +- workflow/util/util_test.go | 2 +- workflow/validate/lint.go | 8 +- workflow/validate/validate.go | 6 +- workflow/validate/validate_test.go | 6 +- 102 files changed, 886 insertions(+), 333 deletions(-) create mode 100644 examples/extended-errors.yaml diff --git a/.argo-ci/ci.yaml b/.argo-ci/ci.yaml index 5ee6ebc2c2de..4d44bb462f80 100644 --- a/.argo-ci/ci.yaml +++ b/.argo-ci/ci.yaml @@ -9,7 +9,7 @@ spec: - name: revision value: master - name: repo - value: https://github.com/CyrusBiotechnology/argo.git + value: https://github.com/cyrusbiotechnology/argo.git templates: - name: argo-ci @@ -39,7 +39,7 @@ spec: - name: cmd artifacts: - name: code - path: /go/src/github.com/CyrusBiotechnology/argo + path: /go/src/github.com/cyrusbiotechnology/argo git: repo: "{{workflow.parameters.repo}}" revision: "{{workflow.parameters.revision}}" @@ -47,7 +47,7 @@ spec: image: argoproj/argo-ci-builder:latest command: [sh, -c] args: ["{{inputs.parameters.cmd}}"] - workingDir: /go/src/github.com/CyrusBiotechnology/argo + workingDir: /go/src/github.com/cyrusbiotechnology/argo - name: ci-dind inputs: @@ -55,7 +55,7 @@ spec: - name: cmd artifacts: - name: code - path: /go/src/github.com/CyrusBiotechnology/argo + path: /go/src/github.com/cyrusbiotechnology/argo git: repo: "{{workflow.parameters.repo}}" revision: "{{workflow.parameters.revision}}" @@ -63,7 +63,7 @@ spec: image: argoproj/argo-ci-builder:latest command: [sh, -c] args: ["until docker ps; do sleep 3; done && {{inputs.parameters.cmd}}"] - workingDir: /go/src/github.com/CyrusBiotechnology/argo + workingDir: /go/src/github.com/cyrusbiotechnology/argo env: - name: DOCKER_HOST value: 127.0.0.1 diff --git a/Branding Assets.md b/Branding Assets.md index d2c2bcb09e7b..2fbe4d73dc95 100644 --- a/Branding Assets.md +++ b/Branding Assets.md @@ -1,3 +1,3 @@ # Argo Branding Assets ## Logo -![Argo Logo](https://github.com/CyrusBiotechnology/argo/blob/master/argo-logo600.png "Argo Logo") +![Argo Logo](https://github.com/cyrusbiotechnology/argo/blob/master/argo-logo600.png "Argo Logo") diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 07d5de4b9cba..1491117a1cb1 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -29,8 +29,8 @@ Go to https://groups.google.com/forum/#!forum/argoproj ### Quickstart ``` -$ go get github.com/CyrusBiotechnology/argo -$ cd $(go env GOPATH)/src/github.com/CyrusBiotechnology/argo +$ go get github.com/cyrusbiotechnology/argo +$ cd $(go env GOPATH)/src/github.com/cyrusbiotechnology/argo $ dep ensure -vendor-only $ make ``` diff --git a/Jenkinsfile b/Jenkinsfile index ad217c011a74..38a1de3db6ad 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -11,8 +11,8 @@ def runUtilityCommand(buildCommand) { // Run an arbitrary command inside the docker builder image sh "docker run --rm " + "-v ${pwd()}/dist/pkg:/root/go/pkg " + - "-v ${pwd()}:/root/go/src/github.com/CyrusBiotechnology/argo " + - "-w /root/go/src/github.com/CyrusBiotechnology/argo argo-builder ${buildCommand}" + "-v ${pwd()}:/root/go/src/github.com/cyrusbiotechnology/argo " + + "-w /root/go/src/github.com/cyrusbiotechnology/argo argo-builder ${buildCommand}" } pipeline { @@ -85,8 +85,8 @@ pipeline { stage('push CLI to artifactory') { steps { withCredentials([usernamePassword(credentialsId: 'Artifactory', usernameVariable: 'ARTI_NAME', passwordVariable: 'ARTI_PASS')]) { - runUtilityCommand("curl -u ${ARTI_NAME}:${ARTI_PASS} -T /root/go/src/github.com/CyrusBiotechnology/argo/dist/argo-darwin-amd64 https://cyrusbio.jfrog.io/cyrusbio/argo-cli/argo-mac-${VERSION}") - runUtilityCommand("curl -u ${ARTI_NAME}:${ARTI_PASS} -T /root/go/src/github.com/CyrusBiotechnology/argo/dist/argo-linux-amd64 https://cyrusbio.jfrog.io/cyrusbio/argo-cli/argo-linux-${VERSION}") + runUtilityCommand("curl -u ${ARTI_NAME}:${ARTI_PASS} -T /root/go/src/github.com/cyrusbiotechnology/argo/dist/argo-darwin-amd64 https://cyrusbio.jfrog.io/cyrusbio/argo-cli/argo-mac-${VERSION}") + runUtilityCommand("curl -u ${ARTI_NAME}:${ARTI_PASS} -T /root/go/src/github.com/cyrusbiotechnology/argo/dist/argo-linux-amd64 https://cyrusbio.jfrog.io/cyrusbio/argo-cli/argo-linux-${VERSION}") } } } diff --git a/Makefile b/Makefile index e1d72ee4330b..161c3daf826b 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,4 @@ -PACKAGE=github.com/CyrusBiotechnology/argo +PACKAGE=github.com/cyrusbiotechnology/argo CURRENT_DIR=$(shell pwd) DIST_DIR=${CURRENT_DIR}/dist ARGO_CLI_NAME=argo diff --git a/README.md b/README.md index e53b28a2e283..5281d9787254 100644 --- a/README.md +++ b/README.md @@ -22,9 +22,9 @@ Argo is an open source container-native workflow engine for getting work done on * Argo with Kubernetes puts a cloud-scale supercomputer at your fingertips. ## Documentation -* [Get started here](https://github.com/CyrusBiotechnology/argo/blob/master/demo.md) -* [How to write Argo workflow specs](https://github.com/CyrusBiotechnology/argo/blob/master/examples/README.md) -* [How to configure your artifact repository](https://github.com/CyrusBiotechnology/argo/blob/master/ARTIFACT_REPO.md) +* [Get started here](https://github.com/cyrusbiotechnology/argo/blob/master/demo.md) +* [How to write Argo workflow specs](https://github.com/cyrusbiotechnology/argo/blob/master/examples/README.md) +* [How to configure your artifact repository](https://github.com/cyrusbiotechnology/argo/blob/master/ARTIFACT_REPO.md) ## Features * DAG or Steps based declaration of workflows diff --git a/VERSION b/VERSION index 276cbf9e2858..437459cd94c9 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -2.3.0 +2.5.0 diff --git a/api/openapi-spec/swagger.json b/api/openapi-spec/swagger.json index 9c1ce74f8386..de7c63472616 100644 --- a/api/openapi-spec/swagger.json +++ b/api/openapi-spec/swagger.json @@ -2,7 +2,7 @@ "swagger": "2.0", "info": { "title": "Argo", - "version": "v2.2.1" + "version": "v2.4.0" }, "paths": {}, "definitions": { @@ -229,6 +229,52 @@ } } }, + "io.argoproj.workflow.v1alpha1.ExceptionCondition": { + "description": "ExceptionCondition is a container for defining an error or warning rule", + "required": [ + "name" + ], + "properties": { + "message": { + "type": "string" + }, + "name": { + "type": "string" + }, + "patternMatched": { + "type": "string" + }, + "patternUnmatched": { + "type": "string" + }, + "source": { + "type": "string" + } + } + }, + "io.argoproj.workflow.v1alpha1.ExceptionResult": { + "description": "ExceptionResult contains the results on an extended error or warning condition evaluation", + "required": [ + "name", + "message", + "podName", + "stepName" + ], + "properties": { + "message": { + "type": "string" + }, + "name": { + "type": "string" + }, + "podName": { + "type": "string" + }, + "stepName": { + "type": "string" + } + } + }, "io.argoproj.workflow.v1alpha1.GCSArtifact": { "description": "GCSArtifact is the location of a GCS artifact", "required": [ @@ -821,6 +867,12 @@ "description": "DAG template subtype which runs a DAG", "$ref": "#/definitions/io.argoproj.workflow.v1alpha1.DAGTemplate" }, + "errors": { + "type": "array", + "items": { + "$ref": "#/definitions/io.argoproj.workflow.v1alpha1.ExceptionCondition" + } + }, "inputs": { "description": "Inputs describe what inputs parameters and artifacts are supplied to this template", "$ref": "#/definitions/io.argoproj.workflow.v1alpha1.Inputs" @@ -888,6 +940,12 @@ "items": { "$ref": "#/definitions/io.k8s.api.core.v1.Toleration" } + }, + "warnings": { + "type": "array", + "items": { + "$ref": "#/definitions/io.argoproj.workflow.v1alpha1.ExceptionCondition" + } } } }, diff --git a/cmd/argo/commands/common.go b/cmd/argo/commands/common.go index 67a8539082a5..fb46d173da31 100644 --- a/cmd/argo/commands/common.go +++ b/cmd/argo/commands/common.go @@ -7,9 +7,9 @@ import ( "strconv" "strings" - wfv1 "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1" - wfclientset "github.com/CyrusBiotechnology/argo/pkg/client/clientset/versioned" - "github.com/CyrusBiotechnology/argo/pkg/client/clientset/versioned/typed/workflow/v1alpha1" + wfv1 "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1" + wfclientset "github.com/cyrusbiotechnology/argo/pkg/client/clientset/versioned" + "github.com/cyrusbiotechnology/argo/pkg/client/clientset/versioned/typed/workflow/v1alpha1" "github.com/spf13/cobra" "k8s.io/client-go/kubernetes" "k8s.io/client-go/rest" @@ -46,6 +46,12 @@ const ( FgDefault = 39 ) +//useful icons +var ( + YellowWarning = ansiFormat("⚠", FgYellow) + RedError = ansiFormat("✖", FgRed) +) + func initializeSession() { jobStatusIconMap = map[wfv1.NodePhase]string{ wfv1.NodePending: ansiFormat("◷", FgYellow), diff --git a/cmd/argo/commands/delete.go b/cmd/argo/commands/delete.go index d5707cac15bd..5aa5c398bb49 100644 --- a/cmd/argo/commands/delete.go +++ b/cmd/argo/commands/delete.go @@ -10,7 +10,7 @@ import ( "github.com/spf13/cobra" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "github.com/CyrusBiotechnology/argo/workflow/common" + "github.com/cyrusbiotechnology/argo/workflow/common" ) var ( diff --git a/cmd/argo/commands/get.go b/cmd/argo/commands/get.go index 2fa309e38257..2ae34ac72b9d 100644 --- a/cmd/argo/commands/get.go +++ b/cmd/argo/commands/get.go @@ -13,7 +13,7 @@ import ( "github.com/spf13/cobra" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - wfv1 "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1" + wfv1 "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1" ) const onExitSuffix = "onExit" @@ -114,6 +114,28 @@ func printWorkflowHelper(wf *wfv1.Workflow, outFmt string) { } } } + + errorWriter := tabwriter.NewWriter(os.Stdout, 0, 0, 2, ' ', 0) + + if wf.Status.Errors != nil || wf.Status.Warnings != nil { + + fmt.Printf("\nErrors and Warnings:\n") + fmt.Fprintf(errorWriter, "%s\tPODNAME\tCODE\tMESSAGE\n", ansiFormat("STEP", FgDefault)) + } + + if wf.Status.Errors != nil { + for _, errorResult := range wf.Status.Errors { + fmt.Fprintf(errorWriter, "%s %s\t%s\t%s\t%s\n", RedError, errorResult.StepName, errorResult.PodName, errorResult.Name, errorResult.Message) + } + } + + if wf.Status.Warnings != nil { + for _, warningResult := range wf.Status.Warnings { + fmt.Fprintf(errorWriter, "%s %s\t%s\t%s\t%s\n", YellowWarning, warningResult.StepName, warningResult.PodName, warningResult.Name, warningResult.Message) + } + } + _ = errorWriter.Flush() + printTree := true if wf.Status.Nodes == nil { printTree = false diff --git a/cmd/argo/commands/lint.go b/cmd/argo/commands/lint.go index c62b03543129..f0bccb643b45 100644 --- a/cmd/argo/commands/lint.go +++ b/cmd/argo/commands/lint.go @@ -7,8 +7,8 @@ import ( log "github.com/sirupsen/logrus" "github.com/spf13/cobra" - cmdutil "github.com/CyrusBiotechnology/argo/util/cmd" - "github.com/CyrusBiotechnology/argo/workflow/validate" + cmdutil "github.com/cyrusbiotechnology/argo/util/cmd" + "github.com/cyrusbiotechnology/argo/workflow/validate" ) func NewLintCommand() *cobra.Command { diff --git a/cmd/argo/commands/list.go b/cmd/argo/commands/list.go index 327a693c6907..adc9829c9bf9 100644 --- a/cmd/argo/commands/list.go +++ b/cmd/argo/commands/list.go @@ -17,10 +17,10 @@ import ( "k8s.io/apimachinery/pkg/labels" "k8s.io/apimachinery/pkg/selection" - wfv1 "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1" - "github.com/CyrusBiotechnology/argo/pkg/client/clientset/versioned/typed/workflow/v1alpha1" - "github.com/CyrusBiotechnology/argo/workflow/common" - "github.com/CyrusBiotechnology/argo/workflow/util" + wfv1 "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1" + "github.com/cyrusbiotechnology/argo/pkg/client/clientset/versioned/typed/workflow/v1alpha1" + "github.com/cyrusbiotechnology/argo/workflow/common" + "github.com/cyrusbiotechnology/argo/workflow/util" ) type listFlags struct { diff --git a/cmd/argo/commands/logs.go b/cmd/argo/commands/logs.go index 773fe479d109..c8180b9542ea 100644 --- a/cmd/argo/commands/logs.go +++ b/cmd/argo/commands/logs.go @@ -11,10 +11,10 @@ import ( "sync" "time" - "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1" - wfclientset "github.com/CyrusBiotechnology/argo/pkg/client/clientset/versioned" - wfinformers "github.com/CyrusBiotechnology/argo/pkg/client/informers/externalversions" "github.com/argoproj/pkg/errors" + "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1" + wfclientset "github.com/cyrusbiotechnology/argo/pkg/client/clientset/versioned" + wfinformers "github.com/cyrusbiotechnology/argo/pkg/client/informers/externalversions" log "github.com/sirupsen/logrus" "github.com/spf13/cobra" "k8s.io/api/core/v1" diff --git a/cmd/argo/commands/resubmit.go b/cmd/argo/commands/resubmit.go index 7962ba8cdef0..6ad8e1968048 100644 --- a/cmd/argo/commands/resubmit.go +++ b/cmd/argo/commands/resubmit.go @@ -3,8 +3,8 @@ package commands import ( "os" - "github.com/CyrusBiotechnology/argo/workflow/util" "github.com/argoproj/pkg/errors" + "github.com/cyrusbiotechnology/argo/workflow/util" "github.com/spf13/cobra" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" ) diff --git a/cmd/argo/commands/resume.go b/cmd/argo/commands/resume.go index 081e86362fa4..babe8bb23918 100644 --- a/cmd/argo/commands/resume.go +++ b/cmd/argo/commands/resume.go @@ -5,7 +5,7 @@ import ( "log" "os" - "github.com/CyrusBiotechnology/argo/workflow/util" + "github.com/cyrusbiotechnology/argo/workflow/util" "github.com/spf13/cobra" ) diff --git a/cmd/argo/commands/retry.go b/cmd/argo/commands/retry.go index 6c5ce2214908..bc0f8f553fc1 100644 --- a/cmd/argo/commands/retry.go +++ b/cmd/argo/commands/retry.go @@ -7,7 +7,7 @@ import ( "github.com/spf13/cobra" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "github.com/CyrusBiotechnology/argo/workflow/util" + "github.com/cyrusbiotechnology/argo/workflow/util" ) func NewRetryCommand() *cobra.Command { diff --git a/cmd/argo/commands/root.go b/cmd/argo/commands/root.go index eb1f47527cb5..84f29d7c826b 100644 --- a/cmd/argo/commands/root.go +++ b/cmd/argo/commands/root.go @@ -3,7 +3,7 @@ package commands import ( "os" - "github.com/CyrusBiotechnology/argo/util/cmd" + "github.com/cyrusbiotechnology/argo/util/cmd" "github.com/spf13/cobra" "k8s.io/client-go/tools/clientcmd" ) diff --git a/cmd/argo/commands/submit.go b/cmd/argo/commands/submit.go index e34233619936..b71f09696a8a 100644 --- a/cmd/argo/commands/submit.go +++ b/cmd/argo/commands/submit.go @@ -10,10 +10,10 @@ import ( "github.com/argoproj/pkg/json" "github.com/spf13/cobra" - wfv1 "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1" - cmdutil "github.com/CyrusBiotechnology/argo/util/cmd" - "github.com/CyrusBiotechnology/argo/workflow/common" - "github.com/CyrusBiotechnology/argo/workflow/util" + wfv1 "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1" + cmdutil "github.com/cyrusbiotechnology/argo/util/cmd" + "github.com/cyrusbiotechnology/argo/workflow/common" + "github.com/cyrusbiotechnology/argo/workflow/util" ) // cliSubmitOpts holds submition options specific to CLI submission (e.g. controlling output) diff --git a/cmd/argo/commands/suspend.go b/cmd/argo/commands/suspend.go index 555ea68e552c..de624ab6a68a 100644 --- a/cmd/argo/commands/suspend.go +++ b/cmd/argo/commands/suspend.go @@ -5,7 +5,7 @@ import ( "log" "os" - "github.com/CyrusBiotechnology/argo/workflow/util" + "github.com/cyrusbiotechnology/argo/workflow/util" "github.com/spf13/cobra" ) diff --git a/cmd/argo/commands/terminate.go b/cmd/argo/commands/terminate.go index 27f038a88b1e..309692ba6e86 100644 --- a/cmd/argo/commands/terminate.go +++ b/cmd/argo/commands/terminate.go @@ -7,7 +7,7 @@ import ( "github.com/argoproj/pkg/errors" "github.com/spf13/cobra" - "github.com/CyrusBiotechnology/argo/workflow/util" + "github.com/cyrusbiotechnology/argo/workflow/util" ) func NewTerminateCommand() *cobra.Command { diff --git a/cmd/argo/commands/wait.go b/cmd/argo/commands/wait.go index f1af913984ff..f5a7c18b5af6 100644 --- a/cmd/argo/commands/wait.go +++ b/cmd/argo/commands/wait.go @@ -5,8 +5,8 @@ import ( "os" "sync" - wfv1 "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1" "github.com/argoproj/pkg/errors" + wfv1 "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1" "github.com/spf13/cobra" apierr "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" diff --git a/cmd/argo/commands/watch.go b/cmd/argo/commands/watch.go index 49dcab2188b0..a57bc4e3f238 100644 --- a/cmd/argo/commands/watch.go +++ b/cmd/argo/commands/watch.go @@ -10,7 +10,7 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/fields" - wfv1 "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1" + wfv1 "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1" ) func NewWatchCommand() *cobra.Command { diff --git a/cmd/argo/main.go b/cmd/argo/main.go index 5b37975f0aa7..208a1391ac3d 100644 --- a/cmd/argo/main.go +++ b/cmd/argo/main.go @@ -4,7 +4,7 @@ import ( "fmt" "os" - "github.com/CyrusBiotechnology/argo/cmd/argo/commands" + "github.com/cyrusbiotechnology/argo/cmd/argo/commands" // load the gcp plugin (required to authenticate against GKE clusters). _ "k8s.io/client-go/plugin/pkg/client/auth/gcp" // load the oidc plugin (required to authenticate with OpenID Connect). diff --git a/cmd/argoexec/commands/resource.go b/cmd/argoexec/commands/resource.go index 3ac1f38f399d..d894de5c471c 100644 --- a/cmd/argoexec/commands/resource.go +++ b/cmd/argoexec/commands/resource.go @@ -3,7 +3,7 @@ package commands import ( "os" - "github.com/CyrusBiotechnology/argo/workflow/common" + "github.com/cyrusbiotechnology/argo/workflow/common" log "github.com/sirupsen/logrus" "github.com/spf13/cobra" ) diff --git a/cmd/argoexec/commands/root.go b/cmd/argoexec/commands/root.go index 840221a05b5f..f1607885567f 100644 --- a/cmd/argoexec/commands/root.go +++ b/cmd/argoexec/commands/root.go @@ -10,12 +10,12 @@ import ( "k8s.io/client-go/kubernetes" "k8s.io/client-go/tools/clientcmd" - "github.com/CyrusBiotechnology/argo" - "github.com/CyrusBiotechnology/argo/util/cmd" - "github.com/CyrusBiotechnology/argo/workflow/common" - "github.com/CyrusBiotechnology/argo/workflow/executor" - "github.com/CyrusBiotechnology/argo/workflow/executor/docker" - "github.com/CyrusBiotechnology/argo/workflow/executor/kubelet" + "github.com/cyrusbiotechnology/argo" + "github.com/cyrusbiotechnology/argo/util/cmd" + "github.com/cyrusbiotechnology/argo/workflow/common" + "github.com/cyrusbiotechnology/argo/workflow/executor" + "github.com/cyrusbiotechnology/argo/workflow/executor/docker" + "github.com/cyrusbiotechnology/argo/workflow/executor/kubelet" ) const ( diff --git a/cmd/argoexec/commands/wait.go b/cmd/argoexec/commands/wait.go index 04eb7091fc26..6b5c305f08cf 100644 --- a/cmd/argoexec/commands/wait.go +++ b/cmd/argoexec/commands/wait.go @@ -1,6 +1,7 @@ package commands import ( + "github.com/cyrusbiotechnology/argo/workflow/executor" "time" "github.com/argoproj/pkg/stats" @@ -62,5 +63,18 @@ func waitContainer() error { wfExecutor.AddError(err) return err } + + err = wfExecutor.EvaluateConditions(executor.ConditionTypeError) + if err != nil { + wfExecutor.AddError(err) + return err + } + + err = wfExecutor.EvaluateConditions(executor.ConditionTypeWarning) + if err != nil { + wfExecutor.AddError(err) + return err + } + return nil } diff --git a/cmd/argoexec/main.go b/cmd/argoexec/main.go index 7b5a9833dcac..74a28f6bc92b 100644 --- a/cmd/argoexec/main.go +++ b/cmd/argoexec/main.go @@ -4,7 +4,7 @@ import ( "fmt" "os" - "github.com/CyrusBiotechnology/argo/cmd/argoexec/commands" + "github.com/cyrusbiotechnology/argo/cmd/argoexec/commands" // load the gcp plugin (required to authenticate against GKE clusters). _ "k8s.io/client-go/plugin/pkg/client/auth/gcp" // load the oidc plugin (required to authenticate with OpenID Connect). diff --git a/cmd/workflow-controller/main.go b/cmd/workflow-controller/main.go index 7737e2b6dc4e..e3d56a9218b4 100644 --- a/cmd/workflow-controller/main.go +++ b/cmd/workflow-controller/main.go @@ -16,9 +16,9 @@ import ( _ "k8s.io/client-go/plugin/pkg/client/auth/oidc" "k8s.io/client-go/tools/clientcmd" - wfclientset "github.com/CyrusBiotechnology/argo/pkg/client/clientset/versioned" - cmdutil "github.com/CyrusBiotechnology/argo/util/cmd" - "github.com/CyrusBiotechnology/argo/workflow/controller" + wfclientset "github.com/cyrusbiotechnology/argo/pkg/client/clientset/versioned" + cmdutil "github.com/cyrusbiotechnology/argo/util/cmd" + "github.com/cyrusbiotechnology/argo/workflow/controller" ) const ( diff --git a/community/README.md b/community/README.md index 048abf643117..18a92952ad7d 100644 --- a/community/README.md +++ b/community/README.md @@ -42,8 +42,8 @@ manner. ## Contributing to Argo -Read and abide by the [Argo Code of Conduct](https://github.com/CyrusBiotechnology/argo/blob/master/CODE_OF_CONDUCT.md) : -Before submitting a pull request, please sign the [CLA](https://github.com/CyrusBiotechnology/argo/blob/master/community/Argo%20Individual%20CLA.pdf). This agreement gives us permission to use and redistribute your contributions as part of the project. +Read and abide by the [Argo Code of Conduct](https://github.com/cyrusbiotechnology/argo/blob/master/CODE_OF_CONDUCT.md) : +Before submitting a pull request, please sign the [CLA](https://github.com/cyrusbiotechnology/argo/blob/master/community/Argo%20Individual%20CLA.pdf). This agreement gives us permission to use and redistribute your contributions as part of the project. ## Community Meetings diff --git a/demo.md b/demo.md index 62b7ae496354..99f79228b824 100644 --- a/demo.md +++ b/demo.md @@ -17,7 +17,7 @@ brew install argoproj/tap/argo ``` On Linux: ``` -curl -sSL -o /usr/local/bin/argo https://github.com/CyrusBiotechnology/argo/releases/download/v2.2.1/argo-linux-amd64 +curl -sSL -o /usr/local/bin/argo https://github.com/cyrusbiotechnology/argo/releases/download/v2.2.1/argo-linux-amd64 chmod +x /usr/local/bin/argo ``` @@ -64,13 +64,13 @@ kubectl get po --selector=workflows.argoproj.io/workflow=hello-world-xxx --show- kubectl logs hello-world-yyy -c main ``` -Additional examples are availabe [here](https://github.com/CyrusBiotechnology/argo/blob/master/examples/README.md). +Additional examples are availabe [here](https://github.com/cyrusbiotechnology/argo/blob/master/examples/README.md). ## 5. Install an Artifact Repository Argo supports S3 (AWS, GCS, Minio) as well as Artifactory as artifact repositories. This tutorial uses Minio for the sake of portability. Instructions on how to configure other artifact repositories -are [here](https://github.com/CyrusBiotechnology/argo/blob/master/ARTIFACT_REPO.md). +are [here](https://github.com/cyrusbiotechnology/argo/blob/master/ARTIFACT_REPO.md). ``` brew install kubernetes-helm # mac helm init diff --git a/errors/errors_test.go b/errors/errors_test.go index fc26ed3bd342..b70ef9e104d0 100644 --- a/errors/errors_test.go +++ b/errors/errors_test.go @@ -4,7 +4,7 @@ import ( "fmt" "testing" - "github.com/CyrusBiotechnology/argo/errors" + "github.com/cyrusbiotechnology/argo/errors" pkgerr "github.com/pkg/errors" "github.com/stretchr/testify/assert" ) diff --git a/examples/README.md b/examples/README.md index 3c184e856cb6..cd8009f34684 100644 --- a/examples/README.md +++ b/examples/README.md @@ -6,7 +6,7 @@ Argo is an open source project that provides container-native workflows for Kube Argo is implemented as a Kubernetes CRD (Custom Resource Definition). As a result, Argo workflows can be managed using kubectl and natively integrates with other Kubernetes services such as volumes, secrets, and RBAC. The new Argo software is lightweight and installs in under a minute but provides complete workflow features including parameter substitution, artifacts, fixtures, loops and recursive workflows. -Many of the Argo examples used in this walkthrough are available at https://github.com/CyrusBiotechnology/argo/tree/master/examples. If you like this project, please give us a star! +Many of the Argo examples used in this walkthrough are available at https://github.com/cyrusbiotechnology/argo/tree/master/examples. If you like this project, please give us a star! ## Table of Content @@ -37,7 +37,7 @@ Many of the Argo examples used in this walkthrough are available at https://gith In case you want to follow along with this walkthrough, here's a quick overview of the most useful argo CLI commands. -[Install Argo here](https://github.com/CyrusBiotechnology/argo/blob/master/demo.md) +[Install Argo here](https://github.com/cyrusbiotechnology/argo/blob/master/demo.md) ```sh argo submit hello-world.yaml # submit a workflow spec to Kubernetes @@ -300,7 +300,7 @@ The templates called from a dag or steps template can themselves be dag or steps **Note:** You will need to have configured an artifact repository to run this example. -[Configuring an artifact repository here](https://github.com/CyrusBiotechnology/argo/blob/master/ARTIFACT_REPO.md). +[Configuring an artifact repository here](https://github.com/cyrusbiotechnology/argo/blob/master/ARTIFACT_REPO.md). When running workflows, it is very common to have steps that generate or consume artifacts. Often, the output artifacts of one step may be used as input artifacts to a subsequent step. @@ -1086,7 +1086,7 @@ spec: - name: argo-source path: /src git: - repo: https://github.com/CyrusBiotechnology/argo.git + repo: https://github.com/cyrusbiotechnology/argo.git revision: "master" # Download kubectl 1.8.0 and place it at /bin/kubectl - name: kubectl @@ -1194,4 +1194,4 @@ spec: ## Continuous integration example Continuous integration is a popular application for workflows. Currently, Argo does not provide event triggers for automatically kicking off your CI jobs, but we plan to do so in the near future. Until then, you can easily write a cron job that checks for new commits and kicks off the needed workflow, or use your existing Jenkins server to kick off the workflow. -A good example of a CI workflow spec is provided at https://github.com/CyrusBiotechnology/argo/tree/master/examples/influxdb-ci.yaml. Because it just uses the concepts that we've already covered and is somewhat long, we don't go into details here. +A good example of a CI workflow spec is provided at https://github.com/cyrusbiotechnology/argo/tree/master/examples/influxdb-ci.yaml. Because it just uses the concepts that we've already covered and is somewhat long, we don't go into details here. diff --git a/examples/extended-errors.yaml b/examples/extended-errors.yaml new file mode 100644 index 000000000000..4fc948129376 --- /dev/null +++ b/examples/extended-errors.yaml @@ -0,0 +1,40 @@ +apiVersion: argoproj.io/v1alpha1 +kind: Workflow +metadata: + generateName: hello-world- +spec: + entrypoint: error-steps + templates: + - name: error-steps + steps: + - - name: warning-file + template: cowsay-file + - - name: error-stdout + template: cowsay-stdout + - name: cowsay-file + container: + image: docker/whalesay:latest + command: [sh, -c] + args: ["cowsay 'some message'> /tmp/output.txt"] + + warnings: + - name: WrongWord + source: /tmp/output.txt + patternMatched: "some.*" + message: "the word 'some' shouldn't be here" + + - name: cowsay-stdout + container: + image: docker/whalesay:latest + command: [cowsay] + args: ["what planet"] + errors: + - name: FailToSayHello + source: stdout + patternUnmatched: ".*hello.*" + message: "did't say hello" + warnings: + - name: NoPlanets + source: stdout + patternMatched: ".*planet.*" + message: "used the wrong word" \ No newline at end of file diff --git a/examples/input-artifact-git.yaml b/examples/input-artifact-git.yaml index ee176b442b21..c373f66a59b1 100644 --- a/examples/input-artifact-git.yaml +++ b/examples/input-artifact-git.yaml @@ -13,14 +13,14 @@ spec: - name: argo-source path: /src git: - repo: https://github.com/CyrusBiotechnology/argo.git + repo: https://github.com/cyrusbiotechnology/argo.git revision: "v2.1.1" # For private repositories, create a k8s secret containing the git credentials and # reference the secret keys in the secret selectors: usernameSecret, passwordSecret, # or sshPrivateKeySecret. # NOTE: when authenticating via sshPrivateKeySecret, the repo URL should supplied in its # SSH format (e.g. git@github.com:argoproj/argo.git). Similarly, when authenticating via - # basic auth, the URL should be in its HTTP form (e.g. https://github.com/CyrusBiotechnology/argo.git) + # basic auth, the URL should be in its HTTP form (e.g. https://github.com/cyrusbiotechnology/argo.git) # usernameSecret: # name: github-creds # key: username diff --git a/hack/gen-openapi-spec/main.go b/hack/gen-openapi-spec/main.go index 4f24901057a9..1603c62ae565 100644 --- a/hack/gen-openapi-spec/main.go +++ b/hack/gen-openapi-spec/main.go @@ -7,7 +7,7 @@ import ( "os" "strings" - wfv1 "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1" + wfv1 "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1" "github.com/go-openapi/spec" "k8s.io/kube-openapi/pkg/common" ) @@ -50,11 +50,11 @@ func main() { // swaggify converts the github package // e.g.: -// github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.Workflow +// github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.Workflow // to: // io.argoproj.workflow.v1alpha1.Workflow func swaggify(name string) string { - name = strings.Replace(name, "github.com/CyrusBiotechnology/argo/pkg/apis", "argoproj.io", -1) + name = strings.Replace(name, "github.com/cyrusbiotechnology/argo/pkg/apis", "argoproj.io", -1) parts := strings.Split(name, "/") hostParts := strings.Split(parts[0], ".") // reverses something like k8s.io to io.k8s diff --git a/hack/update-codegen.sh b/hack/update-codegen.sh index db5b6c7b33f6..ecdbf027b4af 100755 --- a/hack/update-codegen.sh +++ b/hack/update-codegen.sh @@ -22,6 +22,6 @@ SCRIPT_ROOT=$(dirname ${BASH_SOURCE})/.. CODEGEN_PKG=${CODEGEN_PKG:-$(cd ${SCRIPT_ROOT}; ls -d -1 ./vendor/k8s.io/code-generator 2>/dev/null || echo ../code-generator)} ${CODEGEN_PKG}/generate-groups.sh "deepcopy,client,informer,lister" \ - github.com/CyrusBiotechnology/argo/pkg/client github.com/CyrusBiotechnology/argo/pkg/apis \ + github.com/cyrusbiotechnology/argo/pkg/client github.com/cyrusbiotechnology/argo/pkg/apis \ workflow:v1alpha1 \ --go-header-file ${SCRIPT_ROOT}/hack/custom-boilerplate.go.txt diff --git a/hack/update-openapigen.sh b/hack/update-openapigen.sh index 8ad6aed1acf9..3e16e7f479df 100755 --- a/hack/update-openapigen.sh +++ b/hack/update-openapigen.sh @@ -10,7 +10,7 @@ VERSION="v1alpha1" go run ${CODEGEN_PKG}/cmd/openapi-gen/main.go \ --go-header-file ${PROJECT_ROOT}/hack/custom-boilerplate.go.txt \ - --input-dirs github.com/CyrusBiotechnology/argo/pkg/apis/workflow/${VERSION} \ - --output-package github.com/CyrusBiotechnology/argo/pkg/apis/workflow/${VERSION} \ + --input-dirs github.com/cyrusbiotechnology/argo/pkg/apis/workflow/${VERSION} \ + --output-package github.com/cyrusbiotechnology/argo/pkg/apis/workflow/${VERSION} \ $@ diff --git a/pkg/apis/workflow/v1alpha1/openapi_generated.go b/pkg/apis/workflow/v1alpha1/openapi_generated.go index bf886ff17cbe..7d4bf39a4c4e 100644 --- a/pkg/apis/workflow/v1alpha1/openapi_generated.go +++ b/pkg/apis/workflow/v1alpha1/openapi_generated.go @@ -13,40 +13,42 @@ import ( func GetOpenAPIDefinitions(ref common.ReferenceCallback) map[string]common.OpenAPIDefinition { return map[string]common.OpenAPIDefinition{ - "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.ArchiveStrategy": schema_pkg_apis_workflow_v1alpha1_ArchiveStrategy(ref), - "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.Arguments": schema_pkg_apis_workflow_v1alpha1_Arguments(ref), - "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.Artifact": schema_pkg_apis_workflow_v1alpha1_Artifact(ref), - "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.ArtifactLocation": schema_pkg_apis_workflow_v1alpha1_ArtifactLocation(ref), - "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.ArtifactoryArtifact": schema_pkg_apis_workflow_v1alpha1_ArtifactoryArtifact(ref), - "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.ArtifactoryAuth": schema_pkg_apis_workflow_v1alpha1_ArtifactoryAuth(ref), - "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.DAGTask": schema_pkg_apis_workflow_v1alpha1_DAGTask(ref), - "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.DAGTemplate": schema_pkg_apis_workflow_v1alpha1_DAGTemplate(ref), - "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.GCSArtifact": schema_pkg_apis_workflow_v1alpha1_GCSArtifact(ref), - "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.GCSBucket": schema_pkg_apis_workflow_v1alpha1_GCSBucket(ref), - "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.GitArtifact": schema_pkg_apis_workflow_v1alpha1_GitArtifact(ref), - "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.HTTPArtifact": schema_pkg_apis_workflow_v1alpha1_HTTPArtifact(ref), - "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.Inputs": schema_pkg_apis_workflow_v1alpha1_Inputs(ref), - "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.Item": schema_pkg_apis_workflow_v1alpha1_Item(ref), - "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.Metadata": schema_pkg_apis_workflow_v1alpha1_Metadata(ref), - "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.NoneStrategy": schema_pkg_apis_workflow_v1alpha1_NoneStrategy(ref), - "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.Outputs": schema_pkg_apis_workflow_v1alpha1_Outputs(ref), - "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.Parameter": schema_pkg_apis_workflow_v1alpha1_Parameter(ref), - "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.RawArtifact": schema_pkg_apis_workflow_v1alpha1_RawArtifact(ref), - "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.ResourceTemplate": schema_pkg_apis_workflow_v1alpha1_ResourceTemplate(ref), - "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.RetryStrategy": schema_pkg_apis_workflow_v1alpha1_RetryStrategy(ref), - "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.S3Artifact": schema_pkg_apis_workflow_v1alpha1_S3Artifact(ref), - "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.S3Bucket": schema_pkg_apis_workflow_v1alpha1_S3Bucket(ref), - "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.ScriptTemplate": schema_pkg_apis_workflow_v1alpha1_ScriptTemplate(ref), - "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.Sequence": schema_pkg_apis_workflow_v1alpha1_Sequence(ref), - "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.Sidecar": schema_pkg_apis_workflow_v1alpha1_Sidecar(ref), - "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.SuspendTemplate": schema_pkg_apis_workflow_v1alpha1_SuspendTemplate(ref), - "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.TarStrategy": schema_pkg_apis_workflow_v1alpha1_TarStrategy(ref), - "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.Template": schema_pkg_apis_workflow_v1alpha1_Template(ref), - "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.ValueFrom": schema_pkg_apis_workflow_v1alpha1_ValueFrom(ref), - "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.Workflow": schema_pkg_apis_workflow_v1alpha1_Workflow(ref), - "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.WorkflowList": schema_pkg_apis_workflow_v1alpha1_WorkflowList(ref), - "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.WorkflowSpec": schema_pkg_apis_workflow_v1alpha1_WorkflowSpec(ref), - "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.WorkflowStep": schema_pkg_apis_workflow_v1alpha1_WorkflowStep(ref), + "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.ArchiveStrategy": schema_pkg_apis_workflow_v1alpha1_ArchiveStrategy(ref), + "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.Arguments": schema_pkg_apis_workflow_v1alpha1_Arguments(ref), + "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.Artifact": schema_pkg_apis_workflow_v1alpha1_Artifact(ref), + "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.ArtifactLocation": schema_pkg_apis_workflow_v1alpha1_ArtifactLocation(ref), + "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.ArtifactoryArtifact": schema_pkg_apis_workflow_v1alpha1_ArtifactoryArtifact(ref), + "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.ArtifactoryAuth": schema_pkg_apis_workflow_v1alpha1_ArtifactoryAuth(ref), + "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.DAGTask": schema_pkg_apis_workflow_v1alpha1_DAGTask(ref), + "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.DAGTemplate": schema_pkg_apis_workflow_v1alpha1_DAGTemplate(ref), + "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.ExceptionCondition": schema_pkg_apis_workflow_v1alpha1_ExceptionCondition(ref), + "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.ExceptionResult": schema_pkg_apis_workflow_v1alpha1_ExceptionResult(ref), + "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.GCSArtifact": schema_pkg_apis_workflow_v1alpha1_GCSArtifact(ref), + "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.GCSBucket": schema_pkg_apis_workflow_v1alpha1_GCSBucket(ref), + "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.GitArtifact": schema_pkg_apis_workflow_v1alpha1_GitArtifact(ref), + "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.HTTPArtifact": schema_pkg_apis_workflow_v1alpha1_HTTPArtifact(ref), + "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.Inputs": schema_pkg_apis_workflow_v1alpha1_Inputs(ref), + "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.Item": schema_pkg_apis_workflow_v1alpha1_Item(ref), + "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.Metadata": schema_pkg_apis_workflow_v1alpha1_Metadata(ref), + "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.NoneStrategy": schema_pkg_apis_workflow_v1alpha1_NoneStrategy(ref), + "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.Outputs": schema_pkg_apis_workflow_v1alpha1_Outputs(ref), + "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.Parameter": schema_pkg_apis_workflow_v1alpha1_Parameter(ref), + "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.RawArtifact": schema_pkg_apis_workflow_v1alpha1_RawArtifact(ref), + "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.ResourceTemplate": schema_pkg_apis_workflow_v1alpha1_ResourceTemplate(ref), + "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.RetryStrategy": schema_pkg_apis_workflow_v1alpha1_RetryStrategy(ref), + "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.S3Artifact": schema_pkg_apis_workflow_v1alpha1_S3Artifact(ref), + "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.S3Bucket": schema_pkg_apis_workflow_v1alpha1_S3Bucket(ref), + "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.ScriptTemplate": schema_pkg_apis_workflow_v1alpha1_ScriptTemplate(ref), + "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.Sequence": schema_pkg_apis_workflow_v1alpha1_Sequence(ref), + "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.Sidecar": schema_pkg_apis_workflow_v1alpha1_Sidecar(ref), + "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.SuspendTemplate": schema_pkg_apis_workflow_v1alpha1_SuspendTemplate(ref), + "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.TarStrategy": schema_pkg_apis_workflow_v1alpha1_TarStrategy(ref), + "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.Template": schema_pkg_apis_workflow_v1alpha1_Template(ref), + "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.ValueFrom": schema_pkg_apis_workflow_v1alpha1_ValueFrom(ref), + "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.Workflow": schema_pkg_apis_workflow_v1alpha1_Workflow(ref), + "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.WorkflowList": schema_pkg_apis_workflow_v1alpha1_WorkflowList(ref), + "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.WorkflowSpec": schema_pkg_apis_workflow_v1alpha1_WorkflowSpec(ref), + "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.WorkflowStep": schema_pkg_apis_workflow_v1alpha1_WorkflowStep(ref), } } @@ -58,19 +60,19 @@ func schema_pkg_apis_workflow_v1alpha1_ArchiveStrategy(ref common.ReferenceCallb Properties: map[string]spec.Schema{ "tar": { SchemaProps: spec.SchemaProps{ - Ref: ref("github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.TarStrategy"), + Ref: ref("github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.TarStrategy"), }, }, "none": { SchemaProps: spec.SchemaProps{ - Ref: ref("github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.NoneStrategy"), + Ref: ref("github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.NoneStrategy"), }, }, }, }, }, Dependencies: []string{ - "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.NoneStrategy", "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.TarStrategy"}, + "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.NoneStrategy", "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.TarStrategy"}, } } @@ -87,7 +89,7 @@ func schema_pkg_apis_workflow_v1alpha1_Arguments(ref common.ReferenceCallback) c Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ - Ref: ref("github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.Parameter"), + Ref: ref("github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.Parameter"), }, }, }, @@ -100,7 +102,7 @@ func schema_pkg_apis_workflow_v1alpha1_Arguments(ref common.ReferenceCallback) c Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ - Ref: ref("github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.Artifact"), + Ref: ref("github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.Artifact"), }, }, }, @@ -110,7 +112,7 @@ func schema_pkg_apis_workflow_v1alpha1_Arguments(ref common.ReferenceCallback) c }, }, Dependencies: []string{ - "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.Artifact", "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.Parameter"}, + "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.Artifact", "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.Parameter"}, } } @@ -158,37 +160,37 @@ func schema_pkg_apis_workflow_v1alpha1_Artifact(ref common.ReferenceCallback) co "s3": { SchemaProps: spec.SchemaProps{ Description: "S3 contains S3 artifact location details", - Ref: ref("github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.S3Artifact"), + Ref: ref("github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.S3Artifact"), }, }, "git": { SchemaProps: spec.SchemaProps{ Description: "Git contains git artifact location details", - Ref: ref("github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.GitArtifact"), + Ref: ref("github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.GitArtifact"), }, }, "http": { SchemaProps: spec.SchemaProps{ Description: "HTTP contains HTTP artifact location details", - Ref: ref("github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.HTTPArtifact"), + Ref: ref("github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.HTTPArtifact"), }, }, "artifactory": { SchemaProps: spec.SchemaProps{ Description: "Artifactory contains artifactory artifact location details", - Ref: ref("github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.ArtifactoryArtifact"), + Ref: ref("github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.ArtifactoryArtifact"), }, }, "raw": { SchemaProps: spec.SchemaProps{ Description: "Raw contains raw artifact location details", - Ref: ref("github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.RawArtifact"), + Ref: ref("github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.RawArtifact"), }, }, "gcs": { SchemaProps: spec.SchemaProps{ Description: "GCS contains GCS artifact location details", - Ref: ref("github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.GCSArtifact"), + Ref: ref("github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.GCSArtifact"), }, }, "globalName": { @@ -201,7 +203,7 @@ func schema_pkg_apis_workflow_v1alpha1_Artifact(ref common.ReferenceCallback) co "archive": { SchemaProps: spec.SchemaProps{ Description: "Archive controls how the artifact will be saved to the artifact repository.", - Ref: ref("github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.ArchiveStrategy"), + Ref: ref("github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.ArchiveStrategy"), }, }, }, @@ -209,7 +211,7 @@ func schema_pkg_apis_workflow_v1alpha1_Artifact(ref common.ReferenceCallback) co }, }, Dependencies: []string{ - "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.ArchiveStrategy", "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.ArtifactoryArtifact", "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.GCSArtifact", "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.GitArtifact", "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.HTTPArtifact", "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.RawArtifact", "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.S3Artifact"}, + "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.ArchiveStrategy", "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.ArtifactoryArtifact", "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.GCSArtifact", "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.GitArtifact", "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.HTTPArtifact", "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.RawArtifact", "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.S3Artifact"}, } } @@ -229,44 +231,44 @@ func schema_pkg_apis_workflow_v1alpha1_ArtifactLocation(ref common.ReferenceCall "s3": { SchemaProps: spec.SchemaProps{ Description: "S3 contains S3 artifact location details", - Ref: ref("github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.S3Artifact"), + Ref: ref("github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.S3Artifact"), }, }, "git": { SchemaProps: spec.SchemaProps{ Description: "Git contains git artifact location details", - Ref: ref("github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.GitArtifact"), + Ref: ref("github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.GitArtifact"), }, }, "http": { SchemaProps: spec.SchemaProps{ Description: "HTTP contains HTTP artifact location details", - Ref: ref("github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.HTTPArtifact"), + Ref: ref("github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.HTTPArtifact"), }, }, "artifactory": { SchemaProps: spec.SchemaProps{ Description: "Artifactory contains artifactory artifact location details", - Ref: ref("github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.ArtifactoryArtifact"), + Ref: ref("github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.ArtifactoryArtifact"), }, }, "raw": { SchemaProps: spec.SchemaProps{ Description: "Raw contains raw artifact location details", - Ref: ref("github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.RawArtifact"), + Ref: ref("github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.RawArtifact"), }, }, "gcs": { SchemaProps: spec.SchemaProps{ Description: "GCS contains GCS artifact location details", - Ref: ref("github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.GCSArtifact"), + Ref: ref("github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.GCSArtifact"), }, }, }, }, }, Dependencies: []string{ - "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.ArtifactoryArtifact", "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.GCSArtifact", "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.GitArtifact", "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.HTTPArtifact", "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.RawArtifact", "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.S3Artifact"}, + "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.ArtifactoryArtifact", "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.GCSArtifact", "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.GitArtifact", "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.HTTPArtifact", "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.RawArtifact", "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.S3Artifact"}, } } @@ -353,7 +355,7 @@ func schema_pkg_apis_workflow_v1alpha1_DAGTask(ref common.ReferenceCallback) com "arguments": { SchemaProps: spec.SchemaProps{ Description: "Arguments are the parameter and artifact arguments to the template", - Ref: ref("github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.Arguments"), + Ref: ref("github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.Arguments"), }, }, "dependencies": { @@ -377,7 +379,7 @@ func schema_pkg_apis_workflow_v1alpha1_DAGTask(ref common.ReferenceCallback) com Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ - Ref: ref("github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.Item"), + Ref: ref("github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.Item"), }, }, }, @@ -393,7 +395,7 @@ func schema_pkg_apis_workflow_v1alpha1_DAGTask(ref common.ReferenceCallback) com "withSequence": { SchemaProps: spec.SchemaProps{ Description: "WithSequence expands a task into a numeric sequence", - Ref: ref("github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.Sequence"), + Ref: ref("github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.Sequence"), }, }, "when": { @@ -408,7 +410,7 @@ func schema_pkg_apis_workflow_v1alpha1_DAGTask(ref common.ReferenceCallback) com }, }, Dependencies: []string{ - "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.Arguments", "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.Item", "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.Sequence"}, + "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.Arguments", "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.Item", "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.Sequence"}, } } @@ -432,7 +434,7 @@ func schema_pkg_apis_workflow_v1alpha1_DAGTemplate(ref common.ReferenceCallback) Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ - Ref: ref("github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.DAGTask"), + Ref: ref("github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.DAGTask"), }, }, }, @@ -443,7 +445,89 @@ func schema_pkg_apis_workflow_v1alpha1_DAGTemplate(ref common.ReferenceCallback) }, }, Dependencies: []string{ - "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.DAGTask"}, + "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.DAGTask"}, + } +} + +func schema_pkg_apis_workflow_v1alpha1_ExceptionCondition(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "ExceptionCondition is a container for defining an error or warning rule", + Properties: map[string]spec.Schema{ + "name": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "patternMatched": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "patternUnmatched": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "source": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "message": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + }, + Required: []string{"name"}, + }, + }, + Dependencies: []string{}, + } +} + +func schema_pkg_apis_workflow_v1alpha1_ExceptionResult(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "ExceptionResult contains the results on an extended error or warning condition evaluation", + Properties: map[string]spec.Schema{ + "name": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "message": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "podName": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "stepName": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + }, + Required: []string{"name", "message", "podName", "stepName"}, + }, + }, + Dependencies: []string{}, } } @@ -574,7 +658,7 @@ func schema_pkg_apis_workflow_v1alpha1_Inputs(ref common.ReferenceCallback) comm Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ - Ref: ref("github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.Parameter"), + Ref: ref("github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.Parameter"), }, }, }, @@ -587,7 +671,7 @@ func schema_pkg_apis_workflow_v1alpha1_Inputs(ref common.ReferenceCallback) comm Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ - Ref: ref("github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.Artifact"), + Ref: ref("github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.Artifact"), }, }, }, @@ -597,7 +681,7 @@ func schema_pkg_apis_workflow_v1alpha1_Inputs(ref common.ReferenceCallback) comm }, }, Dependencies: []string{ - "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.Artifact", "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.Parameter"}, + "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.Artifact", "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.Parameter"}, } } @@ -677,7 +761,7 @@ func schema_pkg_apis_workflow_v1alpha1_Outputs(ref common.ReferenceCallback) com Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ - Ref: ref("github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.Parameter"), + Ref: ref("github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.Parameter"), }, }, }, @@ -690,7 +774,7 @@ func schema_pkg_apis_workflow_v1alpha1_Outputs(ref common.ReferenceCallback) com Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ - Ref: ref("github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.Artifact"), + Ref: ref("github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.Artifact"), }, }, }, @@ -707,7 +791,7 @@ func schema_pkg_apis_workflow_v1alpha1_Outputs(ref common.ReferenceCallback) com }, }, Dependencies: []string{ - "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.Artifact", "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.Parameter"}, + "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.Artifact", "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.Parameter"}, } } @@ -741,7 +825,7 @@ func schema_pkg_apis_workflow_v1alpha1_Parameter(ref common.ReferenceCallback) c "valueFrom": { SchemaProps: spec.SchemaProps{ Description: "ValueFrom is the source for the output parameter's value", - Ref: ref("github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.ValueFrom"), + Ref: ref("github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.ValueFrom"), }, }, "globalName": { @@ -756,7 +840,7 @@ func schema_pkg_apis_workflow_v1alpha1_Parameter(ref common.ReferenceCallback) c }, }, Dependencies: []string{ - "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.ValueFrom"}, + "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.ValueFrom"}, } } @@ -1505,13 +1589,13 @@ func schema_pkg_apis_workflow_v1alpha1_Template(ref common.ReferenceCallback) co "inputs": { SchemaProps: spec.SchemaProps{ Description: "Inputs describe what inputs parameters and artifacts are supplied to this template", - Ref: ref("github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.Inputs"), + Ref: ref("github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.Inputs"), }, }, "outputs": { SchemaProps: spec.SchemaProps{ Description: "Outputs describe the parameters and artifacts that this template produces", - Ref: ref("github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.Outputs"), + Ref: ref("github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.Outputs"), }, }, "nodeSelector": { @@ -1537,7 +1621,7 @@ func schema_pkg_apis_workflow_v1alpha1_Template(ref common.ReferenceCallback) co "metadata": { SchemaProps: spec.SchemaProps{ Description: "Metdata sets the pods's metadata, i.e. annotations and labels", - Ref: ref("github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.Metadata"), + Ref: ref("github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.Metadata"), }, }, "daemon": { @@ -1558,7 +1642,7 @@ func schema_pkg_apis_workflow_v1alpha1_Template(ref common.ReferenceCallback) co Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ - Ref: ref("github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.WorkflowStep"), + Ref: ref("github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.WorkflowStep"), }, }, }, @@ -1576,25 +1660,25 @@ func schema_pkg_apis_workflow_v1alpha1_Template(ref common.ReferenceCallback) co "script": { SchemaProps: spec.SchemaProps{ Description: "Script runs a portion of code against an interpreter", - Ref: ref("github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.ScriptTemplate"), + Ref: ref("github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.ScriptTemplate"), }, }, "resource": { SchemaProps: spec.SchemaProps{ Description: "Resource template subtype which can run k8s resources", - Ref: ref("github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.ResourceTemplate"), + Ref: ref("github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.ResourceTemplate"), }, }, "dag": { SchemaProps: spec.SchemaProps{ Description: "DAG template subtype which runs a DAG", - Ref: ref("github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.DAGTemplate"), + Ref: ref("github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.DAGTemplate"), }, }, "suspend": { SchemaProps: spec.SchemaProps{ Description: "Suspend template subtype which can suspend a workflow when reaching the step", - Ref: ref("github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.SuspendTemplate"), + Ref: ref("github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.SuspendTemplate"), }, }, "sidecars": { @@ -1604,7 +1688,7 @@ func schema_pkg_apis_workflow_v1alpha1_Template(ref common.ReferenceCallback) co Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ - Ref: ref("github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.Sidecar"), + Ref: ref("github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.Sidecar"), }, }, }, @@ -1613,7 +1697,7 @@ func schema_pkg_apis_workflow_v1alpha1_Template(ref common.ReferenceCallback) co "archiveLocation": { SchemaProps: spec.SchemaProps{ Description: "Location in which all files related to the step will be stored (logs, artifacts, etc...). Can be overridden by individual items in Outputs. If omitted, will use the default artifact repository location configured in the controller, appended with the / in the key.", - Ref: ref("github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.ArtifactLocation"), + Ref: ref("github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.ArtifactLocation"), }, }, "activeDeadlineSeconds": { @@ -1626,7 +1710,7 @@ func schema_pkg_apis_workflow_v1alpha1_Template(ref common.ReferenceCallback) co "retryStrategy": { SchemaProps: spec.SchemaProps{ Description: "RetryStrategy describes how to retry a template when it fails", - Ref: ref("github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.RetryStrategy"), + Ref: ref("github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.RetryStrategy"), }, }, "parallelism": { @@ -1649,12 +1733,36 @@ func schema_pkg_apis_workflow_v1alpha1_Template(ref common.ReferenceCallback) co }, }, }, + "errors": { + SchemaProps: spec.SchemaProps{ + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Ref: ref("github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.ExceptionCondition"), + }, + }, + }, + }, + }, + "warnings": { + SchemaProps: spec.SchemaProps{ + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Ref: ref("github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.ExceptionCondition"), + }, + }, + }, + }, + }, }, Required: []string{"name"}, }, }, Dependencies: []string{ - "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.ArtifactLocation", "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.DAGTemplate", "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.Inputs", "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.Metadata", "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.Outputs", "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.ResourceTemplate", "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.RetryStrategy", "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.ScriptTemplate", "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.Sidecar", "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.SuspendTemplate", "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.WorkflowStep", "k8s.io/api/core/v1.Affinity", "k8s.io/api/core/v1.Container", "k8s.io/api/core/v1.Toleration"}, + "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.ArtifactLocation", "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.DAGTemplate", "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.ExceptionCondition", "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.Inputs", "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.Metadata", "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.Outputs", "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.ResourceTemplate", "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.RetryStrategy", "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.ScriptTemplate", "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.Sidecar", "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.SuspendTemplate", "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.WorkflowStep", "k8s.io/api/core/v1.Affinity", "k8s.io/api/core/v1.Container", "k8s.io/api/core/v1.Toleration"}, } } @@ -1726,12 +1834,12 @@ func schema_pkg_apis_workflow_v1alpha1_Workflow(ref common.ReferenceCallback) co }, "spec": { SchemaProps: spec.SchemaProps{ - Ref: ref("github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.WorkflowSpec"), + Ref: ref("github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.WorkflowSpec"), }, }, "status": { SchemaProps: spec.SchemaProps{ - Ref: ref("github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.WorkflowStatus"), + Ref: ref("github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.WorkflowStatus"), }, }, }, @@ -1739,7 +1847,7 @@ func schema_pkg_apis_workflow_v1alpha1_Workflow(ref common.ReferenceCallback) co }, }, Dependencies: []string{ - "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.WorkflowSpec", "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.WorkflowStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, + "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.WorkflowSpec", "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.WorkflowStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, } } @@ -1774,7 +1882,7 @@ func schema_pkg_apis_workflow_v1alpha1_WorkflowList(ref common.ReferenceCallback Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ - Ref: ref("github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.Workflow"), + Ref: ref("github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.Workflow"), }, }, }, @@ -1785,7 +1893,7 @@ func schema_pkg_apis_workflow_v1alpha1_WorkflowList(ref common.ReferenceCallback }, }, Dependencies: []string{ - "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.Workflow", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, + "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.Workflow", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, } } @@ -1802,7 +1910,7 @@ func schema_pkg_apis_workflow_v1alpha1_WorkflowSpec(ref common.ReferenceCallback Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ - Ref: ref("github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.Template"), + Ref: ref("github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.Template"), }, }, }, @@ -1818,7 +1926,7 @@ func schema_pkg_apis_workflow_v1alpha1_WorkflowSpec(ref common.ReferenceCallback "arguments": { SchemaProps: spec.SchemaProps{ Description: "Arguments contain the parameters and artifacts sent to the workflow entrypoint Parameters are referencable globally using the 'workflow' variable prefix. e.g. {{workflow.parameters.myparam}}", - Ref: ref("github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.Arguments"), + Ref: ref("github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.Arguments"), }, }, "serviceAccountName": { @@ -1940,7 +2048,7 @@ func schema_pkg_apis_workflow_v1alpha1_WorkflowSpec(ref common.ReferenceCallback }, }, Dependencies: []string{ - "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.Arguments", "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.Template", "k8s.io/api/core/v1.Affinity", "k8s.io/api/core/v1.LocalObjectReference", "k8s.io/api/core/v1.PersistentVolumeClaim", "k8s.io/api/core/v1.Toleration", "k8s.io/api/core/v1.Volume"}, + "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.Arguments", "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.Template", "k8s.io/api/core/v1.Affinity", "k8s.io/api/core/v1.LocalObjectReference", "k8s.io/api/core/v1.PersistentVolumeClaim", "k8s.io/api/core/v1.Toleration", "k8s.io/api/core/v1.Volume"}, } } @@ -1967,7 +2075,7 @@ func schema_pkg_apis_workflow_v1alpha1_WorkflowStep(ref common.ReferenceCallback "arguments": { SchemaProps: spec.SchemaProps{ Description: "Arguments hold arguments to the template", - Ref: ref("github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.Arguments"), + Ref: ref("github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.Arguments"), }, }, "withItems": { @@ -1977,7 +2085,7 @@ func schema_pkg_apis_workflow_v1alpha1_WorkflowStep(ref common.ReferenceCallback Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ - Ref: ref("github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.Item"), + Ref: ref("github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.Item"), }, }, }, @@ -1993,7 +2101,7 @@ func schema_pkg_apis_workflow_v1alpha1_WorkflowStep(ref common.ReferenceCallback "withSequence": { SchemaProps: spec.SchemaProps{ Description: "WithSequence expands a step into a numeric sequence", - Ref: ref("github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.Sequence"), + Ref: ref("github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.Sequence"), }, }, "when": { @@ -2007,6 +2115,6 @@ func schema_pkg_apis_workflow_v1alpha1_WorkflowStep(ref common.ReferenceCallback }, }, Dependencies: []string{ - "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.Arguments", "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.Item", "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1.Sequence"}, + "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.Arguments", "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.Item", "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1.Sequence"}, } } diff --git a/pkg/apis/workflow/v1alpha1/register.go b/pkg/apis/workflow/v1alpha1/register.go index dc8c62d7ec4c..e3928a351448 100644 --- a/pkg/apis/workflow/v1alpha1/register.go +++ b/pkg/apis/workflow/v1alpha1/register.go @@ -1,7 +1,7 @@ package v1alpha1 import ( - "github.com/CyrusBiotechnology/argo/pkg/apis/workflow" + "github.com/cyrusbiotechnology/argo/pkg/apis/workflow" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" diff --git a/pkg/apis/workflow/v1alpha1/types.go b/pkg/apis/workflow/v1alpha1/types.go index d2815274acd8..00ffa597edf5 100644 --- a/pkg/apis/workflow/v1alpha1/types.go +++ b/pkg/apis/workflow/v1alpha1/types.go @@ -203,6 +203,9 @@ type Template struct { // Tolerations to apply to workflow pods. Tolerations []apiv1.Toleration `json:"tolerations,omitempty"` + + Errors []ExceptionCondition `json:"errors,omitempty"` + Warnings []ExceptionCondition `json:"warnings,omitempty"` } // Inputs are the mechanism for passing parameters, artifacts, volumes from one template to another @@ -456,6 +459,9 @@ type WorkflowStatus struct { // Outputs captures output values and artifact locations produced by the workflow via global outputs Outputs *Outputs `json:"outputs,omitempty"` + + Errors []ExceptionResult `json:"errors,omitempty"` + Warnings []ExceptionResult `json:"warnings,omitempty"` } // RetryStrategy provides controls on how to retry a workflow step @@ -687,6 +693,23 @@ type ResourceTemplate struct { FailureCondition string `json:"failureCondition,omitempty"` } +// ExceptionCondition is a container for defining an error or warning rule +type ExceptionCondition struct { + Name string `json:"name"` + PatternMatched string `json:"patternMatched,omitempty"` + PatternUnmatched string `json:"patternUnmatched,omitempty"` + Source string `json:"source,omitempty"` + Message string `json:"message,omitempty"` +} + +// ExceptionResult contains the results on an extended error or warning condition evaluation +type ExceptionResult struct { + Name string `json:"name"` + Message string `json:"message"` + PodName string `json:"podName"` + StepName string `json:"stepName"` +} + // GetType returns the type of this template func (tmpl *Template) GetType() TemplateType { if tmpl.Container != nil { diff --git a/pkg/apis/workflow/v1alpha1/zz_generated.deepcopy.go b/pkg/apis/workflow/v1alpha1/zz_generated.deepcopy.go index 6b6ccec7ba76..0135feb7dd45 100644 --- a/pkg/apis/workflow/v1alpha1/zz_generated.deepcopy.go +++ b/pkg/apis/workflow/v1alpha1/zz_generated.deepcopy.go @@ -243,6 +243,38 @@ func (in *DAGTemplate) DeepCopy() *DAGTemplate { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ExceptionCondition) DeepCopyInto(out *ExceptionCondition) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExceptionCondition. +func (in *ExceptionCondition) DeepCopy() *ExceptionCondition { + if in == nil { + return nil + } + out := new(ExceptionCondition) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ExceptionResult) DeepCopyInto(out *ExceptionResult) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExceptionResult. +func (in *ExceptionResult) DeepCopy() *ExceptionResult { + if in == nil { + return nil + } + out := new(ExceptionResult) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *GCSArtifact) DeepCopyInto(out *GCSArtifact) { *out = *in @@ -793,6 +825,16 @@ func (in *Template) DeepCopyInto(out *Template) { (*in)[i].DeepCopyInto(&(*out)[i]) } } + if in.Errors != nil { + in, out := &in.Errors, &out.Errors + *out = make([]ExceptionCondition, len(*in)) + copy(*out, *in) + } + if in.Warnings != nil { + in, out := &in.Warnings, &out.Warnings + *out = make([]ExceptionCondition, len(*in)) + copy(*out, *in) + } return } @@ -989,6 +1031,16 @@ func (in *WorkflowStatus) DeepCopyInto(out *WorkflowStatus) { *out = new(Outputs) (*in).DeepCopyInto(*out) } + if in.Errors != nil { + in, out := &in.Errors, &out.Errors + *out = make([]ExceptionResult, len(*in)) + copy(*out, *in) + } + if in.Warnings != nil { + in, out := &in.Warnings, &out.Warnings + *out = make([]ExceptionResult, len(*in)) + copy(*out, *in) + } return } diff --git a/pkg/client/clientset/versioned/clientset.go b/pkg/client/clientset/versioned/clientset.go index 950465391f27..0ec90bd0b226 100644 --- a/pkg/client/clientset/versioned/clientset.go +++ b/pkg/client/clientset/versioned/clientset.go @@ -3,7 +3,7 @@ package versioned import ( - argoprojv1alpha1 "github.com/CyrusBiotechnology/argo/pkg/client/clientset/versioned/typed/workflow/v1alpha1" + argoprojv1alpha1 "github.com/cyrusbiotechnology/argo/pkg/client/clientset/versioned/typed/workflow/v1alpha1" glog "github.com/golang/glog" discovery "k8s.io/client-go/discovery" rest "k8s.io/client-go/rest" diff --git a/pkg/client/clientset/versioned/fake/clientset_generated.go b/pkg/client/clientset/versioned/fake/clientset_generated.go index 9b781cf4d68b..29adb631a5c0 100644 --- a/pkg/client/clientset/versioned/fake/clientset_generated.go +++ b/pkg/client/clientset/versioned/fake/clientset_generated.go @@ -3,9 +3,9 @@ package fake import ( - clientset "github.com/CyrusBiotechnology/argo/pkg/client/clientset/versioned" - argoprojv1alpha1 "github.com/CyrusBiotechnology/argo/pkg/client/clientset/versioned/typed/workflow/v1alpha1" - fakeargoprojv1alpha1 "github.com/CyrusBiotechnology/argo/pkg/client/clientset/versioned/typed/workflow/v1alpha1/fake" + clientset "github.com/cyrusbiotechnology/argo/pkg/client/clientset/versioned" + argoprojv1alpha1 "github.com/cyrusbiotechnology/argo/pkg/client/clientset/versioned/typed/workflow/v1alpha1" + fakeargoprojv1alpha1 "github.com/cyrusbiotechnology/argo/pkg/client/clientset/versioned/typed/workflow/v1alpha1/fake" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/watch" "k8s.io/client-go/discovery" diff --git a/pkg/client/clientset/versioned/fake/register.go b/pkg/client/clientset/versioned/fake/register.go index d93c5ea55da1..2520535604e1 100644 --- a/pkg/client/clientset/versioned/fake/register.go +++ b/pkg/client/clientset/versioned/fake/register.go @@ -3,7 +3,7 @@ package fake import ( - argoprojv1alpha1 "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1" + argoprojv1alpha1 "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" schema "k8s.io/apimachinery/pkg/runtime/schema" diff --git a/pkg/client/clientset/versioned/scheme/register.go b/pkg/client/clientset/versioned/scheme/register.go index d4517b4d6e86..a7118471a108 100644 --- a/pkg/client/clientset/versioned/scheme/register.go +++ b/pkg/client/clientset/versioned/scheme/register.go @@ -3,7 +3,7 @@ package scheme import ( - argoprojv1alpha1 "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1" + argoprojv1alpha1 "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" schema "k8s.io/apimachinery/pkg/runtime/schema" diff --git a/pkg/client/clientset/versioned/typed/workflow/v1alpha1/fake/fake_workflow.go b/pkg/client/clientset/versioned/typed/workflow/v1alpha1/fake/fake_workflow.go index 393f3be4516d..dc57c123ec3d 100644 --- a/pkg/client/clientset/versioned/typed/workflow/v1alpha1/fake/fake_workflow.go +++ b/pkg/client/clientset/versioned/typed/workflow/v1alpha1/fake/fake_workflow.go @@ -3,7 +3,7 @@ package fake import ( - v1alpha1 "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1" + v1alpha1 "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" labels "k8s.io/apimachinery/pkg/labels" schema "k8s.io/apimachinery/pkg/runtime/schema" diff --git a/pkg/client/clientset/versioned/typed/workflow/v1alpha1/fake/fake_workflow_client.go b/pkg/client/clientset/versioned/typed/workflow/v1alpha1/fake/fake_workflow_client.go index 82deca58e4ac..3cb6c5be8f3e 100644 --- a/pkg/client/clientset/versioned/typed/workflow/v1alpha1/fake/fake_workflow_client.go +++ b/pkg/client/clientset/versioned/typed/workflow/v1alpha1/fake/fake_workflow_client.go @@ -3,7 +3,7 @@ package fake import ( - v1alpha1 "github.com/CyrusBiotechnology/argo/pkg/client/clientset/versioned/typed/workflow/v1alpha1" + v1alpha1 "github.com/cyrusbiotechnology/argo/pkg/client/clientset/versioned/typed/workflow/v1alpha1" rest "k8s.io/client-go/rest" testing "k8s.io/client-go/testing" ) diff --git a/pkg/client/clientset/versioned/typed/workflow/v1alpha1/workflow.go b/pkg/client/clientset/versioned/typed/workflow/v1alpha1/workflow.go index 22a8413d5a0a..503516044edf 100644 --- a/pkg/client/clientset/versioned/typed/workflow/v1alpha1/workflow.go +++ b/pkg/client/clientset/versioned/typed/workflow/v1alpha1/workflow.go @@ -3,8 +3,8 @@ package v1alpha1 import ( - v1alpha1 "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1" - scheme "github.com/CyrusBiotechnology/argo/pkg/client/clientset/versioned/scheme" + v1alpha1 "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1" + scheme "github.com/cyrusbiotechnology/argo/pkg/client/clientset/versioned/scheme" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" diff --git a/pkg/client/clientset/versioned/typed/workflow/v1alpha1/workflow_client.go b/pkg/client/clientset/versioned/typed/workflow/v1alpha1/workflow_client.go index f05443b60de7..c0399ac245d2 100644 --- a/pkg/client/clientset/versioned/typed/workflow/v1alpha1/workflow_client.go +++ b/pkg/client/clientset/versioned/typed/workflow/v1alpha1/workflow_client.go @@ -3,8 +3,8 @@ package v1alpha1 import ( - v1alpha1 "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1" - "github.com/CyrusBiotechnology/argo/pkg/client/clientset/versioned/scheme" + v1alpha1 "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1" + "github.com/cyrusbiotechnology/argo/pkg/client/clientset/versioned/scheme" serializer "k8s.io/apimachinery/pkg/runtime/serializer" rest "k8s.io/client-go/rest" ) diff --git a/pkg/client/informers/externalversions/factory.go b/pkg/client/informers/externalversions/factory.go index e8d971956c6d..c0e3ee474317 100644 --- a/pkg/client/informers/externalversions/factory.go +++ b/pkg/client/informers/externalversions/factory.go @@ -7,9 +7,9 @@ import ( sync "sync" time "time" - versioned "github.com/CyrusBiotechnology/argo/pkg/client/clientset/versioned" - internalinterfaces "github.com/CyrusBiotechnology/argo/pkg/client/informers/externalversions/internalinterfaces" - workflow "github.com/CyrusBiotechnology/argo/pkg/client/informers/externalversions/workflow" + versioned "github.com/cyrusbiotechnology/argo/pkg/client/clientset/versioned" + internalinterfaces "github.com/cyrusbiotechnology/argo/pkg/client/informers/externalversions/internalinterfaces" + workflow "github.com/cyrusbiotechnology/argo/pkg/client/informers/externalversions/workflow" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" schema "k8s.io/apimachinery/pkg/runtime/schema" diff --git a/pkg/client/informers/externalversions/generic.go b/pkg/client/informers/externalversions/generic.go index 2938f04e9d2c..75892ece0f00 100644 --- a/pkg/client/informers/externalversions/generic.go +++ b/pkg/client/informers/externalversions/generic.go @@ -5,7 +5,7 @@ package externalversions import ( "fmt" - v1alpha1 "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1" + v1alpha1 "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1" schema "k8s.io/apimachinery/pkg/runtime/schema" cache "k8s.io/client-go/tools/cache" ) diff --git a/pkg/client/informers/externalversions/internalinterfaces/factory_interfaces.go b/pkg/client/informers/externalversions/internalinterfaces/factory_interfaces.go index 494a7b762fe6..51adb18fa376 100644 --- a/pkg/client/informers/externalversions/internalinterfaces/factory_interfaces.go +++ b/pkg/client/informers/externalversions/internalinterfaces/factory_interfaces.go @@ -5,7 +5,7 @@ package internalinterfaces import ( time "time" - versioned "github.com/CyrusBiotechnology/argo/pkg/client/clientset/versioned" + versioned "github.com/cyrusbiotechnology/argo/pkg/client/clientset/versioned" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" cache "k8s.io/client-go/tools/cache" diff --git a/pkg/client/informers/externalversions/workflow/interface.go b/pkg/client/informers/externalversions/workflow/interface.go index e83decb3b0e0..067f390c95ae 100644 --- a/pkg/client/informers/externalversions/workflow/interface.go +++ b/pkg/client/informers/externalversions/workflow/interface.go @@ -3,8 +3,8 @@ package argoproj import ( - internalinterfaces "github.com/CyrusBiotechnology/argo/pkg/client/informers/externalversions/internalinterfaces" - v1alpha1 "github.com/CyrusBiotechnology/argo/pkg/client/informers/externalversions/workflow/v1alpha1" + internalinterfaces "github.com/cyrusbiotechnology/argo/pkg/client/informers/externalversions/internalinterfaces" + v1alpha1 "github.com/cyrusbiotechnology/argo/pkg/client/informers/externalversions/workflow/v1alpha1" ) // Interface provides access to each of this group's versions. diff --git a/pkg/client/informers/externalversions/workflow/v1alpha1/interface.go b/pkg/client/informers/externalversions/workflow/v1alpha1/interface.go index 68e99cdf39cb..b78328ce9591 100644 --- a/pkg/client/informers/externalversions/workflow/v1alpha1/interface.go +++ b/pkg/client/informers/externalversions/workflow/v1alpha1/interface.go @@ -3,7 +3,7 @@ package v1alpha1 import ( - internalinterfaces "github.com/CyrusBiotechnology/argo/pkg/client/informers/externalversions/internalinterfaces" + internalinterfaces "github.com/cyrusbiotechnology/argo/pkg/client/informers/externalversions/internalinterfaces" ) // Interface provides access to all the informers in this group version. diff --git a/pkg/client/informers/externalversions/workflow/v1alpha1/workflow.go b/pkg/client/informers/externalversions/workflow/v1alpha1/workflow.go index 7ac8e51ddd40..49ea797b9eda 100644 --- a/pkg/client/informers/externalversions/workflow/v1alpha1/workflow.go +++ b/pkg/client/informers/externalversions/workflow/v1alpha1/workflow.go @@ -5,10 +5,10 @@ package v1alpha1 import ( time "time" - workflowv1alpha1 "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1" - versioned "github.com/CyrusBiotechnology/argo/pkg/client/clientset/versioned" - internalinterfaces "github.com/CyrusBiotechnology/argo/pkg/client/informers/externalversions/internalinterfaces" - v1alpha1 "github.com/CyrusBiotechnology/argo/pkg/client/listers/workflow/v1alpha1" + workflowv1alpha1 "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1" + versioned "github.com/cyrusbiotechnology/argo/pkg/client/clientset/versioned" + internalinterfaces "github.com/cyrusbiotechnology/argo/pkg/client/informers/externalversions/internalinterfaces" + v1alpha1 "github.com/cyrusbiotechnology/argo/pkg/client/listers/workflow/v1alpha1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" watch "k8s.io/apimachinery/pkg/watch" diff --git a/pkg/client/listers/workflow/v1alpha1/workflow.go b/pkg/client/listers/workflow/v1alpha1/workflow.go index 3b2882cec30a..98f66150e8ac 100644 --- a/pkg/client/listers/workflow/v1alpha1/workflow.go +++ b/pkg/client/listers/workflow/v1alpha1/workflow.go @@ -3,7 +3,7 @@ package v1alpha1 import ( - v1alpha1 "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1" + v1alpha1 "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1" "k8s.io/apimachinery/pkg/api/errors" "k8s.io/apimachinery/pkg/labels" "k8s.io/client-go/tools/cache" diff --git a/test/e2e/functional/git-clone-test.yaml b/test/e2e/functional/git-clone-test.yaml index 5f202b185f1f..056a6c44e8c6 100644 --- a/test/e2e/functional/git-clone-test.yaml +++ b/test/e2e/functional/git-clone-test.yaml @@ -30,7 +30,7 @@ spec: - name: argo-source path: /src git: - repo: https://github.com/CyrusBiotechnology/argo.git + repo: https://github.com/cyrusbiotechnology/argo.git revision: "{{inputs.parameters.revision}}" container: image: golang:1.8 diff --git a/test/e2e/wait_test.go b/test/e2e/wait_test.go index 4f0b387916e0..661cbeffeea2 100644 --- a/test/e2e/wait_test.go +++ b/test/e2e/wait_test.go @@ -7,7 +7,7 @@ import ( "os" "testing" - "github.com/CyrusBiotechnology/argo/cmd/argo/commands" + "github.com/cyrusbiotechnology/argo/cmd/argo/commands" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/suite" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" diff --git a/test/e2e/workflow_test.go b/test/e2e/workflow_test.go index 8d95f3a74d05..56a6a7f5419a 100644 --- a/test/e2e/workflow_test.go +++ b/test/e2e/workflow_test.go @@ -8,7 +8,7 @@ import ( "testing" "time" - "github.com/CyrusBiotechnology/argo/cmd/argo/commands" + "github.com/cyrusbiotechnology/argo/cmd/argo/commands" "github.com/stretchr/testify/suite" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" ) diff --git a/test/test.go b/test/test.go index 7272217f971c..e4a56fd8345e 100644 --- a/test/test.go +++ b/test/test.go @@ -5,7 +5,7 @@ import ( "path/filepath" "runtime" - wfv1 "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1" + wfv1 "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1" "github.com/ghodss/yaml" "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" ) diff --git a/ui/README.md b/ui/README.md index 74ce911a495e..18e7d185fb3f 100644 --- a/ui/README.md +++ b/ui/README.md @@ -1,3 +1,3 @@ # Argo UI -Moved to https://github.com/CyrusBiotechnology/argo-ui +Moved to https://github.com/cyrusbiotechnology/argo-ui diff --git a/util/cmd/cmd.go b/util/cmd/cmd.go index bcef72358844..94d72e696cce 100644 --- a/util/cmd/cmd.go +++ b/util/cmd/cmd.go @@ -9,7 +9,7 @@ import ( "os/user" "strings" - "github.com/CyrusBiotechnology/argo" + "github.com/cyrusbiotechnology/argo" log "github.com/sirupsen/logrus" "github.com/spf13/cobra" ) diff --git a/util/retry/retry.go b/util/retry/retry.go index 2a3180f91a95..792650d2f1d0 100644 --- a/util/retry/retry.go +++ b/util/retry/retry.go @@ -6,7 +6,7 @@ import ( "strings" "time" - argoerrs "github.com/CyrusBiotechnology/argo/errors" + argoerrs "github.com/cyrusbiotechnology/argo/errors" apierr "k8s.io/apimachinery/pkg/api/errors" "k8s.io/apimachinery/pkg/util/wait" ) diff --git a/workflow/artifacts/artifactory/artifactory.go b/workflow/artifacts/artifactory/artifactory.go index b5983f94f9e0..4e9bb7f9368a 100644 --- a/workflow/artifacts/artifactory/artifactory.go +++ b/workflow/artifacts/artifactory/artifactory.go @@ -5,8 +5,8 @@ import ( "net/http" "os" - "github.com/CyrusBiotechnology/argo/errors" - wfv1 "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1" + "github.com/cyrusbiotechnology/argo/errors" + wfv1 "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1" ) type ArtifactoryArtifactDriver struct { diff --git a/workflow/artifacts/artifactory/artifactory_test.go b/workflow/artifacts/artifactory/artifactory_test.go index af17da2f00fc..3b241403a1ba 100644 --- a/workflow/artifacts/artifactory/artifactory_test.go +++ b/workflow/artifacts/artifactory/artifactory_test.go @@ -6,8 +6,8 @@ import ( "testing" "time" - wfv1 "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1" - art "github.com/CyrusBiotechnology/argo/workflow/artifacts/artifactory" + wfv1 "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1" + art "github.com/cyrusbiotechnology/argo/workflow/artifacts/artifactory" "github.com/stretchr/testify/assert" ) diff --git a/workflow/artifacts/artifacts.go b/workflow/artifacts/artifacts.go index 7a89618a59a5..8de8f89c6c43 100644 --- a/workflow/artifacts/artifacts.go +++ b/workflow/artifacts/artifacts.go @@ -1,7 +1,7 @@ package executor import ( - wfv1 "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1" + wfv1 "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1" ) // ArtifactDriver is the interface for loading and saving of artifacts diff --git a/workflow/artifacts/gcs/gcs.go b/workflow/artifacts/gcs/gcs.go index c5b07ed7b2b1..cba41e09b70c 100644 --- a/workflow/artifacts/gcs/gcs.go +++ b/workflow/artifacts/gcs/gcs.go @@ -4,8 +4,8 @@ import ( "cloud.google.com/go/storage" "context" "errors" - argoErrors "github.com/CyrusBiotechnology/argo/errors" - wfv1 "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1" + argoErrors "github.com/cyrusbiotechnology/argo/errors" + wfv1 "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1" log "github.com/sirupsen/logrus" "io" "os" diff --git a/workflow/artifacts/git/git.go b/workflow/artifacts/git/git.go index 6039c1c406b8..0eb31549c558 100644 --- a/workflow/artifacts/git/git.go +++ b/workflow/artifacts/git/git.go @@ -11,8 +11,8 @@ import ( "gopkg.in/src-d/go-git.v4/plumbing/transport/http" ssh2 "gopkg.in/src-d/go-git.v4/plumbing/transport/ssh" - "github.com/CyrusBiotechnology/argo/errors" - wfv1 "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1" + "github.com/cyrusbiotechnology/argo/errors" + wfv1 "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1" ) // GitArtifactDriver is the artifact driver for a git repo diff --git a/workflow/artifacts/http/http.go b/workflow/artifacts/http/http.go index b50a4a301d7f..d2e814c77b9c 100644 --- a/workflow/artifacts/http/http.go +++ b/workflow/artifacts/http/http.go @@ -1,9 +1,9 @@ package http import ( - "github.com/CyrusBiotechnology/argo/errors" - wfv1 "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1" - "github.com/CyrusBiotechnology/argo/workflow/common" + "github.com/cyrusbiotechnology/argo/errors" + wfv1 "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1" + "github.com/cyrusbiotechnology/argo/workflow/common" ) // HTTPArtifactDriver is the artifact driver for a HTTP URL diff --git a/workflow/artifacts/raw/raw.go b/workflow/artifacts/raw/raw.go index d3ea228f26ab..cab3b1571f2b 100644 --- a/workflow/artifacts/raw/raw.go +++ b/workflow/artifacts/raw/raw.go @@ -1,8 +1,8 @@ package raw import ( - "github.com/CyrusBiotechnology/argo/errors" - wfv1 "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1" + "github.com/cyrusbiotechnology/argo/errors" + wfv1 "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1" "os" ) diff --git a/workflow/artifacts/raw/raw_test.go b/workflow/artifacts/raw/raw_test.go index 96c2da270a64..710b44a0f3b9 100644 --- a/workflow/artifacts/raw/raw_test.go +++ b/workflow/artifacts/raw/raw_test.go @@ -1,8 +1,8 @@ package raw_test import ( - wfv1 "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1" - "github.com/CyrusBiotechnology/argo/workflow/artifacts/raw" + wfv1 "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1" + "github.com/cyrusbiotechnology/argo/workflow/artifacts/raw" "github.com/stretchr/testify/assert" "io/ioutil" "os" diff --git a/workflow/artifacts/s3/s3.go b/workflow/artifacts/s3/s3.go index af4154d0738f..7245ebea0e9a 100644 --- a/workflow/artifacts/s3/s3.go +++ b/workflow/artifacts/s3/s3.go @@ -5,7 +5,7 @@ import ( argos3 "github.com/argoproj/pkg/s3" log "github.com/sirupsen/logrus" - wfv1 "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1" + wfv1 "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1" ) // S3ArtifactDriver is a driver for AWS S3 diff --git a/workflow/common/common.go b/workflow/common/common.go index db880681511e..d5f9d9604fb0 100644 --- a/workflow/common/common.go +++ b/workflow/common/common.go @@ -4,7 +4,7 @@ import ( "os" "time" - "github.com/CyrusBiotechnology/argo/pkg/apis/workflow" + "github.com/cyrusbiotechnology/argo/pkg/apis/workflow" ) const ( @@ -55,6 +55,10 @@ const ( // set by the controller and obeyed by the executor. For example, the controller will use this annotation to // signal the executors of daemoned containers that it should terminate. AnnotationKeyExecutionControl = workflow.FullName + "/execution" + //AnnotationKeyErrors is the annotation key containing extended fatal error information + AnnotationKeyErrors = workflow.FullName + "/errors" + //AnnotationKeyWarnings is the annotation key containing extended + AnnotationKeyWarnings = workflow.FullName + "/warnings" // LabelKeyControllerInstanceID is the label the controller will carry forward to workflows/pod labels // for the purposes of workflow segregation diff --git a/workflow/common/util.go b/workflow/common/util.go index 141abaa38d9c..8ca11933f23c 100644 --- a/workflow/common/util.go +++ b/workflow/common/util.go @@ -11,9 +11,9 @@ import ( "strings" "time" - "github.com/CyrusBiotechnology/argo/errors" - "github.com/CyrusBiotechnology/argo/pkg/apis/workflow" - wfv1 "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1" + "github.com/cyrusbiotechnology/argo/errors" + "github.com/cyrusbiotechnology/argo/pkg/apis/workflow" + wfv1 "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1" "github.com/ghodss/yaml" log "github.com/sirupsen/logrus" "github.com/valyala/fasttemplate" diff --git a/workflow/controller/config.go b/workflow/controller/config.go index 911afce724ea..80c7480bbb7d 100644 --- a/workflow/controller/config.go +++ b/workflow/controller/config.go @@ -12,10 +12,10 @@ import ( "k8s.io/apimachinery/pkg/watch" "k8s.io/client-go/tools/cache" - "github.com/CyrusBiotechnology/argo/errors" - wfv1 "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1" - "github.com/CyrusBiotechnology/argo/workflow/common" - "github.com/CyrusBiotechnology/argo/workflow/metrics" + "github.com/cyrusbiotechnology/argo/errors" + wfv1 "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1" + "github.com/cyrusbiotechnology/argo/workflow/common" + "github.com/cyrusbiotechnology/argo/workflow/metrics" "github.com/ghodss/yaml" log "github.com/sirupsen/logrus" ) diff --git a/workflow/controller/controller.go b/workflow/controller/controller.go index 501ebd0782da..2febc7d556e4 100644 --- a/workflow/controller/controller.go +++ b/workflow/controller/controller.go @@ -22,12 +22,12 @@ import ( "k8s.io/client-go/tools/cache" "k8s.io/client-go/util/workqueue" - "github.com/CyrusBiotechnology/argo" - wfclientset "github.com/CyrusBiotechnology/argo/pkg/client/clientset/versioned" - "github.com/CyrusBiotechnology/argo/workflow/common" - "github.com/CyrusBiotechnology/argo/workflow/metrics" - "github.com/CyrusBiotechnology/argo/workflow/ttlcontroller" - "github.com/CyrusBiotechnology/argo/workflow/util" + "github.com/cyrusbiotechnology/argo" + wfclientset "github.com/cyrusbiotechnology/argo/pkg/client/clientset/versioned" + "github.com/cyrusbiotechnology/argo/workflow/common" + "github.com/cyrusbiotechnology/argo/workflow/metrics" + "github.com/cyrusbiotechnology/argo/workflow/ttlcontroller" + "github.com/cyrusbiotechnology/argo/workflow/util" ) // WorkflowController is the controller for workflow resources diff --git a/workflow/controller/controller_test.go b/workflow/controller/controller_test.go index b75310eeb5e3..0ab3e28d8941 100644 --- a/workflow/controller/controller_test.go +++ b/workflow/controller/controller_test.go @@ -7,8 +7,8 @@ import ( "io/ioutil" "testing" - wfv1 "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1" - fakewfclientset "github.com/CyrusBiotechnology/argo/pkg/client/clientset/versioned/fake" + wfv1 "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1" + fakewfclientset "github.com/cyrusbiotechnology/argo/pkg/client/clientset/versioned/fake" "github.com/ghodss/yaml" "github.com/stretchr/testify/assert" apiv1 "k8s.io/api/core/v1" diff --git a/workflow/controller/dag.go b/workflow/controller/dag.go index ae5202f466b5..109e58595b8f 100644 --- a/workflow/controller/dag.go +++ b/workflow/controller/dag.go @@ -5,9 +5,9 @@ import ( "fmt" "strings" - "github.com/CyrusBiotechnology/argo/errors" - wfv1 "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1" - "github.com/CyrusBiotechnology/argo/workflow/common" + "github.com/cyrusbiotechnology/argo/errors" + wfv1 "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1" + "github.com/cyrusbiotechnology/argo/workflow/common" "github.com/valyala/fasttemplate" ) diff --git a/workflow/controller/dag_test.go b/workflow/controller/dag_test.go index dac8d4d3ff7f..677244629d60 100644 --- a/workflow/controller/dag_test.go +++ b/workflow/controller/dag_test.go @@ -5,8 +5,8 @@ import ( "github.com/stretchr/testify/assert" - wfv1 "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1" - "github.com/CyrusBiotechnology/argo/test" + wfv1 "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1" + "github.com/cyrusbiotechnology/argo/test" ) // TestDagXfail verifies a DAG can fail properly diff --git a/workflow/controller/exec_control.go b/workflow/controller/exec_control.go index 94d16eb4bda2..90fee860ed5e 100644 --- a/workflow/controller/exec_control.go +++ b/workflow/controller/exec_control.go @@ -8,9 +8,9 @@ import ( apiv1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "github.com/CyrusBiotechnology/argo/errors" - wfv1 "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1" - "github.com/CyrusBiotechnology/argo/workflow/common" + "github.com/cyrusbiotechnology/argo/errors" + wfv1 "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1" + "github.com/cyrusbiotechnology/argo/workflow/common" ) // applyExecutionControl will ensure a pod's execution control annotation is up-to-date diff --git a/workflow/controller/operator.go b/workflow/controller/operator.go index c2206c22877d..257085a0730a 100644 --- a/workflow/controller/operator.go +++ b/workflow/controller/operator.go @@ -21,13 +21,13 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/client-go/tools/cache" - "github.com/CyrusBiotechnology/argo/errors" - wfv1 "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1" - "github.com/CyrusBiotechnology/argo/pkg/client/clientset/versioned/typed/workflow/v1alpha1" - "github.com/CyrusBiotechnology/argo/util/retry" - "github.com/CyrusBiotechnology/argo/workflow/common" - "github.com/CyrusBiotechnology/argo/workflow/util" - "github.com/CyrusBiotechnology/argo/workflow/validate" + "github.com/cyrusbiotechnology/argo/errors" + wfv1 "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1" + "github.com/cyrusbiotechnology/argo/pkg/client/clientset/versioned/typed/workflow/v1alpha1" + "github.com/cyrusbiotechnology/argo/util/retry" + "github.com/cyrusbiotechnology/argo/workflow/common" + "github.com/cyrusbiotechnology/argo/workflow/util" + "github.com/cyrusbiotechnology/argo/workflow/validate" ) // wfOperationCtx is the context for evaluation and operation of a single workflow @@ -305,7 +305,7 @@ func (woc *wfOperationCtx) persistUpdates() { } // persistWorkflowSizeLimitErr will fail a the workflow with an error when we hit the resource size limit -// See https://github.com/CyrusBiotechnology/argo/issues/913 +// See https://github.com/cyrusbiotechnology/argo/issues/913 func (woc *wfOperationCtx) persistWorkflowSizeLimitErr(wfClient v1alpha1.WorkflowInterface, err error) { woc.wf = woc.orig.DeepCopy() woc.markWorkflowError(err, true) @@ -416,6 +416,42 @@ func (woc *wfOperationCtx) processNodeRetries(node *wfv1.NodeStatus, retryStrate return nil } +func (woc *wfOperationCtx) collectConditionResults(pod *apiv1.Pod, currentResults *[]wfv1.ExceptionResult, annotationKey string) error { + + if resultString, ok := pod.Annotations[annotationKey]; ok { + + uniqueConditionNames := make(map[string]bool) + for _, result := range *currentResults { + uniqueConditionNames[result.Name] = true + } + + var newResults []wfv1.ExceptionResult + err := json.Unmarshal([]byte(resultString), &newResults) + if err != nil { + return err + } + + // Only add the new result to the list if we don't already have an error result with that name + for _, newResult := range newResults { + if _, ok := uniqueConditionNames[newResult.Name]; !ok { + *currentResults = append(*currentResults, newResult) + } + } + } + return nil +} + +func (woc *wfOperationCtx) collectPodErrorsAndWarnings(pod *apiv1.Pod) error { + + err := woc.collectConditionResults(pod, &woc.wf.Status.Errors, common.AnnotationKeyErrors) + if err != nil { + return err + } + + err = woc.collectConditionResults(pod, &woc.wf.Status.Warnings, common.AnnotationKeyWarnings) + return err +} + // podReconciliation is the process by which a workflow will examine all its related // pods and update the node state before continuing the evaluation of the workflow. // Records all pods which were observed completed, which will be labeled completed=true @@ -427,7 +463,7 @@ func (woc *wfOperationCtx) podReconciliation() error { } seenPods := make(map[string]bool) - performAssessment := func(pod *apiv1.Pod) { + performAssessment := func(pod *apiv1.Pod) error { nodeNameForPod := pod.Annotations[common.AnnotationKeyNodeName] nodeID := woc.wf.NodeID(nodeNameForPod) seenPods[nodeID] = true @@ -439,12 +475,20 @@ func (woc *wfOperationCtx) podReconciliation() error { } if woc.wf.Status.Nodes[pod.ObjectMeta.Name].Completed() { woc.completedPods[pod.ObjectMeta.Name] = true + err := woc.collectPodErrorsAndWarnings(pod) + if err != nil { + return err + } } } + return nil } for _, pod := range podList.Items { - performAssessment(&pod) + err = performAssessment(&pod) + if err != nil { + woc.log.Errorf("Failed to collect extended errors and warnings from pod %s: %s", pod.Name, err.Error()) + } err = woc.applyExecutionControl(&pod) if err != nil { woc.log.Warnf("Failed to apply execution control to pod %s", pod.Name) @@ -523,10 +567,11 @@ func assessNodeStatus(pod *apiv1.Pod, node *wfv1.NodeStatus) *wfv1.NodeStatus { newDaemonStatus = &f message = getPendingReason(pod) case apiv1.PodSucceeded: - newPhase = wfv1.NodeSucceeded + // A pod can exit with a successful status and still fail an exception condition check + newPhase, message = handlePodFailures(pod) newDaemonStatus = &f case apiv1.PodFailed: - newPhase, message = inferFailedReason(pod) + newPhase, message = handlePodFailures(pod) newDaemonStatus = &f case apiv1.PodRunning: newPhase = wfv1.NodeRunning @@ -666,9 +711,9 @@ func getPendingReason(pod *apiv1.Pod) string { return "" } -// inferFailedReason returns metadata about a Failed pod to be used in its NodeStatus +// handlePodFailures returns metadata about a Failed pod to be used in its NodeStatus // Returns a tuple of the new phase and message -func inferFailedReason(pod *apiv1.Pod) (wfv1.NodePhase, string) { +func handlePodFailures(pod *apiv1.Pod) (wfv1.NodePhase, string) { if pod.Status.Message != "" { // Pod has a nice error message. Use that. return wfv1.NodeFailed, pod.Status.Message @@ -763,6 +808,27 @@ func inferFailedReason(pod *apiv1.Pod) (wfv1.NodePhase, string) { for _, failMsg := range failMessages { return wfv1.NodeFailed, failMsg } + + // If we get here, check the extended failure conditions and mark the node as failed if any exist + + if resultString, ok := pod.Annotations[common.AnnotationKeyErrors]; ok { + var errorResults []wfv1.ExceptionResult + err := json.Unmarshal([]byte(resultString), &errorResults) + + if err != nil { + failMsg := fmt.Sprintf("Failed to deserialize Extended error descriptions: %s", err.Error()) + return wfv1.NodeFailed, failMsg + } + + if len(errorResults) > 0 { + failMsg := "failed for the following reasons: " + for _, result := range errorResults { + failMsg += fmt.Sprintf("%s - %s ", result.Name, result.Message) + } + return wfv1.NodeFailed, failMsg + } + } + // If we get here, we have detected that the main/wait containers succeed but the sidecar(s) // were SIGKILL'd. The executor may have had to forcefully terminate the sidecar (kill -9), // resulting in a 137 exit code (which we had ignored earlier). If failMessages is empty, it diff --git a/workflow/controller/operator_test.go b/workflow/controller/operator_test.go index a4ac95107684..48009a5b6d98 100644 --- a/workflow/controller/operator_test.go +++ b/workflow/controller/operator_test.go @@ -4,9 +4,9 @@ import ( "fmt" "testing" - wfv1 "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1" - "github.com/CyrusBiotechnology/argo/test" - "github.com/CyrusBiotechnology/argo/workflow/util" + wfv1 "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1" + "github.com/cyrusbiotechnology/argo/test" + "github.com/cyrusbiotechnology/argo/workflow/util" "github.com/stretchr/testify/assert" apiv1 "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/api/resource" diff --git a/workflow/controller/scope.go b/workflow/controller/scope.go index b6e2fc1cdaec..f44c51f2d1ee 100644 --- a/workflow/controller/scope.go +++ b/workflow/controller/scope.go @@ -3,8 +3,8 @@ package controller import ( "strings" - "github.com/CyrusBiotechnology/argo/errors" - wfv1 "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1" + "github.com/cyrusbiotechnology/argo/errors" + wfv1 "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1" ) // wfScope contains the current scope of variables available when executing a template diff --git a/workflow/controller/steps.go b/workflow/controller/steps.go index 60ca1067760c..039031013a24 100644 --- a/workflow/controller/steps.go +++ b/workflow/controller/steps.go @@ -6,9 +6,9 @@ import ( "strings" "github.com/Knetic/govaluate" - "github.com/CyrusBiotechnology/argo/errors" - wfv1 "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1" - "github.com/CyrusBiotechnology/argo/workflow/common" + "github.com/cyrusbiotechnology/argo/errors" + wfv1 "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1" + "github.com/cyrusbiotechnology/argo/workflow/common" "github.com/valyala/fasttemplate" ) diff --git a/workflow/controller/suspend.go b/workflow/controller/suspend.go index 7f7d2e50a738..f12d44edcb45 100644 --- a/workflow/controller/suspend.go +++ b/workflow/controller/suspend.go @@ -1,7 +1,7 @@ package controller import ( - wfv1 "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1" + wfv1 "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1" ) func (woc *wfOperationCtx) executeSuspend(nodeName string, tmpl *wfv1.Template, boundaryID string) *wfv1.NodeStatus { diff --git a/workflow/controller/workflowpod.go b/workflow/controller/workflowpod.go index b492466969a5..47c579620068 100644 --- a/workflow/controller/workflowpod.go +++ b/workflow/controller/workflowpod.go @@ -7,9 +7,9 @@ import ( "path" "strconv" - "github.com/CyrusBiotechnology/argo/errors" - wfv1 "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1" - "github.com/CyrusBiotechnology/argo/workflow/common" + "github.com/cyrusbiotechnology/argo/errors" + wfv1 "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1" + "github.com/cyrusbiotechnology/argo/workflow/common" log "github.com/sirupsen/logrus" "github.com/valyala/fasttemplate" apiv1 "k8s.io/api/core/v1" diff --git a/workflow/controller/workflowpod_test.go b/workflow/controller/workflowpod_test.go index 2563fb9d4532..9efc3e92b0c6 100644 --- a/workflow/controller/workflowpod_test.go +++ b/workflow/controller/workflowpod_test.go @@ -3,7 +3,7 @@ package controller import ( "testing" - wfv1 "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1" + wfv1 "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1" "github.com/ghodss/yaml" "github.com/stretchr/testify/assert" apiv1 "k8s.io/api/core/v1" diff --git a/workflow/executor/docker/docker.go b/workflow/executor/docker/docker.go index 39ae21de1083..3e06cba11a11 100644 --- a/workflow/executor/docker/docker.go +++ b/workflow/executor/docker/docker.go @@ -7,10 +7,10 @@ import ( "strings" "time" - "github.com/CyrusBiotechnology/argo/util" + "github.com/cyrusbiotechnology/argo/util" - "github.com/CyrusBiotechnology/argo/errors" - "github.com/CyrusBiotechnology/argo/workflow/common" + "github.com/cyrusbiotechnology/argo/errors" + "github.com/cyrusbiotechnology/argo/workflow/common" log "github.com/sirupsen/logrus" ) diff --git a/workflow/executor/executor.go b/workflow/executor/executor.go index fd4f9c202c55..ae494940ad7c 100644 --- a/workflow/executor/executor.go +++ b/workflow/executor/executor.go @@ -3,6 +3,7 @@ package executor import ( "bufio" "bytes" + "compress/gzip" "context" "encoding/json" "fmt" @@ -14,23 +15,24 @@ import ( "os/signal" "path" "path/filepath" + "regexp" "runtime/debug" "strings" "syscall" "time" - "github.com/CyrusBiotechnology/argo/errors" - wfv1 "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1" - "github.com/CyrusBiotechnology/argo/util/retry" - artifact "github.com/CyrusBiotechnology/argo/workflow/artifacts" - "github.com/CyrusBiotechnology/argo/workflow/artifacts/artifactory" - "github.com/CyrusBiotechnology/argo/workflow/artifacts/gcs" - "github.com/CyrusBiotechnology/argo/workflow/artifacts/git" - "github.com/CyrusBiotechnology/argo/workflow/artifacts/http" - "github.com/CyrusBiotechnology/argo/workflow/artifacts/raw" - "github.com/CyrusBiotechnology/argo/workflow/artifacts/s3" - "github.com/CyrusBiotechnology/argo/workflow/common" argofile "github.com/argoproj/pkg/file" + "github.com/cyrusbiotechnology/argo/errors" + wfv1 "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1" + "github.com/cyrusbiotechnology/argo/util/retry" + artifact "github.com/cyrusbiotechnology/argo/workflow/artifacts" + "github.com/cyrusbiotechnology/argo/workflow/artifacts/artifactory" + "github.com/cyrusbiotechnology/argo/workflow/artifacts/gcs" + "github.com/cyrusbiotechnology/argo/workflow/artifacts/git" + "github.com/cyrusbiotechnology/argo/workflow/artifacts/http" + "github.com/cyrusbiotechnology/argo/workflow/artifacts/raw" + "github.com/cyrusbiotechnology/argo/workflow/artifacts/s3" + "github.com/cyrusbiotechnology/argo/workflow/common" "github.com/fsnotify/fsnotify" log "github.com/sirupsen/logrus" apiv1 "k8s.io/api/core/v1" @@ -360,27 +362,38 @@ func (we *WorkflowExecutor) SaveParameters() error { return nil } +func (we *WorkflowExecutor) saveLogsToPath(logDir string, fileName string) (outputPath string, err error) { + mainCtrID, err := we.GetMainContainerID() + if err != nil { + return + } + err = os.MkdirAll(logDir, os.ModePerm) + if err != nil { + err = errors.InternalWrapError(err) + return + } + outputPath = path.Join(logDir, fileName) + err = we.RuntimeExecutor.Logs(mainCtrID, outputPath) + if err != nil { + return + } + return +} + // SaveLogs saves logs func (we *WorkflowExecutor) SaveLogs() (*wfv1.Artifact, error) { if we.Template.ArchiveLocation == nil || we.Template.ArchiveLocation.ArchiveLogs == nil || !*we.Template.ArchiveLocation.ArchiveLogs { return nil, nil } log.Infof("Saving logs") - mainCtrID, err := we.GetMainContainerID() - if err != nil { - return nil, err - } - tempLogsDir := "/argo/outputs/logs" - err = os.MkdirAll(tempLogsDir, os.ModePerm) - if err != nil { - return nil, errors.InternalWrapError(err) - } fileName := "main.log" - mainLog := path.Join(tempLogsDir, fileName) - err = we.RuntimeExecutor.Logs(mainCtrID, mainLog) + tempLogsDir := "/argo/outputs/logs" + + mainLog, err := we.saveLogsToPath(tempLogsDir, fileName) if err != nil { return nil, err } + art := wfv1.Artifact{ Name: "main-logs", ArtifactLocation: *we.Template.ArchiveLocation, @@ -628,6 +641,153 @@ func (we *WorkflowExecutor) AddAnnotation(key, value string) error { return common.AddPodAnnotation(we.ClientSet, we.PodName, we.Namespace, key, value) } +type ConditionType string + +const ( + ConditionTypeError ConditionType = "error" + ConditionTypeWarning ConditionType = "warning" +) + +func (we *WorkflowExecutor) EvaluateConditions(conditionMode ConditionType) error { + + var resultsLocation *[]wfv1.ExceptionCondition + var annotationKey string + + if conditionMode == ConditionTypeError { + resultsLocation = &we.Template.Errors + annotationKey = common.AnnotationKeyErrors + + } else if conditionMode == ConditionTypeWarning { + resultsLocation = &we.Template.Warnings + annotationKey = common.AnnotationKeyWarnings + } else { + return errors.InternalErrorf("The valid condition types are 'error' or 'warning', got %s instead", string(conditionMode)) + } + + results, err := we.evaluatePatternConditions(resultsLocation) + if err != nil { + return errors.InternalWrapError(err) + } + + if results != nil { + errorResultBytes, err := json.Marshal(results) + if err != nil { + return errors.InternalWrapError(err) + } + + return we.AddAnnotation(annotationKey, string(errorResultBytes)) + } + return nil +} + +func (we *WorkflowExecutor) fetchFileForErrorHandling(fileSource string) (logData []byte, err error) { + + var logPath string + + if fileSource[0] == '/' { + mainCtrID, err := we.GetMainContainerID() + if err != nil { + return nil, err + } + baseDir := "/argo/logs/" + uncompressedLogPath := baseDir + filepath.Base(fileSource) + + // RuntimeExecutor.CopyFile gzips the file + logPath = uncompressedLogPath + ".gz" + + if _, err := os.Stat(logPath); os.IsNotExist(err) { + err = os.MkdirAll(baseDir, os.ModePerm) + if err != nil { + err = errors.InternalWrapError(err) + return nil, err + } + err = we.RuntimeExecutor.CopyFile(mainCtrID, fileSource, logPath) + if err != nil { + return nil, err + } + } + + } else if fileSource == "stdout" { + + logPath = "/argo/logs/main.log" + if _, err := os.Stat(logPath); os.IsNotExist(err) { + _, err = we.saveLogsToPath("/argo/logs", "main.log") + if err != nil { + return nil, err + } + } + } else { + err = errors.InternalErrorf("fileSource must be an absolute path or 'stdout', got %s instead", fileSource) + return + + } + + logFile, err := os.Open(logPath) + if err != nil { + log.Errorf("Error attempting to open logfile %s", logPath) + return + } + defer logFile.Close() + + if strings.HasSuffix(logPath, ".gz") { + decompressed, err := gzip.NewReader(logFile) + if err != nil { + return nil, err + } + logData, err = ioutil.ReadAll(decompressed) + } else { + logData, err = ioutil.ReadAll(logFile) + } + + return +} + +func (we *WorkflowExecutor) evaluatePatternConditions(conditions *[]wfv1.ExceptionCondition) (results []wfv1.ExceptionResult, err error) { + + for _, condition := range *conditions { + if condition.PatternMatched != "" && condition.PatternUnmatched != "" { + errorMessage := fmt.Sprintf("Error condition %s cannot specify both match and unmatch simultaneously", condition.Name) + err = errors.InternalError(errorMessage) + return + } + + logData, err := we.fetchFileForErrorHandling(condition.Source) + if err != nil { + return nil, err + } + + result := wfv1.ExceptionResult{ + Name: condition.Name, + Message: condition.Message, + PodName: we.PodName, + StepName: we.Template.Name, + } + + if condition.PatternMatched != "" { + regex, err := regexp.Compile(condition.PatternMatched) + if err != nil { + return nil, err + } + regexMatch := regex.Find(logData) + if regexMatch != nil { + + results = append(results, result) + } + } else if condition.PatternUnmatched != "" { + regex, err := regexp.Compile(condition.PatternUnmatched) + if err != nil { + return nil, err + } + regexMatch := regex.Find(logData) + if regexMatch == nil { + results = append(results, result) + } + } + } + + return +} + // isTarball returns whether or not the file is a tarball func isTarball(filePath string) bool { cmd := exec.Command("tar", "-tf", filePath) diff --git a/workflow/executor/executor_test.go b/workflow/executor/executor_test.go index 2d2c1f00e9df..fbcaf5e4e3b9 100644 --- a/workflow/executor/executor_test.go +++ b/workflow/executor/executor_test.go @@ -3,8 +3,8 @@ package executor import ( "testing" - wfv1 "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1" - "github.com/CyrusBiotechnology/argo/workflow/executor/mocks" + wfv1 "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1" + "github.com/cyrusbiotechnology/argo/workflow/executor/mocks" "github.com/stretchr/testify/assert" "k8s.io/client-go/kubernetes/fake" ) diff --git a/workflow/executor/kubelet/client.go b/workflow/executor/kubelet/client.go index da107bc5a7dd..13e5aebe8c43 100644 --- a/workflow/executor/kubelet/client.go +++ b/workflow/executor/kubelet/client.go @@ -16,10 +16,10 @@ import ( "syscall" "time" - "github.com/CyrusBiotechnology/argo/util" + "github.com/cyrusbiotechnology/argo/util" - "github.com/CyrusBiotechnology/argo/errors" - "github.com/CyrusBiotechnology/argo/workflow/common" + "github.com/cyrusbiotechnology/argo/errors" + "github.com/cyrusbiotechnology/argo/workflow/common" "github.com/gorilla/websocket" log "github.com/sirupsen/logrus" "k8s.io/api/core/v1" diff --git a/workflow/executor/kubelet/kubelet.go b/workflow/executor/kubelet/kubelet.go index 3e943c7ec6f0..fc96bf56c8b3 100644 --- a/workflow/executor/kubelet/kubelet.go +++ b/workflow/executor/kubelet/kubelet.go @@ -6,7 +6,7 @@ import ( "syscall" "time" - "github.com/CyrusBiotechnology/argo/errors" + "github.com/cyrusbiotechnology/argo/errors" log "github.com/sirupsen/logrus" ) diff --git a/workflow/executor/resource.go b/workflow/executor/resource.go index e0de5ad92186..848c62c9e4ab 100644 --- a/workflow/executor/resource.go +++ b/workflow/executor/resource.go @@ -8,7 +8,7 @@ import ( "strings" "time" - "github.com/CyrusBiotechnology/argo/errors" + "github.com/cyrusbiotechnology/argo/errors" log "github.com/sirupsen/logrus" "github.com/tidwall/gjson" "k8s.io/apimachinery/pkg/labels" diff --git a/workflow/metrics/collector.go b/workflow/metrics/collector.go index 142dabdd2014..a3b838490b5e 100644 --- a/workflow/metrics/collector.go +++ b/workflow/metrics/collector.go @@ -7,8 +7,8 @@ import ( "github.com/prometheus/client_golang/prometheus" "k8s.io/client-go/tools/cache" - wfv1 "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1" - "github.com/CyrusBiotechnology/argo/workflow/util" + wfv1 "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1" + "github.com/cyrusbiotechnology/argo/workflow/util" ) var ( diff --git a/workflow/ttlcontroller/ttlcontroller.go b/workflow/ttlcontroller/ttlcontroller.go index 2807d36505b8..40f569cf3302 100644 --- a/workflow/ttlcontroller/ttlcontroller.go +++ b/workflow/ttlcontroller/ttlcontroller.go @@ -17,10 +17,10 @@ import ( "k8s.io/client-go/tools/cache" "k8s.io/client-go/util/workqueue" - wfv1 "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1" - wfclientset "github.com/CyrusBiotechnology/argo/pkg/client/clientset/versioned" - "github.com/CyrusBiotechnology/argo/workflow/common" - "github.com/CyrusBiotechnology/argo/workflow/util" + wfv1 "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1" + wfclientset "github.com/cyrusbiotechnology/argo/pkg/client/clientset/versioned" + "github.com/cyrusbiotechnology/argo/workflow/common" + "github.com/cyrusbiotechnology/argo/workflow/util" ) const ( diff --git a/workflow/ttlcontroller/ttlcontroller_test.go b/workflow/ttlcontroller/ttlcontroller_test.go index 001ba236fb66..ee3b1fdbfb23 100644 --- a/workflow/ttlcontroller/ttlcontroller_test.go +++ b/workflow/ttlcontroller/ttlcontroller_test.go @@ -4,9 +4,9 @@ import ( "testing" "time" - fakewfclientset "github.com/CyrusBiotechnology/argo/pkg/client/clientset/versioned/fake" - "github.com/CyrusBiotechnology/argo/test" - "github.com/CyrusBiotechnology/argo/workflow/util" + fakewfclientset "github.com/cyrusbiotechnology/argo/pkg/client/clientset/versioned/fake" + "github.com/cyrusbiotechnology/argo/test" + "github.com/cyrusbiotechnology/argo/workflow/util" "github.com/stretchr/testify/assert" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" diff --git a/workflow/util/util.go b/workflow/util/util.go index 20c97df42185..543743aae91c 100644 --- a/workflow/util/util.go +++ b/workflow/util/util.go @@ -26,15 +26,15 @@ import ( "k8s.io/client-go/rest" "k8s.io/client-go/tools/cache" - "github.com/CyrusBiotechnology/argo/errors" - "github.com/CyrusBiotechnology/argo/pkg/apis/workflow" - wfv1 "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1" - "github.com/CyrusBiotechnology/argo/pkg/client/clientset/versioned/typed/workflow/v1alpha1" - cmdutil "github.com/CyrusBiotechnology/argo/util/cmd" - "github.com/CyrusBiotechnology/argo/util/retry" - unstructutil "github.com/CyrusBiotechnology/argo/util/unstructured" - "github.com/CyrusBiotechnology/argo/workflow/common" - "github.com/CyrusBiotechnology/argo/workflow/validate" + "github.com/cyrusbiotechnology/argo/errors" + "github.com/cyrusbiotechnology/argo/pkg/apis/workflow" + wfv1 "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1" + "github.com/cyrusbiotechnology/argo/pkg/client/clientset/versioned/typed/workflow/v1alpha1" + cmdutil "github.com/cyrusbiotechnology/argo/util/cmd" + "github.com/cyrusbiotechnology/argo/util/retry" + unstructutil "github.com/cyrusbiotechnology/argo/util/unstructured" + "github.com/cyrusbiotechnology/argo/workflow/common" + "github.com/cyrusbiotechnology/argo/workflow/validate" ) func NewDynamicWorkflowClient(config *rest.Config) (dynamic.Interface, error) { @@ -46,7 +46,7 @@ func NewDynamicWorkflowClient(config *rest.Config) (dynamic.Interface, error) { // a custom built UnstructuredInformer which is in actuality returning unstructured.Unstructured // objects. We no longer return WorkflowInformer due to: // https://github.com/kubernetes/kubernetes/issues/57705 -// https://github.com/CyrusBiotechnology/argo/issues/632 +// https://github.com/cyrusbiotechnology/argo/issues/632 func NewWorkflowInformer(cfg *rest.Config, ns string, resyncPeriod time.Duration, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { dclient, err := NewDynamicWorkflowClient(cfg) if err != nil { @@ -419,7 +419,7 @@ func FormulateResubmitWorkflow(wf *wfv1.Workflow, memoized bool) (*wfv1.Workflow // NOTE: NodeRunning shouldn't really happen except in weird scenarios where controller // mismanages state (e.g. panic when operating on a workflow) default: - return nil, errors.InternalErrorf("Workflow cannot be resubmitted with nodes in %s phase", node, node.Phase) + return nil, errors.InternalErrorf("Workflow cannot be resubmitted with node %s in %s phase", node, node.Phase) } } return &newWF, nil @@ -467,7 +467,7 @@ func RetryWorkflow(kubeClient kubernetes.Interface, wfClient v1alpha1.WorkflowIn // do not add this status to the node. pretend as if this node never existed. default: // Do not allow retry of workflows with pods in Running/Pending phase - return nil, errors.InternalErrorf("Workflow cannot be retried with nodes in %s phase", node, node.Phase) + return nil, errors.InternalErrorf("Workflow cannot be retried with node %s in %s phase", node, node.Phase) } if node.Type == wfv1.NodeTypePod { log.Infof("Deleting pod: %s", node.ID) diff --git a/workflow/util/util_test.go b/workflow/util/util_test.go index e0eefd9056d7..c99544de2569 100644 --- a/workflow/util/util_test.go +++ b/workflow/util/util_test.go @@ -3,7 +3,7 @@ package util import ( "testing" - wfv1 "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1" + wfv1 "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1" "github.com/stretchr/testify/assert" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" ) diff --git a/workflow/validate/lint.go b/workflow/validate/lint.go index 3498db372d5d..428f93252dfb 100644 --- a/workflow/validate/lint.go +++ b/workflow/validate/lint.go @@ -5,11 +5,11 @@ import ( "os" "path/filepath" - "github.com/CyrusBiotechnology/argo/errors" - "github.com/CyrusBiotechnology/argo/pkg/apis/workflow" - wfv1 "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1" - "github.com/CyrusBiotechnology/argo/workflow/common" "github.com/argoproj/pkg/json" + "github.com/cyrusbiotechnology/argo/errors" + "github.com/cyrusbiotechnology/argo/pkg/apis/workflow" + wfv1 "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1" + "github.com/cyrusbiotechnology/argo/workflow/common" ) // LintWorkflowDir validates all workflow manifests in a directory. Ignores non-workflow manifests diff --git a/workflow/validate/validate.go b/workflow/validate/validate.go index b0f5a07d43a2..324e512736fb 100644 --- a/workflow/validate/validate.go +++ b/workflow/validate/validate.go @@ -8,9 +8,9 @@ import ( "regexp" "strings" - "github.com/CyrusBiotechnology/argo/errors" - wfv1 "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1" - "github.com/CyrusBiotechnology/argo/workflow/common" + "github.com/cyrusbiotechnology/argo/errors" + wfv1 "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1" + "github.com/cyrusbiotechnology/argo/workflow/common" "github.com/valyala/fasttemplate" apivalidation "k8s.io/apimachinery/pkg/util/validation" ) diff --git a/workflow/validate/validate_test.go b/workflow/validate/validate_test.go index f93f87111923..558a24717487 100644 --- a/workflow/validate/validate_test.go +++ b/workflow/validate/validate_test.go @@ -3,8 +3,8 @@ package validate import ( "testing" - wfv1 "github.com/CyrusBiotechnology/argo/pkg/apis/workflow/v1alpha1" - "github.com/CyrusBiotechnology/argo/test" + wfv1 "github.com/cyrusbiotechnology/argo/pkg/apis/workflow/v1alpha1" + "github.com/cyrusbiotechnology/argo/test" "github.com/ghodss/yaml" "github.com/stretchr/testify/assert" ) @@ -738,7 +738,7 @@ spec: - name: argo-source path: /src git: - repo: https://github.com/CyrusBiotechnology/argo.git + repo: https://github.com/cyrusbiotechnology/argo.git container: image: alpine:latest command: [sh, -c]