crossplane / crossplane/crossplane
Crossplane custom resources status should be compatible with kstatus
- Dominant language
- Go
- Stars
- 12.1k
- Forks
- 1.3k
- Avg merge
- 1d 6h
- Merged PRs (30d)
- 46
Description
### What problem are you facing?
We are attempting to provision crossplane custom resources (i.e. providers) with [FluxCD](https://fluxcd.io/), and seem to have issues enabling [health assessment](https://fluxcd.io/docs/components/kustomize/kustomization/#health-assessment) for crossplane custom resources. And it seems like the problem is related to the following requirement for custom resources:
> A health check entry can reference one of the following types: **Custom resources that are compatible with [kstatus](https://github.com/kubernetes-sigs/cli-utils/tree/master/pkg/kstatus)**
And for crossplane providers, it seems like the status conditions are not compatible:
````yaml
status:
conditions:
- lastTransitionTime: "2021-10-26T11:36:13Z"
reason: HealthyPackageRevision
status: "True"
type: Healthy
- lastTransitionTime: "2021-10-26T11:36:06Z"
reason: ActivePackageRevision
status: "True"
type: Installed
````
The workaround is to disable health checks for crossplane resources in FluxCD - which is far from optimal.
### How could Crossplane help solve your problem?
It would be convenient if all crossplane custom resources had status conditions compatible with [kstatus](https://github.com/kubernetes-sigs/cli-utils/tree/master/pkg/kstatus).
I raised this question on [Slack](https://crossplane.slack.com/archives/C01718T2476/p1635249669052200), and got a reply from @muvaf:
> All managed resource CRDs and CRDs produced from XRDs have Ready condition. I believe we can have it in package APIs, too. Likely, we’d either rename Healthy to Ready or add another one.
Contributor guide
Assessment
This issue has not been assessed yet.