Description
Enhance the existing k8s.wait operation to support additional wait conditions beyond the current condition: Ready support. Tasks like resize-pvc and statefulset-lifecycle require waiting for jsonpath-based conditions or waiting for resource deletion.
Current bash tasks use patterns like:
kubectl wait --for=jsonpath='{.spec.capacity.storage}'='15Gi' pv/$PV_NAME
kubectl wait pod/db-1 pod/db-2 -n namespace --for=delete
Requirements
- Support jsonpath-based conditions (wait until a field equals a specific value)
- Support waiting for resource deletion
- Maintain backward compatibility with existing
condition parameter
- Support waiting on multiple resources simultaneously
Example Usage
Wait for jsonpath value:
- k8s.wait:
apiVersion: v1
kind: PersistentVolume
metadata:
name: pv-001
for:
jsonpath: spec.capacity.storage
equals: "15Gi"
timeout: 120s
Wait for deletion:
- k8s.wait:
apiVersion: v1
kind: Pod
metadata:
name: db-1
namespace: statefulset-test
for: delete
timeout: 120s
Acceptance Criteria
Description
Enhance the existing
k8s.waitoperation to support additional wait conditions beyond the currentcondition: Readysupport. Tasks like resize-pvc and statefulset-lifecycle require waiting for jsonpath-based conditions or waiting for resource deletion.Current bash tasks use patterns like:
kubectl wait --for=jsonpath='{.spec.capacity.storage}'='15Gi' pv/$PV_NAMEkubectl wait pod/db-1 pod/db-2 -n namespace --for=deleteRequirements
conditionparameterExample Usage
Wait for jsonpath value:
Wait for deletion:
Acceptance Criteria
condition: Readyand similar conditions continue to work