Carvel Logo

Apply Waiting

Overview

kapp includes builtin rules on how to wait for the following resource types:

If resource is not affected by the above rules, its waiting behaviour depends on aggregate of waiting states of its associated resources (associated resources are resources that share same kapp.k14s.io/association label value).

Controlling waiting via resource annotations

  • kapp.k14s.io/disable-wait annotation controls whether waiting will happen at all. Possible values: “”.
  • kapp.k14s.io/disable-associated-resources-wait annotation controls whether associated resources impact resource’s waiting state. Possible values: “”.

apps/v1/Deployment resource

kapp by default waits for apps/v1/Deployment resource to have status.unavailableReplicas equal to zero. Additionally waiting behaviour can be controlled via following annotations:

  • kapp.k14s.io/apps-v1-deployment-wait-minimum-replicas-available annotation controls how many new available replicas are enough to consider waiting successful. Example values: "10", "5%".

apps/v1/StatefulSet resource

Available in v0.32.0+.

kapp will wait for any pods created from the updated template to be ready based on StatefulSet’s status. This behaviour depends on the update strategy used.

Note: kapp does not do anything special when OnDelete strategy is used. It will wait for StatefulSet to report it’s reconciled (expecting some actor in the system to delete Pods per OnDelete requirements).

Custom waiting behaviour

Available in v0.29.0+.

kapp can be extended with custom waiting behaviour by specifying wait rules as additional config. (If this functionality is not enough to wait for resources in your use case, please reach out on Slack to discuss further.)