Webinar Roundup: Event-Driven Automation

Making automation adaptable to changing conditions offers IT and network teams the opportunity to boost efficiency, speed incident response, ensure the accuracy of configurations and the soundness of security policies. In this recorded webinar, OpsMill Director of Product Management Brett Lykins takes you through how Infrahub enables event-driven infrastructure automation with powerful data management capabilities, including responsive abstractions. Check out the webinar as Brett covers:

  • New capabilities in Infrahub 1.2 including object templates, computed attributes, and customizable webhooks.
  • How generators work together with these new capabilities to enable event-driven automation
  • A way to integrate Infrahub and Ansible EDA to put event-driven automation into practice

Infrahub Templates: Streamline Infrastructure Definition and Deployment

Maintaining consistency and minimizing repetitive tasks are critical for efficiency and accuracy in the ever-evolving infrastructure management landscape. We’re thrilled to introduce a powerful new concept in Infrahub that empowers you to take charge of these challenges: Templates.

Templates in Infrahub provide the most flexible approach to defining and deploying infrastructure components. Imagine the ability to create reusable blueprints for any object within your infrastructure model. These blueprints capture standard configurations, attributes, and relationships, allowing you to rapidly provision and manage multiple instances with guaranteed uniformity.

What are Templates?

Think of Templates as master patterns for your infrastructure. They enable you to define a standard configuration for a specific object type – a server, a network switch, a virtual machine, or any other entity you manage. These templates encapsulate:

  • Node Attributes: Predefined values for standard properties like name, description, and default configurations.
  • Relationships: Pre-configured connections to other infrastructure objects, ensuring proper associations.
  • Components: Definitions for sub-elements belonging to the main object, such as server network interfaces or switch ports.

By adopting Templates, you can significantly reduce the manual effort involved in repeatedly configuring common elements, mitigate the risk of configuration drift, and ensure consistent deployments across your entire infrastructure.

Devices and More

One of the things that makes Infrahub templates different from what you’ve probably seen before is that they can create reusable blueprints for any object type, including complex relationships. NSoTs have previously offered a limited version of this capability, such as NetBox Device Types, which focused only on ensuring consistency in hardware device configurations and inventory management.

Infrahub’s templates provide greater flexibility and dynamic object creation, applicable across diverse infrastructure elements, not just devices. For example, you could use Infrahub templates for Sites or Services, allowing you to blueprint higher-level concepts in your environment easily. For example, templating Sites would enable you to have straightforward Small/Medium/Large site templates with related and common attributes populated for each Site you create in Infrahub. Alternatively, templating of Services would allow you to quickly and consistently re-create a higher-level service construct, such as an L3 VPN or a VPC and EC2 instances for an application.

How Templates Work

The process of creating and utilizing Templates involves a few key steps:

  1. Enable Template Support in Your Schema
  2. Create Templates in Infrahub
  3. Create Object Instances from Templates

Enable Template Support in Your Schema

At the core, the ability to create templates starts with your infrastructure schema definition. By enabling a specific flag at the node level for an object type, you unlock the capability to generate templates for that object and its associated component relationships.

If you are familiar with Schema Development in Infrahub, enabling template generation is straightforward. At the node level, the generate_template property allows users to enable template generation for a given node and its associated components.

We can now load the example template schema below into an Infrahub instance for testing. For more details, refer to the Import Schema Guide.

# yaml-language-server:

$schema=https://schema.infrahub.app/infrahub/schema/latest.json

    version: "1.0"


    nodes:

      - name: Device

        namespace: Infra

        generate_template: true # Enable template for Device and its Components

        label: "Device"

        icon: "mdi:server"

        human_friendly_id: ["name__value"]

        order_by:

          - name__value

        display_labels:

          - name__value

        attributes:

          - name: name

            kind: Text

            unique: true

          - name: description

            kind: Text

            optional: true

          - name: serial

            kind: Text

            optional: true

        relationships:

          - name: device_type

            label: device_type

            peer: InfraDeviceType

            optional: false

            cardinality: one

            kind: Attribute

          - name: interfaces

            peer: InfraInterface

            optional: true

            cardinality: many

            kind: Component

