日常更新

This commit is contained in:
2026-03-29 09:08:01 +08:00
parent 31709425e2
commit befdefd222
224 changed files with 7240 additions and 3297 deletions

View File

@@ -0,0 +1,41 @@
# 可复用:按顺序对多个 label selector 执行 kubectl wait pod --for=condition=ready。
# 必填verify_kubectl_wait_items列表元素含 selector、timeout_s
# 可选verify_kubectl_wait_namespace默认 default、k3s_kubeconfig
- name: Assert verify_kubectl_wait_items for kubectl-wait-pods-ready
ansible.builtin.assert:
that:
- verify_kubectl_wait_items is defined
- verify_kubectl_wait_items | length > 0
fail_msg: "verify_common kubectl-wait-pods-ready需设置非空 verify_kubectl_wait_items"
- name: kubectl wait pods ready (verify_common)
ansible.builtin.shell: |
set -euo pipefail
KCFG="{{ k3s_kubeconfig | default('/etc/rancher/k3s/k3s.yaml') }}"
ns="{{ verify_kubectl_wait_namespace | default('default') }}"
{% for item in verify_kubectl_wait_items %}
echo "[OC-ASSERT] assertion=kubectl_wait_pod_ready selector={{ item.selector | quote }} namespace=${ns} timeout={{ item.timeout_s | int }}s"
ok=0
for attempt in 1 2 3 4 5 6 7 8; do
set +e
out=$(KUBECONFIG="$KCFG" kubectl wait --for=condition=ready pod \
-l "{{ item.selector }}" -n "$ns" --timeout={{ item.timeout_s | int }}s 2>&1)
rc=$?
set -e
if [ "$rc" -eq 0 ]; then ok=1; break; fi
if echo "$out" | grep -qE 'NotFound|not found'; then
echo "[OC-ASSERT] assertion=kubectl_wait_pod_ready selector={{ item.selector | quote }} retry=${attempt} reason=pod_churn_notfound"
sleep 3
continue
fi
echo "$out" >&2
exit "$rc"
done
if [ "$ok" != "1" ]; then
echo "[OC-ASSERT] assertion=kubectl_wait_pod_ready selector={{ item.selector | quote }} result=fail reason=exhausted_retries"
exit 1
fi
{% endfor %}
args:
executable: /bin/bash
changed_when: false