Crossplane Ready Issues
Problem: Resource is Synced but not Ready
SYNCED=True, READY=False means Crossplane applied your configuration but the external provider reports the resource isn't healthy. Check the Ready condition:
kubectl get ${RESOURCE_TYPE} ${RESOURCE_NAME} -o jsonpath='{.status.conditions[?(@.type=="Ready")]}'
This is typically a provider-side issue — the resource exists but is still provisioning or has a problem.
Examining Events
For additional context, use kubectl describe to view Kubernetes events:
kubectl describe ${RESOURCE_TYPE} ${RESOURCE_NAME}
The Events section at the bottom shows recent activity. Look for Warning events which indicate problems.
Composition vs Managed Resource Errors
When a resource fails, identify where in the hierarchy the error appears:
Errors on the Composite Resource (XR)
If the error appears on the XR (e.g., XBlobStorage, XWorkloadIdentity), the problem is with Crossplane or the Composition — not the external provider.
Investigation steps:
- Check that the Composition exists and is correctly installed on the cluster
- Verify the XRD (CompositeResourceDefinition) is present
- Troubleshoot Crossplane pods using the Workload Issues section
If the issue persists, contact Ybor support — this is likely a Composition configuration issue.
Errors on the Managed Resource (MR)
If the error appears on an MR (e.g., Container, UserAssignedIdentity, RoleAssignment), the problem is with the external provider. The error message will contain details from their API.
Investigation steps:
- Read the error message in
status.conditions— this tends to include the API response - Check relevant portal for additional context on the resource
- Verify the configuration values on the MR match what you expect from your Claim
- Check that Crossplane has the necessary permissions with the external provider
When to contact Ybor support:
- If MR configuration values don't match what you specified in the Claim (Composition rendering issue)
- If the error indicates a permissions problem (provider permissions are managed by the platform team)
Common Error Patterns
| Condition/Error | Where it Appears | Meaning | Action |
|---|---|---|---|
Ready: Unavailable | MR | External provider reports the resource is unhealthy | Check the external provider for resource health details |
Ready: Creating | MR | The external provider is still provisioning the resource | Wait for provisioning to complete |
can't render composed resource | XR | Composition rendering failed | Contact Ybor support |
cannot get referenced ProviderConfig | MR | ProviderConfig was deleted | Wait for the platform to recreate it automatically |