Skip to content

Enhance SandboxWarmPool status with Ready, Available, and Conditions fields #188

@igooch

Description

@igooch

Is your feature request related to a problem? Please describe.

Currently, the SandboxWarmPool resource provides very limited information in its status. When you run kubectl get sandboxwarmpool, you only see the age of the resource:

$ kubectl get sandboxwarmpool my-sandbox-warmpool
NAME                      AGE
my-sandbox-warmpool   2m44s

In contrast, a Deployment provides much more useful information about its state:

$ kubectl get deploy my-deployment
NAME                        READY   UP-TO-DATE   AVAILABLE   AGE
my-deployment   2/2     2            2           3d23h

This makes it difficult to determine the state of a SandboxWarmPool and to use it in automated workflows. For example, you cannot easily wait for a warm pool to be ready.

Describe the solution you'd like

This issue proposes to enhance the SandboxWarmPool status to be more like a Deployment status. There are a few ways this could be achieved:

  • Add columns to kubectl get SandboxWarmPool output:

The SandboxWarmPool status could be updated to include Ready and Available fields, which would then be displayed by kubectl get. This would provide a quick overview of the pool's health. The SandboxWarmPoolSpec already has a replicas field,

Replicas int32 `json:"replicas"`
and the SandboxWarmPoolStatus also has a replicas field
Replicas int32 `json:"replicas,omitempty"`
which could be used for this.

  • Add "Conditions" to the SandboxWarmPool status:

Adding a Conditions field to the SandboxWarmPoolStatus would allow users to wait for the warm pool to reach a specific state using kubectl wait. For example, you could wait for the Available condition to be true:

kubectl wait --for=condition=Available sandboxwarmpool/<sandboxwarmpool-name>

Describe alternatives you've considered

  • Implement kubectl rollout:

Support for kubectl rollout sandboxwarmpool/<name> and kubectl rollout status sandboxwarmpool/<name> could be added. This would provide detailed information about the rollout process, similar to Deployments. This would be the most involved implementation.

Metadata

Metadata

Assignees

No one assigned

    Labels

    kind/featureCategorizes issue or PR as related to a new feature.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions