Skip to content
This repository has been archived by the owner on Sep 22, 2020. It is now read-only.

Commit

Permalink
Initial commit
Browse files Browse the repository at this point in the history
This was originally hashicorp/terraform#7058, however due to issues
(documented in the README) it can't be included in Terraform mainline.
More than a few people have still found it useful though, and an
external plugin has been requested.

This has been tested as of today and is still functional (the HTTP test
was skipped but the Route53 tests are all functional, and the plugin
works outside of the tests).

Also added code to use the dnssimple and powerdns lego modules.
  • Loading branch information
Chris Marchesi committed Sep 5, 2016
0 parents commit 583ad21
Show file tree
Hide file tree
Showing 17 changed files with 2,387 additions and 0 deletions.
27 changes: 27 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
*.dll
*.exe
.DS_Store
example.tf
terraform.tfplan
terraform.tfstate
bin/
modules-dev/
/pkg/
website/.vagrant
website/.bundle
website/build
website/node_modules
.vagrant/
*.backup
./*.tfstate
.terraform/
*.log
*.bak
*~
.*.swp
.idea
*.iml
*.test
*.iml

website/vendor
14 changes: 14 additions & 0 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
Copyright 2016 PayByPhone Technologies, Inc.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

15 changes: 15 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
test:
go test -v ./plugin/providers/acme

testacc:
TF_ACC=1 go test -v ./plugin/providers/acme -run="TestAcc"

build: deps
gox -osarch="linux/amd64 windows/amd64 darwin/amd64" \
-output="pkg/{{.OS}}_{{.Arch}}/terraform-provider-acme" .

deps:
go get -u github.com/mitchellh/gox

clean:
rm -rf pkg/
38 changes: 38 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
Terraform ACME Provider
========================

This repository contains a plugin form of the ACME provider that was proposed
and submitted in [Terraform PR #7058][1].

## Why a Plugin?

As documented in the thread in the PR, making use of [`xenolf/lego`][2], while
making the task a little less daunting, nontheless created some coupling of the
authorization and certificate generation process that (rightfully) did not sit
well with the core TF team. Further to that, as the authorization process allows
the use of DNS provdiers that Terraform has support for, the potential to cross
provider boundaries exists.

Hence it was determined that it might not be the best fit for upstream for the
time being.

Nonetheless, the code in this repository is still completely functional and
there have been a few people that have found it useful. An external plugin was
requested, so here it is. :)

## Installing

See the [Plugin Basics][3] page of the Terraform docs to see how to plunk this
into your config. Check the [releases page][4] of this repo to get releases for
Linux, OS X, and Windows.

## Usage

The documentation from the old PR has been preserved and you can look [here][5]
to find it.

[1]: https://github.com/hashicorp/terraform/pull/7058
[2]: https://github.com/xenolf/lego
[3]: https://www.terraform.io/docs/plugins/basics.html
[4]: https://github.com/paybyphone/terraform-provider-acme/releases
[5]: website/source/docs/providers/acme
12 changes: 12 additions & 0 deletions main.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package main

import (
"github.com/hashicorp/terraform/plugin"
"github.com/paybyphone/terraform-provider-acme/plugin/providers/acme"
)

func main() {
plugin.Serve(&plugin.ServeOpts{
ProviderFunc: acme.Provider,
})
}
Loading

0 comments on commit 583ad21

Please sign in to comment.