Skip to main content

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/ErrorWhere it AppearsMeaningAction
Ready: UnavailableMRExternal provider reports the resource is unhealthyCheck the external provider for resource health details
Ready: CreatingMRThe external provider is still provisioning the resourceWait for provisioning to complete
can't render composed resourceXRComposition rendering failedContact Ybor support
cannot get referenced ProviderConfigMRProviderConfig was deletedWait for the platform to recreate it automatically