Skip to content

Commit

Permalink
Merge pull request #330 from nautobot/release-2.2.0
Browse files Browse the repository at this point in the history
Release 2.2.0
  • Loading branch information
jdrew82 authored Jan 18, 2024
2 parents 6cc17b5 + b41571c commit 9d6011d
Show file tree
Hide file tree
Showing 46 changed files with 1,581 additions and 280 deletions.
1 change: 1 addition & 0 deletions development/development.env
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,7 @@ NAUTOBOT_SSOT_INFOBLOX_DEFAULT_STATUS="Active"
NAUTOBOT_SSOT_INFOBLOX_ENABLE_SYNC_TO_INFOBLOX="True"
NAUTOBOT_SSOT_INFOBLOX_IMPORT_OBJECTS_IP_ADDRESSES="True"
NAUTOBOT_SSOT_INFOBLOX_IMPORT_OBJECTS_SUBNETS="True"
NAUTOBOT_SSOT_INFOBLOX_IMPORT_OBJECTS_SUBNETS_IPV6="False"
NAUTOBOT_SSOT_INFOBLOX_IMPORT_OBJECTS_VLANS="True"
NAUTOBOT_SSOT_INFOBLOX_IMPORT_OBJECTS_VLAN_VIEWS="True"
NAUTOBOT_SSOT_INFOBLOX_IMPORT_SUBNETS="10.46.128.0/18,192.168.1.0/24"
Expand Down
5 changes: 4 additions & 1 deletion development/nautobot_config.py
Original file line number Diff line number Diff line change
Expand Up @@ -178,7 +178,7 @@
"aristacv_from_cloudvision_default_device_role": "network",
"aristacv_from_cloudvision_default_device_role_color": "ff0000",
"aristacv_from_cloudvision_default_site": "cloudvision_imported",
"aristacv_hostname_patterns": [[r"(?P<site>\w{2,3}\d+)-(?P<role>\w+)-\d+"]],
"aristacv_hostname_patterns": [r"(?P<site>\w{2,3}\d+)-(?P<role>\w+)-\d+"],
"aristacv_import_active": is_truthy(os.getenv("NAUTOBOT_ARISTACV_IMPORT_ACTIVE", False)),
"aristacv_role_mappings": {
"bb": "backbone",
Expand Down Expand Up @@ -222,6 +222,9 @@
os.getenv("NAUTOBOT_SSOT_INFOBLOX_IMPORT_OBJECTS_IP_ADDRESSES")
),
"infoblox_import_objects_subnets": is_truthy(os.getenv("NAUTOBOT_SSOT_INFOBLOX_IMPORT_OBJECTS_SUBNETS")),
"infoblox_import_objects_subnets_ipv6": is_truthy(
os.getenv("NAUTOBOT_SSOT_INFOBLOX_IMPORT_OBJECTS_SUBNETS_IPV6")
),
"infoblox_import_objects_vlan_views": is_truthy(os.getenv("NAUTOBOT_SSOT_INFOBLOX_IMPORT_OBJECTS_VLAN_VIEWS")),
"infoblox_import_objects_vlans": is_truthy(os.getenv("NAUTOBOT_SSOT_INFOBLOX_IMPORT_OBJECTS_VLANS")),
"infoblox_import_subnets": os.getenv("NAUTOBOT_SSOT_INFOBLOX_IMPORT_SUBNETS", "").split(","),
Expand Down
37 changes: 20 additions & 17 deletions docs/admin/integrations/infoblox_setup.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Infoblox Integration Setup

This guide will walk you through steps to set up Infoblox integration with the `nautobot_ssot` app.
This guide will walk you through the steps to set up Infoblox integration with the `nautobot_ssot` app.

## Prerequisites

Expand All @@ -14,22 +14,23 @@ pip install nautobot-ssot[infoblox]

Integration behavior can be controlled with the following settings:

