Revamp Environment states for better representation

Problem

This issue is for continuing the discussion raised by @vshushlin.

GitLab Environments has currently the following states:

  • available ... The environment is available for deployments, or is already live, or got a failed deployment, etc. This is the initial and default state.
  • stopped ... The environment has been stopped.
  • stopping ... This is a transient state between available and stopped. You can find more information in this issue.

The problem here is that the available state is pretty ambiguous on its purpose. This subsequently causes a problem such as:

Proposal

Some ideas of environment statuses (from #241506[Iteration_3.png] (comment 1209546925)):

  • Healthy 🍏
    • Summary: The environment is up and all green. No attention is needed.
    • Conditions:
      • No critical alert or incident exists.
      • Latest successful deployment happened within a day.
  • Attention
    • Summary: The environment is working but something is not right, therefore needs attention.
    • Conditions:
      • Recent deployment failed.
      • No new deployments within a day.
      • The health of Kubernetes Resource Group is unhealthy.
      • No critical alert or incident exists (yet).
  • Critical 🔴
    • Summary: The environment is not working. It requires immediate corrective action.
    • Conditions:

Considerations:

Edited by Shinya Maeda