Skip to content

Releases: opsmill/infrahub

Infrahub - v1.0.2

06 Nov 21:00
Compare
Choose a tag to compare

Release 1.0.2

This is a bug-fix release to address issues found in Infrahub v1.0.1.

Main changes

The complete list of changes can always be found in the CHANGELOG.md file in the Infrahub Git repository.

Fixed

  • Update branch merge logic to use smaller queries outside of a transaction to allow merging a branch with many changes (#4448)
  • Ensure the GraphQL query InfrahubResourcePoolUtilization works properly when the schema is different in the branch (#4761)

Migration guide

The process to migrate your instance of Infrahub to the latest version may vary depending on your deployment of Infrahub.
However, at a high-level, it will involve getting the latest version of the Infrahub code, and then performing any needed Database Migrations and Schema updates.

Please ensure you have a backup of your Infrahub environment prior to attempting any migration or upgrade activities.

Migration of an Infrahub instance

First, update the Infrahub version running in your environment.

Below are some example ways to get the latest version of Infrahub in your environment.

  • For deployments via Docker Compose, update your container version by updating the VERSION environment variable and relaunch:
    • export VERSION="1.0.2"; docker compose pull && docker compose up -d
  • For deployments via Kubernetes, utilize the latest version of the Helm chart supplied with this release

Second, once you have gotten the desired version of Infrahub in your environment, please run the following commands.

Note: If you are running Infrahub in Docker/K8s, these commands need to run from a container where Infrahub is installed.

infrahub db migrate
infrahub db update-core-schema

Finally, restart all instances of Infrahub.

Migration of a dev or demo instance

If you are using the dev or demo environments, we have provided invoke commands to aid in the migration to the latest version.
The below examples provide the demo version of the commands, however similar commands can be used for dev as well.

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.

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

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

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

Infrahub - v1.0.1

31 Oct 18:37
b2928f9
Compare
Choose a tag to compare

Release 1.0.1

This is a bug-fix release to address issues found in Infrahub v1.0.0.

Main changes

The complete list of changes can always be found in the CHANGELOG.md file in the Infrahub Git repository.

Fixed

  • When a user is not logged in and the branch name is not found, hide the quick-create action and display the message: 'No branch found' (#4801)
  • Fix automation to trigger generation of artifacts after merging a branch (#4804)
  • Avoid sending an empty list to the load schema API on repository import if it's not required
  • Update demo environment to work with Infrahub 1.0

Migration guide

The process to migrate your instance of Infrahub to the latest version may vary depending on your deployment of Infrahub.
However, at a high-level, it will involve getting the latest version of the Infrahub code, and then performing any needed Database Migrations and Schema updates.

Please ensure you have a backup of your Infrahub environment prior to attempting any migration or upgrade activities.

Migration of an Infrahub instance

First, update the Infrahub version running in your environment.

Below are some example ways to get the latest version of Infrahub in your environment.

  • For deployments via Docker Compose, update your container version by updating the VERSION environment variable and relaunch:
    • export VERSION="1.0.1"; docker compose pull && docker compose up -d
  • For deployments via Kubernetes, utilize the latest version of the Helm chart supplied with this release

Second, once you have gotten the desired version of Infrahub in your environment, please run the following commands.

Note: If you are running Infrahub in Docker/K8s, these commands need to run from a container where Infrahub is installed.

infrahub db migrate
infrahub db update-core-schema

Finally, restart all instances of Infrahub.

Migration of a dev or demo instance

If you are using the dev or demo environments, we have provided invoke commands to aid in the migration to the latest version.
The below examples provide the demo version of the commands, however similar commands can be used for dev as well.

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.

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

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

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

Infrahub - v1.0.0

31 Oct 03:14
Compare
Choose a tag to compare

Release 1.0

We are thrilled to announce the general availability release of Infrahub, version 1.0!

We greatly appreciate all the time and efforts of our dedicated community of developers and beta testers!

Main changes

Infrahub 1.0 is focused on bringing Infrahub to even more organizations and equipping them with a production-ready solution to their infrastructure automation challenges.

There are four key features and changes in Infrahub version 1.0 as outlined below:

  • SSO login capabilities (OIDC/OAUTH2)
  • A new permission framework
  • Performance enhancements to version control actions (diff/merge/rebase)
  • An exciting UI and navigation redesign

In addition to these, there have been many bug-fixes and quality-of-life enhancements shown in the detailed changelog.

Single sign-on and user permissions

Early in the development of Infrahub, we consciously decided to focus on the groundbreaking and critical features that make Infrahub a uniquely world-class Source of Truth.
As a result, we set aside some standard enterprise features, such as Single Sign-On, until later, knowing that they would be straightforward to implement in the system.

As we enter a new era with Infrahub 1.0, we have focused on rounding out the enterprise-grade features that our customers require.
For example, we added Single Sign-On (SSO) integrations for OIDC/Oauth 2.0 and implemented a robust and granular permissions system.
These two features combine to give organizations a level of control that allows them to trust their mission-critical data in Infrahub and bring even closer integration with existing enterprise systems and workflows.

SSO

The new OIDC/OAuth2 capabilities, tested and functioning in the field with many Identity Providers such as Keycloak, Authentik, and Google Auth, allow organizations to manage their users and groups centrally instead of in the Infrahub UI.
Subsequent releases of Infrahub will soon include validated support for additional Identity Providers
and other authentication methods (such as LDAP).

This functionality goes hand in hand with the feature we will discuss next: our new User Permissions structure.

Documentation

User permissions

As users store more data in Infrahub and more teams interact with that data, it becomes crucial to protect it
from accidental changes.
By implementing a granular role-based permission system, Infrahub allows organizations to prevent unauthorized changes to the data behind critical infrastructure automation efforts.

In the permission structure introduced in Infrahub 1.0, Users are added to Groups, Groups are given Roles,
and Permissions are finally allocated to those Roles.
Permissions come in two fundamental varieties: Global Permissions and Object Permissions.

The below diagram lays out the relationship between each of these entities.
A User can belong to one or more Groups, a Group can have multiple Roles assigned to it, and each Role can be granted one
or more Global or Object Permissions.

"Example relationship of User to Group to Role to Permission in Infrahub 1.0."

Global vs. object permissions

It is also worth mentioning the difference between Global Permissions and Object Permissions.

  • Global Permissions are specific permission sets that can give users system-wide rights to perform particular actions, for example:
    • Editing the default Branch
    • Editing Permissions
    • Allowing the merging of proposed changes
    • Account management
  • Object Permissions are tied to individual objects within Infrahub and control what actions users can take on those objects; examples could include:
    • Allow read-only access to all objects
    • Deny the ability to update Tags
    • Allow editing on any object type that starts with DataCenter

For either style, Permissions are structured to be robust and granular by allowing complete control over
the Action, Decision, and Role of a given Permission set (plus the Object Type for Object Permissions).

Documentation

This is a significant topic on a new feature that enables complex workflows to meet organizational needs. Because of this, we strongly recommend diving into the documentation links below.

Performance improvements

Our design philosophy at OpsMill has always been driven by long experience as network practitioners or admins in Unix-like systems: “Make it work, make it right, make it fast.”

In Infrahub 1.0, we focused on the last part, “Make it fast.”

As our early beta testers began to utilize Infrahub in increasingly large infrastructures (greater than 50,000 nodes), we expected (and found) opportunities for performance improvements.
This was especially true when performing Version Control actions on large data sets.
As a result of the intensive testing, we made dramatic improvements to branch change management.
Infrahub 1.0 has improved how Infrahub computes a difference between two branches, re-bases a branch,
and handles the merge.
For example, in the “diff” generation for a proposed change, we have seen a 30% increase in performance over earlier versions.
As a result, the proposed change functionality can now reliably handle much larger data sets for comparison.

These performance improvements are only the beginning of our optimization efforts, but they have already improved the experience of Infrahub users of all infrastructure sizes.

UI redesign

While the UI in Infrahub before 1.0 served its purpose well, there was room for improvement.
A corollary fourth phrase to our design philosophy might be, “Now, make it pretty!”

We didn’t just change around some colors or styles; we worked closely with our beta testers and a dedicated
User Experience professional to ensure that using Infrahub 1.0 would be an experience that our users enjoyed.

"Example screenshot of new UI in Infrahub 1.0."

We also provided capabilities for complete customization of the navigation menu.
We continue to emphasize that Infrahub is a powerful, fully customizable system that meets your
organization where it needs to be.

Documentation

Other

New task-manager component

A new component called Task Manager has been introduced within Infrahub, and along with this change the Git-Agent has been renamed to Task Worker. The task manager is based on Prefect, a popular workflow orchestration system.

The Task Manager is used internally to improve the execution and the visibility of all background tasks. In future releases, we are planning to bring these additional information within Infrahub itself. Stay tuned for more information and more exciting features around task management in upcoming releases.

Removed

  • Remove previously deprecated GET API endpoint "/api/schema/" (#3884)

Deprecated

  • Marked CoreAccount.role as deprecated
    Due to the new permissions framework the account roles "admin" / "read-only" / "read-write" are deprecated and will be removed in Infrahub 1.1

Added

  • Reworked branch selector:

    • Redesigned the UI
    • Added filter for branch
    • Improved accessibility & keyboard navigation
    • Improved UX on new branch form
    • Added quick link to view all branches
  • Add support to sign in with OAuth2 and Open ID Connect (OIDC) (#1568)

  • Add internal HTTP adapter to allow for generic access from Infrahub (#3302)

  • Add support to search a node by human friendly ID within a GraphQL query (#3908)

  • Added link to our Discord server in the account menu

  • Added permissions framework for global and object kind level permissions

    In this first iteration the object permissions are applied to nodes as a whole, in upcoming versions it will be possible to define attribute level permissions as well.

  • New permissions system in UI:

    • Implemented CRUD views for managing accounts, groups, roles, and permissions
    • Updated all components to support new permission system
    • Added dynamic message display according to user access levels

Fixed

  • The infrahub-git agent service has been renamed to task-worker in docker compose and the command to start it has been updated as well (#1075)
  • Add ability to import repositories with default branch other than 'main' (#3435)
  • Disable approve/merge/close buttons for merged Proposed Changes (#3495)
  • Fixed regex validation for List type attributes (#3929)
  • Allow users to run artifacts and generators on nodes without name attribute (#4062)
  • In the schema, properly delete inherited attribute and relationship on Node when the original attribute or relationship are being deleted on the Generic (#4301)
  • "Retry All" button for checks is bigger (#4315)
  • Add a size restriction on common attribute kinds. Only TextArea and JSON support...
Read more

Infrahub - v0.16.4

17 Oct 12:50
82daaca
Compare
Choose a tag to compare

Release 0.16.4

We are thrilled to announce the latest release of Infrahub, version 0.16.4!

This release focuses largely on bug fixes and is driven by our Beta Test users,
and as always we greatly appreciate their feedback and time!

Main changes

The complete list of changes can always be found in the CHANGELOG.md file in the Infrahub Git repository.

Fixed

  • Fixed an issue on the UI where a new relationship was being added to the main branch instead of the current branch. (#4598)

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.

Infrahub - v0.16.3

10 Oct 19:35
4178bb8
Compare
Choose a tag to compare

Release 0.16.3

We are thrilled to announce the latest release of Infrahub, version 0.16.3!

This release focuses largely on bug fixes and is driven by our Beta Test users,
and as always we greatly appreciate their feedback and time!

Main changes

The complete list of changes can always be found in the CHANGELOG.md file in the Infrahub Git repository.

Removed

  • Removed infrahub.toml configuration file from Docker builds.

Fixed

  • Save a diff in smaller pieces instead of all at once to prevent out-of-memory error. (#4511)
  • Fixes exception handling section in the Python SDK batch guide.

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.

Full Changelog: infrahub-v0.16.2...infrahub-v0.16.3

Infrahub - v0.16.2

01 Oct 23:03
Compare
Choose a tag to compare

Release 0.16.2

We are thrilled to announce the latest release of Infrahub, version 0.16.2!

This release focuses largely on bug fixes and is driven by our Beta Test users,
and as always we greatly appreciate their feedback and time!

Main changes

The complete list of changes can always be found in the CHANGELOG.md file in the Infrahub Git repository.

Fixed

  • Loading a schema with an invalid order_by field raise a proper error. (#4323)

  • Updates internal logic to improve performance when generating a diff.

    BREAKING CHANGE: Diff data, including conflict selections, will be deleted. We recommend merging
    any outstanding proposed changes before upgrading to this version. (#4438)

  • Fix performance issue for GraphQL queries that only count nodes. (#4454)

  • Fix ability to construct HFID for upsert mutations where a number attribute is used. (#4460)

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.

Infrahub - v0.16.1

25 Sep 00:45
Compare
Choose a tag to compare

Release Notes

See the v0.16.1 Release Notes for additional information on new features and bug fixes.

What's Changed

Full Changelog: infrahub-v0.16.0...infrahub-v0.16.1

The largest change in this version is the movement of the Infrahub SDK into a
separate repository and package.

Documentation for the SDK remains in the main Infrahub documentation at this time.

Developers may need to take the following steps to ensure their development environment has the proper SDK in place:

git checkout develop
git pull
rm -rf python_sdk
git submodule update --init

Removed

Added

    • In list views, always show relationships of type "Parent."
    • In the details view of an object, hide the "Parent" relationship if the parent is the current object itself.

    (#3891)

  • Add ability to construct HFIDs from payload for upsert mutations (#4167)

  • Add HFID to schema view in the frontend (#4172)

  • Update action buttons in details view and relationships views

    • in the details view, we can edit / delete the object and manage its groups
    • in the relationships views, we can add new relationships (it replaces the "+" button at the bottom)

    (#4362)

  • Prevent the form from being closed if there are unsaved changes. (#4419)

Fixed

  • GraphQL results when querying nodes with updated_at named attributes will now return correct values instead of null/None (#3730)

  • Loading a schema with a SchemaNode referencing an incorrect menu placement now returns a proper HTTP 422 error (#4089)

  • GraphQL mutations to update a many relationship that is required on the peer will succeed or fail with the correct error (#4124)

  • Infer human-friendly ID for a schema if it includes a uniqueness constraint of a single attribute (#4174)

  • Account for uniqueness constraints of a single attribute when validating human-friendly ID (#4181)

  • Synchronize uniqueness_constraints and unique attributes during schema processing (#4182)

  • Ensure schema uniqueness_constraints are created if they are missing and human_friendly_id has been specified for the node (#4186)

  • Deleting a node that is linked to a mandatory relationship on a generic schema will now fail with an error message (#4207)

  • Fixed incorrect consumer timeout for RabbitMQ queue infrahub.rpcs

    If you are upgrading from a previous version of Infrahub and using the provided Docker Compose files you don't have to take any additional action. However if you are using your own setup for RabbitMQ you will need to manually delete the queue yourself.

    Swap the container name and credentials to RabbitMQ if they are different in your setup:

    docker exec -it infrahub-message-queue-1 rabbitmqadmin --username infrahub --password infrahub delete queue name=infrahub.rpcs

    After this step Infrahub and the Git agents need to be restarted, when doing so the correct queue will be recreated. (#4308)

  • Add documentation links for Generator Definition and Generator Instance pages to Generator topic (#4316)

  • Hierarchical node that don't have a parent or a children defined in the schema will properly enforce that constraint (#4325)

  • Properly raise errors instead of just logging them during repository import failures so that the "sync status" gets updated even if we've caught the errors. (#4334)

  • Display label composed of an attribute of type Enum will now render correctly (#4382)

  • Removed database index in Attribute Value to attribute larger than 8167 bytes (#4399)

  • Added cancel button in repository form (#4402)

  • Fixes the tasks pagination in the proposed changes tab (#4434)

Detailed Changelog

Python SDK - v0.13.0

12 Sep 09:35
78f7166
Compare
Choose a tag to compare

Added

  • Add support to search a node by human friendly ID using client's get method (#3908)
  • Add support for Number resource pool

Changed

  • Fix infrahubctl not displaying error message under certain conditions

Fixed

  • Fix fetching relationship attributes when relationship inherits from a generic (#3900)
  • Fix the retrieving on schema and nodes on the right branch (#4056)

Detailed changelog

Infrahub - v0.16.0

11 Sep 21:58
Compare
Choose a tag to compare

Release Notes

See the v0.16.0 Release Notes for additional information on new features.

New Contributors

What's Changed

Full Changelog: infrahub-v0.15.3...infrahub-v0.16.0

Removed

  • Removed isolated branch information from schema topic in the documentation. (#3968)

Added

  • Allow adding multiple profiles to an object in the UI. (#3061)
  • Added "disabled" attribute to accounts to allow more granular user management. (#3505)
  • Added capabilities to manage API tokens in the Infrahub UI. (#3527)
  • Added filtering and search to IPAM view. (#3740)
  • Add number of prefixes to IPAM tree view. (#3741)
  • Allow navigation to related node in list view. (#3889)
  • Add support to search a node by human friendly ID within a GraphQL query. (#3908)
  • Added DB migrations for objects changed to Generic type in 0.16. (#3915)
  • Add clickable items in the Proposed Change list view. (#3990)
  • Added the ability to filter out Infrahub internal groups. (#4027)
  • Add action button to Repository objects. (#4066)
  • Added documentation for creating custom Infrahub Docker images. (#4077)
  • Add support for numbers bigger or smaller than signed integers. (#4179)

Changed

  • Move GraphQL queries to .infrahub.yml for Repository imports. (#1938)
  • Improve UI of Git repository form. (#3893)
  • Consistency improvements in Repository interactions. (#4068)
  • Enhancements to Repository status reporting. (#4069)
  • Simplified the Repository view to only show crucial information. (#4071)
  • Increased visibility during Git sync. (#4072)

Fixed

  • Add ability to import repositories with default branch other than 'main'. (#3435)
  • SchemasLoadAPI should not inherited from SchemaRoot but from BaseModel. (#3821)
  • Resolve inconsistencies when loading same schema twice. (#3892)
  • HFID of a node is not properly set by prefetch_relationship in Python SDK. (#3900)
  • Comment input is not cleared upon submission of Proposed Change form. (#3942)
  • Can not assign Profile when editing Node in the web UI. (#3999)
  • Allow users to add a new generic to an existing node. (#4051)
  • Allow users to run artifacts and generators on nodes without name attribute (#4062)
  • Allow bare Git URL and automatically add .git. (#4070)
  • Schema diff view not functioning in branch detail page. (#4093)
  • Removed erroneous approval button on Diff view. (#4094)
  • Edit node form displays empty input field for mandatory relationship of cardinality many. (#4102)
  • GraphQL query does not appear on Detail page. (#4105)
  • Do not allow '/' character in repository name to avoid sync failure. (#4120)
  • Can't close a comment thread on an Artifact. (#4189)

Detailed Changelog

Read more

Python SDK - Version 0.13.0 - Beta 1

27 Aug 16:26
5c78e2b
Compare
Choose a tag to compare
Pre-release

🐛 Bug Fixes

🧰 Maintenance