Releases: SUNET/cnaas-nms
Releases · SUNET/cnaas-nms
v1.8.0
New features:
- Groups YAML syntax redesign, still backwards compatible (#407)
- Handle changing of device hostnames, check that new hostname will have same settings (#420)
- Set default ZTP firmware via API (#422)
- Allow different firmware checksum types (#422)
- Settings from different priority levels can be merged instead of overwritten (#428)
- Replace access switch with new hardware (#431)
- Special API endpoint for export of access interface configuration (#434)
- Automatically decide what order to upgrade access switches under one dist pair (#441)
- Functions to raise errors and log from inside jinja2 template files (#450)
- Experimental support for generating access lists via Aerleon syntax in settings repo (#452)
- New render_as_jinja template filter makes it possible to write jinja in cli_append_str for example (#458)
Bug fixes:
- Handle LLDP neighbors with abbreviated interface names (#402)
Full Changelog: v1.7.0...v1.8.0
v1.7.0
New features:
- Primary groups can be set to use different branches of the templates repository (#365)
- Get configuration section from running config of device instead of replacing to handle cases
where some part of the configuration should not be managed by NMS (#369) - Support more interface types on junos (#372)
- Allow specifying a range of VLANs in tagged_vlan_list in settings (#373)
- New ifclass on DIST devices called "mirror" which will mirror configuration from mgmtdomain peer
device to use same list of VLANs etc on both devices while only having to specify them once (#379) - New settings for:
- external_routing_policies: Specify names of routing policies not defined in settings, this allows
checking that all referenced routing policies are defined - interface_tag_options: Specify available options for interface tags to display in WebUI
- port_template_options: Specify available port_templates to display in WebUI
- vxlan_vni_range: Specify allow range of VNIs and error if VNI is outside of range
- remove_private_as: On BGP peering specify that private AS numbers should be removed from path
- external_routing_policies: Specify names of routing policies not defined in settings, this allows
- Add API to get LLDP neighbor information from devices (#387)
- Detect if Arista should download 32 or 64 bit images depending on model (#388)
- Add new device type FIREWALL (#393)
Bug fixes:
- Copy files (certs for ZTP) to arista devices with EOS 4.32+ requires netmiko 4.5.0 or later
- Commit confirm mode 1 and 2 on Arista EOS 4.32+ devices (temp fix, needs newer napalm version later #395)
New Contributors:
Full Changelog: v1.6.0...v1.7.0
v1.6.0
New features:
- Single-sign on (SSO) via OIDC, enabled via config options in auth_config.yml
- Role-based access control (RBAC) for API endpoints configured via permissions.yml
- Logging for refresh settings action includes jobid so it can be filtered for displaying in webUI etc
- Allow setting aggregate_id, metric, enabled, tags etc on fabric interfaces
Bug fixes:
- Update device syncstatus if primary group settings file changed (#325)
- ZTP of dualstack switches (#341)
- Fix job status change events for refresh jobs (#352)
- Fix initcheck fabric device proposed linknet IPs (#355)
- Clean up device init failed job results and make more consistent (#358)
- Fix for FQDN checks in settings (#343)
Changes:
- Python upgraded to version 3.11
- NAPALM upgraded to 5.0, support for Arista EOS 4.22 and earlier has been dropped
- Initial tables will be created when api container starts, no need for seed sql file for postgres container
- uwsgi has four processes for http and one process for websocket, api should be more responsive for concurrent http connections
New Contributors:
- @Josephine-Rutten made their first contribution in #316
- @benedictmulongo made their first contribution in #348
Full Changelog: v1.5.0...v1.6.0
Version 1.5.0
Version 1.5.0
New features:
- Add commit confirm modes: mode 0 - no commit confirm (previous behavior), mode 1 - confirm each device individually
after it has commited, mode 2 - confirm devices only when all devices in the job has comitted successfully - Add API to query configured API settings
- New settings for:
- users: username, ssh_key, password_hash etc to handle device user accounts
- dot1x_multi_host, poe_reboot_maintain
- prefix_sets and routing_policies to describe policies for router peerings etc
- Sync history events, save what event caused devices to become unsynchronized
- API to query running config
Bug fixes:
- Don't return duplicates of neighbor entries
- Fix error "Error in repository: HEAD is a detached" when refreshing settings repo
- Mark init neighbors as unsync if they have local changes
- Log events was not always sent from redis to websocket
Version 1.4.2
Version 1.4.2
Bug fixes:
- Fix ZTP of access switch connected to another access switch with type downlink but empty data
Version 1.4.1
Version 1.4.0
Version 1.4.0
New features:
- Allow ZTP init of access switches with non-redundant uplinks to other access switch via non_redundant option
- Each device can belong to a primary group, and settings can be defined (overridden) per primary group.
Inheritence levels are now Global -> Fabric -> Core/Dist/Access -> Group -> Device specific - Support interface range expressions like Ethernet[10-11] in settings device interface config
- Save last know working settings commit, so we can revert if last commit contains errors
(only saved in memory, not persistent across reboots) - Allow sync of devices with multiple links between same peers.
- Allow updating of neighbor_id on interface (useful if manually changing uplink connections)
- device_id variable is accessible at template rendering, host and hostname variables documented
- New settings: organization_name, domain_name, underlay->bgp_asn
- New jinja filters: different base-encodings, hashes, netutils for IP, MAC, ASNs etc
- New global config settings:
- global_unique_vlans: If True VLAN IDs has to be globally unique, if False
different DIST switches can reuse same VLAN IDs for different L2 domains.
Defaults to True. - init_mgmt_timeout: Timeout to wait for device to apply changed management IP.
Defaults to 30, specified in seconds (integer).
- Initial work on API to set/update and get stack members. Not working for ZTP init yet.
- Linknet API updated to allow PUT/update, allow GET of single linknet, DELETE syntax harmonized with rest of API
Bug fixes:
- Recalculate group memberships after ZTP init.
- Mark neighbors as unsynchronized after deleting a device.
- If device is not reachable on new IP after ZTP init, then change back to use old IP so we can
attempt new ZTP init later. - Restore previous config version apply bug fixed.
- Allow resetting entire interfaca data to null, instead of having to specify each value as null.
- During ZTP init, don't update and save linknets unless device can actually proceed with ZTP.
v1.3.2
Version 1.3.1
Version 1.3.1
New features:
- New settings for vxlans: acl_ipv4_in, acl_ipv4_out, acl_ipv6_in, acl_ipv6_out, cli_append_str
- New data options in interfaces API: bpdu_filter, tags, cli_append_str
Version 1.3.0
New features:
- CNaaS specific Jinja2 filters: increment_ip, ipv4_to_ipv6, isofy_ipv4 (#167)
- "aggregate_id" option for access ports to build link aggregates from access switches (#171)
- New settings for: flow_collectors, route leaking, port_template, dot1x_fail_vlan, vxlan tags, ipv4_secondaries (#178,#192,#193,#194,#195,#196,#203)
- Automatic descriptions for ACCESS_DOWNLINK type ports (#189)
- Option to filter job result output fields in API response (#197)
Bug fixes:
- Fix race condition issue where different threads could sometimes cause issues with
wrong template being used when syncing multiple different operating systems in same job (#168,#176) - Fix validation and return output for mgmtdomains API (#177)
- Cleanup of docker images (#184,#185,#186,#191)
- Update device last_seen on syncto, update facts, firmware post flight, device discovered, init step2 (#198)
- Fix factory_default: false (#200)
- Fix assigning of vxlans etc to both groups and devices at same time (#201)
- Possible fix for "weak object has gone away" (#205)
- Fixes for device synchranization status updating (#208,#209)