| Setting | Default | Description |
| ------------------------------------------ | ------- | ------------------------------------------------------------------------ |
| infoblox_url | N/A | URL of the Infoblox instance to sync with. |
| infoblox_username | N/A | The username to authenticate against Infoblox with. |
| infoblox_password | N/A | The password to authenticate against Infblox with. |
| infoblox_verify_ssl | True | Toggle SSL verification when syncing data with Infoblox. |
| infoblox_wapi_version | v2.12 | The version of the Infoblox API. |
| infoblox_enable_sync_to_infoblox | False | Add job to sync data from Nautobot into Infoblox. |
| infoblox_enable_rfc1918_network_containers | False | Add job to sync network containers to Nautobot (top level aggregates). |
| infoblox_default_status | active | Default Status to be assigned to imported objects. |
| infoblox_import_objects_ip_addresses | False | Import IP addresses from Infoblox to Nautobot. |
| infoblox_import_objects_subnets | False | Import subnets from Infoblox to Nautobot. |
| infoblox_import_objects_vlan_views | False | Import VLAN views from Infoblox to Nautobot. |
| infoblox_import_objects_vlans | False | Import VLANs from Infoblox to Nautobot. |
| infoblox_import_subnets | N/A | List of Subnets in CIDR string notation to filter import to. |
| infoblox_network_view | N/A | Only load IPAddresses from a specific Infoblox Network View. |
| Setting | Default | Description |
| ------------------------------------------ | ------- | ---------------------------------------------------------------------- |
| infoblox_url | N/A | URL of the Infoblox instance to sync with. |
| infoblox_username | N/A | The username to authenticate against Infoblox with. |
| infoblox_password | N/A | The password to authenticate against Infblox with. |
| infoblox_verify_ssl | True | Toggle SSL verification when syncing data with Infoblox. |
| infoblox_wapi_version | v2.12 | The version of the Infoblox API. |
| infoblox_enable_sync_to_infoblox | False | Add job to sync data from Nautobot into Infoblox. |
| infoblox_enable_rfc1918_network_containers | False | Add job to sync network containers to Nautobot (top level aggregates). |
| infoblox_default_status | active | Default Status to be assigned to imported objects. |
| infoblox_import_objects_ip_addresses | False | Import IP addresses from Infoblox to Nautobot. |
| infoblox_import_objects_subnets | False | Import subnets from Infoblox to Nautobot. |
| infoblox_import_objects_subnets_ipv6 | False | Import IPv6 subnets from Infoblox to Nautobot. |
| infoblox_import_objects_vlan_views | False | Import VLAN views from Infoblox to Nautobot. |
| infoblox_import_objects_vlans | False | Import VLANs from Infoblox to Nautobot. |
| infoblox_import_subnets | N/A | List of Subnets in CIDR string notation to filter import to. |
| infoblox_network_view | N/A | Only load IPAddresses from a specific Infoblox Network View. |

Below is an example snippet from `nautobot_config.py` that demonstrates how to enable and configure Infoblox integration:

Expand All @@ -46,6 +47,7 @@ PLUGINS_CONFIG = {
os.getenv("NAUTOBOT_SSOT_INFOBLOX_IMPORT_OBJECTS_IP_ADDRESSES")
),
"infoblox_import_objects_subnets": is_truthy(os.getenv("NAUTOBOT_SSOT_INFOBLOX_IMPORT_OBJECTS_SUBNETS")),
"infoblox_import_objects_subnets_ipv6": is_truthy(os.getenv("NAUTOBOT_SSOT_INFOBLOX_IMPORT_OBJECTS_SUBNETS_IPV6")),
"infoblox_import_objects_vlan_views": is_truthy(os.getenv("NAUTOBOT_SSOT_INFOBLOX_IMPORT_OBJECTS_VLAN_VIEWS")),
"infoblox_import_objects_vlans": is_truthy(os.getenv("NAUTOBOT_SSOT_INFOBLOX_IMPORT_OBJECTS_VLANS")),
"infoblox_import_subnets": os.getenv("NAUTOBOT_SSOT_INFOBLOX_IMPORT_SUBNETS", "").split(","),
Expand Down Expand Up @@ -113,6 +115,7 @@ PLUGINS_CONFIG = {
os.getenv("NAUTOBOT_SSOT_INFOBLOX_IMPORT_OBJECTS_IP_ADDRESSES")
),
"infoblox_import_objects_subnets": is_truthy(os.getenv("NAUTOBOT_SSOT_INFOBLOX_IMPORT_OBJECTS_SUBNETS")),
"infoblox_import_objects_subnets_ipv6": is_truthy(os.getenv("NAUTOBOT_SSOT_INFOBLOX_IMPORT_OBJECTS_SUBNETS_IPV6")),
"infoblox_import_objects_vlan_views": is_truthy(os.getenv("NAUTOBOT_SSOT_INFOBLOX_IMPORT_OBJECTS_VLAN_VIEWS")),
"infoblox_import_objects_vlans": is_truthy(os.getenv("NAUTOBOT_SSOT_INFOBLOX_IMPORT_OBJECTS_VLANS")),
"infoblox_import_subnets": os.getenv("NAUTOBOT_SSOT_INFOBLOX_IMPORT_SUBNETS", "").split(","),
Expand Down
17 changes: 17 additions & 0 deletions docs/admin/release_notes/version_2.2.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@

