Skip to content

Simplify cluster applications state management

What does this MR do?

This is a proposal to use a finite state machine to determine the state of a cluster managed app and address the complexity described in #60639 (closed)

What doesn’t this MR do?

  1. It doesn’t change the user experience. It is a backstage change.
  2. It doesn’t attempt to fix all the code written as a consequence of the problem described in #60639 (closed). It just opens the door to fix that code quickly in the future.
  3. It doesn’t transition the cluster’s managed apps application to our newest conventions. That will require significant time but simplifying application state will make it easier in the future.

How to ensure this MR does not change UX?

  • All E2E tests should pass. E2E tests provide good coverage for happy paths: Installing a managed app and asserting the current state is correct.
  • The flows worth testing are:
    • Installing an application fails
    • Updating an application
    • Updating an application succeeds
    • Updating an application fails

I tested all those paths and made sure unit tests are updated for them.

Does this MR meet the acceptance criteria?

Conformity

Closes #60639 (closed)

Edited by 🤖 GitLab Bot 🤖

Merge request reports