Comparing Juju bundle and Terraform Provider (v0.15.0) support

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.

Using existing entities from your juju controller or model

Terraform datasources, reference information of existing entities, but do not allow for their modification.

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.

2 Likes