Note: Local charms and uploading local file resources will not be implemented.
Support Table
| Bundle | Terraform | ||
|---|---|---|---|
| Application | |||
| bindings | yes | yes | |
| charm name | yes | yes | |
| charm base | yes | yes | |
| charm channel | yes | yes | |
| local charm | yes | no | |
| charm revision | yes | yes | |
| constraints | yes | yes | |
| devices | yes | no | |
| expose | yes | yes | |
| exposed-endpoints expose-to-cidrs | yes | yes | |
| exposed-endpoints expose-to-spaces | yes | yes | |
| num_units/scale | yes | yes | |
| options/config | yes | yes | |
| resource by revision | yes | yes | |
| resource by oci-image | yes | yes | |
| resource by local file to upload | yes | no | |
| series | deprecated | deprecated | |
| storage | yes | yes | |
| to (placement) | yes | yes* | |
| trust | yes | yes | |
| Offer | |||
| acl | yes | planned | |
| application name | yes | yes | |
| endpoints | yes | yes | |
| offer name | yes | yes | |
| Machine | |||
| annotations | yes | no | |
| base | yes | yes | |
| constraints | yes | yes | |
| manual machine | no | yes | |
| placement (lxd) | yes | yes* | |
| series | deprecated | deprecated | |
| Relation | |||
| application name | yes | yes | |
| application endpoint | yes | yes | |
| offer url | yes | yes | |
| SaaS | |||
| url | yes | via offer data source |
Additional features of the Terraform Provider for Juju
The following features can be used via Terraform Resources.
- Add cloud credentials for existing clouds with the juju_credential resource.
- Add a Kubernetes cloud with the juju_kubernetes_cloud resource.
- Add a Juju user with the juju_user resource.
- Add a Juju model with the juju_model resource.
- Add a user secret with the juju_secret resource.
- Import ssh keys to a Juju model.
- Manage model access.
- Manage offer access - coming soon in v0.16.0.
- Manage secret access.
Using existing entities from your juju controller or model
Terraform datasources, reference information of existing entities, but do not allow for their modification.
- Machine:
E.g.
juju deploy <bundle> --map-machines=existing, use a machine datasource. - Model: use a model datasource.
- Offer: use an offer datasource.
- Secret: use a secret datasource.
Bundle tags not supported by the Terraform Provider for Juju
Note: variables are implicitly supported by terraform
- bundle
- default-base (default base for charms defined in the bundle)
- description
- docs
- issues
- name (of bundle)
- series (default series for charms defined in the bundle)
- source
- tags
- type
- website
Footnotes
Placement
will be reimplemented in the near future as machines. One example of the issues to be fixed.