Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
149 changes: 122 additions & 27 deletions content/master/managed-resources/managed-resources.md
Original file line number Diff line number Diff line change
Expand Up @@ -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 <managed_resource>`
<!-- vale Google.Colons = NO -->
A managed resource has three status conditions: Synced, Ready and UpToDate.
<!-- vale Google.Colons = YES -->

View the `Conditions` of a managed resource with `kubectl describe <managed_resource>`.

Crossplane Providers manage the conditions for their managed resources.

{{<hint "note" >}}
Providers may define their own custom `Conditions`.
{{</hint >}}
<!-- vale off -->
### Synced Condition
<!-- vale on -->
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.

<!-- vale off -->
#### ReconcilePaused
<!-- vale on -->
`Reason: ReconcilePaused` indicates the managed resource has a [Pause](#paused)
annotation

```yaml {copy-lines="none"}
Conditions:
Type: Synced
Status: False
Reason: ReconcilePaused
```

<!-- vale off -->
#### ReconcileError
<!-- vale on -->
`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
```

<!-- vale off -->
#### ReconcileSuccess
<!-- vale on -->
`Reason: ReconcileSuccess` indicates the Provider created and is monitoring the
managed resource.

```yaml {copy-lines="none"}
Conditions:
Type: Synced
Status: True
Reason: ReconcileSuccess
```
<!-- vale off -->
### Ready Condition
<!-- vale on -->
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
#### Available
`Reason: Available` indicates the Provider created the managed resource and it's
ready for use.

Expand All @@ -784,7 +838,7 @@ Conditions:
Status: True
Reason: Available
```
### Creating
#### Creating

`Reason: Creating` indicates the Provider is attempting to create the managed
resource.
Expand All @@ -796,7 +850,7 @@ Conditions:
Reason: Creating
```

### Deleting
#### Deleting
`Reason: Deleting` indicates the Provider is attempting to delete the managed
resource.

Expand All @@ -807,58 +861,99 @@ 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
```
<!-- vale off -->
### ReconcilePaused
### UpToDate Condition
<!-- vale on -->
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.

<!-- vale off -->
#### ReconcilePaused
<!-- vale on -->
`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
```

<!-- vale off -->
### ReconcileError
#### UpdateRequested
<!-- vale on -->
`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
```

<!-- vale off -->
### ReconcileSuccess
#### UpdateRestricted
<!-- vale on -->
`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.
<!-- vale off -->
#### UpdateFailed
<!-- vale on -->
`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
<!-- vale off -->
#### ObserveMatched
<!-- vale on -->
`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
```

<!-- vale off -->
### Unknown Condition
<!-- vale on -->
`Reason: Unknown` indicates the Provider has an unexpected error with the
managed resource. The `conditions.message` provides more information on what
went wrong.
Expand Down
1 change: 1 addition & 0 deletions utils/vale/styles/Crossplane/crossplane-words.txt
Original file line number Diff line number Diff line change
Expand Up @@ -101,6 +101,7 @@ TrimSuffix
TTR
UnhealthyPackageRevision
UnknownPackageRevisionHealth
UpToDate
ValidPipeline
WatchOperation
WatchOperations
Expand Down
Loading