Files
terraform-provider-bitbucke…/docs/index.md
Gavin Bunney 0b0d03cda2 Port to GitHub actions & publish to Terraform registry (#39)
* Port to GitHub actions

* Fix

* Make docs terraform registry compatible
2021-07-14 17:47:45 -07:00

3.2 KiB
Executable File

Bitbucket Server Provider

Bitbucket Server is the self-hosted version of Bitbucket. Whilst terraform provides a default bitbucket provider, this only works for Bitbucket Cloud - this provider unlocks the power of terraform to manage your self-hosted Bitbucket Server instance.

Installation

Terraform 0.13+

The provider can be installed and managed automatically by Terraform. Sample versions.tf file :

terraform {
  required_version = ">= 0.13"

  required_providers {
    bitbucketserver = {
      source  = "gavinbunney/bitbucketserver"
    }
  }
}

Terraform 0.12

Install latest version

The following one-liner script will fetch the latest provider version and download it to your ~/.terraform.d/plugins directory.

$ mkdir -p ~/.terraform.d/plugins && \
      curl -Ls https://api.github.com/repos/gavinbunney/terraform-provider-bitbucketserver/releases/latest \
      | jq -r ".assets[] | select(.browser_download_url | contains(\"$(uname -s | tr A-Z a-z)\")) | select(.browser_download_url | contains(\"amd64\")) | .browser_download_url" \
      | xargs -n 1 curl -Lo ~/.terraform.d/plugins/terraform-provider-bitbucketserver.zip && \
      pushd ~/.terraform.d/plugins/ && \
      unzip ~/.terraform.d/plugins/terraform-provider-bitbucketserver.zip -d terraform-provider-bitbucketserver-tmp && \
      mv terraform-provider-bitbucketserver-tmp/terraform-provider-bitbucketserver* . && \
      chmod +x terraform-provider-bitbucketserver* && \
      rm -rf terraform-provider-bitbucketserver-tmp && \
      rm -rf terraform-provider-bitbucketserver.zip && \
      popd

Install manually

If you don't want to use the one-liner above, you can download a binary for your system from the release page, then either place it at the root of your Terraform folder or in the Terraform plugin folder on your system.

Configuration

The provider supports parameters to determine the bitbucket server and admin user/password to use.

provider "bitbucketserver" {
  server   = "https://mybitbucket.example.com"
  username = "admin"
  password = "password"
}

Authentication

The username and password specified should be of a user with sufficient privileges to perform the operations you are after. Typically this is a user with SYS_ADMIN global permissions.

Environment Variables

You can also specify the provider configuration using the following env vars:

  • BITBUCKET_SERVER
  • BITBUCKER_USERNAME
  • BITBUCKET_PASSWORD

Note: The hcl provider configuration takes precedence over the environment variables.

Example - Creating a Project and Repository

Creating a project and repository is super simple with this provider:

provider "bitbucketserver" {
  server   = "https://mybitbucket.example.com"
  username = "admin"
  password = "password"
}

resource "bitbucketserver_project" "test" {
  key         = "TEST"
  name        = "test-01"
  description = "Test project"
}

resource "bitbucketserver_repository" "test" {
  project     = bitbucketserver_project.test.key
  name        = "repo-01"
  description = "Test repository"
}