diff --git a/cmd/argoexec/commands/agent.go b/cmd/argoexec/commands/agent.go index b8983cd1ae3c..573561ab1ede 100644 --- a/cmd/argoexec/commands/agent.go +++ b/cmd/argoexec/commands/agent.go @@ -103,6 +103,10 @@ func initAgentExecutor() *executor.AgentExecutor { if !ok { log.Fatalf("Unable to determine workflow name from environment variable %s", common.EnvVarWorkflowName) } + workflowUid, ok := os.LookupEnv(common.EnvVarWorkflowUID) + if !ok { + log.Warn("Unable to determine workflow Uid from environment variable %s", common.EnvVarWorkflowUID) + } addresses := getPluginAddresses() names := getPluginNames() @@ -120,5 +124,5 @@ func initAgentExecutor() *executor.AgentExecutor { plugins = append(plugins, rpc.New(address, string(data))) } - return executor.NewAgentExecutor(clientSet, restClient, config, namespace, workflowName, plugins) + return executor.NewAgentExecutor(clientSet, restClient, config, namespace, workflowName, workflowUid, plugins) } diff --git a/pkg/plugins/executor/objectmeta.go b/pkg/plugins/executor/objectmeta.go index 68fdaecea9c5..7e710bf5f211 100644 --- a/pkg/plugins/executor/objectmeta.go +++ b/pkg/plugins/executor/objectmeta.go @@ -1,5 +1,7 @@ package executor type ObjectMeta struct { - Name string `json:"name"` + Name string `json:"name"` + Namespace string `json:"namespace"` + Uid string `json:"uid"` } diff --git a/workflow/common/common.go b/workflow/common/common.go index 9647e162e2a2..61d4e60fcaa6 100644 --- a/workflow/common/common.go +++ b/workflow/common/common.go @@ -119,6 +119,8 @@ const ( EnvVarInstanceID = "ARGO_INSTANCE_ID" // EnvVarWorkflowName is the name of the workflow for which the an agent is responsible for EnvVarWorkflowName = "ARGO_WORKFLOW_NAME" + // EnvVarWorkflowUID is the workflow UUID + EnvVarWorkflowUID = "ARGO_WORKFLOW_UID" // EnvVarNodeID is the node ID of the node. EnvVarNodeID = "ARGO_NODE_ID" // EnvVarPluginAddresses is a list of plugin addresses