-
Task
-
Resolution: Unresolved
-
Undefined
-
None
-
None
-
None
Task Description (Required)
During devtools week in July 2025 gmontero@redhat.com and johnmcollier investigated the k8s typescript CLI's informer offering .... see https://github.com/kubernetes-client/javascript/blob/main/examples/typescript/informer/informer.ts for some sample informer usage
John and Gabe were even able to create inferenceservice prototypes with assistance from Cursor (John's prototype is at https://github.com/johnmcollier/informer-ts-kube ) and Gemini CLI (Gabe's prototype is at https://github.com/redhat-ai-dev/rhdh-plugins/tree/redhat-ai-dev-ts-informers )
In theory for example, the current rhoai-normalizer for the bridge and its kserver controller could be done in typescript as a backstage plugin
Now "informer" is a bit of a misnomer, as it does equate to infomer's from k8s' client-go repo which are the basis for golang controllers. Rather, it is just a k8s watch with some caching and reconnect when watch connections drop.
More detail of what is missing will be attached as a separate file to this Jira.
Also, this repo only recently went to a 1.0 level, where we have heard from a few source that earlier versions were problematics.
Next steps wrt informers:
- podman desktop uses informers; we've seen Felipe Martin from that team be fairly active in that community; a review of their use of informers, as well as reaching out to Felipe and others on their experience could help us shape how RHDH might use informers in the future
- engage with RHDH Core (including the RHDH COPE office hours on Mondays) to see what they have considered wrt Informers. As of the opening of this issue, neither core backstage, community plugins, nor rhdh-plugins are using them, though that library/repo is used for get/list
- after the first 2 bullets, perhaps engage with the upstream repo on thoughts about augmenting the informers with say workqueues or rate limiting .... i.e. do they envision more robust read/write controllers of CRDs ever being written in typescript