Create a Template in Infrahub

Once template support is enabled, you can create specific template instances. When making a template, you can pre-fill attribute values and establish relationships. Crucially, the system automatically allows you to develop corresponding templates for component relationships, ensuring a holistic blueprint.

Consider the example of creating a template for a standard network switch model below.

  1. Create a Device Type object to hold standard information about the switch (rack units, manufacturer, etc.)
  2. Create a Device Template to use to instantiate instances of the switch.
  3. Create Interface Templates to standardize interface configurations on the switch.
  4. Create a Device instance to represent the switch itself.

Create a Device Type

Returning to the Infrahub web interface, you will notice new entries in the left-hand menu. Before entering template information, we will create a device type, which will be helpful later.

It is important to note that Infrahub’s implementation of the object template doesn’t hold any information about the device model (for example, the number of rack units). Infrahub stores this information in the device-type object. Fortunately, we can link the template to a device-type object, and Infrahub will transfer this information to the object.

Via the GraphQL API
  1. Navigate to Device Type and add a new one.
  2. Fill in details like Name: SwitchModel123 and Number of U: 2.
  3. Save the Device Type.
mutation {

  InfraDeviceTypeCreate(

    data: {name: {value: "SwitchModel123"}, number_of_u: {value: 2}}

  ) {

      ok

    }

}

Create a Device Template

All template-related records are in the menu under the dedicated section Object Management > Templates.

It is important to note that you specify the device type object in the device template. Creating a device using your template will automatically establish a relationship between the new device and the selected device type. Some fields can be left empty because the device template doesn’t apply to them. For example, the serial number will, by definition, be different from one device to another.

Via the Web Interface
  1. Go to the Templates section.
  2. Click to add a new Object Template and select Device.
  3. Enter Template Name: Template-SwitchModel123 and link it to the Device Type: SwitchModel123.
  4. Save the template.
Via the GraphQL API
mutation {

  TemplateInfraDeviceCreate(

    data: {template_name: {value: "Template-SwitchModel123"}, device_type: {hfid: ["SwitchModel123"]}}

  ) {

      ok

    }

}

Create a Device Template

All template-related records are in the menu under the dedicated section Object Management > Templates.

It is important to note that you specify the device type object in the device template. Creating a device using your template will automatically establish a relationship between the new device and the selected device type. Some fields can be left empty because the device template doesn’t apply to them. For example, the serial number will, by definition, be different from one device to another.

Via the Web Interface
  1. Go to the Templates section.
  2. Click to add a new Object Template and select Device.
  3. Enter Template Name: Template-SwitchModel123 and link it to the Device Type: SwitchModel123.
  4. Save the template.
Via the GraphQL API
mutation {

  TemplateInfraDeviceCreate(

    data: {template_name: {value: "Template-SwitchModel123"}, device_type: {hfid: ["SwitchModel123"]}}

  ) {

      ok

    }

}

Creating Interface Templates

These are components of the Device Template, so ensure that you reference the device template created in the previous step. You can create multiple interface templates for demonstration purposes.

Via the Web Interface
  1. Click to add a new Object Template and select Object template Interface.
  2. Create templates like:
    • Template Name: Template-SwitchModel123-Ethernet1, Device: Template-SwitchModel123, Name: Ethernet1
    • Template Name: Template-SwitchModel123-Ethernet2, Device: Template-SwitchModel123, Name: Ethernet2
    • Template Name: Template-SwitchModel123-Ethernet3, Device: Template-SwitchModel123, Name: Ethernet3
  3. Save the interface templates.
