Promise Status and Events
Kratix follows the Kubernetes convention of using status and events to convey important information about a Promise. Promise Status describes what general condition the Promise is in and surfaces any error that has occurred.
Conditions
A Promise exposes the following list of conditions:
RequirementsFulfilled
– Kratix has installed any required Promises declared by the Promise.ConfigureWorkflowCompleted
– all configure workflow pipelines executed successfully.WorksSucceeded
– all Works created for the Promise has completed.Available
– Promise is ready to accept Resource requests.Reconciled
– Promise has been successfully reconciled; set to true when all the above conditions are all true.
Example Promise conditions from kubectl get promise <name> -o yaml
:
status:
conditions:
- lastTransitionTime: "2025-06-23T14:02:27Z"
message: Requirements fulfilled
reason: RequirementsInstalled
status: "True"
type: RequirementsFulfilled
- lastTransitionTime: "2025-06-23T14:07:23Z"
message: Pipelines completed
reason: PipelinesExecutedSuccessfully
status: "True"
type: ConfigureWorkflowCompleted
- lastTransitionTime: "2025-06-23T14:02:40Z"
message: All works associated with this promise are ready
reason: WorksSucceeded
status: "True"
type: WorksSucceeded
- lastTransitionTime: "2025-06-23T14:07:26Z"
message: Ready to fulfil resource requests
reason: PromiseAvailable
status: "True"
type: Available
- lastTransitionTime: "2025-06-23T14:07:26Z"
message: Reconciled
reason: Reconciled
status: "True"
type: Reconciled
Inspect the current Promise status at any time with:
kubectl describe promise <name>
Common Promise Status Fields
apiVersion
– Shows the API version that this Promise is serving requests at.kind
– Shows the Kind that this Promise is serving.lastAvailableTime
– When this Promise becomes available.status
– Whether the Promise is ready to accept Resource requests; can be set to 'Available' or 'Unavailable'.
status:
apiVersion: test.kratix.io/v1alpha1
kind: Redis
lastAvailableTime: "2025-06-23T15:34:32Z"
status: Available
conditions:
...
Events
Events record important moments in the Promise lifecycle such as when requirements are installed, if the configure pipeline is running and when the Promise becomes available.
They can be viewed by running:
kubectl describe promise <name>
Example Promise events:
kubectl describe promise <name>
...
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal PipelineStarted 7m53s PromiseController Configure Pipeline started: promise-configure
Normal Available 7m43s (x2 over 7m43s) PromiseController Promise is available
Normal WorksSucceeded 7m43s PromiseController All works associated with this promise are ready
Normal ReconcileSucceeded 7m43s PromiseController Successfully reconciled
Normal ConfigureWorkflowCompleted 7m38s (x2 over 7m43s) PromiseController All workflows completed
Successful events will be of type Normal
whereas errors will be published as Warning
events.
These events are useful for understanding the progression of the Promise and troubleshooting failures.