Skip to content

Releases: opsmill/infrahub

Python SDK - Version 0.12.0

15 Jul 05:59
6af17cb
Compare
Choose a tag to compare

Changelog

Warning

This release drops the support for Pydantic version 1.

🚀 Features

🐛 Bug Fixes

  • Improve error message on repository configuration file read failure @gmazoyer (#3729)

🧰 Maintenance

infrahub-v0.15.0

15 Jul 05:25
47430b1
Compare
Choose a tag to compare

Release 0.15.0

We are thrilled to announce the latest release of Infrahub (0.15).
This release focuses on enhancing the user experience and laying the groundwork for future features.

Main changes

Unified storage

Profiles enhancements

  • You can now create profiles on a Generic, in addition to Nodes.
  • A node inheriting from multiple Generics can utilize any profiles associated with these Generics.
  • Introduced a new attribute generate_profile in the schema for more precise control over which nodes should have profiles generated or supported.
  • Profiles have been disabled on most core models.

Schema

Schema Validation

Added a new validation to ensure schemas do not require relationships to one another. This will prevent incompatible schemas from being loaded in the future.

Frontend

Tree view for hierarchical model

All hierarchical models will now display a tree view in the frontend to simplify navigation across the tree.

hierarchical_view

Hierarchical dropdowns for relationships to parent/component models

When a relationship references a peer model with a parent (identified by a parent relationship), the form will automatically display multiple dropdown fields—one for the parent and one for the object itself, filtered by parent.

generic_relationship_select

Refactor form components

The form component in the frontend has been refactored to provide a better foundation for future features that could not be supported by the previous version.

Helm Chart

Upstream charts

The official helm chart to deploy Infrahub now leverages the upstream charts for Neo4j, Redis, and RabbitMQ instead of defining these components directly. This approach provides more flexibility and allows us to use pod settings such as pod affinity.

Infrahub Sync

Integration with IP Fabric

Added the initial version of the Infrahub Sync adapter for IP Fabric.

Other

Support for isnull filter for attributes and relationships

In most GraphQL queries, it’s now possible to search for objects based on the absence of an attribute or a relationship using the new isnull filter. For example, the following query returns all groups that have a parent group defined:
As an example the following query will return all groups that have a parent group defined.

query {
  CoreGroup(parent__isnull: false){
    edges {
      node {
        display_label
      }
    }
  }
}

Dedicated search anywhere query in GraphQL

The search anywhere bar in the frontend now leverages a dedicated GraphQL query.
This new query can search for objects by their UUID, improving search results.

Generate Protocol for Core models

Protocol for the internal models have been introduced to improve typing and type checking across the backend.

Drop support for Pydantic V1 & Python 3.9

Internally, Infrahub no longer support Python 3.9 and Pydantic v1.

Demo Environment

Cleanup and performance improvement

The script infrastructure_edge.py used to load data in the demo environment has been cleaned up to improve readability and performance. Demo in codespace should start faster now.

New Services models

A new service model has been added to the demo schema

Migration Guide

To migrate your instance of Infrahub to the latest version, please run the following commands and restart all instances of Infrahub.

infrahub db migrate
infrahub db update-core-schema

if you are running in docker these commands need to run from the container where Infrahub is installed

Migration of the demo instance

If you are using the demo environment, you can migrate to the latest version with the following commands

invoke demo.stop
invoke demo.build
invoke demo.migrate
invoke demo.start

If you don't want to keep your data, you can start a clean instance with the following command

invoke demo.destroy demo.build demo.start demo.load-infra-schema demo.load-infra-data

All data will be lost, please make sure to backup everything you need before running this command.

The repository https://github.com/opsmill/infrahub-demo-edge has also been updated, it's recommended to pull the latest changes into your fork.

🚀 Features

🐛 Bug Fixes

🧰 Maintenance

Python SDK - Version 0.12.0 - Beta 1

03 Jul 07:58
511eda8
Compare
Choose a tag to compare
Pre-release

Note

This is a pre-release of Infrahub Python SDK 0.12.0.

Changelog

Warning

This release drops the support for Pydantic version 1.

🚀 Features

🐛 Bug Fixes

  • Improve error message on repository configuration file read failure @gmazoyer (#3729)

🧰 Maintenance

Infrahub v0.15.0-beta1

02 Jul 07:11
Compare
Choose a tag to compare
Pre-release

🚀 Features

🐛 Bug Fixes

🧰 Maintenance

Version 0.14.2 - Open Beta Maintenance

21 Jun 15:09
9b65ea8
Compare
Choose a tag to compare

Changelog

🚀 Features

  • Adds resource pool selector in select 2 steps input @pa-lem (#3599)

🐛 Bug Fixes

Python SDK - Version 0.11.1

12 Jun 14:26
411ea45
Compare
Choose a tag to compare

Changelog

🐛 Bug Fixes

  • Fix GraphQL parameters for resource allocation mutations @gmazoyer (#3627)
  • Fix infrahubctl generator subcommand when targets exist in a branch @wvandeun (#3624)

Version 0.14.1 - Open Beta Maintenance

04 Jun 14:59
13c1265
Compare
Choose a tag to compare

Changelog

Version 0.14.1 is maintenance release with minor fixes.

🧰 Maintenance

Python SDK - Version 0.11.0

27 May 13:22
c8625b2
Compare
Choose a tag to compare

Changelog

🚀 Features

🐛 Bug Fixes

🧰 Maintenance

Version 0.14.0 - Open Beta

27 May 13:58
13cad09
Compare
Choose a tag to compare

We are thrilled to announce the latest release of Infrahub (0.14), marking the start of our open beta.
This release focuses on preparing for the open beta by cleaning up and improving documentation and introducing key features like the Resource Manager.

Main changes

Unified storage

Resource Manager

The resource manager simplifies resource management and allocation.
This initial implementation supports IP Prefixes and IP Addresses, with future support for additional resources like VLAN, IDs, and interfaces.

Key features of the Resource Manager include:

  • Inline Allocation: Allocate resources from a pool directly when creating an object.
  • Branch Agnostic: Resource allocation works across branches. A resource allocated in one branch won’t be allocated in another.
  • Idempotent: If the same consumer requests a resource multiple times, the Resource Manager will always return the same value. This reduces the complexity of managing resource allocation on the client side in an idempotent way.

resource_manager_overview
resource_manager_form

Schema

Human Friendly Identifier (hfid)

In addition to the automatically generated internal ID (UUID) for each object, Infrahub now allows defining fields that form a human-friendly identifier (hfid).

The hfid can uniquely reference objects across systems, even before an object is created in Infrahub.

While mostly invisible in the frontend, hfid is crucial for building robust data synchronization between systems and creating truly idempotent scripts.

Applied to the network industry:

  • the hfid of a device could be its name: atl1-edge01
  • the hfid of an interface will be the combination of the name of the device and the name of the interface: `["atl1-edge01", "Ethernet1"]

The fields that will compose the human_friendly_id must be defined in the schema

hfid support in GraphQL

hfid can be used as an alternative to the ID in most GraphQL operations, including:

  • Update Mutation
  • Upsert Mutation
  • Delete Mutation
  • Related Node in all Mutations

Other

Documentation update

We have significantly improved and added new content to the documentation, including a new FAQ section.

Breaking Changes

Remove support for non-isolated branch

Support for branches in non-isolated mode has been removed.
Although useful, it posed challenges for operations dependent on other nodes in the graph, such as schema management, constraints validation, and IPAM.

All branches now operate in isolated mode by default, similar to branches in Git. A branch need to be rebased to stay in sync with main.

Migration Guide

To migrate your instance of Infrahub to the latest version, please run the following commands and restart all instances of Infrahub.

infrahub db migrate
infrahub db update-core-schema

if you are running in docker these commands need to run from the container where Infrahub is installed

Migration of the demo instance

If you are using the demo environment, you can migrate to the latest version with the following commands

invoke demo.stop
invoke demo.build
invoke demo.migrate
invoke demo.start

If you don't want to keep your data, you can start a clean instance with the following command

invoke demo.destroy demo.build demo.start demo.load-infra-schema demo.load-infra-data

All data will be lost, please make sure to backup everything you need before running this command.

The repository https://github.com/opsmill/infrahub-demo-edge has also been updated, it's recommended to pull the latest changes into your fork.

Changelog

🚀 Features

🐛 Bug Fixes

  • Fix mutation for pool assignment on fields for relationships of cardinality many @pa-lem (#3477)
  • Fix link for allocated ip address to IPAM @bilalabbad (#3484)
  • Improve support for Profile in Artifact & Proposed Change @dgarros (#3471)
  • Fix test to include only required relationships of cardinality many only in create form @pa-lem (#3476)
  • fix off-by-one type error in ip address parent identification @ajtmccarty (#3480)
  • Updates peers to display in form for relationships inputs @pa-lem (#3419)
  • Fixed default value on textarea input + fixed label missing on json input @bilalabbad (#3451)
  • new relationship constraint for peer type @ajtmccarty (#3396)
  • small fix for diff payload with multiple relationship changes @ajtmccarty (#3442)
  • Fix get artifact API endpoint @gmazoyer (#3440)
  • Added basic validation on proposed change creation form @bilalabbad (#3450)
  • Ensure hfid is defined to generate an identifier @dgarros (#3448)
  • Fix menu overflow @pa-lem (#3446)
  • Raise user-friendly error and exit if git-agent is unable to reach Infrahub @ogenstad (#3445)
  • fixes for IP reconciliation logic @ajtmccarty (#3381)
  • Prevent menu from disappearing on small screens @pa-lem (#3432)
  • GraphiQL link preserves QSP @bilalabbad (#3424)
  • Fix password length details on details view @bilalabbad (#3423)
  • Fix mutation data for relationship select @pa-lem (#3415)
  • Thread mutation fix depending on the view @pa-lem (#3408)
  • Support display_label for Generic node in Graphql @dgarros (#3361)
  • Fix typo in INFRAHUB_STORAGE_QUERYSTRING_AUTH @dgarros (#3353)
  • [FIX] min time is not applied anymore on past date on time selector @bilalabbad (#3311)
  • Fix query for hierarchical children in relationships many @pa-lem (#3304)

🧰 Maintenance

  • Add exception in schema_manager for ip_namespace @dgarros (#3486)
  • Convert attribute variables on CoreGraphQLQuery to read-only @dgarros (#3479)
  • Add section about performance benchmark tool to docs @dgarros (#3482)
  • Update schema for IP Prefix Pool and IP Address Pool @dgarros (#3468)
  • fixes identifier description of IpPrefixPoolGetResource and IpAddresPoolGetResource mutations @wvandeun (#3467)
  • Rename default_prefix_size -> default_prefix_length for IP Address pool @ogenstad (#3465)
  • update readme screenshot @petercrocker (#3470)
  • Add optional initial agent user @ogenstad (#3390)
  • Set order_weight for resource pool objects @ogenstad (#3447)
  • Add tests for allocation queries @ogenstad (#3421)
  • Rename CorePrefixPool -> CoreIPPrefixPool @ogenstad (#3425)
  • Add condition to backend.validate-generated documentations files are changed @BeArchiTek (#3418)
  • Add relationship name to generated identifier @dgarros (#3398)
  • Rename Groups & Profiles to Object Management and add resourcepool @ogenstad (#3344)
  • Add logic to resource pool allocation query @ogenstad (#3387)
  • Run IPAM reconcilement after assignment from pool @ogenstad (#3384)
  • Add utilization_branches for frontend and resource_id to allocation @ogenstad (#3374)
  • Only allocate ip prefixes & addresses if available across all branches @ogenstad (#3363)
  • Remove get_account_by_id and get_account functions that aren't used currently @dgarros (#3349)
  • Small update for the demo environment in the doc @dgarros (#3357)
  • Cleanup schema path parsing and analysis @dgarros (#3351)
  • Major documentation updates @petercrocker (#3332)
  • Add skeleton for IPPrefix pool utilization query @ogenstad (#3330)
  • Remove "contact opsmill" from swagger docs @petercrocker (#3333)
  • Switch to reflect member_types of BuiltinIPPrefix @ogenstad (#3323)
  • fix(backend): use correct label value for query metrics @fatih-acar (#3298)
  • Set integer enum values to strings, otherwise keep the previous logic of _.join @fra...
Read more

Python SDK - Version 0.10.1

07 May 21:49
9421aae
Compare
Choose a tag to compare

Changelog

🐛 Bug Fixes