Via the GraphQL API
mutation {

  CreateTemplateEthernet1: TemplateInfraInterfaceCreate(

    data: {name: {value: "Ethernet1"}, template_name: {value: "Template-SwitchModel123-Ethernet1"}, device: {hfid: ["Template-SwitchModel123"]}}

  ) {

      ok

    }

  CreateTemplateEthernet2: TemplateInfraInterfaceCreate(

    data: {name: {value: "Ethernet2"}, template_name: {value: "Template-SwitchModel123-Ethernet2"}, device: {hfid: ["Template-SwitchModel123"]}}

  ) {

      ok

    }

  CreateTemplateEthernet3: TemplateInfraInterfaceCreate(

    data: {name: {value: "Ethernet3"}, template_name: {value: "Template-SwitchModel123-Ethernet3"}, device: {hfid: ["Template-SwitchModel123"]}}

 ) {

     ok

   }

}

Create a Device Instance from Template

With the device and interface templates in place, you’re all set to create new instances based on them! When you need to create new instances of an object, you can now leverage the power of templates. Simply select a predefined template during the creation process. The new object will automatically inherit all the attributes and relationships the template defines, including its associated components.

Via the Web Interface

  1. Navigate to `Device` and click to add a new one.
  2. Choose the “From Template” option.
  3. Select the `Template-SwitchModel123` template you created.
  4. The creation form will be pre-populated with data from the template. Fill in any unique information (e.g., the device’s serial number) and save it.
    • A small chip above the form inputs indicates information sourced from the template. You can override this information at any time.

Via the GraphQL API

mutation {

  InfraDeviceCreate(

    data: {

      object_template: {hfid: ["Template-SwitchModel123"]},

      serial: {value: "OWI62IUHQ"},

      description: {value: "This is a Core Switch"}

    }

 ) {

     ok

   }

}

Regardless of the method used (Web UI or GraphQL API), upon creation, the new device will have its essential attributes pre-filled and automatically have the `Ethernet1`, `Ethernet2`, and `Ethernet3` interfaces created as its components, linked according to the template definition.

When viewing your newly created device object, navigate to the Interfaces tab to see a list of interfaces pre-populated based on the template you defined.

Current Caveats

  • Currently, templates primarily support component relationships. Other types of relationships will continue to reference actual objects.
  • Modifications made to a template will not retroactively update objects previously created using that template.

Key Advantages of Using Templates

  • Boosted Productivity: With Templates, you can significantly reduce repetitive data entry and accelerate the deployment of infrastructure objects, saving you valuable time and increasing productivity.
  • Unwavering Consistency: Ensure uniformity across multiple instances of the same object type, eliminating configuration drift.
  • Minimized Errors: Templates help you reduce the likelihood of manual configuration mistakes, leading to a more stable environment and instilling confidence in your work.
  • Simplified Management: Streamline the management and deployment of standardized infrastructure components.
  • Clear Documentation: Templates serve as living documentation, providing precise blueprints for your infrastructure objects.

Try it Out!

Templates represent a significant step forward in simplifying infrastructure definition and deployment. By embracing this powerful concept, you can achieve greater efficiency, consistency, and accuracy in managing complex environments. Explore the possibilities and start building your infrastructure blueprints today!

Infrahub Activity Log: Gain Deep Visibility into Your Infrastructure Changes

Understanding the history of changes within your infrastructure is crucial for maintaining stability, troubleshooting issues, and ensuring compliance. We’re excited to introduce the Activity Log, a comprehensive feature that provides deep visibility into all actions and events occurring within your infrastructure environment, ensuring you are always well-informed and secure.

The Activity Log meticulously documents every change within the system, allowing you to track objects that have changed, precisely when the change occurred, and the user or system responsible. This detailed record empowers you to:

  • Troubleshoot Unforeseen Changes: Quickly identify the root cause of unexpected behavior by reviewing the sequence of recent events.
  • Conduct Audits: Maintain a clear history of operations for compliance and security purposes.
  • Comprehend Update Order: Understand the flow of updates across different parts of your infrastructure.

Centralized Tracking of Infrastructure Events

The Activity Log consolidates and organizes events from various branches and objects into a unified timeline, offering different perspectives to suit your needs:

  • Global View: This comprehensive list presents all activities (events) across all branches in a single, chronological feed.
  • Object-Level View: This is a focused timeline specific to a single infrastructure object, displaying only the events directly relevant to that object.
  • Filtering Capabilities: Our powerful filtering options allow you to narrow your search based on various criteria, including branch, event type, initiating account, primary affected node, related nodes, and a specific date range. This flexibility puts you in control, making your search efficient and effective.
  • Nested/Child Events: The Activity Log intelligently tracks and displays cascade actions, where a single top-level event triggers subsequent child events, providing a complete picture of complex operations.

