website: Update Registry documentation for Terraform 0.13 release
Co-authored-by: Tom Bamford <tbamford@hashicorp.com>
After Width: | Height: | Size: 246 KiB |
After Width: | Height: | Size: 239 KiB |
After Width: | Height: | Size: 292 KiB |
After Width: | Height: | Size: 26 KiB |
|
@ -3,25 +3,33 @@ layout: "registry"
|
||||||
page_title: "Terraform Registry"
|
page_title: "Terraform Registry"
|
||||||
sidebar_current: "docs-registry-home"
|
sidebar_current: "docs-registry-home"
|
||||||
description: |-
|
description: |-
|
||||||
The Terraform Registry is a repository of modules written by the Terraform community.
|
The Terraform Registry is a repository of providers and modules written by the Terraform community.
|
||||||
---
|
---
|
||||||
|
|
||||||
# Terraform Registry
|
# Terraform Registry
|
||||||
|
|
||||||
The [Terraform Registry](https://registry.terraform.io) is a repository
|
The [Terraform Registry](https://registry.terraform.io) is an interactive resource for discovering a wide selection of integrations (Providers) and configuration packages (Modules) for use with Terraform. The Registry includes solutions developed by HashiCorp, Third-party vendors, and those created by our Terraform community. The Registry aims to connect our users with solutions, and to help new users get started with Terraform more quickly, by sharing examples of how Terraform is written, and find pre-made modules for infrastructure components you require.
|
||||||
of modules written by the Terraform community. The registry can
|
|
||||||
help you get started with Terraform more quickly, see examples of how
|
|
||||||
Terraform is written, and find pre-made modules for infrastructure components
|
|
||||||
you require.
|
|
||||||
|
|
||||||
The Terraform Registry is integrated directly into Terraform to make
|
![screenshot: terraform registry landing page](./images/registry1.png)
|
||||||
consuming modules easy. See [the usage information](/docs/registry/modules/use.html#using-modules).
|
|
||||||
|
|
||||||
You can also publish your own modules on the Terraform Registry. You may
|
The Terraform Registry is integrated [directly into Terraform](https://www.terraform.io/docs/configuration/providers.html) to make consuming Providers and modules easy. Anyone can publish both Providers and Modules on the Registry – you may use the [Public Registry](https://registry.terraform.io) for viewing and publishing public providers and modules; For private modules, you can use a [Private Registry](https://www.terraform.io/docs/registry/private.html), or [reference repositories and other sources directly](https://www.terraform.io/docs/modules/sources.html).
|
||||||
use the [public registry](https://registry.terraform.io) for public modules.
|
|
||||||
For private modules, you can use a [Private Registry](/docs/registry/private.html),
|
|
||||||
or [reference repositories and other sources directly](/docs/modules/sources.html).
|
|
||||||
Some features are available only for registry modules, such as versioning
|
|
||||||
and documentation generation.
|
|
||||||
|
|
||||||
Use the navigation to the left to learn more about using the registry.
|
Use the navigation to the left to learn more about using the registry.
|
||||||
|
|
||||||
|
## Navigating the Registry
|
||||||
|
|
||||||
|
As the Terraform Ecosystem continues to grow, the Registry is designed to make it easy to discover and search through integrations and solutions across dozens of categories. Select a Provider or Module card to learn more, use filters to select the tier (see tiers), or use the search at the top of the Registry to find what you’re looking for. Note that search supports keyboard navigation:
|
||||||
|
|
||||||
|
![screenshot: terraform registry browse](./images/registry2.png)
|
||||||
|
|
||||||
|
## User Account
|
||||||
|
|
||||||
|
Anyone interested in publishing a Provider or Module can create an account and sign in to the Terraform Registry using a GitHub account. Choose Sign-in, and follow the login prompts. Once you have authorized the use of your GitHub account and are signed in, you are able to publish both Providers and Modules, directly from one of the Repositories you manage. To learn more, see [Publishing to the Registry](https://www.terraform.io/docs/registry/providers/publishing.html).
|
||||||
|
|
||||||
|
![screenshot: terraform registry sign in](./images/user-account.png)
|
||||||
|
|
||||||
|
## Getting Help
|
||||||
|
|
||||||
|
We welcome any feedback you have throughout the process and encourage you to reach out if you have any questions or issues with the Terraform Registry by sending us an [email](mailto:terraform-registry-beta@hashicorp.com). The providers and modules in The Terraform Registry are published and maintained either directly by HashiCorp, by trusted HashiCorp partners and the Terraform Community ([see tiers & namespaces](./providers/overview.html#provider-tiers-amp-namespaces)). If you run into issues or have additional contributions to make to a provider or module, you can submit a GitHub issue by selecting the "Report an issue" link on the detail view:
|
||||||
|
|
||||||
|
![Provider report issue link](./images/registry-issue.png)
|
||||||
|
|
After Width: | Height: | Size: 97 KiB |
|
@ -8,25 +8,19 @@ description: |-
|
||||||
|
|
||||||
# Verified Modules
|
# Verified Modules
|
||||||
|
|
||||||
Verified modules are reviewed by HashiCorp and actively maintained by
|
Verified modules are reviewed by HashiCorp and actively maintained by contributors to stay up-to-date and compatible with both Terraform and their respective providers.
|
||||||
contributors to stay up-to-date and compatible with both Terraform and
|
|
||||||
their respective providers.
|
|
||||||
|
|
||||||
The blue verification badge appears next to modules that are verified.
|
The verified badge appears next to modules that are published by a verified source.
|
||||||
|
|
||||||
![Verified module listing](/assets/images/docs/registry-verified.png)
|
![Verified module listing](./images/registry-verified.png)
|
||||||
|
|
||||||
Verified modules are expected to be actively maintained by the Cloud providers.
|
Verified modules are expected to be actively maintained by HashiCorp partners.
|
||||||
The verified badge isn’t indicative of flexibility or feature support; very
|
The verified badge isn’t indicative of flexibility or feature support; very
|
||||||
simple modules can be verified just because they're great examples of modules.
|
simple modules can be verified just because they're great examples of modules.
|
||||||
Likewise, an unverified module could be extremely high quality and actively
|
Likewise, an unverified module could be extremely high quality and actively
|
||||||
maintained. An unverified module shouldn't be assumed to be poor quality, it
|
maintained. An unverified module shouldn't be assumed to be poor quality, it
|
||||||
only means it hasn't been created by a HashiCorp partner.
|
only means it hasn't been created by a HashiCorp partner.
|
||||||
|
|
||||||
Module verification is currently a manual process restricted to a small group
|
|
||||||
of trusted HashiCorp partners. In the coming months, we'll be expanding
|
|
||||||
verification to enable the broader community to verify their modules.
|
|
||||||
|
|
||||||
When [using registry modules](/docs/registry/modules/use.html), there is no
|
When [using registry modules](/docs/registry/modules/use.html), there is no
|
||||||
difference between a verified and unverified module; they are used the same
|
difference between a verified and unverified module; they are used the same
|
||||||
way.
|
way.
|
||||||
|
|
After Width: | Height: | Size: 5.4 KiB |
After Width: | Height: | Size: 8.6 KiB |
After Width: | Height: | Size: 285 KiB |
After Width: | Height: | Size: 6.3 KiB |
After Width: | Height: | Size: 216 KiB |
After Width: | Height: | Size: 17 KiB |
|
@ -8,8 +8,6 @@ description: |-
|
||||||
|
|
||||||
# Recommended Provider Binary Operating Systems and Architectures
|
# Recommended Provider Binary Operating Systems and Architectures
|
||||||
|
|
||||||
-> __Publishing Beta__<br>Welcome! Thanks for your interest participating in our Providers in the Registry beta! Paired with Terraform 0.13, our vision is to make it easier than ever to discover, distribute, and maintain your provider(s). We welcome any feedback you have throughout the process and encourage you to reach out if you have any questions or issues by emailing terraform-registry-beta@hashicorp.com.
|
|
||||||
|
|
||||||
We recommend the following operating system / architecture combinations for compiled binaries available in the registry (this list is already satisfied by our [recommended **.goreleaser.yml** configuration file](https://github.com/hashicorp/terraform-provider-scaffolding/blob/master/.goreleaser.yml)):
|
We recommend the following operating system / architecture combinations for compiled binaries available in the registry (this list is already satisfied by our [recommended **.goreleaser.yml** configuration file](https://github.com/hashicorp/terraform-provider-scaffolding/blob/master/.goreleaser.yml)):
|
||||||
|
|
||||||
* Darwin / AMD64
|
* Darwin / AMD64
|
||||||
|
|
|
@ -0,0 +1,49 @@
|
||||||
|
---
|
||||||
|
layout: "registry"
|
||||||
|
page_title: "Terraform Registry - Providers Overview"
|
||||||
|
description: |-
|
||||||
|
Overview of providers in the Terraform Registry
|
||||||
|
---
|
||||||
|
|
||||||
|
# Overview
|
||||||
|
|
||||||
|
The Registry offers both a place for users to find Providers, and also acts as the Public origin source for Terraform, meaning that all published providers are directly available from within the Terraform CLI. Providers are how Terraform integrates with any upstream API, whether another HashiCorp technology, or the many hundreds of third-party services that Terraform integrates with today. Creating a Provider is designed to be easy and intuitive, and the Registry is here to help you share it with the rest of the community.
|
||||||
|
|
||||||
|
## Provider Tiers & Namespaces
|
||||||
|
|
||||||
|
Terraform Providers are published and maintained by a variety of sources, including HashiCorp, HashiCorp Technology Partners, and the Terraform Community. Tiers and Badges are used in the Registry to denote the source of the Provider. Additionally, namespaces are used to help users identify the organization or publisher responsible for the integration, as shown in the table below.
|
||||||
|
|
||||||
|
<table border="0" style="border-collapse: collapse; width: 100%;">
|
||||||
|
<tbody>
|
||||||
|
<tr style="height: 21px;">
|
||||||
|
<td style="width: 12.4839%; height: 21px;"><strong>Tier</strong></td>
|
||||||
|
<td style="width: 55.7271%; height: 21px;"><strong>Description</strong></td>
|
||||||
|
<td style="width: 31.7889%; height: 21px;"><strong>Namespace</strong></td>
|
||||||
|
</tr>
|
||||||
|
<tr style="height: 21px;">
|
||||||
|
<td style="width: 12.4839%; height: 21px;"><img src="./images/official-tier.png" alt="" /></td>
|
||||||
|
<td style="width: 55.7271%; height: 21px;"><i><span style="font-weight: 400;">Official Providers are owned and maintained by HashiCorp </span></i></td>
|
||||||
|
<td style="width: 31.7889%; height: 21px;"><code><span style="font-weight: 400;">HashiCorp</span></code></td>
|
||||||
|
</tr>
|
||||||
|
<tr style="height: 21px;">
|
||||||
|
<td style="width: 12.4839%; height: 21px;"><img src="./images/verified-tier.png" alt="" /></td>
|
||||||
|
<td style="width: 55.7271%; height: 21px;"><i><span style="font-weight: 400;">Verified Providers are owned and maintained by third-party technology partners. Providers in this tier indicate HashiCorp has verified the authenticity of the Provider’s publisher, and that the partner is a member of the </span></i><a href="https://www.hashicorp.com/ecosystem/become-a-partner/"><i><span style="font-weight: 400;">HashiCorp Technology Partner Program</span></i></a><i><span style="font-weight: 400;">.</span></i></td>
|
||||||
|
<td style="width: 31.7889%; height: 21px;"><span style="font-weight: 400;">Third Party Organization, e.g. </span><code><span style="font-weight: 400;">mongodb/mongodbatlas</span></code></td>
|
||||||
|
</tr>
|
||||||
|
<tr style="height: 21px;">
|
||||||
|
<td style="width: 12.4839%; height: 21px;"><img src="./images/community-tier.png" alt="" /></td>
|
||||||
|
<td style="width: 55.7271%; height: 21px;">Community Providers are published to the Terraform Registry by individual maintainers, groups of maintainers, or other members of the Terraform Community.</td>
|
||||||
|
<td style="width: 31.7889%; height: 21px;"><br />Maintainer’s individual or organization, e.g. <code>DeviaVir/gsuite</code></td>
|
||||||
|
</tr>
|
||||||
|
<tr style="height: 21px;">
|
||||||
|
<td style="width: 12.4839%; height: 21px;"><img src="./images/archived-tier.png" alt="" /></td>
|
||||||
|
<td style="width: 55.7271%; height: 21px;">Archived Providers are Official or Verified Providers that are no longer maintained by HashiCorp or the community. This may occur if an API is deprecated or interest was low.</td>
|
||||||
|
<td style="width: 31.7889%; height: 21px;"><code>HashiCorp</code> or Third-Party</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
<p></p>
|
||||||
|
|
||||||
|
## Verified Provider Development Program
|
||||||
|
|
||||||
|
For any organization interested in joining our Provider Development Program, indicated with a `Verified` badge on published providers or modules, please take a look at our [Program Details](https://www.terraform.io/guides/terraform-provider-development-program.html) for further information.
|
|
@ -8,41 +8,28 @@ description: |-
|
||||||
|
|
||||||
# Publishing Providers
|
# Publishing Providers
|
||||||
|
|
||||||
-> __Publishing Beta__<br>Welcome! Thanks for your interest participating in our Providers in the Registry beta! Paired with Terraform 0.13, our vision is to make it easier than ever to discover, distribute, and maintain your provider(s). We welcome any feedback you have throughout the process and encourage you to reach out if you have any questions or issues by emailing terraform-registry-beta@hashicorp.com.
|
Anyone can instantly publish and share a provider by signing into the Registry using their GitHub account and following a few easy steps. First we will walk through how to prepare a [Terraform Provider](https://www.terraform.io/docs/plugins/provider.html) for publishing, and then provide the steps to have it published live on the Registry.
|
||||||
|
|
||||||
|
|
||||||
## Preparing your Provider
|
## Preparing your Provider
|
||||||
|
|
||||||
### Writing a Provider
|
### Writing a Provider
|
||||||
|
|
||||||
Providers published to the Terraform Registry are written and built in the same way as other Terraform Providers. For guidance on how to write a provider, see [Writing Custom Providers](/docs/extend/writing-custom-providers.html).
|
Providers published to the Terraform Registry are written and built in the same way as other Terraform Providers. A variety of resources are available to help our contributors build a quality integration:
|
||||||
|
|
||||||
The provider repository on GitHub must match the pattern `terraform-provider-{NAME}`, and the repository must be public.
|
* Writing a custom provider – [Full Tutorial](https://learn.hashicorp.com/tutorials/terraform/provider-setup)
|
||||||
|
* How-to build a provider – [Live video](https://www.youtube.com/watch?v=2BvpqmFpchI)
|
||||||
|
* Sample provider developed by [partner](https://blog.container-solutions.com/write-terraform-provider-part-1)
|
||||||
|
* Example providers for reference: [AWS](https://github.com/terraform-providers/terraform-provider-aws), [AzureRM](https://github.com/terraform-providers/terraform-provider-azurerm)
|
||||||
|
* [Contributing to Terraform guidelines](https://www.terraform.io/docs/extend/community/contributing.html)
|
||||||
|
|
||||||
#### Licensing a Verified Provider
|
~> **Important:** In order to be detected by the Terraform Registry, all provider repositories on GitHub must match the pattern `terraform-provider-{NAME}`, and the repository must be public.
|
||||||
|
|
||||||
All Terraform Verified providers must contain one of the following open source licenses. This requirement does not apply to Community providers:
|
|
||||||
|
|
||||||
* CDDL 1.0, 2.0
|
|
||||||
* CPL 1.0
|
|
||||||
* Eclipse Public License (EPL) 1.0
|
|
||||||
* MPL 1.0, 1.1, 2.0
|
|
||||||
* APSL 2.0
|
|
||||||
* Ruby's Licensing
|
|
||||||
* AFL 2.1, 3.0
|
|
||||||
* Apache License 2.0
|
|
||||||
* Artistic License 1.0, 2.0
|
|
||||||
* Apache Software License (ASL) 1.1
|
|
||||||
* Boost Software License
|
|
||||||
* BSD, BSD 3-clause, "BSD-new"
|
|
||||||
* CC-BY
|
|
||||||
* Microsoft Public License (MS-PL)
|
|
||||||
* MIT
|
|
||||||
|
|
||||||
### Documenting your Provider
|
### Documenting your Provider
|
||||||
|
|
||||||
Your provider should contain an overview document (index.md), as well as a doc for each resource and data-source. See [Documenting Providers](./docs.html) for details about how to ensure your provider documentation renders properly on the Terraform Registry.
|
Your provider should contain an overview document (index.md), as well as a doc for each resource and data-source. See [Documenting Providers](./docs.html) for details about how to ensure your provider documentation renders properly on the Terraform Registry.
|
||||||
|
|
||||||
-> In order to test how documents will render in the Terraform Registry, you can use the [Terraform Registry Doc Preview Tool](https://registry.terraform.io/tools/doc-preview).
|
-> **Note:** In order to test how documents will render in the Terraform Registry, you can use the [Terraform Registry Doc Preview Tool](https://registry.terraform.io/tools/doc-preview).
|
||||||
|
|
||||||
### Creating a GitHub Release
|
### Creating a GitHub Release
|
||||||
|
|
||||||
|
@ -84,13 +71,13 @@ The release must meet the following criteria:
|
||||||
|
|
||||||
## Publishing to the Registry
|
## Publishing to the Registry
|
||||||
|
|
||||||
### Creating a Terraform Registry Account
|
### Signing in
|
||||||
|
|
||||||
Before publishing a provider, you must first authenticate to the Terraform Registry with a GitHub account. The account must have admin permissions on the provider repository to create the required webhooks for publishing future provider versions.
|
Before publishing a provider, you must first sign in to the Terraform Registry with a GitHub account (see [Signing into the Registry](/docs/registry/index.html#creating-an-account)). The GitHub account used must have the following permission scopes on the provider repository you’d like to publish. Permissions can be verified by going to your [GitHub Settings](https://github.com/settings/connections/applications/) and selecting the Terraform Registry Application under Authorized OAuth Apps.
|
||||||
|
|
||||||
Click [Sign-In](https://registry.terraform.io/sign-in) to authenticate to the Terraform Registry with your GitHub user account.
|
![screenshot: terraform registry github oauth required permissions](./images/github-oauth-permissions.png)
|
||||||
|
|
||||||
### Adding Your GPG Signing Key
|
### Prepare and Add a Signing Key
|
||||||
|
|
||||||
All provider releases are required to be signed, thus you must provide HashiCorp with the public key for the GPG keypair that you will be signing releases with. The Terraform Registry will validate that the release is signed with this key when publishing each version, and Terraform will verify this during `terraform init`.
|
All provider releases are required to be signed, thus you must provide HashiCorp with the public key for the GPG keypair that you will be signing releases with. The Terraform Registry will validate that the release is signed with this key when publishing each version, and Terraform will verify this during `terraform init`.
|
||||||
|
|
||||||
|
@ -108,6 +95,10 @@ If you would like to publish a provider under your username (not a GitHub organi
|
||||||
|
|
||||||
In order to publish a provider under a GitHub organization, your public key must be added to the Terraform Registry by a HashiCorp employee. You can email it to terraform-registry@hashicorp.com, or your HashiCorp contact person (if you have one).
|
In order to publish a provider under a GitHub organization, your public key must be added to the Terraform Registry by a HashiCorp employee. You can email it to terraform-registry@hashicorp.com, or your HashiCorp contact person (if you have one).
|
||||||
|
|
||||||
### Publishing Your provider
|
### Publish Your Provider
|
||||||
|
|
||||||
In the top-right navigation, select [Publish > Provider](https://registry.terraform.io/publish/provider) to begin the publishing process. Follow the prompts to select the organization and repository you would like to publish.
|
In the top-right navigation, select [Publish > Provider](https://registry.terraform.io/publish/provider) to begin the publishing process. Follow the prompts to select the organization and repository you would like to publish.
|
||||||
|
|
||||||
|
#### Terms of Use
|
||||||
|
|
||||||
|
Anything published to the Terraform Registry is subject to our Terms of use. A copy of the terms are available for viewing at https://registry.terraform.io/terms
|
||||||
|
|
|
@ -1,16 +0,0 @@
|
||||||
---
|
|
||||||
layout: "registry"
|
|
||||||
page_title: "Terraform Registry - Support"
|
|
||||||
sidebar_current: "docs-registry-support"
|
|
||||||
description: |-
|
|
||||||
Where to go for help with modules found in the Terraform Registry.
|
|
||||||
---
|
|
||||||
|
|
||||||
# Getting Help
|
|
||||||
|
|
||||||
The modules in The Terraform Registry are provided and maintained by trusted
|
|
||||||
HashiCorp partners and the Terraform Community. If you run into issues using a
|
|
||||||
module or have additional contributions to make, you can find a link to the
|
|
||||||
Module's GitHub issues on the module page.
|
|
||||||
|
|
||||||
![Module report issue link](/assets/images/docs/registry-support.png)
|
|
|
@ -6,6 +6,10 @@
|
||||||
<li>
|
<li>
|
||||||
<a href="#">Providers</a>
|
<a href="#">Providers</a>
|
||||||
<ul class="nav nav-auto-expand">
|
<ul class="nav nav-auto-expand">
|
||||||
|
<li<%= sidebar_current("docs-registry-provider-overview") %>>
|
||||||
|
<a href="/docs/registry/providers/overview.html">Overview</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
<li<%= sidebar_current("docs-registry-provider-publishing") %>>
|
<li<%= sidebar_current("docs-registry-provider-publishing") %>>
|
||||||
<a href="/docs/registry/providers/publishing.html">Publishing Providers</a>
|
<a href="/docs/registry/providers/publishing.html">Publishing Providers</a>
|
||||||
</li>
|
</li>
|
||||||
|
@ -17,6 +21,10 @@
|
||||||
<li<%= sidebar_current("docs-registry-provider-os-arch") %>>
|
<li<%= sidebar_current("docs-registry-provider-os-arch") %>>
|
||||||
<a href="/docs/registry/providers/os-arch.html">Recommended OS and Architecture</a>
|
<a href="/docs/registry/providers/os-arch.html">Recommended OS and Architecture</a>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<a href="/guides/terraform-provider-development-program.html">Provider Development Program</a>
|
||||||
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
|
@ -45,9 +53,6 @@
|
||||||
<a href="/docs/registry/api.html">Registry API</a>
|
<a href="/docs/registry/api.html">Registry API</a>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li<%= sidebar_current("docs-registry-support") %>>
|
|
||||||
<a href="/docs/registry/support.html">Registry Support</a>
|
|
||||||
</li>
|
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<%= partial("layouts/otherdocs", :locals => { :skip => "Terraform Registry" }) %>
|
<%= partial("layouts/otherdocs", :locals => { :skip => "Terraform Registry" }) %>
|
||||||
|
|