Open reedjosh opened 4 months ago
+1, I have similar case when creating ProviderConfig - they don't provide any conditions and seems function-auto-ready ignores them.
@reedjosh I'm created a quick fix for that, tested with ProvideConfigs
, but should work for any resource without conditions
specified in status
.
You can test that by replacing your function-auto-ready
definition with my build of the function:
apiVersion: pkg.crossplane.io/v1beta1
kind: Function
metadata:
name: function-auto-ready
spec:
package: xpkg.upbound.io/luktom/function-auto-ready:v0.2.2
Let me know if this is what you needed :)
@negz can you take a look at my fix code, please? I'm quite new to Crossplane development so I'm not sure if there's a better way to solve the issue.
Also, I've tried to enforce setting the Available status for the resource like that:
// just after dr.Ready = resource.ReadyTrue
dr.Resource.SetConditions(xpv1.Available())
But it seems not working property, or I misunderstand something...
Above there's a link to next attempt, this time I added a function input which takes a list of GVK to force readiness, sample usage is in PR description, you can test with package xpkg.upbound.io/luktom/function-auto-ready:v0.2.4
This function is mostly a convenience. Most other functions (e.g. function-go-templating, function-patch-and-transform) will let you specifically configure whether a resource is or isn't ready.
With that in mind, I lean toward keeping this function simple and not adding support for resources with no status. For those resources, I'd just configure your "primary" function (e.g. the function that actually composes the resource) to let Crossplane know the resource should be considered ready as soon as its created.
What happened?
I created a few things with a composition pipeline and ended with auto-ready.
One of the things I created was an environment configuration.
Because the env config never really gets a status, fn auto ready never seems to do anything.
Any chance we could either tell fn-auto-ready of a list of resources to ignore, and or make fn-auto ready schema aware of objects. Particularly env-configs since it is a known k8s resource?
Thanks!
How can we reproduce it?
Create stuff without a status.
What environment did it happen in?
Function version: v0.2.1