-
Notifications
You must be signed in to change notification settings - Fork 9.5k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
website: Edits to updated Registry documentation
- Edits to registry overview - Add index link as 'overview' (header links are semi-invisible) - move providers/overview.html to providers/index.html - Edits to providers overview - fix filename of os-arch - edits to provider publishing
- Loading branch information
1 parent
cde98a3
commit 7bc75a1
Showing
5 changed files
with
50 additions
and
31 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -8,28 +8,28 @@ description: |- | |
|
||
# Terraform Registry | ||
|
||
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](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 our Terraform community. Our goal with the Registry is to provide plugins to manage any infrastructure API, pre-made modules to quickly configure common infrastructure components, and examples of how to write quality Terraform code. | ||
|
||
![screenshot: terraform registry landing page](./images/registry1.png) | ||
|
||
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). | ||
The Terraform Registry is integrated [directly into Terraform](/docs/configuration/provider-requirements.html) to make it easy to use providers and modules. Anyone can publish and consume providers and modules on the public [Terraform Registry](https://registry.terraform.io). (To publish private modules within your organization, you can use a [private registry](/docs/registry/private.html) or [reference repositories and other sources directly](/docs/modules/sources.html).) | ||
|
||
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 Terraform 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: | ||
As the Terraform ecosystem continues to grow, the Registry is designed to make it easy to discover integrations and solutions across dozens of categories. Select a provider or module card to learn more, filter results to a [specific tier](./providers/index.html#provider-tiers-amp-namespaces), or use the search field 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). | ||
Anyone interested in publishing a provider or module can create an account and sign in to the Terraform Registry using a GitHub account. Click the "Sign-in" button, and follow the login prompts. Once you have authorized the use of your GitHub account and are signed in, you can publish both providers and modules directly from one of the repositories you manage. To learn more, see [Publishing to the Registry](/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:[email protected]). 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: | ||
We welcome any feedback about using or publishing to the Registry. Please reach out if you have any questions or issues with the Terraform Registry by sending us an [email](mailto:[email protected]). The providers and modules in The Terraform Registry are published and maintained either directly by HashiCorp, by trusted HashiCorp partners, or by members of the Terraform community ([see tiers & namespaces](./providers/index.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) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
File renamed without changes.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -8,20 +8,23 @@ description: |- | |
|
||
# Publishing Providers | ||
|
||
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. | ||
Anyone can publish and share a provider by signing into the Registry using their GitHub account and following a few easy steps. | ||
|
||
This page describes how to prepare a [Terraform Provider](/docs/plugins/provider.html) for publishing, and how to publish a prepared provider using the Registry's interface. | ||
|
||
## Preparing your Provider | ||
|
||
### Writing a Provider | ||
|
||
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: | ||
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: | ||
|
||
* 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) | ||
- [Writing a custom provider – full tutorial](https://learn.hashicorp.com/tutorials/terraform/provider-setup) | ||
- [How to build a provider – Video](https://www.youtube.com/watch?v=2BvpqmFpchI) | ||
- [Sample provider developed by a HashiCorp 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](/docs/extend/community/contributing.html) | ||
|
||
~> **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. | ||
|
||
|
@@ -39,14 +42,14 @@ Terraform CLI and the Terraform Registry follow the Semantic Versioning specific | |
|
||
We have a list of [recommend OS / architecture combinations](/docs/registry/providers/os-arch.html) for which we suggest most providers create binaries. | ||
|
||
~> **Important:** Avoid modifying or replacing an already-released version of a Provider, as this will cause checksum errors for users when attempting to download the plugin. Instead, if changes are necessary, please release as a new version. | ||
~> **Important:** Avoid modifying or replacing an already-released version of a provider, as this will cause checksum errors for users when attempting to download the plugin. Instead, if changes are necessary, please release as a new version. | ||
|
||
#### Using GoReleaser locally | ||
|
||
GoReleaser is a tool for building Go projects for multiple platforms, creating a checksums file, and signing the release. It can also upload your release to GitHub Releases. | ||
|
||
1. Install [GoReleaser](https://goreleaser.com) using the [installation instructions](https://goreleaser.com/install/). | ||
1. Copy the [.goreleaser.yml file](https://github.com/hashicorp/terraform-provider-scaffolding/blob/master/.goreleaser.yml) from the hashicorp/scaffolding provider repository. | ||
1. Copy the [.goreleaser.yml file](https://github.com/hashicorp/terraform-provider-scaffolding/blob/master/.goreleaser.yml) from the [hashicorp/terraform-provider-scaffolding](https://github.com/hashicorp/terraform-provider-scaffolding) repository. | ||
1. Cache the password for your GPG private key with `gpg --armor --detach-sign` (see note below). | ||
1. Set your `GITHUB_TOKEN` to a [Personal Access Token](https://github.com/settings/tokens) that has the **public_repo** scope. | ||
1. Tag your version with `git tag v1.2.3`. | ||
|
@@ -75,9 +78,9 @@ The release must meet the following criteria: | |
|
||
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. | ||
|
||
![screenshot: terraform registry github oauth required permissions](./images/github-oauth-permissions.png) | ||
![screenshot: terraform registry github oauth required permissions](./images/github-oauth-permissions.png) | ||
|
||
### Prepare and Add a Signing Key | ||
### Preparing and Adding 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`. | ||
|
||
|
@@ -95,10 +98,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 [email protected], or your HashiCorp contact person (if you have one). | ||
|
||
### Publish Your Provider | ||
### Publishing 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 | ||
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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters