Skip to content

evbox/terraform-provider-mongodb

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Terraform Provider

Requirements

  • Terraform 0.10.x
  • Go 1.8 (to build the provider plugin)

Building The Provider

Clone repository to: $GOPATH/src/github.com/everonhq/terraform-provider-mongodb

$ mkdir -p $GOPATH/src/github.com/everonhq; cd $GOPATH/src/github.com/everonhq
$ git clone [email protected]:everonhq/terraform-provider-mongodb

Enter the provider directory, create the go.mod and build the provider

$ cd $GOPATH/src/github.com/everonhq/terraform-provider-mongodb
$ go mod init
$ make build

Install provider into Terraform plugins dir

$ cp ~/go/bin/terraform-provider-mongodb ~/.terraform.d/plugins/darwin_amd64/

Once code updated, install provider, and run example tf:

cd ..
make build
cp ~/go/bin/terraform-provider-mongodb ~/.terraform.d/plugins/darwin_amd64/
cd example
terraform init
terraform apply

Using the provider

Provider with auth enabled:

provider "mongodb" {
    url = "mongodb://localhost:27017"
    auth_database = "admin"
    auth_username = "db-admin-user"
    auth_password = var.admin_password
}

Then, create terraform.tfvars with the password variable defined:

admin_password = "<provider login passsword>"

Provider without auth:

provider "mongodb" {
    url = "mongodb://localhost:27017/test"
}

resource "mongodb_user" "user" {
    database = "test"
    username = "user"
    password = "pass"
    roles = ["read", "dbAdmin", "userAdmin"]
    authentication_restrictions = jsonencode([{
                                                 clientSource  = ["127.0.0.1"]
                                                 serverAddress = ["127.0.0.1"]
                                              }])
}

Developing the Provider

If you wish to work on the provider, you'll first need Go installed on your machine (version 1.8+ is required). You'll also need to correctly setup a GOPATH, as well as adding $GOPATH/bin to your $PATH.

To compile the provider, run make build. This will build the provider and put the provider binary in the $GOPATH/bin directory.

$ make build
...
$ $GOPATH/bin/terraform-provider-mongodb
...

In order to test the provider, you can simply run make test.

$ make test

In order to run the full suite of Acceptance tests, run make testacc.

Note: Acceptance tests create real resources, and often cost money to run.

$ make testacc

About

Terraform provider for MongoDB

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Go 74.0%
  • Shell 12.4%
  • Makefile 6.7%
  • HTML 4.7%
  • HCL 2.2%