diff --git a/metaflow/metaflow_config.py b/metaflow/metaflow_config.py index 2cbb214bd4e..a0f0831ee14 100644 --- a/metaflow/metaflow_config.py +++ b/metaflow/metaflow_config.py @@ -302,6 +302,7 @@ ARGO_EVENTS_EVENT = from_conf("ARGO_EVENTS_EVENT") ARGO_EVENTS_WEBHOOK_URL = from_conf("ARGO_EVENTS_WEBHOOK_URL") +ARGO_WORKFLOWS_UI_URL = from_conf("ARGO_WORKFLOWS_UI_URL") ## # Airflow Configuration diff --git a/metaflow/plugins/argo/argo_workflows_cli.py b/metaflow/plugins/argo/argo_workflows_cli.py index 0ef28b5f339..4fd01c74486 100644 --- a/metaflow/plugins/argo/argo_workflows_cli.py +++ b/metaflow/plugins/argo/argo_workflows_cli.py @@ -9,7 +9,12 @@ from metaflow import JSONType, current, decorators, parameters from metaflow._vendor import click from metaflow.exception import MetaflowException, MetaflowInternalError -from metaflow.metaflow_config import SERVICE_VERSION_CHECK, UI_URL +from metaflow.metaflow_config import ( + SERVICE_VERSION_CHECK, + UI_URL, + ARGO_WORKFLOWS_UI_URL, + KUBERNETES_NAMESPACE, +) from metaflow.package import MetaflowPackage # TODO: Move production_token to utils @@ -201,6 +206,16 @@ def create( "due to Kubernetes naming conventions\non Argo Workflows. The " "original flow name is stored in the workflow annotation.\n" ) + if ARGO_WORKFLOWS_UI_URL: + obj.echo( + "See it in the Argo Workflows UI here - \n" + "%s/workflow-templates/%s/%s\n" + % ( + ARGO_WORKFLOWS_UI_URL.rstrip("/"), + KUBERNETES_NAMESPACE, + obj.workflow_name, + ) + ) flow.schedule() obj.echo("What will trigger execution of the workflow:", bold=True) obj.echo(flow.trigger_explanation(), indent=True)