Terraform: Allow to specify plugin server

Created on 1 Sep 2017  ยท  4Comments  ยท  Source: hashicorp/terraform

This is an enhancement request.

In 0.10.x TF will look to automatically download plugins from HC official release repo

$ terraform init
Initializing provider plugins...
- Checking for available provider plugins on https://releases.hashicorp.com...
...

That covers most of what I need.

I do however have some local/custom plugins stored on a local Artifactory server using the same naming pattern as currently expected by tf init:

// The URL for releases follows the pattern:
//    https://releases.hashicorp.com/terraform-provider-name/<x.y.z>/terraform-provider-name_<x.y.z>_<os>_<arch>.<ext>
//

(absent the domain name of course)

In fact, I have a _virtual_ repository set up (if you're familiar with Artifactory at all) that looks like this:

virtual repo --> local plugin repo --> hashicorp official repo

so that by referencing the virtual I'm viewpathing into the union.

What I'd like is the ability to specify the plugin repo server (perhaps by overloading the current plugin-dir flag)

$ terraform init -plugin-dir https://artifactory.example.com/artifactory/hashicorp
Initializing provider plugins...
- Checking for available provider plugins on https://artifactory.example.com/artifactory/hashicorp
...

This is somewhat related to #15801

cli enhancement

Most helpful comment

+1

For corporate environments this is a basic requirement. Many companies operate their Terraform runtime within private networks, unaccessible to the Internet. I really would like to host my own "provider mirror" in a private network instead of relying on contacting https://releases.hashicorp.com

All 4 comments

Hi @russroy! Thanks for this feature request.

As a simplification for 0.10.0 we decided to exclude support for automatic installation of third-party plugins because it allowed us to depend on some details of the pre-existing releases system.

We are planning to support automatic installation of third-party plugins in a future release, by actually specifying and implementing a protocol for this that a third-party repository could implement. Right now it is in theory possible to mimic some implementation details of releases.hashicorp.com, but we plan to change these details in the future so we chose not to support that for the time being.

However, I totally agree that supporting installation from third-party servers is something we need and it'll be coming once we've put some infrastructure in place on our end to allow us to eliminate the assumptions about releases.hashicorp.com in particular.

+1

For corporate environments this is a basic requirement. Many companies operate their Terraform runtime within private networks, unaccessible to the Internet. I really would like to host my own "provider mirror" in a private network instead of relying on contacting https://releases.hashicorp.com

Hi all! @JELaVallee just pointed out that we also have #15252 open for this capability, so I'm going to close this one just to consolidate the discussion over there.

I'm going to lock this issue because it has been closed for _30 days_ โณ. This helps our maintainers find and focus on the active issues.

If you have found a problem that seems similar to this, please open a new issue and complete the issue template so we can capture all the details necessary to investigate further.

Was this page helpful?
0 / 5 - 0 ratings