Helm operator : Get status of dependent resources #2491
Description
Feature Request
I have recently discovered the helm-operator. I really like the simplicity to maintain the definitions of releases and how the operator watches the parent definition as well as the dependent resources and have started migrating some of our deployments to it.
As a status, the operator returns the status of the deployment itself in status.Conditions
as well as the status.deployedRelease
name and manifest.
I find missing a way to add to custom columns the status (or any other field) from the dependent resources if watchDependentResources
is true
.
For example, I was thinking about having an optional field to watches.yaml
, such as :
- version: v1alpha2
group: lp.ml.io
kind: Service
chart: helm-charts/lp-service
statuses:
- version: v1
group: ""
kind: Pod
name: podReadiness
jsonPath: ".status.conditions[?(@.type=='Ready')].status"
This indicates to add a field status.podReadiness
to CRD, having the value of Ready
condition from child Pod.
This would allow the CRD to add columns like :
[...]
additionalPrinterColumns:
- JSONPath: .status.podReadiness
description: status of the deployed Pod
name: Ready
type: string
[...]
and therefore have the statuses of the dependent resources in the get
operation of the CR.
I can't estimate the complexity of the implementation yet.
As a Watch
is already registered on the dependent resources, I guess the feasibility of the change depends on a status change being catchable by DependentPredicateFuncs
. Does a status change trigger UpdateEvent
?