github opsmill/infrahub infrahub-v0.14.0
Version 0.14.0 - Open Beta

latest releases: infrahub-v1.4.6, infrahub-v1.3.9, infrahub-v1.4.5...
15 months ago

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

Don't miss a new infrahub release

NewReleases is sending notifications on new releases.