A Terraform provider for configuring the
Drone continuous delivery platform.
Example
provider "drone" {
server = "https:://ci.example.com/"
token = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0ZXh0Ijoib2N0b2NhdCIsInR5cGUiOiJ1c2VyIn0.Fg0eYxO9x2CfGIvIHDZKhQbCGbRAsSB_iRDJlDEW6vc"
}
resource "drone_repo" "hello_world" {
repository = "octocat/hello-world"
visability = "public"
hooks = ["push", "pull_request", "tag", "deployment"]
}
resource "drone_secret" "master_password" {
repository = "${resource.hello_world.repository}"
name = "master_password"
value = "correct horse battery staple"
events = ["push", "pull_request", "tag", "deployment"]
}
Provider
Example Usage
provider "drone" {
server = "https:://ci.example.com/"
token = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0ZXh0Ijoib2N0b2NhdCIsInR5cGUiOiJ1c2VyIn0.Fg0eYxO9x2CfGIvIHDZKhQbCGbRAsSB_iRDJlDEW6vc"
}
Argument Reference
server
- (Optional) The Drone servers url, It must be provided, but can also
be sourced from the DRONE_SERVER
environment variable.
token
- (Optional) The Drone servers api token, It must be provided, but can
also be sourced from the DRONE_TOKEN
environment variable.
Resources
drone_registry
Manage a repository registry.
Example Usage
resource "drone_registry" "docker_io" {
repository = "octocat/hello-world"
address = "drone.io"
username = "octocat"
password = "correct horse battery staple"
}
Argument Reference
repository
- (Required) Repository name (e.g. octocat/hello-world
).
address
- (Required) Registry address.
username
- (Required) Registry username.
password
- (Required) Registry password.
drone_repo
Activate and configure a repository.
Example Usage
resource "drone_repo" "hello_world" {
repository = "octocat/hello-world"
visability = "public"
hooks = ["push", "pull_request", "tag", "deployment"]
}
Argument Reference
repository
- (Required) Repository name (e.g. octocat/hello-world
).
trusted
- (Optional) Repository is trusted (default: false
).
gated
- (Optional) Repository is gated (default: false
).
timeout
- (Optional) Repository timeout (default: 0
).
visibility
- (Optional) Repository visibility (default: private
).
hooks
- (Optional) List of hooks this repository should setup is limited to,
values must be push
, pull_request
, tag
, and/or deployment
.
drone_secret
Manage a repository secret.
Example Usage
resource "drone_secret" "master_password" {
repository = "octocat/hello-world"
name = "master_password"
value = "correct horse battery staple"
events = ["push", "pull_request", "tag", "deployment"]
}
Argument Reference
repository
- (Required) Repository name (e.g. octocat/hello-world
).
name
- (Required) Secret name.
value
- (Required) Secret value.
images
- (Optional) List of images this secret is limited to.
events
- (Optional) List of events this repository should setup is limited to,
values must be push
, pull_request
, tag
, and/or deployment
(default: ["push", "tag", "deployment"]
).
drone_user
Manage a user.
Example Usage
resource "drone_user" "octocat" {
login = "octocat"
}
Argument Reference
login
- (Required) Login name.
Source
To install from source:
git clone git://github.com/artisanofcode/terraform-provider-drone.git
cd terraform-provider-drone
go get
go build
Licence
This project is licensed under the MIT licence.
This project uses Semantic Versioning.