Skip to content

Commit

Permalink
Update our documentation to push "Getting Started" better (#15866)
Browse files Browse the repository at this point in the history
* update plugin/provider to make clear this section isn't needed for regular use

* add some links and notes about getting started

* remove the mention of binaries... I 'm not sure it's needed yet

* 'Installing Terraform Providers' section

* sometimes I can't words good

* move the 'installing providers' block

* cleanup of terms

* copy that update to plugins/provider too
  • Loading branch information
catsby authored Aug 21, 2017
1 parent e42130b commit e2272f7
Show file tree
Hide file tree
Showing 4 changed files with 24 additions and 12 deletions.
12 changes: 7 additions & 5 deletions website/docs/plugins/basics.html.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,15 +8,17 @@ description: |-

# Plugin Basics

~> **Advanced topic!** Plugin development is a highly advanced
topic in Terraform, and is not required knowledge for day-to-day usage.
If you don't plan on writing any plugins, this section of the documentation is
not necessary to read. For general use of Terraform, please see our
[Intro to Terraform](/intro/index.html) and [Getting
Started](/intro/getting-started/install.html) guides.

This page documents the basics of how the plugin system in Terraform
works, and how to setup a basic development environment for plugin development
if you're writing a Terraform plugin.

~> **Advanced topic!** Plugin development is a highly advanced
topic in Terraform, and is not required knowledge for day-to-day usage.
If you don't plan on writing any plugins, we recommend not reading
this section of the documentation.

## How it Works

Terraform providers and provisioners are provided via plugins. Each plugin
Expand Down
12 changes: 7 additions & 5 deletions website/docs/plugins/provider.html.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,13 @@ description: |-

# Provider Plugins

~> **Advanced topic!** Plugin development is a highly advanced
topic in Terraform, and is not required knowledge for day-to-day usage.
If you don't plan on writing any plugins, this section of the documentation is
not necessary to read. For general use of Terraform, please see our
[Intro to Terraform](/intro/index.html) and [Getting
Started](/intro/getting-started/install.html) guides.

A provider in Terraform is responsible for the lifecycle of a resource:
create, read, update, delete. An example of a provider is AWS, which
can manage resources of type `aws_instance`, `aws_eip`, `aws_elb`, etc.
Expand All @@ -22,11 +29,6 @@ The primary reasons to care about provider plugins are:
* You want to write a completely new provider for custom, internal
systems such as a private inventory management system.

~> **Advanced topic!** Plugin development is a highly advanced
topic in Terraform, and is not required knowledge for day-to-day usage.
If you don't plan on writing any plugins, we recommend not reading
this section of the documentation.

If you're interested in provider development, then read on. The remainder
of this page will assume you're familiar with
[plugin basics](/docs/plugins/basics.html) and that you already have
Expand Down
9 changes: 7 additions & 2 deletions website/intro/getting-started/build.html.md
Original file line number Diff line number Diff line change
Expand Up @@ -121,8 +121,13 @@ an existing configuration from version control -- is `terraform init`, which
initializes various local settings and data that will be used by subsequent
commands.

In particular, this command will install the plugins for the providers in
use within the configuration, which in this case is just the `aws` provider:
Terraform uses a plugin based architecture to support the numerous infrastructure
and service providers available. As of Terraform version 0.10.0, each "Provider" is it's
own encapsulated binary distributed separately from Terraform itself. The
`terraform init` command will automatically download and install any Provider
binary for the providers in use within the configuration, which in this case is
just the `aws` provider:


```
$ terraform init
Expand Down
3 changes: 3 additions & 0 deletions website/layouts/guides.erb
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
<% wrap_layout :inner do %>
<% content_for :sidebar do %>
<ul class="nav docs-sidenav">
<li<%= sidebar_current("guides-getting-started") %>>
<a href="/intro/getting-started/install.html">Getting Started</a>
</li>
<li<%= sidebar_current("guides-writing-custom-terraform-providers") %>>
<a href="/guides/writing-custom-terraform-providers.html">Writing Custom Providers</a>
</li>
Expand Down

0 comments on commit e2272f7

Please sign in to comment.