helm-charts
helm-charts copied to clipboard
chore(deps): update ghcr.io/nautobot/nautobot docker tag to v2.3.0
This PR contains the following updates:
| Package | Update | Change |
|---|---|---|
| ghcr.io/nautobot/nautobot | minor | 2.2.7-py3.11 -> 2.3.0-py3.11 |
Release Notes
nautobot/nautobot (ghcr.io/nautobot/nautobot)
v2.3.0: - 2024-08-08
This document describes all new features and changes in Nautobot 2.3.
Upgrade Actions
Administrators
Administrators should plan to take these actions during or immediately after upgrade from a previous version. New installations should also take note of these actions where appropriate.
- Python 3.12 is now the default recommended version of Python.
!!! warning "Python 3.12" Because Nautobot prior to 2.3.0 did not declare support for Python 3.12, most Apps similarly needed to previously declare an upper bound of Python 3.11 for their own compatibility. Therefore, older versions of most Apps will not be installable under Python 3.12. Before migrating your Nautobot environment to Python 3.12, it is your responsibility to confirm that all relevant Apps in your environment are also compatible and installable. There is a minor "chicken-and-egg" problem here in that Apps generally cannot declare support for a new Python version before Nautobot itself publishes a release that does so; therefore, as of the 2.3.0 Nautobot release day, most Apps have not yet been updated to declare support for Python 3.12. We'll be working in the following days to promptly update our supported Apps as needed, so stay tuned.
!!! warning "Docker images"
As has been Nautobot's policy since version 1.6.1, our published Docker images that are not tagged with a specific Python version implicitly always include the latest supported version of Python. This means that as of the release of Nautobot 2.3.0, the tags latest, stable, 2.3, and 2.3.0 will all indicate Docker images that include Python 3.12, whereas previously these indicated Python 3.11 images. As noted above and below, updating to Python 3.12 may not be immediately desirable (or even possible, depending on the status of your Apps) as a "day one" action. If you need to stay with a given Python version for the time being, you must make sure that you're relying on an appropriately specific image tag, such as 2.3-py3.11, stable-py3.10, etc.
- As noted below, a new system job is provided for automated Dynamic Group cache updates. Administrators should schedule this system job to run on a recurring basis within the Jobs UI, after the upgrade, or on new install. Configuration referencing the
DYNAMIC_GROUPS_MEMBER_CACHE_TIMEOUTsetting can be safely removed, as it is no longer used. If this setting was being used previously, it is recommended to set the new scheduled job's interval to the same value. - As noted below, change logging retention cleanup is now handled via a system job. Administrators should schedule this job to run on a recurring basis to meet their needs. The
CHANGELOG_RETENTIONsetting is still used to define the retention period, but the scheduled system job will perform the actual cleanup, if any needed.
Job Authors & App Developers
Job Authors and App Developers should take these actions to ensure compatibility with their Jobs and Apps.
- Job Authors and App Developers should carefully consider the updates to the DynamicGroup API and decide if their use cases dictate changing their group membership access patterns to use
DynamicGroup.update_cached_members()to find the correct balance between Dynamic Group performance and membership updates. - Job Authors and App Developers should carefully consider the updates to the TreeManager default behavior and make necessary changes to their access of Tree based models.
- Django 4.2 is now required by Nautobot, replacing the previous Django 3.2 dependency. Job Authors and App Developers should carefully consider the updates and changes in the Django release-notes (4.0, 4.1, 4.2), especially the relevant "Backwards incompatible changes" sections, to proactively identify any impact to their Apps.
!!! warning "Django 4" Django 4 includes a small number of breaking changes compared to Django 3. In our experience, most Apps have required few (or zero) updates to be Django 4 compatible, but your mileage may vary.
- Python 3.12 is now supported by Nautobot and is now the default recommended version of Python. Apps will likely need to update their packaging in order to explicitly declare support for Python 3.12.
Release Overview
Added
Cloud Models (#5716, #5719, #5721, #5872)
Added the new models CloudAccount, CloudResourceType, CloudNetwork, and CloudService to support recording of cloud provider accounts (AWS, Azure, GCP, DigitalOcean, etc.), cloud resource types (AWS EC2, Azure Virtual Machine Service, Google App Engine, etc.), cloud services (specific instances of services described by cloud resource types) and cloud network objects (such as VPCs) in Nautobot.
Device Modules (#2101)
Added new models for ModuleBay, Module, ModuleType, and ModuleBayTemplate to support modeling line cards and other modular components of a device. These models allow you to define a hierarchy of module bays and modules within a device, and to assign components (such as interfaces, power ports, etc.) to specific modules.
Dynamic Group Enhancements (#5472, #5786)
Dynamic Groups now have a group_type field, which specifies whether this group is defined by an object filter, defined by aggregating other groups via set operations, or defined via static assignment of objects as group members (this third type is new in Nautobot 2.3). Additionally, you can now assign a tenant and/or tags to each Dynamic Group, and many more models now can be included in Dynamic Groups.
A new model, StaticGroupAssociation, and associated REST API, have been added in support of the new "static" group type. See also "Dynamic Group Cache Changes" below.
For more details, refer to the Dynamic Group documentation.
Interface and VMInterface Roles (#4406)
Added an optional role field to Interface and VMInterface models to track common interface configurations. Now the users can create Role instances that can be assigned to interfaces and vminterfaces.
Object Metadata Models (#5663)
Added a set of functionality for defining and managing object metadata, that is to say, data about the network data managed in Nautobot, such as data provenance, data ownership, and data classification. For more details, refer to the linked documentation.
Python 3.12 Support (#5429)
Nautobot now supports Python 3.12, and Python 3.12 is now the default Python version included in the nautobot Docker images.
Saved Views (#1758)
Added the ability for users to save multiple configurations of list views (table columns, filtering, pagination and sorting) for ease of later use and reuse. Refer to the Saved View documentation for more details and on how to use saved views.
Worker Status Page (#5873)
User accounts with the is_staff flag set can access a new worker status page at /worker-status/ to view the status of the Celery worker(s) and the configured queues. The link to this page appears in the "User" dropdown at the bottom of the navigation menu, under the link to the "Profile" page. Use this page with caution as it runs a live query against the Celery worker(s) and may impact performance of your web service.
Changed
Changed TreeManager Default Behavior (#5786)
The TreeManager class (used for tree-models such as Location, RackGroup, and TenantGroup) default behavior has changed from with_tree_fields to without_tree_fields. This should improve performance in many cases but may impact Apps or Jobs that were relying on the old default; such code should be updated to explicitly call .with_tree_fields() where appropriate.
Dynamic Group Cache Changes (#5473)
To improve performance of the Dynamic Groups feature, a number of changes have been made:
- Dynamic Groups now always use
StaticGroupAssociationrecords as a database cache of their member objects, rather than optionally caching their members in Redis for a limited time period. For Dynamic Groups of types other than the new "static" group type, theseStaticGroupAssociationrecords are hidden by default from the UI and REST API. - The
DYNAMIC_GROUPS_MEMBER_CACHE_TIMEOUTsetting variable is deprecated, as it no longer influences Dynamic Group cache behavior. - The APIs
DynamicGroup.members,DynamicGroup.count,DynamicGroup.has_member(), andobject.dynamic_groupsnow always use the database cache rather than being recalculated on the fly. - The APIs
DynamicGroup.members_cached,DynamicGroup.members_cache_key,object.dynamic_groups_cached,object.dynamic_groups_list, andobject.dynamic_groups_list_cachedare now deprecated. - Editing a Dynamic Group definition refreshes its cached members and those of any "parent" groups that use it.
- Viewing a Dynamic Group detail view in the UI refreshes its cached members (only).
- A new System Job,
Refresh Dynamic Group Caches, can be run or scheduled as appropriate to refresh Dynamic Group member caches on demand. - The existing API
DynamicGroup.update_cached_members()can be called by Apps or Jobs needing to ensure that the cache is up-to-date for any given Dynamic Group.
Log Cleanup as System Job (#3749)
Cleanup of the change log (deletion of ObjectChange records older than a given cutoff) is now handled by the new LogsCleanup system Job, rather than occurring at random as a side effect of new change log records being created. Admins desiring automatic cleanup are encouraged to schedule this job to run at an appropriate interval suitable to your deployment's needs.
!!! info
Setting CHANGELOG_RETENTION in your Nautobot configuration by itself no longer directly results in periodic cleanup of ObjectChange records. You must run (or schedule to periodically run) the LogsCleanup Job for this to occur.
As an additional enhancement, the LogsCleanup Job can also be used to cleanup JobResult records if desired as well.
UI Button Consolidation (#5869, #5870, #5871)
Various button groups in the "object list" and "object detail" views have been consolidated following a common UI pattern of a single button for the most common action plus a popup menu for less common actions.
Dependencies
Updated to Django 4.2 (#3581)
As Django 3.2 has reached end-of-life, Nautobot 2.3 requires Django 4.2, the next long-term-support (LTS) version of Django. There are a number of changes in Django itself as a result of this upgrade; Nautobot App maintainers are urged to review the Django release-notes (4.0, 4.1, 4.2), especially the relevant "Backwards incompatible changes" sections, to proactively identify any impact to their Apps.
Contributors
- @glennmatthews
- @HanlinMiao
- @gertzakis
- @snaselj
- @timizuoebideri1
- @gsnider2195
- @smk4664
- @renovate
- @kvncampos
- @lampwins
- @jeffkala
- @dependabot
New Contributors
- @kvncampos made their first contribution in https://github.com/nautobot/nautobot/pull/5946
Full Changelog: https://github.com/nautobot/nautobot/compare/v2.2.9...v2.3.0
v2.2.9: - 2024-08-05
What's Changed
Added
- #5965 - Added missing controller references for DeviceRedundancyGroup in the UI.
- #5980 - Added caching to
FeatureQuery().get_choices()andFeatureQuery().list_subclasses(). - #6029 - Added environment variable support for setting
CELERY_WORKER_PREFETCH_MULTIPLIER. - #6030 - Added links from the Job list and detail views to quickly filter the list of Job Results to the corresponding Job.
Fixed
- #5775 - Reintroduced
Add IP Addressbutton to VirtualMachine Interface table. - #5785 - Fixed Scheduled Jobs not respecting Job Soft / Hard Time Limit.
- #5796 - Added missing validation to ensure that a DeviceBay can only contain Devices with a
subdevice_roleofchild. - #5811 - Fixed broken UI and added error message when submitting IPAddressAssignForm without selecting any IPAddress.
- #5812 - Fixed CSV file upload handling of "UTF-8 with BOM" encoding.
- #5904 - Fixed performance of JobResults UI when thousands of JobLogEntries are present.
- #5904 - Fixed performance when Bulk Importing large csv files.
- #5912 - Fixed incorrect
clean()behavior onIPAddressthat caused certain uniqueness violations to not be caught untilsave(). - #5948 - Fixed table overflow.
- #5980 - Improved performance of GraphQL queries by no longer unnecessarily creating
FilterSetinstances when no filter is present. - #5992 - Added signal to clear relevant content-type caches after running migrations.
- #6022 - Fixed incorrect labels for derived filters (
tenant__n,tenant__isw, etc.) when the base filter (tenant, etc.) has a custom label.
Dependencies
- #6010 - Pinned
django-storagestemporarily to 1.14.3 due to an incompatibility betweendjango-health-checkand version 1.14.4 ofdjango-storages.
Documentation
- #5949 - Fixed NewBranch job code in documentation.
- #5958 - Added an example job that uses a custom template to render the job form.
- #5959 - Fixed documentation structure and added documentation on contributing documentation updates.
- #5971 - Added documentation for registering jobs from Git Repositories.
- #6024 - Added documentation for the
nautobot-server validate_modelscommand.
Contributors
- @gsnider2195
- @timizuoebideri1
- @MCDELTAT
- @HanlinMiao
- @glennmatthews
- @itdependsnetworks
- @jnmms
- @jvanderaa
- @abates
- @tsm1th
- @joewesch
New Contributors
- @MCDELTAT made their first contribution in https://github.com/nautobot/nautobot/pull/5950
- @jnmms made their first contribution in https://github.com/nautobot/nautobot/pull/6022
Full Changelog: https://github.com/nautobot/nautobot/compare/v2.2.8...v2.2.9
v2.2.8: - 2024-07-22
What's Changed
Security
- #5911 - Updated
zippto3.19.1to addressCVE-2024-5569. This is not a direct dependency so it will not auto-update when upgrading. Please be sure to upgrade your local environment.
Fixed
- #5569 - Fixed relationship required to ignore objects that do not match the related filter.
- #5613 - Fixed intermittent failure in integration test for dynamic groups.
- #5906 - Added support for filtering in GraphQL of objects identified by a many-to-many relation (
Location.prefixes,Prefix.locations, etc.) - #5935 - Fixed issue in which a save() could be called unnecessarily on child devices.
Dependencies
- #5833 - Updated dependency
social-auth-app-djangoto~5.4.2. - #5833 - Updated optional dependency
django-storagesto~1.14.4.
Documentation
- #5833 - Updated documentation dependency
mkdocs-materialto~9.5.29. - #5874 - Updated documentation regarding Nautobot on Ubuntu 24.04.
Housekeeping
- #5610 - Added integration test to do basic checking for static media failures caused by typos in template files.
Contributors
New Contributors
- @sdoiron0330 made their first contribution in https://github.com/nautobot/nautobot/pull/5570
Full Changelog: https://github.com/nautobot/nautobot/compare/v2.2.7...v2.2.8
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
- [ ] If you want to rebase/retry this PR, check this box
This PR was generated by Mend Renovate. View the repository job log.
⚠️ Artifact update problem
Renovate failed to update an artifact related to this branch. You probably do not want to merge this PR as-is.
♻ Renovate will retry this branch, including artifacts, only when one of the following happens:
- any of the package files in this branch needs updating, or
- the branch becomes conflicted, or
- you click the rebase/retry checkbox if found above, or
- you rename this PR's title to start with "rebase!" to trigger it manually
The artifact failure details are included below:
File name: charts/nautobot/values.yaml
Post-upgrade command 'scripts/update_version.sh "{{{prTitle}}}"' has not been added to the allowed list in allowedPostUpgradeCommands
Edited/Blocked Notification
Renovate will not automatically rebase this PR, because it does not recognize the last commit author and assumes somebody else may have edited the PR.
You can manually request rebase by checking the rebase/retry box above.
⚠️ Warning: custom changes will be lost.