# v2.2 Release Notes

## v2.2.0 - 2024-01-18

## Added

- [271](https://github.com/nautobot/nautobot-app-ssot/pull/271) - Add custom relationship capabilities to the contrib module by @Kircheneer
- [320](https://github.com/nautobot/nautobot-app-ssot/pull/320) - Store sets in diffsync by @snaselj
- [325](https://github.com/nautobot/nautobot-app-ssot/pull/325) - Update Infoblox SSoT to allow for gathering of IPv6 Prefixes by @qduk

## Fixed

- [318](https://github.com/nautobot/nautobot-app-ssot/pull/318) - BugFix: Use correct attr name for vlan_group by @jmcgill298
- [319](https://github.com/nautobot/nautobot-app-ssot/pull/319) - Arista CVP Integration Fixes by @jdrew82
- [326](https://github.com/nautobot/nautobot-app-ssot/pull/326) - Fix ipfabric create_location to use correct arg name by @jmcgill298
- [327](https://github.com/nautobot/nautobot-app-ssot/pull/327) - BugFix: account for VLAN not having VLANGroup by @jmcgill298
4 changes: 2 additions & 2 deletions docs/user/modeling.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,12 @@ This page describes how to model various kinds of fields on a `nautobot_ssot.con
The following table describes in brief the different types of model fields and how they are handled.

| Type of field | Field name | Notes | Applies to |
| -------------------------------------------------- | ------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|----------------------------------------------------|---------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [Normal fields](#normal-fields) | Has to match ORM exactly | Make sure that the name matches the name in the ORM model. | Fields that are neither custom fields nor relations |
| [Custom fields](#custom-fields) | Field name doesn't matter | Use `nautobot_ssot.contrib.CustomFieldAnnotation` | [Nautobot custom fields](https://docs.nautobot.com/projects/core/en/stable/user-guides/custom-fields/?h=custom+fields) |
| [*-to-one relationships](#-to-one-relationships) | Django lookup syntax | See [here](https://docs.djangoproject.com/en/3.2/topics/db/queries/#lookups-that-span-relationships) - your model fields need to use this syntax | `django.db.models.OneToOneField`, `django.db.models.ForeignKey`, `django.contrib.contenttypes.fields.GenericForeignKey` |
| [*-to-many relationships](#-to-many-relationships) | Has to match ORM exactly | In case of a generic foreign key see [here](#special-case-generic-foreign-key) | `django.db.models.ManyToManyField`, `django.contrib.contenttypes.fields.GenericRelation`, `django.db.models.ForeignKey` [backwards](https://docs.djangoproject.com/en/3.2/topics/db/queries/#backwards-related-objects) |
| Custom Relationships | n/a | Not yet supported | https://docs.nautobot.com/projects/core/en/stable/models/extras/relationship/ |
| Custom Relationships | Field name doesn't matter | Use `nautobot_ssot.contrib.CustomRelationshipAnnotation` | https://docs.nautobot.com/projects/core/en/stable/models/extras/relationship/ |


## Normal Fields
Expand Down
1 change: 1 addition & 0 deletions mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -128,6 +128,7 @@ nav:
- Compatibility Matrix: "admin/compatibility_matrix.md"
- Release Notes:
- "admin/release_notes/index.md"
- v2.2: "admin/release_notes/version_2.2.md"
- v2.1: "admin/release_notes/version_2.1.md"
- v2.0: "admin/release_notes/version_2.0.md"
- v1.6: "admin/release_notes/version_1.6.md"
Expand Down
Loading

0 comments on commit 9d6011d

Please sign in to comment.