diff --git a/content/master/concepts/managed-resources.md b/content/master/concepts/managed-resources.md index 69321ad8..c5914d75 100644 --- a/content/master/concepts/managed-resources.md +++ b/content/master/concepts/managed-resources.md @@ -839,60 +839,97 @@ Providers may define their own custom `Conditions`. {{}} -### Available -`Reason: Available` indicates the Provider created the managed resource and it's -ready for use. +### Type: Ready -```yaml {copy-lines="none"} +Condition `Type: Ready` indicates if the external resource is ready to use. + +The Condition `Type: Ready` and `Status: True` indicates Provider created +the external resource and notified Crossplane it's ready to use. Either the +external API explicitly indicated the resource is ready or Crossplane appears to +have successfully created the external resource. + +{{}} +Crossplane doesn't update `Status: True` during a resource update. +{{< /hint >}} + +The Condition `Type: Ready` and `Status: False` indicates the external resource +isn't available. + + +#### Available +{{}}Reason: Available{{}} indicates +the Provider created the managed resource and it's ready for use. + +```yaml {copy-lines="none",label="available"} Conditions: Type: Ready Status: True Reason: Available ``` -### Creating -`Reason: Creating` indicates the Provider is attempting to create the managed -resource. +#### Creating -```yaml {copy-lines="none"} +{{}}Reason: Creating{{}} indicates the +Provider is attempting to create the managed resource. + +```yaml {copy-lines="none",label="creating"} Conditions: Type: Ready Status: False Reason: Creating ``` -### Deleting -`Reason: Deleting` indicates the Provider is attempting to delete the managed -resource. +#### Deleting +{{}}Reason: Deleting{{}} indicates the +Provider is attempting to delete the managed resource. -```yaml {copy-lines="none"} +```yaml {copy-lines="none",label="deleting"} Conditions: Type: Ready Status: False Reason: Deleting ``` - -### ReconcilePaused - -`Reason: ReconcilePaused` indicates the managed resource has a [Pause](#paused) -annotation +#### Unavailable +{{}}Reason: Unavailable{{}} +indicates Crossplane expects the managed resource to be available, but the +Provider reports the resource is unhealthy. -```yaml {copy-lines="none"} +```yaml {copy-lines="none",label="unavailable"} Conditions: - Type: Synced + Type: Ready Status: False - Reason: ReconcilePaused + Reason: Unavailable ``` +### Type: Synced + +Condition `Type: Synced` indicates Crossplane has checked the status of the managed +resource with the Provider. + +The condition `Type: Synced` and `Status: True` means Crossplane successfully +communicated with the Provider on the status of the manged resource and synced +the managed resource's desired state with the observed state of the external +resource. + +{{< hint "note" >}} +`Type: Synced` and `Status: True` only shows success between Crossplane and +the Provider. This status doesn't mean the Provider successfully changed the +external resource. +{{< /hint >}} + +The condition `Type: Synced` and `Status: False` means Crossplane failed to +update or determine the current state of the managed resource. + -### ReconcileError +#### ReconcileError -`Reason: ReconcileError` indicates Crossplane encountered an error while +{{}}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"} +```yaml {copy-lines="none",label="ReconcileError"} Conditions: Type: Synced Status: False @@ -900,35 +937,45 @@ Conditions: ``` -### ReconcileSuccess +#### ReconcilePaused -`Reason: ReconcileSuccess` indicates the Provider created and is monitoring the -managed resource. +{{}}Reason: ReconcilePaused{{}} +indicates the managed resource has a [Pause](#paused) annotation -```yaml {copy-lines="none"} +```yaml {copy-lines="none",label="ReconcilePaused"} Conditions: Type: Synced - Status: True - Reason: ReconcileSuccess + Status: False + Reason: ReconcilePaused ``` -### Unavailable -`Reason: Unavailable` indicates Crossplane expects the managed resource to be -available, but the Provider reports the resource is unhealthy. + +#### ReconcileSuccess + +{{}}Reason: ReconcileSuccess{{}} +indicates the Provider created and is monitoring the managed resource. -```yaml {copy-lines="none"} +```yaml {copy-lines="none",label="ReconcileSuccess"} Conditions: - Type: Ready - Status: False - Reason: Unavailable + Type: Synced + Status: True + Reason: ReconcileSuccess ``` -### Unknown -`Reason: Unknown` indicates the Provider has an unexpected error with the -managed resource. The `conditions.message` provides more information on what -went wrong. +### Type: Unknown -```yaml {copy-lines="none"} +The `Type: Unknown` indicates that a Provider returned a Condition that +Crossplane doesn't understand. + +A managed resource with `Type: Unknown` is an exception condition. Inspect the +`conditions.message` field or Provider logs for more information. + +#### Unknown +{{}}Reason: Unknown{{}} indicates the +Provider has an unexpected error with the managed resource. The +`conditions.message` provides more information on what went wrong. + +```yaml {copy-lines="none",label="unknown"} Conditions: Type: Unknown Status: False @@ -951,10 +998,10 @@ an asynchronous operation. ##### Finished -The `Reason: Finished` indicates the asynchronous operation completed -successfully. +{{}}Reason: Finished{{}} indicates the +asynchronous operation completed successfully. -```yaml {copy-lines="none"} +```yaml {copy-lines="none",label="finished"} Conditions: Type: AsyncOperation Status: True @@ -964,9 +1011,10 @@ Conditions: ##### Ongoing -`Reason: Ongoing` indicates the managed resource operation is still in progress. +{{}}Reason: Ongoing{{}} indicates the +managed resource operation is still in progress. -```yaml {copy-lines="none"} +```yaml {copy-lines="none",label="ongoing"} Conditions: Type: AsyncOperation Status: True @@ -984,11 +1032,11 @@ operation status as either `Success` or a failure `Reason`. ##### ApplyFailure -`Reason: ApplyFailure` indicates the Provider failed to apply a setting to the -managed resource. The `conditions.message` provides more information on what -went wrong. +{{}}Reason: ApplyFailure{{}} +indicates the Provider failed to apply a setting to the managed resource. +The `conditions.message` provides more information on what went wrong. -```yaml {copy-lines="none"} +```yaml {copy-lines="none",label="applyfailure"} Conditions: Type: LastAsyncOperation Status: False @@ -999,11 +1047,12 @@ Conditions: ##### DestroyFailure -`Reason: DestroyFailure` indicates the Provider failed to delete the managed +{{}}Reason: DestroyFailure{{}} +indicates the Provider failed to delete the managed resource. The `conditions.message` provides more information on what went wrong. -```yaml {copy-lines="none"} +```yaml {copy-lines="none",label="destroyfailure"} Conditions: Type: LastAsyncOperation Status: False @@ -1011,10 +1060,10 @@ Conditions: ``` ##### Success -`Reason: Success` indicates the Provider successfully created the managed -resource asynchronously. +{{}}Reason: Success{{}} indicates the +Provider successfully created the managed resource asynchronously. -```yaml {copy-lines="none"} +```yaml {copy-lines="none",label="success"} Conditions: Type: LastAsyncOperation Status: True