After #194, we can extend it to support targets of arbitrary kinds, in remote clusters. This will involve keeping track of which clusters are used in pipelines, and keeping clients with shared caches for those. These are needed both for getting the state of application objects, and for maintaining watches on those application objects.
Because remote clusters can be unavailable, this will need to requeue a pipeline if a target cluster is not available, and mark the pipeline to be unready.
[ ] expand tests for application object watching as in #194, to cover targets in remote clusters
[ ] expand support to any kind used as a target (rather than just HelmRelease)
[ ] tests for the invariant that only clusters mentioned in pipelines have client caches
After #194, we can extend it to support targets of arbitrary kinds, in remote clusters. This will involve keeping track of which clusters are used in pipelines, and keeping clients with shared caches for those. These are needed both for getting the state of application objects, and for maintaining watches on those application objects.
Because remote clusters can be unavailable, this will need to requeue a pipeline if a target cluster is not available, and mark the pipeline to be unready.