env zero Provider Registry
The env zero Provider Registry is a private registry for Terraform providers, allowing you to privately share and reuse Terraform providers within your organization. You can access your organization’s provider registry through theRegistry
link in the left sidebar, and choosing the Providers
tab:

Publishing A Provider
NOTEThis guide assumes you already have a provider set up, preferably with
goreleaser
.Creating A Provider
As an env zero admin (or with a custom role with theCreate & Edit Providers
permission), you should have permission to create a provider.
Navigate to Registry
on the navigation bar, and click the Providers
tab. There you will see the Create New Provider
button:

Provider’s typeYour provider’s type is essentially its name, and should match your provider’s files. For example, if your binaries look like
terraform-provider-aws_1.1.1_linux_amd64.zip
, then your provider’s type should be aws
.NoteYour binaries’ names should match this format -
<type>_<semver>_<anything>_<you>_<want>.zip
, like the example above terraform-provider-aws_1.1.1_linux_amd64.zip
Creating A GPG Key
Terraform uses GPG keys in order to authenticate the identity of the entity that complied and signed the binaries of the provider.Normally, when creating a release, you should provide goreleaser with your GPG_FINGERPRINT, which should also be set on env zero. For more information regarding how to generate your GPG Key, check out GitHub’s guide. Once you have your key generated, you’ll need to create it on env zero. Navigate to
Organization Settings > Keys
and scroll down to GPG Keys
. You will see the Add GPG Key
button:

GPG Key IDGPG Key ID is referring to the GPG_FINGERPRINT, the same one you provided
goreleaser
with. its a 16 charecters hexadecimal string, that is calculated by summerizing your key content, and it should be unique per key.Releasing A Version
As part of your CI you should have a version releaser setup. Terraform recommends usinggoreleaser
, and so do we. You can make sure your .goreleaser
file is configured correctly following this guide by Terraform
Assuming you have a version complied and ready to ship, you will need to upload the binaries you wish to support.
Creating A Version
The first step on the release is creating a version in env zero, following the Version API Reference.Uploading A Version
If creating a version was done correctly, you will receive a URL (valid for 1 hour) to which you can upload yourzip
, SHA256SUMS
and SHA256SUMS.sig
files. Note that for each file type you will need a specific content-type
header:
zip
-application/zip
SHA256SUMS
-application/octet-stream
SHA256SUMS.sig
-application/pgp-signature
cURL
request:
bash
Bash
To watch your provider’s versions, navigate to its page on env zero by clicking its card.

Platforms
tab will show you the supported binaries.

Using A Provider
Now that your provider is set up every user in your organization with theView Providers
permission (available by default to organization user) can start using it from within env zero, or outside of it.
Set up the provider in your Terraform file by copying and pasting the following block.
hcl