Accessing the Activity Log

Accessing the Activity Log is a breeze. You can conveniently do so via the Global or Object-Level Activity Log pages in Infrahub. Regardless of how you access it, the timestamps display based on your web browser’s local time settings, putting you in control of your viewing experience.

The Activity/Event framework is a key component of the Activity Log, providing a structured way to view and understand the sequence of events. It also has a concept of hierarchy, and Activities that have triggered subsequent child Activities are easily identifiable by a distinct (blue) icon at the end of the log entry.

Global Activity Log

  • Menu Location: Navigate to ActivityActivity log.
  • Direct URL: Access it directly via https://<your-instance>/activities.
AD 4nXezEpJiTW Dv F nHdYhytLNnTucFE1r1I4DBJg9rh3n1HIlA8Go7p62g3bYfGY29xainNzUZUG4gZbAr6tZoUNn6I6vRzwjku qRKU6HkCngT2xpCiXxnO3BXTggrNIaIE yO

Object-Level Activity Log

When you view any infrastructure object (e.g., an IP address or a server) in detail, you will find either a dedicated “Activity logs” panel on the right-hand side or a separate “Activity” tab.

Refining Your View with Filters and Search

The global Activity Log provides a robust set of filters to help you pinpoint the information you need:

  • Branch: Select a specific branch (e.g., main) to view Activities within that context.
  • Event Type: Filter by categories of actions, such as Node Created or Branch Deleted. For a comprehensive list of event types, refer to the Infrahub Events documentation.
  • Account / User: Display only events initiated by a particular user account.
  • Primary / Related Node: Highlight activities associated with a specific infrastructure object.
  • Has Children: Filter will show only Activities that triggered subsequent child Activities.
  • Date Range: Define a specific start, end, and time to focus on Activities within that period.
AD 4nXcN1wXsj1AqPqBei1eB3GU0VEQKC4w kfOYIU963yLSJdUKtujZdqLeN PmVZlQ504hCtfZ8ilcCo7hhwFR0K

Activity Log filtered by Primary Node.

AD 4nXdA DbVoMB1EOm9WhBTyG4TKMqrz20DfOvpZ4Qwbyhrq1 L74 NEcpDyKVGzU4i77SBb5u4 Eu4iK8hEpkzg6MWy2EOOuJZEtYUWh39HVG815bWve

Activity Log filtered by Children

Delving into Event Details

For a deeper understanding of any specific event, select “View more” from either the global or object-level Activity Log. Clicking on View More will open a detailed view, either on a separate page or as a popover, providing additional crucial information:

  • Event ID: A unique identifier (UUID) for the specific event.
  • Event Type: The technical type of the event (e.g., infrahub.node.updated). Consult the Infrahub Events documentation for more details.
  • Occurred At: The precise timestamp of when the event took place.
  • Account: The user account that initiated the activity.
  • Primary Node: The main infrastructure object affected by the event.
  • Related Nodes: Any other infrastructure objects also impacted by the event.
  • Changes: A detailed view of the changed attributes, including the “before” and “after” values for update events.
AD 4nXdumbLccfvEUW zNvTYjqpzxphNXW8q VcUpLpib8kgwK0aIvmio fezrRIYb7sVdxeuTRir4EsHbd3ga07rQ6oOt1 HKwyWSHS vkHdA71qf5AEvDC8n p1WNIWJfmAl

Activity details page with children

AD 4nXeVLGduh61FanW1CI

Activity log details.

Next Steps

The introduction of the Activity Log provides an invaluable tool for gaining comprehensive insight into the changes occurring within your infrastructure. By leveraging this feature, you can enhance your ability to troubleshoot, audit, and understand the dynamics of your infrastructure environment. Start exploring the Activity Log today and unlock a new level of visibility!

Infrahub 1.2 is Here!

