website: Update Registry documentation for Terraform 0.13 release

Co-authored-by: Tom Bamford <tbamford@hashicorp.com>
This commit is contained in:
Tony Carmichael 2020-08-06 11:29:26 -06:00 committed by Nick Fagerlund
parent 796eba95da
commit cde98a3172
18 changed files with 102 additions and 73 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 246 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 239 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 292 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

View File

@ -3,25 +3,33 @@ layout: "registry"
page_title: "Terraform Registry"
sidebar_current: "docs-registry-home"
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
The [Terraform Registry](https://registry.terraform.io) is a repository
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](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.
The Terraform Registry is integrated directly into Terraform to make
consuming modules easy. See [the usage information](/docs/registry/modules/use.html#using-modules).
![screenshot: terraform registry landing page](./images/registry1.png)
You can also publish your own modules on the Terraform Registry. You may
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.
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 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 youre 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)

Binary file not shown.

After

Width:  |  Height:  |  Size: 97 KiB

View File

@ -8,25 +8,19 @@ description: |-
# Verified Modules
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.
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.
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 isnt indicative of flexibility or feature support; very
simple modules can be verified just because they're great examples of modules.
Likewise, an unverified module could be extremely high quality and actively
maintained. An unverified module shouldn't be assumed to be poor quality, it
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
difference between a verified and unverified module; they are used the same
way.

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 285 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 216 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

View File

@ -8,8 +8,6 @@ description: |-
# 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)):
* Darwin / AMD64

View File

@ -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&rsquo;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&rsquo;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.

View File

@ -8,41 +8,28 @@ description: |-
# 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
### 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
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
~> **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.
### 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.
-> 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
@ -84,13 +71,13 @@ The release must meet the following criteria:
## 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 youd 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`.
@ -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).
### 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.
#### 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

View File

@ -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)

View File

@ -6,6 +6,10 @@
<li>
<a href="#">Providers</a>
<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") %>>
<a href="/docs/registry/providers/publishing.html">Publishing Providers</a>
</li>
@ -17,6 +21,10 @@
<li<%= sidebar_current("docs-registry-provider-os-arch") %>>
<a href="/docs/registry/providers/os-arch.html">Recommended OS and Architecture</a>
</li>
<li>
<a href="/guides/terraform-provider-development-program.html">Provider Development Program</a>
</li>
</ul>
</li>
@ -45,9 +53,6 @@
<a href="/docs/registry/api.html">Registry API</a>
</li>
<li<%= sidebar_current("docs-registry-support") %>>
<a href="/docs/registry/support.html">Registry Support</a>
</li>
</ul>
<%= partial("layouts/otherdocs", :locals => { :skip => "Terraform Registry" }) %>