24 lines
1.2 KiB
YAML
24 lines
1.2 KiB
YAML
# 可复用:断言 Endpoints 存在至少一个 address(与 nodejs-demo 等用例一致)。
|
||
# 必填:verify_endpoints_service
|
||
# 可选:verify_endpoints_namespace(默认 default)、verify_endpoints_assertion_label(日志)、k3s_kubeconfig
|
||
- name: Assert verify_endpoints_service for kubectl-endpoints-ready
|
||
ansible.builtin.assert:
|
||
that:
|
||
- verify_endpoints_service is defined
|
||
- (verify_endpoints_service | trim | length) > 0
|
||
fail_msg: "verify_common kubectl-endpoints-ready:verify_endpoints_service 为空"
|
||
|
||
- name: Endpoints have addresses (verify_common)
|
||
ansible.builtin.shell: |
|
||
set -euo pipefail
|
||
KUBECONFIG="{{ k3s_kubeconfig | default('/etc/rancher/k3s/k3s.yaml') }}"
|
||
svc="{{ verify_endpoints_service | trim }}"
|
||
ns="{{ verify_endpoints_namespace | default('default') }}"
|
||
label="{{ verify_endpoints_assertion_label | default('endpoints_ready') }}"
|
||
eps=$(kubectl get endpoints "$svc" -n "$ns" -o jsonpath='{.subsets[0].addresses[0].ip}' 2>/dev/null || true)
|
||
echo "[OC-ASSERT] assertion=${label} svc=${svc} namespace=${ns} endpoints.ip=${eps:-}"
|
||
test -n "$eps"
|
||
args:
|
||
executable: /bin/bash
|
||
changed_when: false
|