OpsMill is excited to announce the release of Infrahub 1.2, which introduces significant enhancements to Infrahub’s infrastructure data management capabilities. This release focuses on improving efficiency, transparency, and control by implementing new features and optimizations.

Key Features of Infrahub 1.2

  • Templates: Facilitates standardized and efficient object creation.
  • Activity Log: Provides a detailed audit trail for enhanced transparency.
  • Enhanced Webhooks: Expands event triggers and payload customization.
  • User Interface Refinements: Offers a cleaner and more organized experience.
  • Performance Optimizations: Includes object list retrieval speed-ups and query efficiency.

Templates: Accelerating and Standardizing Data Creation

One of the standout features in this release is the introduction of Templates. If you’ve ever found yourself repeatedly entering the same configurations for devices or components, you’ll appreciate this. Templates allow you to define reusable blueprints for complex objects, dramatically reducing manual data entry and ensuring consistency across your infrastructure.

Imagine setting up a new rack with a standardized patch panel configuration. With Infrahub 1.2, you can create a “PatchPanel” template with 48 pre-defined ports and any relevant metadata and then instantiate new panels with a single click. Templates aren’t just about saving time; they are about minimizing errors and ensuring your data is reliable.

AD 4nXcmgiWtOFki4Ep CpcknQM vZwucNBMFIdaASpcizwCs63qaZyC naVq7XOLTtpmUc0 gcMPQFM1eSrm4UdHIXhOz8DsfCaJdOyY oypM75flg7pJ5s2W6mUv1pDvYPhFd0uFW10w?key=2rniyOuJ5gQM8ZUopJfuZRH6

Creating a Patch Panel with the option to use a Template

This feature is a game-changer for large-scale deployments and ongoing maintenance, allowing you to focus on strategic tasks rather than tedious data entry.

Not Just for Devices

One of the things that makes Infrahub templates different from what you’ve probably seen before is that they can create reusable blueprints for any object type, including complex relationships. NSoTs have previously offered a limited version of this capability, such as NetBox Device Types, which focused only on ensuring consistency in hardware device configurations and inventory management.

Infrahub’s templates provide greater flexibility and dynamic object creation, applicable across diverse infrastructure elements, not just devices. For example, you could use Infrahub templates for Sites or Services, allowing you to easily blueprint higher-level concepts in your environment. For example, templating Sites would enable you to have straightforward Small/Medium/Large site templates with related and common attributes populated for each Site you create in Infrahub. Alternatively, templating of Services would allow you to quickly and consistently re-create a higher-level service construct, such as an L3 VPN or a VPC and EC2 instances for an application.

Activity Log: Complete Transparency and Auditing

The Activity Log is a pivotal addition to Infrahub 1.2, a feature deeply integrated with our enhanced event system (from Infrahub 1.1). Maintaining a meticulous audit trail is essential in today’s compliance-driven landscape, and this log delivers just that. By capturing every event—creation, update, deletion, and more—the Activity Log provides a comprehensive, contextual view of all changes to your infrastructure data.

AD 4nXfGoISsHejl8vGRSuVMK8Z0wrVHtxaC TFSjBX7kTPKykIsBPHhV0QibX1sgN25GyDR4RgruWBeX bdq9fLrl UVs aQfqhLSTDDBSW3GKl0GkLeQi64GWeuhpm0Sqbiq4O91lP?key=2rniyOuJ5gQM8ZUopJfuZRH6
The Activity Log Page

This detailed record, powered by our robust event framework, allows for precise tracking and effective troubleshooting, ensuring unparalleled transparency and accountability. Also of note, this is just the beginning of the new event framework’s power, and more exciting things are on the horizon!

AD 4nXdQtMQXi y9nKzHCSmfqj e tqt xnbyR Slgveo1hATiQkMH83ACHkGkKBaHImY MG2IqerEK3I8cWGf51NIyBVi31mk48XDk15J4jQfitzL5JPN5 RpTI0AyslrJDTT31V7B1ew?key=2rniyOuJ5gQM8ZUopJfuZRH6

