What is IPM, what is IaC

We gathered the most common questions about IPM and IaC and answered them here.
Are you missing something? Please contact us

General

IPMHub is a platform for sharing language agnostic Infrastructure as Code (IaC) modules.
It is a place where you can find, share, and collaborate on IaC modules.
Next to sharing IaC related code with the world we provide you with a platform to managed your IaC solution in a private and secure way.

We do not only ship the the IPMHub, but also the supporting files for your CI/CD pipeline to build, test, and deploy your project

Infrastructure as Code (IaC) is the process of managing and provisioning computer (cloud) envorinments through machine-readable definition files, rather than interactive configuration tools.
IaC is a key DevOps practice and is used to manage and provision infrastructure in a safe, predictable, and repeatable manner.

IPM (Infrastructure Package Manager)

IPM, stands for Infrastructure Package Manager, and is our package manager that facilitates interaction with ipmhub.io. It enables users to download and publish Infrastructure as Code (IaC) packages. You can find detailed information and instructions on using IPM in our documentation, available at https://docs.ipmhub.io/docs.

There are multiple places to download the client. Just follow the instructions from here: https://ipmhub.io/download.

Currently, we support Windows, MacOS and we have tested the client on Debian-based distributions. Generally, all distributions that can run .NET 8 are most likely able to run the client.

A package is a set of Infrastructure as Code (IaC) code and supporting files that makes (part of) a solution and is versioned. Packages and can be downloaded using the IPM (Infrastructure Package Manager) client.

Yes, IPM is free to use, as long as the packages you publish are publicly available.

Yes, we strictly require semantic versioning (e.g., 1.0.0) for all packages. This ensures consistency and reliable dependency management across your infrastructure deployments.

Our IPM client is fully cross-platform compatible, supporting Windows, MacOS, and Debian-based Linux distributions. We provide both Intel and ARM versions for all supported platforms, ensuring you can use IPM regardless of your infrastructure.

Publishing and management of packages

First, sign up by following the link: http://ipmhub.io/login. Next, you can make a choice of using the GitHub integration or the IPM client (if you are on a payed plan). For detailed instructions on publishing a package, please refer to our documentation on the following page: https://docs.ipmhub.io/docs.

At this moment, we only support public packages. However, in the near future, you will be able to publish private packages when our Teams plan is available.

We support nested packages, which means that a package can contain other packages. If a packaged is used in a other package it can't be deleted because it will break the other package. If you have security concerns about a package please contact us using our form: http://ipmhub.io/support or use the report button on the package page.

To ensure stability and reliability for all users, we do not allow updating or deleting existing package versions. This guarantees that deployments depending on specific versions remain stable and reproducible.

Package metadata can be updated through our portal at https://portal.ipmhub.io. Here you can modify package descriptions, license types, and language settings.

We use a nested package system that allows you to manage dependencies efficiently. This approach enables you to separate the development of each package while maintaining clear dependency relationships between them.

The optimal structure depends on your package type. For PowerShell and Python modules, you can create packages from your source repository root. For solutions with nested packages, we recommend structuring your source repository to mirror your final solution architecture. This approach allows you to validate pipeline configurations and path references before publishing. Feel free to contact us for specific guidance on your use case.

Supported Technologies

We support all major Infrastructure as Code languages and their associated files, including parameter files and data files. Beyond IaC, we support packaging CI/CD YAML files, PowerShell and Python modules, and any other scripts or languages that can load from a local path.

Yes, IPMHub is designed to be language-agnostic. You can combine multiple file types and technologies within a single package - for example, Bicep modules with PowerShell scripts, parameter files, and CI/CD pipeline definitions. This flexibility allows you to create comprehensive, solution-oriented packages that include all necessary components for deployment.

Tracked Workspaces

Tracked workspaces are a unique feature that allows you to monitor package deployments. When deploying an IPM package, you can track the remote workspace, providing visibility into active package versions, synchronization history, and change management.

Tracked workspaces provide comprehensive insights including: which packages are used in specific deployments, last synchronization timestamps, revision history, and change attribution. This creates a complete audit trail for your infrastructure deployments.

Tracked workspaces provide a single pane of glass view for all your packages and deployments, simplifying management and providing clear visibility into your infrastructure state across all environments.

Availibility of features

We are woring hard to make this platform the best choice for IaC related package distribution. If you want to participate in our developer program please contact us using our form: http://ipmhub.io/beta

No, you pay with the feedback you provide and as long the plans or features are in beta. After that will be a discount for the first year.