argoproj / argoproj/argo-workflows

HTTP Template: support periodic status verification

Open
#12,423 2 comments 0 reactions 0 assignees View on GitHub
area/templates/http solution/workaround
Dominant language
Go
Stars
17k
Forks
3.7k
Avg merge
1d 20h
Merged PRs (30d)
138

Description

# Summary

HTTP Template support periodic status verification

## Use Cases

In our scenario, some time-consuming requests will be executed asynchronously which usually involves the following two steps:
1. Execution request: HTTP Server will execute it asynchronously and return the asynchronous task id to the client.
2. Status check request: HTTP Server will get and return the task status to the client

However, HTTP Template does not support periodic status verification now, so there will be a lot of recursive verification in workflow which make it very complicated.

HTTP Template is executed in agent pod with the executeTemplate function which contains a return value `requeue ` . If `requeue` > 0, TaskWorker will retry the task, but executeHTTPTemplate has not use the `requeue` value(always return 0).

In my opinion,HTTP Template can support a new condition like successCondition, and if the condition is not met, return `requeue` > 0.

---

**Message from the maintainers**:

Love this enhancement proposal? Give it a 👍. We prioritise the proposals with the most 👍.

Contributor guide

Open the contributing guide

Research direction

Start by locating executeTemplate, executeHTTPTemplate, and TaskWorker in the agent pod implementation, then trace how the requeue return value is handled. Define how a new status condition should be configured and verified, and confirm that unmet conditions cause periodic retries while successful conditions complete the workflow.

Written by the indexing model from the issue text.

Assessment

Tech stack
go, kubernetes
Domain
api, backend
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.