An Activity Log Entry
AD 4nXfISvKt31QPHPmygskcnwG hDEh0K8Gqjqz7YtBAMMmTIvCc5RNvLY6NVcgqY9Yf3JCy98OsOEpKx6Z9t 64tAG3BmmySFdWMCR38iqKXnd5RgSGpdoaEt30HFhan KMPPBY8pizQ?key=2rniyOuJ5gQM8ZUopJfuZRH6

The Activity Log on an individual object

This feature is more than just a log; it’s a dynamic record of your infrastructure’s evolution, empowering you to understand and manage changes confidently. Think of it as a recorder for your infrastructure data; every create, update, and delete action is tracked, giving you precise power to see what happened in the past. This level of transparency is invaluable for maintaining data integrity and accountability.

Enhanced Webhooks: Greater Flexibility and Control

We’ve also significantly enhanced our Webhook functionality. You can trigger Webhooks based on various events, including node creation, updates, and deletions. This flexibility allows for deeper integration with your existing workflows and systems.

Moreover, the ability to execute custom Infrahub Transformations on Webhook payloads opens up a world of possibilities. You can tailor the data sent to your endpoints, ensuring seamless interoperability with your tools and services.

AD 4nXc2yU0nPLF5Z7QQYfzul49C2DyrLpe2Qii 4JdKOxjlY1MLWXHsO7PQ fLBlTbn1MGJG PlNRlCH8AFk4ixUNoC9ozBx8Fa 7S3a 5kYnOgGUA42 2aKKUgQY3EOFvivVNTFKYDnQ?key=2rniyOuJ5gQM8ZUopJfuZRH6
The new webhook view

UI and Performance Improvements

Beyond these significant features, we’ve made numerous UI enhancements and performance improvements. These changes reflect our commitment to providing a smooth and efficient user experience.

New and Improved Tables

One of the most immediately noticeable improvements in Infrahub 1.2 is the redesign of its object tables to improve usability and efficiency. Improvements include:

  • Infinite scrolling has replaced pagination.
  • Filtering capabilities have also expanded; users can now filter specific columns directly and utilize new conditional filters such as “contains,” “is empty,” and “is not empty.”
  • When available, the HFID (Human-Friendly Identifier) is now displayed as the lead column, aiding in precise object identification.

Finally, a new action menu has been added to each row to allow quick edits and deletions without going to the object’s detail page. These changes collectively contribute to a more streamlined and responsive data management experience within Infrahub.

AD 4nXdju0PgZmpfdpRiUeLIcYElGV5m443kyTliXcwOBCwCNzIvCcVRGEZJdPFG4 IPggxUrWEjhkbs2 HG1yodA9hV69HKYlXpcyMXi5R6zK6ZJ8n zWaTC7Unw1 iDYNNFWB2zWmnHA?key=2rniyOuJ5gQM8ZUopJfuZRH6

Migration and Documentation

We provide detailed documentation and migration guides to help you seamlessly transition to Infrahub 1.2. As always, we recommend backing up your environment before performing any upgrades.

Looking Ahead

Infrahub 1.2 represents a significant advancement in Infrahub’s capabilities. OpsMill continues to prioritize developing features that improve operational efficiency and data integrity. User feedback remains integral to the ongoing evolution of Infrahub, and we look forward to hearing about your experience with this new release.

We’re excited to see how you use these new features to optimize your data and automation workflows!

Stay tuned for more updates, and happy automating!

Announcing Infrahub 1.0

We at OpsMill are excited to announce the General Availability of Infrahub 1.0!

With the release of Infrahub version 1.0, we are bringing our vision for infrastructure management and automation to even more organizations.

Infrahub provides a powerful Source of Truth (SoT) for infrastructure teams. It is built around a user-defined and flexible data schema, unified storage engine, with version control and validation of all data from design through deployment. These innovative capabilities make Infrahub a go-to automation solution for organizations with complex infrastructure.

You can also read our initial announcement blog for more information on why and how we built Infrahub.

Infrahub Essentials

