nd_interface_*: default config_actions.deploy to false - #520
Merged
Conversation
allenrobel
requested review from
akinross,
anvitha-jain and
gmicol
as code owners
August 24, 2026 18:00
allenrobel
requested review from
lhercot,
mikewiebe,
mtarking and
samiib
as code owners
August 24, 2026 18:00
allenrobel
force-pushed
the
interface-deploy-default-false
branch
from
August 24, 2026 22:59
1420593 to
417bfe2
Compare
…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
force-pushed
the
interface-deploy-default-false
branch
from
August 25, 2026 03:12
417bfe2 to
7835422
Compare
akinross
approved these changes
Aug 25, 2026
This was referenced Aug 25, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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 innd_argument_specs.py) now defaultsdeploytoFalse. 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.deploydefaults toFalse(mirrors what Default policy and policy group deployment to false #504 did forPolicyGroupOrchestrator). Modules always set it explicitly fromconfig_actions.deploy, so this is a safety default only.nd_interface_*modules that still declareconfig_actionsinline defaultdeploytoFalsein 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=trueexplicitly to push changes to switches."config_actions.deploy: trueexplicitly.tests/unit/modules/test_nd_interface_deploy_default.pyasserts DOCUMENTATION andargument_specagree on theFalsedefault for all eight modules.deploy_pendingnow opt in explicitly.nd_interface_loopbackandnd_interface_ethernet_accessare intentionally not touched here: they move to the shared fragment (and pick up theFalsedefault) in #366 and #367. Merge order between this PR and those two does not matter.Test Notes
nd-dev:4020 passedansible-test sanity --test validate-modulespasses on all eight modules (cross-checks DOCUMENTATION defaults againstargument_spec)ansible-lint,black,isort,pylintclean on changed files;mypyunchanged from develop baselinend_interface_*targets assert on deploy-by-default (they only exercise the explicitdeploy: falsepath), so behavior under test is unchanged. Adding an explicitconfig_actions.deploy: truedeploy-path task per target is a reasonable lab-verified follow-up.Cisco Nexus Dashboard Version
4.2.1
Related ND API Resource Category
Checklist
🤖 Generated with Claude Code
https://claude.ai/code/session_01F7fNh2q6RyHbb37T67hkN6