juju_controller (Resource)

A resource that represents a Juju Controller.

Schema

Required

  • cloud (Attributes) The cloud where the controller will operate. (see below for nested schema)

  • cloud_credential (Attributes, Sensitive) Cloud credentials to use for bootstrapping the controller. (see below for nested schema)

  • juju_binary (String) The path to the juju CLI binary. If you have installed Juju as a snap, use the path /snap/juju/current/bin/juju to avoid snap confinement issues.

  • name (String) The name to be assigned to the controller. Changing this value will require the controller to be destroyed and recreated by terraform.

Optional

  • agent_version (String) The version of agent binaries.

  • bootstrap_base (String) The base for the bootstrap machine.

  • bootstrap_config (Map of String) Configuration options that apply during the bootstrap process.

  • bootstrap_constraints (Map of String) Constraints for the bootstrap machine.

  • controller_config (Map of String) Configuration options for the bootstrapped controller. Note that removing a key from this map will not unset it in the controller, instead it will be left unchanged on the controller.

  • controller_model_config (Map of String) Configuration options to be set for the controller model.

  • destroy_flags (Attributes) Additional flags for destroying the controller. Changing any of these values will require applying before they can be taken into account during destroy. (see below for nested schema)

  • model_constraints (Map of String) Constraints for all workload machines in models.

  • model_default (Map of String) Configuration options to be set for all models.

  • storage_pool (Attributes) Options for the initial storage pool (see below for nested schema)

Read-Only

  • api_addresses (List of String) API addresses of the controller.

  • ca_cert (String) CA certificate for the controller.

  • controller_uuid (String) The UUID of the controller.

  • id (String) The ID of this resource.

  • password (String, Sensitive) Admin password for the controller.

  • username (String) Admin username for the controller.

Nested Schema for cloud

Required:

  • auth_types (Set of String) The authentication type(s) supported by the cloud.

  • name (String) The name of the cloud

  • type (String) The type of the cloud .

Optional:

  • ca_certificates (Set of String) CA certificates for the cloud.

  • config (Map of String) Configuration options for the cloud.

  • endpoint (String) The API endpoint for the cloud.

  • host_cloud_region (String) The host cloud region for the cloud.

  • region (Attributes) The cloud region where the controller will operate. (see below for nested schema)

Nested Schema for cloud.region

Required:

  • name (String) The name of the region.

Optional:

  • endpoint (String) The API endpoint for the region.

  • identity_endpoint (String) The identity endpoint for the region.

  • storage_endpoint (String) The storage endpoint for the region.

Nested Schema for cloud_credential

Required:

  • attributes (Map of String) Authentication attributes (key-value pairs specific to the auth type).

  • auth_type (String) The authentication type (e.g., ‘userpass’, ‘oauth2’, ‘access-key’).

  • name (String) The name of the credential.

Nested Schema for destroy_flags

Optional:

  • destroy_all_models (Boolean) Destroy all models in the controller.

  • destroy_storage (Boolean) Destroy all storage instances managed by the controller.

  • force (Boolean) Force destroy models ignoring any errors.

  • model_timeout (Number) Timeout for each step of force model destruction.

  • release_storage (Boolean) Release all storage instances from management of the controller, without destroying them.

Nested Schema for storage_pool

Required:

  • name (String) The name of the storage pool.

  • type (String) The storage pool type

Optional:

  • attributes (Map of String) Additional storage pool attributes.