KRA-aware vault health
IdM LDAP host and policy data can be reachable while vault operations are not. Vault payloads depend on the KRA-backed vault plane, so preflight checks should target the server that the workflow will use.
- name: Check vault health on an explicit server
eigenstate.ipa.vault_health:
server: idm-01.example.com
kerberos_keytab: /runner/env/ipa/automation.keytab
ipaadmin_principal: automation@EXAMPLE.COM
verify: /etc/ipa/ca.crt
shared: true
canary_vault: automation-health-canary
canary_max_age_seconds: 3600
require_direct_kra: true
register: vault_health
The result separates planes:
changed: false
idm_reachable: true
vault_reachable: true
kra_available: true
canary_present: true
canary_age_seconds: 42
canary_stale: false
failure_class: none
Failure classes are intended for branching:
none
auth
ca
ldap
kra_unavailable
vault_not_found
timeout
scope_mismatch
unknown
vault_health does not validate vault replication consistency or payload
freshness beyond the canary fields it can observe. It shows that the selected
request path can authenticate, reach IdM, and run KRA-backed vault operations.
Release gate
Validate in the lab against a KRA-enabled server and, when available, a server that cannot complete vault operations directly:
ansible-playbook -i localhost, -c local - <<'EOF'
- hosts: localhost
gather_facts: false
vars:
server: idm-01.example.com
ipaadmin_principal: automation@EXAMPLE.COM
shared: true
canary_vault: automation-health-canary
canary_max_age_seconds: 3600
require_direct_kra: true
tasks:
- name: Check vault health on an explicit server
eigenstate.ipa.vault_health:
server: "{{ server }}"
kerberos_keytab: /runner/env/ipa/automation.keytab
ipaadmin_principal: "{{ ipaadmin_principal }}"
verify: /etc/ipa/ca.crt
shared: "{{ shared }}"
canary_vault: "{{ canary_vault }}"
canary_max_age_seconds: "{{ canary_max_age_seconds | int }}"
require_direct_kra: "{{ require_direct_kra }}"
register: vault_health
EOF
Capture the server, principal, CA path, KRA topology, canary result, and any negative-test failure class.
Live validation captured this evidence against a KRA-enabled IdM server. The server name is sanitized for publication:
{
"kra_topology": "KRA server role present on idm-01.example.com",
"server": "idm-01.example.com",
"vault_health": {
"canary_present": true,
"failure_class": "none",
"idm_reachable": true,
"kra_available": true,
"vault_reachable": true
}
}