On this page
- Context and Problem Statement
- Decision Drivers
- Considered Options
- Decision Outcome
- Operational Baseline Contract (Normative)
- Positive Consequences
- Negative Consequences
- Pros and Cons of the Options
- Option 1 – Batfish + Nornir + NAPALM + Suzieq
- Option 2 – PyATS/Genie
- Option 3 – Ansible + vendor CLIs (chosen)
- Option 4 – Streaming telemetry + vendor NMS
Context and Problem Statement
The network operating model needs a single baseline that is simple to execute in production AAP workflows, while still producing auditable evidence and repeatable drift checks. The previous multi-tool validation baseline is effective but operationally heavy to maintain across environments.
Decision Drivers
- Keep precheck, deploy, postcheck, and evidence capture in one orchestration lane.
- Prefer direct vendor command coverage for operational checks.
- Reduce cross-tool dependency overhead while preserving Git-centered traceability.
- Make parser quality and command coverage explicit parts of the control framework.
- Preserve optional use of advanced analysis tools without making them mandatory for every change.
Considered Options
- Batfish + Nornir + NAPALM + Suzieq
- PyATS/Genie for pre/post checks and diffing
- Ansible + vendor CLIs
- Streaming telemetry + vendor NMS for operational truth
Decision Outcome
Chosen option: Option 3 – Ansible + vendor CLIs.
Ansible + vendor CLI evidence collection is now the baseline for network validation and drift workflows in DC 3.0. Existing tools from ADR-003 (Batfish, Nornir, NAPALM, Suzieq) remain legacy optional augmentations where teams need deeper analysis, but they are not required for baseline change gates.
Operational Baseline Contract (Normative)
- Every production workflow must execute
precheck,approval,deploy, andpostcheckas distinct gates. deploymust use approved generated artifacts and is not allowed to bypass precheck evidence.- Change closure requires a complete evidence bundle: raw command output, parsed output, parser version, workflow/job metadata, actor identity, and change reference.
- Parser failures, missing artifacts, or missing change metadata are hard failures; the change cannot be marked successful.
- Static host inventories are out of baseline scope for in-fabric devices; inventory and intent inputs are derived from approved NetBox-backed data.
| Gate | Required checks | Mandatory failure behavior |
|---|---|---|
precheck | health baseline, route-policy baseline, parser assertions | stop workflow before deployment |
approval | human review of generated diff and rollback plan | block deploy when approval is absent |
deploy | stage and apply replace artifact to intended device set | abort on any device-level apply failure |
postcheck | convergence checks, route-leak negative tests, drift comparison | mark change failed and trigger rollback workflow |
evidence | artifact upload and metadata validation | block closure when artifacts are incomplete |
Positive Consequences
- AAP workflows execute checks and deployment in one consistent lane.
- Vendor-native commands expose platform-specific control-plane and forwarding state directly.
- Evidence artifacts are generated from the same orchestrator and job context as deployment.
- Gate-level fail-closed behavior makes validation outcomes auditable and enforceable.
- The baseline is easier for operations teams to adopt and scale.
Negative Consequences
- Output normalization and comparison are inconsistent across platforms.
- Drift detection depends on custom parsing for every device type and software train.
- Parser and command-profile lifecycle management becomes a first-class operational responsibility.
Pros and Cons of the Options
Option 1 – Batfish + Nornir + NAPALM + Suzieq
- Good: Strong separation of intent analysis, runtime normalization, and operational observation.
- Good: High-quality normalized outputs for long-horizon comparisons.
- Bad: Higher integration and maintenance overhead across multiple tools.
Option 2 – PyATS/Genie
- Good: Powerful parsing and diffing for supported platforms.
- Bad: Less aligned with a unified Ansible-centered execution baseline.
- Bad: Does not inherently cover full intent-proof workflows in generated configuration artifacts.
Option 3 – Ansible + vendor CLIs (chosen)
- Good: Simple to execute commands at scale.
- Good: Fits AAP gate execution and evidence retention with low operational friction.
- Bad: Output normalization and comparison are inconsistent across platforms.
- Bad: Drift detection depends on custom parsing for every device type.
Option 4 – Streaming telemetry + vendor NMS
- Good: Broad operational visibility over time.
- Bad: Does not, by itself, provide pre-change evidence gates for config deployment workflows.
- Bad: Strong vendor coupling and inconsistent data models across platforms.
Links and References
- Related Topics: topic-datacenter-3-0, topic-network-nxos-evpn-implementation
- Superseded ADR: adr-003-network-validation-tooling
- Source summary: source-cisco-nxos-ansible-best-practices