OpenNebula provider for Terraform.
Bug reports and pull requests are welcome on GitHub at https://github.com/OpenNebula/addon-terraform/issues.
Please follow How to Contribute rules for any pull request.
- Leaders:
- Tino Vazquez (https://github.com/tinova)
- Jean-Philippe Fourès (https://github.com/jaypif)
- Pierre Lafièvre (https://github.com/treywelsh)
- Edouard Hur (https://github.com/hekmon)
- Benjamin Gustin (https://github.com/aloababa)
- Leverages OpenNebula's XML/RPC API
- Tested on OpenNebula version 5.8
This provider has been initiated to use official Goca from OpenNebula
For Older OpenNebula and Terraform releases, you can use non official provider from Runtastic and enhanced by BlackBerry.
Current definition of these data sources are supported:
- Groups
- Image
- Security Groups
- Template
- Virtual Data Center
- Virtual Network
Current definition of these resources are supported:
- Groups onegroup
- Image oneimage
- Security Groups onesecgroup
- Template onetemplate
- Virtual Data Center onevdc
- Virtual Machine onevm
- Virtual Network onevnet
Following OpenNebula Objects are not currently supported:
- ACL oneacl
- Accounting oneacct
- Hosts Management onehost
- Clusters onecluster
- Users oneuser
- Datastore onedatastore
- Market onemarket
- Market App onemarketapp
- Virtual Router onevrouter
- Zone onezone
Because this Add-On is the OpenNebula Terraform Provider, it requires to have Terraform installed on your machine. Instructions to install terraform are accessible here
Please note that this version is indended to be used with Terraform version 0.12+
The only way to use this add-on is to compile it from source code. OpenNebula Terraform provider is written in Golang, you must have a Golang environment to compile the provider.
A Golang dependency management tool is also required. This README is based on goland/dep
- Get the code of the OpenNebula provider.
- Get provider dependencies (if you use go dep)
repopath$ dep init
- Compile
repopath$ go build -o terraform-provider-opennebula
Warning: this provider is a "Third party" provider. It must follow these rules for the binary name.
Create a terraform file to use OpenNebula provider (follow instructions on Wiki page of the project) and run terraform init
.
This will initialize terraform to use OpenNebula Provider.
Work In Progress
Opennebula provider has the following supports parameters:
Parameter | Description |
---|---|
endpoint | URL to the OpenNebula XML-RPC API |
username | OpenNebula username |
password | OpenNebula password OR token |
version | Version of the provider (optional) |
Lots of Examples and details of data sources and resources parameters are available on the Wiki.
Other Projects about Terraform provider exists. This project has been inspired by Runtastic and BlackBerry projects
This project is under MPL v2.0 License. For more details about the License, please read LICENCE file.