README.md 2.67 KB
Newer Older
Yann KAISER's avatar
Yann KAISER committed
1 2 3 4
# Terraform Provider for Open Nebula

### Installation information

5 6 7 8
You need to install go first: https://golang.org/doc/install

After go is installed and set up, just type:

Patrick TAVARES's avatar
Patrick TAVARES committed
9
    $ go get gitlab.ippon.fr/ims/terraform-provider-one
10 11 12
    $ go get gitlab.ippon.fr/ims/opennebula-api

You can now build terraform-provider-one by going into the project folder into your $GO_PATH, and run
Yann KAISER's avatar
Yann KAISER committed
13

14
    $ go build
15

16
This will create a **terraform-provider-one** that you need to put in the root of your terraform files directories.
Yann KAISER's avatar
Yann KAISER committed
17

18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
### Optional post-installation Step

You might want to have your provider binary be in a specific directory, so you do not have to copy it in every terraform project you have.
This is possible using the terraformrc config file.

Copy your **terraform-provider-one** binary in a folder, like `/usr/local/bin`, and write this in `~/.terraformrc`:

```
providers {
  one = "$YOUR_PROVIDER_PATH"
}
```

Example for `/usr/local/bin`:

```
providers {
  one = "/usr/local/bin/terraform-provider-one"
}
```

Yann KAISER's avatar
Yann KAISER committed
39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91
#### **ROADMAP**

| Action | Done | Tested |
| ---    | ---  | ---    |
| Create VM | Yes | Yes |
| Deploy VM | Yes | Yes |
| Rename VM | Yes | Yes |
| Resize VM | Yes | Yes |
| Chown VM  | Yes | Yes |
| Multiple Disks on Creation | Yes | Yes |
| Disk-hotplug on VM | Yes | Yes |
| Network linking | Yes | Yes |
| Delete VM | Yes | Yes |
| User inputs in VM | Yes | Yes |
| Costs | Yes | Yes |
| --- | --- | --- |
| Create VM template | Yes | Yes |
| Template data source | Yes | Yes |
| Use VM template on VM creation | Yes | Yes |
| --- | --- | --- |
| Contextualisation | Yes | Yes |
| Variables / attributes | Yes | Yes |
| User inputs | Yes | Yes |
| --- | --- | --- |
| Service template creation | Yes | Yes |
| Service instanciation | Yes | Yes |
| --- | --- | --- |
| Resource mapping on creation | **Not entirely** | **Not entirely** |
| --- | --- | --- |
| Image creation | Yes | Yes |
| Image data source | Yes | Yes |
| Image deletion | Yes | Yes |
| --- | --- | --- |
| Virtual Network creation | Yes | Yes |
| Virtual Network deletion | Yes | Yes |
| --- | --- | --- |
| User creation | Yes | **No** |
| User data source | Yes | Yes |
| User deletion | Yes | **No** |
| Group creation | Yes | **No** |
| Group deletion | Yes | **No** |
| --- | --- | --- |
| Group VM creation | Yes | **No** |
| Group VM deletion | Yes | **No** |


Mapping on creation signifies that the resource shall not be created if it matches any other existing resource, depending on certain conditions, and that it will be mapped to that existing resource (it will have the same id). It is still in development.

Mapping conditions:
- VM: name OR any ip address
- Netork : name or base address
- Image : name
- VM Template : name