Infrahub is a major evolutionary step forward in infrastructure automation. It includes the next generation of Source of Truth and goes far beyond being a simple SoT to address any organization’s infrastructure management challenges in a new way.

Below is an overview of Infrahub’s key components and capabilities.

AD 4nXd30w9K0hsAqojOalUKCuTZgpOchDAmvNrbTT16Sf6570pOsFamTel2Yl8jWmtvGi5 sIbu 63PfHGdXV9yBKVpxNCIa4AbXAmufC8bkcu5 QATwT ufoGCsn

Infrahub System Architecture

As its foundation, Infrahub provides users with a version-controlled Unified Storage engine driven by a completely user-defined schema for the data. This allows the engine to offer structured data and files to match the organization’s unique needs. The version control in the unified storage engine enables infrastructure teams to apply the same concepts in their Source of Truth as they do today in Git. This includes capabilities for branching/merging/diffing the configuration and data in Infrahub.

Raw data in a Source of Truth is valuable but needs more to be a complete solution. For example, Infrahub provides robust capabilities to turn this data into ArtifactsArtifacts are rendered configuration files that could be used for network equipment, server configuration, or even Terraform and are created programmatically based on the data in Infrahub and the templates provided by a user.

Another way Infrahub can help organizations get value from their data is by building additional objects in the database based on user-provided templates and logic. These Generators create dynamic objects and allow for complex design-driven automation.

In addition, Infrahub exposes Git-like capabilities for Peer Review natively and is coupled with a highly capable CI Pipeline to allow automated validation and tests of proposed changes. Applying a Peer Review and CI Pipeline process to the data in Infrahub will enable organizations to protect the data in their Source of Truth and, therefore, their infrastructure from unwanted changes.

These features are exposed through an intuitive and easy-to-use web interface, a REST API for system control, and deep GraphQL integration for managing the data stored in Infrahub.

New for 1.0

The above-listed basics of Infrahub (unified storage, version control, peer review, artifact generation, and more) have been implemented for our beta users for quite some time. The significant changes in Infrahub 1.0 focus on the polish and capabilities that our large-scale and demanding enterprise users require.

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

Granular User Permissions (RBAC)

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 GroupsGroups are given Roles, and Permissions are finally allocated to those RolesPermissions come in two fundamental varieties: Global Permissions and Object Permissions.

The diagram below 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.

AD 4nXdgXQ8N2FU1xVKW4pVRgUo78C1dxah8LhP FQHJh3IIBFCHB Gs 6qDKs7OhuUP 9m6osx8c3KrbZA9zr17vHc2Yfiky2aLKyQQDDx61E9feU7xlkihD7gFtFY R
Infrahub Permission Structure

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.

Updated UI

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.
AD 4nXe43TTUPmUHTLdTGAzrJZ17 y5c2 EWimEmhZGh0gWPeG9tMhZD1e7Mjug31gbR951exP
Infrahub 1.0 UI

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

Future Roadmap

This is just the beginning of OpsMill’s journey with Infrahub. We aim to bring its power to organizations worldwide and continue to add innovative and disruptive capabilities.

Shortly, we will bring even more performance improvements and features to Infrahub, including:

  • Attribute Permissions and Metadata Permissions will allow even more granular control over the actions a user or group can perform in Infrahub
  • Computed Attributes will allow even more dynamic control/generation of the data in Infrahub
  • Enhanced Task Framework will allow users even more visibility and control over the actions happening inside of Infrahub, from the execution of Generators to the syncing of Git repositories

If you want to learn more about Infrahub, please join us on Discord, star Infrahub on GitHub, join our mailing list, or request a demo today!

REQUEST A DEMO

See what Infrahub can do for you

Get a personal tour of Infrahub Enterprise

Learn how we can support your infrastructure automation goals

Ask questions and get advice from our automation experts

By submitting this form, I confirm that I have read and agree to OpsMill’s privacy policy.

Fantastic! 🙌

Check your email for a message from our team.

From there, you can pick a demo time that’s convenient for you and invite any colleagues who you want to attend.

We’re looking forward to hearing about your automation goals and exploring how Infrahub can help you meet them.