Skip to content

Split configuration normalization from initial config deployment#3332

Merged
ipspace merged 2 commits intodevfrom
normalize
Apr 16, 2026
Merged

Split configuration normalization from initial config deployment#3332
ipspace merged 2 commits intodevfrom
normalize

Conversation

@ipspace
Copy link
Copy Markdown
Owner

@ipspace ipspace commented Apr 16, 2026

The 'normalize' configuration is deployed as a separate step before the initial device configuration to ensure that the Ansible-controlled devices get normalized configuration before the initial configuration is deployed with configuration scripts.

Closes #3319

The 'normalize' configuration is deployed as a separate step before
the initial device configuration to ensure that the Ansible-controlled
devices get normalized configuration before the initial configuration
is deployed with configuration scripts.

Closes #3319
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR changes the netlab initial workflow so device “normalize” configuration is deployed as a distinct step before initial/module/custom deployment, ensuring Ansible-managed devices get normalized before any provider-specific configuration scripts run (fixing #3319).

Changes:

  • Adds an explicit “normalize” deployment phase (and an Ansible netlab_normalize inventory group + normalize-config.ansible playbook).
  • Extends netlab initial CLI with --normalize and --dry-run, and wires dry-run logging into parts of the initial flow.
  • Updates documentation to reflect the new normalization step and new CLI flags.

Reviewed changes

Copilot reviewed 10 out of 10 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
netsim/outputs/ansible.py Adds netlab_normalize inventory group membership based on features.initial.normalize.
netsim/devices/iosvl2.yml Marks IOSvL2 as requiring initial.normalize.
netsim/cli/initial/utils.py Adds --normalize / --dry-run CLI flags and changes deployment list logic for normalize-only runs.
netsim/cli/initial/ready.py Adds partial dry-run handling for internal readiness checks.
netsim/cli/initial/deploy.py Splits normalize deployment from the rest; adds dry-run logging; introduces normalize-config.ansible execution path.
netsim/cli/initial/__init__.py Enables global dry-run flag via set_dry_run(args).
netsim/ansible/tasks/initial-config.yml Removes legacy task file that previously ran normalize+initial.
netsim/ansible/normalize-config.ansible New playbook for normalization step (hosts netlab_normalize).
netsim/ansible/initial-config.ansible Inlines initial deployment tasks (no longer imports the removed task file).
docs/netlab/initial.md Updates docs for the new normalize step and adds --normalize / --dry-run.

Comment thread netsim/cli/initial/deploy.py
Comment thread netsim/ansible/initial-config.ansible
Comment thread docs/netlab/initial.md Outdated
Comment thread netsim/cli/initial/ready.py
@ipspace ipspace merged commit a27641e into dev Apr 16, 2026
13 checks passed
@ipspace ipspace deleted the normalize branch April 16, 2026 10:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[BUG] Normalize step has to be execute before provider-specific device configs

2 participants