Provider Registry

env0

Posted by Chris Noon on Sat, Apr 1, 2023

Note: This is a copy of my env0 post.

What is it and why do we need it?

Providers are used by Terraform as a set of instructions on how to interact with an endpoint. Put simply, if you want to automate the build of your env0 structure, you can use Terraform in conjunction with the env0 Provider. Terraform is the engine, the Provider handles the directions.

The eco-system is filled with open source Providers that are hosted on Hashicorp public Provider Registry, to mention a few:

Open source is something we all love and many of the providers we use are built by the open-source community. For many of the use cases, using open-source Providers is the way to go. It’s constantly being updated and evolving as services change or are added. In some cases, especially where internal tools are concerned, we need to ensure the Provider doesn’t change, or private customization is required. In this case, many business will create their own Provider that is subject to change only on their approval. This is commonly used for internal product endpoints.

How does env0 implement it?

env0’s Provider Registry feature allows users to store Providers in a public or private repository and reference it for use within code. Best of all, you are able to pull different versions of the code with simple changes. When running inside env0, we will even handle the authentication without the need for any additional steps or configuration.

env0 doesn’t allow just anyone to change Provider Registry configuration, we have strict RBAC policies. Organization administrators and any user with the “Create & Edit Providers” permission are able to create and edit Providers. The “View Providers” privilege will allow users to view the Provider.

How can I configure it on env0?

Here is a link to our documentation:

https://docs.env0.com/docs/providers

We also thought a guided video would be useful.

https://vimeo.com/825237854

An additional enhancement to what was seen in the video could be to include the script in a CI process of the provider development. As an example, using GitHub actions to automatically push a new release to env0 as it is created.

Additional Information

Once the Provider has been attached you’ll see 2 new tabs appear.

Banner

In the Instructions tab you have the snippet of code used to access the provider from within env0.

Instructions

If you wish to access the Provider from outside env0, additional authentication would be required and the below code will help.

Authentication

In the Platforms tab you have the ability to see which OS and Architecture type is linked with this Provider version.

Platform

There is also a versions dropdown menu in the top right should you wish to view different versions of the same Provider.

Versions

We hope you found this blog interesting and the feature useful.

Should you want to speak to one of the team please reach out to us for a demo or message the author, Chris on LinkedIn or Twitter.