argoproj / argoproj/argo-workflows

Unique phases for suspended and stopped

Open
#8,182 2 comments 0 reactions 0 assignees View on GitHub
area/controller area/shutdown area/spec area/suspend-resume
Dominant language
Go
Stars
17k
Forks
3.7k
Avg merge
1d 20h
Merged PRs (30d)
138

Description

# Summary

What change needs making?

For the workflow phase and node phase, we didn't implement a full workflow logic, e.g.

1. if we resume or stop a completed workflow, it should panic since workflow state machine wouldn't allow transform state from ``, see issue #8173
2. if we suspend a workflow, it will set suspend=true in the workflow status, but the phase is still be `Running`, I think it doesn't make sense, how about design a set of workflow primitives and use a single field to show the workflow state?

# Use Cases

When would you use this?

When we're planning to design a workflow system based on argo-workflow, we need to read the workflow state and take actions to run the workflow, therefore, we need to improve our workflow design. For now, it's too fragmented and not friendly to user.

---

**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 reviewing the current workflow and node phase handling, including the state-machine concern described in issue #8173. The issue provides no file or test entry point; work is complete only after the project agrees on workflow primitives or a single state representation and defines valid behavior for suspended, stopped, completed, resumed, and stopped workflows.

Written by the indexing model from the issue text.

Assessment

Tech stack
go, kubernetes
Domain
backend, distributed-systems
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.