From eabede83b569670b9cc5b7d8e995b0f647ac452d Mon Sep 17 00:00:00 2001 From: Bob Haddleton Date: Sat, 11 Apr 2026 12:48:00 -0500 Subject: [PATCH 1/2] Update documentation for UpToDate status condition Signed-off-by: Bob Haddleton --- .../managed-resources/managed-resources.md | 146 ++++++++++++++---- 1 file changed, 119 insertions(+), 27 deletions(-) diff --git a/content/master/managed-resources/managed-resources.md b/content/master/managed-resources/managed-resources.md index 279b160f9..178d6babc 100644 --- a/content/master/managed-resources/managed-resources.md +++ b/content/master/managed-resources/managed-resources.md @@ -764,17 +764,71 @@ deletes the managed resource object. ## Conditions -Crossplane has a standard set of `Conditions` for a managed -resource. View the `Conditions` of a managed resource with -`kubectl describe ` + +A managed resource has three status conditions: Synced, Ready and UpToDate. + +View the `Conditions` of a managed resource with `kubectl describe `. + +The conditions for a managed resource are controlled by the Provider. {{}} Providers may define their own custom `Conditions`. {{}} +### Synced Condition +The Provider sets the Synced status condition to True when it's able to +successfully reconcile the managed resource. If Crossplane can't reconcile the +managed resource it reports an error in the Synced condition. + + +#### ReconcilePaused + +`Reason: ReconcilePaused` indicates the managed resource has a [Pause](#paused) +annotation + +```yaml {copy-lines="none"} +Conditions: + Type: Synced + Status: False + Reason: ReconcilePaused +``` + + +#### ReconcileError + +`Reason: ReconcileError` indicates Crossplane encountered an error while +reconciling the managed resource. The `Message:` value of the `Condition` helps +identify the Crossplane error. + +```yaml {copy-lines="none"} +Conditions: + Type: Synced + Status: False + Reason: ReconcileError +``` + + +#### ReconcileSuccess + +`Reason: ReconcileSuccess` indicates the Provider created and is monitoring the +managed resource. + +```yaml {copy-lines="none"} +Conditions: + Type: Synced + Status: True + Reason: ReconcileSuccess +``` + +### Ready Condition +The Provider sets the Ready status condition to True when it +determines that the managed resource is available. If a managed resource isn't ready +the Crossplane Provider reports it in the Ready condition. -### Available +The logic used to determine if a managed resource is Ready is maintained by the Provider. + +#### Available `Reason: Available` indicates the Provider created the managed resource and it's ready for use. @@ -784,7 +838,7 @@ Conditions: Status: True Reason: Available ``` -### Creating +#### Creating `Reason: Creating` indicates the Provider is attempting to create the managed resource. @@ -796,7 +850,7 @@ Conditions: Reason: Creating ``` -### Deleting +#### Deleting `Reason: Deleting` indicates the Provider is attempting to delete the managed resource. @@ -807,58 +861,96 @@ Conditions: Reason: Deleting ``` +#### Unavailable +`Reason: Unavailable` indicates Crossplane expects the managed resource to be +available, but the Provider reports the resource is unhealthy. + +```yaml {copy-lines="none"} +Conditions: + Type: Ready + Status: False + Reason: Unavailable +``` +### UpToDate Condition +The Provider sets the `UpToDate` status condition to True when the observed resource configuration +matches the configuration specified in the managed resource. +If there are differences between the specified configuration and the observed +configuration the Provider reports them in the UpToDate condition. + -### ReconcilePaused +#### ReconcilePaused `Reason: ReconcilePaused` indicates the managed resource has a [Pause](#paused) annotation ```yaml {copy-lines="none"} Conditions: - Type: Synced - Status: False + Type: UpToDate + Status: Unknown Reason: ReconcilePaused ``` -### ReconcileError +#### UpdateRequested -`Reason: ReconcileError` indicates Crossplane encountered an error while -reconciling the managed resource. The `Message:` value of the `Condition` helps -identify the Crossplane error. +`Reason: UpdateRequested` indicates the provider detected a difference between the +specified configuration and the observed configuration and requested an update to resolve +the delta. The result of the update is still pending, which can happen if the update operation +is asynchronous. The `Message:` value of the `Condition` displays +any difference information available to the Provider. ```yaml {copy-lines="none"} Conditions: - Type: Synced + Type: UpToDate Status: False - Reason: ReconcileError + Reason: UpdateRestricted ``` -### ReconcileSuccess +#### UpdateRestricted -`Reason: ReconcileSuccess` indicates the Provider created and is monitoring the -managed resource. +`Reason: UpdateRestricted` indicates the provider detected a difference between the +specified configuration and the observed configuration but the `Update` operation is +not permitted by the `managementPolicies` defined for the managed resource. +The `Message:` value of the `Condition` displays any difference information available to the Provider. ```yaml {copy-lines="none"} Conditions: - Type: Synced - Status: True - Reason: ReconcileSuccess + Type: UpToDate + Status: False + Reason: UpdateRequested ``` -### Unavailable -`Reason: Unavailable` indicates Crossplane expects the managed resource to be -available, but the Provider reports the resource is unhealthy. + +#### UpdateFailed + +`Reason: UpdateFailed` indicates the provider detected a difference between the +specified configuration and the observed configuration. The Provider requested an update of +the resource to resolve the delta and the update operation failed. The `Message:` value of the `Condition` displays +any difference information available to the Provider and the error information. ```yaml {copy-lines="none"} Conditions: - Type: Ready + Type: UpToDate Status: False - Reason: Unavailable + Reason: UpdateFailed ``` -### Unknown + +#### ObserveMatched + +`Reason: ObserveMatched` indicates the observed configuration matches the +configuration specified by the managed resource. + +```yaml {copy-lines="none"} +Conditions: + Type: UpToDate + Status: True + Reason: ObserveMatched +``` + + +### Unknown Condition `Reason: Unknown` indicates the Provider has an unexpected error with the managed resource. The `conditions.message` provides more information on what went wrong. From 1ccbe9d742dfcc6dede3232ab8cf1047678d74b7 Mon Sep 17 00:00:00 2001 From: Bob Haddleton Date: Tue, 14 Apr 2026 13:42:11 -0500 Subject: [PATCH 2/2] Fix vale errors Signed-off-by: Bob Haddleton --- .../managed-resources/managed-resources.md | 21 +++++++++++-------- .../styles/Crossplane/crossplane-words.txt | 1 + 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/content/master/managed-resources/managed-resources.md b/content/master/managed-resources/managed-resources.md index 178d6babc..d56bea7a1 100644 --- a/content/master/managed-resources/managed-resources.md +++ b/content/master/managed-resources/managed-resources.md @@ -770,13 +770,14 @@ A managed resource has three status conditions: Synced, Ready and UpToDate. View the `Conditions` of a managed resource with `kubectl describe `. -The conditions for a managed resource are controlled by the Provider. +Crossplane Providers manage the conditions for their managed resources. {{}} Providers may define their own custom `Conditions`. {{}} - + ### Synced Condition + The Provider sets the Synced status condition to True when it's able to successfully reconcile the managed resource. If Crossplane can't reconcile the managed resource it reports an error in the Synced condition. @@ -820,14 +821,13 @@ Conditions: Status: True Reason: ReconcileSuccess ``` - + ### Ready Condition + The Provider sets the Ready status condition to True when it -determines that the managed resource is available. If a managed resource isn't ready +determines that the managed resource is available. If a managed resource isn't ready the Crossplane Provider reports it in the Ready condition. -The logic used to determine if a managed resource is Ready is maintained by the Provider. - #### Available `Reason: Available` indicates the Provider created the managed resource and it's ready for use. @@ -871,7 +871,9 @@ Conditions: Status: False Reason: Unavailable ``` + ### UpToDate Condition + The Provider sets the `UpToDate` status condition to True when the observed resource configuration matches the configuration specified in the managed resource. If there are differences between the specified configuration and the observed @@ -895,7 +897,7 @@ Conditions: `Reason: UpdateRequested` indicates the provider detected a difference between the specified configuration and the observed configuration and requested an update to resolve -the delta. The result of the update is still pending, which can happen if the update operation +the delta. The result of the update is still pending, which can happen if the update operation is asynchronous. The `Message:` value of the `Condition` displays any difference information available to the Provider. @@ -926,7 +928,7 @@ Conditions: `Reason: UpdateFailed` indicates the provider detected a difference between the specified configuration and the observed configuration. The Provider requested an update of -the resource to resolve the delta and the update operation failed. The `Message:` value of the `Condition` displays +the resource to resolve the delta and the update operation failed. The `Message:` value of the `Condition` displays any difference information available to the Provider and the error information. ```yaml {copy-lines="none"} @@ -949,8 +951,9 @@ Conditions: Reason: ObserveMatched ``` - + ### Unknown Condition + `Reason: Unknown` indicates the Provider has an unexpected error with the managed resource. The `conditions.message` provides more information on what went wrong. diff --git a/utils/vale/styles/Crossplane/crossplane-words.txt b/utils/vale/styles/Crossplane/crossplane-words.txt index 78f986b47..24a425cce 100644 --- a/utils/vale/styles/Crossplane/crossplane-words.txt +++ b/utils/vale/styles/Crossplane/crossplane-words.txt @@ -101,6 +101,7 @@ TrimSuffix TTR UnhealthyPackageRevision UnknownPackageRevisionHealth +UpToDate ValidPipeline WatchOperation WatchOperations