Skip to content

nd_interface_*: default config_actions.deploy to false - #520

Merged
mikewiebe merged 1 commit into
developfrom
interface-deploy-default-false
Aug 25, 2026
Merged

nd_interface_*: default config_actions.deploy to false#520
mikewiebe merged 1 commit into
developfrom
interface-deploy-default-false

Conversation

@allenrobel

@allenrobel allenrobel commented Aug 24, 2026

Copy link
Copy Markdown
Collaborator

Related Issue(s)

Closes #521

Follow-up to the review feedback on #366 and #367 ("We need to default this to false. We need this for NaC and it aligns better with controller behavior."). Applies the same default across the rest of the interface module family so the family stays consistent. Same pattern as #504 for the policy modules.

Proposed Changes

  • config_actions_spec() (shared fragment in nd_argument_specs.py) now defaults deploy to False. This is the same standalone commit carried by nd_interface_loopback: align deploy control to config_actions.deploy #366 and nd_interface_ethernet_access: align deploy control to config_actions.deploy #367, so whichever merges last rebases cleanly.
  • NDBaseInterfaceOrchestrator.deploy defaults to False (mirrors what Default policy and policy group deployment to false #504 did for PolicyGroupOrchestrator). Modules always set it explicitly from config_actions.deploy, so this is a safety default only.
  • The eight nd_interface_* modules that still declare config_actions inline default deploy to False in DOCUMENTATION, argument_spec, and the runtime fallback:
    ethernet_trunk_host, port_channel_access, port_channel_trunk_host, subinterface_managed, subinterface_unmanaged, svi, vpc_access, vpc_trunk_host.
    Each gains the doc line "Deployment is opt-in. Set config_actions.deploy=true explicitly to push changes to switches."
  • EXAMPLES that push config now set config_actions.deploy: true explicitly.
  • New parametrized unit test tests/unit/modules/test_nd_interface_deploy_default.py asserts DOCUMENTATION and argument_spec agree on the False default for all eight modules.
  • Orchestrator unit tests that exercise deploy_pending now opt in explicitly.

nd_interface_loopback and nd_interface_ethernet_access are intentionally not touched here: they move to the shared fragment (and pick up the False default) in #366 and #367. Merge order between this PR and those two does not matter.

Test Notes

  • Full unit suite passes in nd-dev: 4020 passed
  • ansible-test sanity --test validate-modules passes on all eight modules (cross-checks DOCUMENTATION defaults against argument_spec)
  • ansible-lint, black, isort, pylint clean on changed files; mypy unchanged from develop baseline
  • Integration targets not re-run: none of the nd_interface_* targets assert on deploy-by-default (they only exercise the explicit deploy: false path), so behavior under test is unchanged. Adding an explicit config_actions.deploy: true deploy-path task per target is a reasonable lab-verified follow-up.

Cisco Nexus Dashboard Version

4.2.1

Related ND API Resource Category

  • analyze
  • infra
  • manage
  • onemanage
  • other

Checklist

  • Latest commit is rebased from develop with merge conflicts resolved
  • New or updates to documentation has been made accordingly
  • Assigned the proper reviewers

🤖 Generated with Claude Code

https://claude.ai/code/session_01F7fNh2q6RyHbb37T67hkN6

@allenrobel allenrobel added 2.0.0 Release 2.0.0 ready for review Submitter is requesting a PR review nac-0.0.1 NaC ND release 0.0.1 labels Aug 24, 2026
@allenrobel allenrobel added the 2.0.0 Release 2.0.0 label Aug 24, 2026
@allenrobel allenrobel added the ready for review Submitter is requesting a PR review label Aug 24, 2026
@allenrobel
allenrobel requested a review from shrsr as a code owner August 24, 2026 18:00
@allenrobel allenrobel added the nac-0.0.1 NaC ND release 0.0.1 label Aug 24, 2026
@allenrobel allenrobel self-assigned this Aug 24, 2026

@mikewiebe mikewiebe left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@allenrobel
allenrobel force-pushed the interface-deploy-default-false branch from 1420593 to 417bfe2 Compare August 24, 2026 22:59
…to false

Deployment is now opt-in across the interface module family: `NDBaseInterfaceOrchestrator.deploy` defaults to
`False`, and the eight `nd_interface_*` modules that still declare `config_actions` inline (ethernet_trunk_host,
port_channel_access, port_channel_trunk_host, subinterface_managed, subinterface_unmanaged, svi, vpc_access,
vpc_trunk_host) default `config_actions.deploy` to `False` in both DOCUMENTATION and `argument_spec`. Changes are
staged on the controller and only pushed to switches when the task sets `config_actions.deploy: true`.

This aligns with controller behavior and the NaC requirement raised on PRs #366/#367, and follows the pattern
PR #504 established for the policy modules. `nd_interface_loopback` and `nd_interface_ethernet_access` pick up
the same default via the shared fragment in PRs #366 and #367.

- EXAMPLES that push config now set `config_actions.deploy: true` explicitly
- New parametrized unit test asserts DOCUMENTATION and `argument_spec` agree on the `False` default
- Orchestrator tests that exercise `deploy_pending` now opt in explicitly

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01F7fNh2q6RyHbb37T67hkN6
@allenrobel
allenrobel force-pushed the interface-deploy-default-false branch from 417bfe2 to 7835422 Compare August 25, 2026 03:12
@allenrobel
allenrobel requested a review from sajagana as a code owner August 25, 2026 03:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

2.0.0 Release 2.0.0 nac-0.0.1 NaC ND release 0.0.1 ready for review Submitter is requesting a PR review

Projects

None yet

Development

Successfully merging this pull request may close these issues.

nd_interface_*: config_actions.deploy should default to false (deployment opt-in)

3 participants