Show current status of pods in deploy board

Description

Deploy boards show information about a deployment as it is rolled out across the pods in a service. But this is only part of the information. We should show the current status of pods during and after deploys. If a pod fails it's liveness probe, for example, it should show up on the board. We could even tie the display to more detailed Prometheus metrics so clicking or hovering over an individual pod could show a condensed view of the system and/or application metrics for that pod. Maybe we reduce the current Prometheus metrics to a simple green/yellow/green status and use that for finer grained status that pass/fail of liveness probe. This could help track down performance problems at the pod-level.

Proposal

In the deploy board show:

  • A Pod’s status field is a PodStatus object, which has a phase field. (can also be an icon with a tooltip)
Value Description
Pending The Pod has been accepted by the Kubernetes system, but one or more of the Container images has not been created. This includes time before being scheduled as well as time spent downloading images over the network, which could take a while.
Running The Pod has been bound to a node, and all of the Containers have been created. At least one Container is still running, or is in the process of starting or restarting.
Succeeded All Containers in the Pod have terminated in success, and will not be restarted.
Failed All Containers in the Pod have terminated, and at least one Container has terminated in failure. That is, the Container either exited with non-zero status or was terminated by the system.
Unknown For some reason the state of the Pod could not be obtained, typically due to an error in communicating with the host of the Pod.
  • Probe state
  1. livenessProbe: Indicates whether the Container is running. If the liveness probe fails, Show fail state. If a Container does not provide a liveness probe, the default state is Success.

  2. readinessProbe: Indicates whether the Container is ready to service requests. If the readiness probe fails, Show fail state. If a Container does not provide a readiness probe, the default state is Success.

  3. startupProbe: Indicates whether the application within the Container is started. All other probes are disabled if a startup probe is provided, until it succeeds. If the startup probe fails, Show fail state. If a Container does not provide a startup probe, the default state is Success

Links / references

https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/

Documentation blurb

(Write the start of the documentation of this feature here, include:

  1. Why should someone use it; what's the underlying problem.
  2. What is the solution.
  3. How does someone use this

During implementation, this can then be copied and used as a starter for the documentation.)

This page may contain information related to upcoming products, features and functionality. It is important to note that the information presented is for informational purposes only, so please do not rely on the information for purchasing or planning purposes. Just like with all projects, the items mentioned on the page are subject to change or delay, and the development, release, and timing of any products, features, or functionality remain at the sole discretion of GitLab Inc.

Edited by 🤖 GitLab Bot 🤖