diff --git a/terraform/cos/README.md b/terraform/cos/README.md index 4a951003..86f4953a 100644 --- a/terraform/cos/README.md +++ b/terraform/cos/README.md @@ -41,10 +41,10 @@ This is a Terraform module facilitating the deployment of the COS solution, usin | [internal\_tls](#input\_internal\_tls) | Specify whether to use TLS or not for internal COS communication. By default, TLS is enabled using self-signed-certificates | `bool` | `true` | no | | [loki\_bucket](#input\_loki\_bucket) | Loki bucket name | `string` | `"loki"` | no | | [loki\_coordinator](#input\_loki\_coordinator) | Application configuration for Loki Coordinator. For more details: https://registry.terraform.io/providers/juju/juju/latest/docs/resources/application |
object({
config = optional(map(string), {})
constraints = optional(string, "arch=amd64")
revision = optional(number, null)
storage_directives = optional(map(string), {})
units = optional(number, 3)
}) | `{}` | no |
-| [loki\_worker](#input\_loki\_worker) | Application configuration for all Loki Workers. For more details: https://registry.terraform.io/providers/juju/juju/latest/docs/resources/application | object({
backend_config = optional(map(string), {})
read_config = optional(map(string), {})
write_config = optional(map(string), {})
constraints = optional(string, "arch=amd64")
revision = optional(number, null)
storage_directives = optional(map(string), {})
backend_units = optional(number, 3)
read_units = optional(number, 3)
write_units = optional(number, 3)
}) | `{}` | no |
+| [loki\_worker](#input\_loki\_worker) | Application configuration for all Loki Workers. For more details: https://registry.terraform.io/providers/juju/juju/latest/docs/resources/application | object({
backend_config = optional(map(string), {})
read_config = optional(map(string), {})
write_config = optional(map(string), {})
constraints = optional(string, "arch=amd64")
revision = optional(number, null)
backend_storage_directives = optional(map(string), {})
read_storage_directives = optional(map(string), {})
write_storage_directives = optional(map(string), {})
backend_units = optional(number, 3)
read_units = optional(number, 3)
write_units = optional(number, 3)
}) | `{}` | no |
| [mimir\_bucket](#input\_mimir\_bucket) | Mimir bucket name | `string` | `"mimir"` | no |
| [mimir\_coordinator](#input\_mimir\_coordinator) | Application configuration for Mimir Coordinator. For more details: https://registry.terraform.io/providers/juju/juju/latest/docs/resources/application | object({
config = optional(map(string), {})
constraints = optional(string, "arch=amd64")
revision = optional(number, null)
storage_directives = optional(map(string), {})
units = optional(number, 3)
}) | `{}` | no |
-| [mimir\_worker](#input\_mimir\_worker) | Application configuration for all Mimir Workers. For more details: https://registry.terraform.io/providers/juju/juju/latest/docs/resources/application | object({
backend_config = optional(map(string), {})
read_config = optional(map(string), {})
write_config = optional(map(string), {})
constraints = optional(string, "arch=amd64")
revision = optional(number, null)
storage_directives = optional(map(string), {})
backend_units = optional(number, 3)
read_units = optional(number, 3)
write_units = optional(number, 3)
}) | `{}` | no |
+| [mimir\_worker](#input\_mimir\_worker) | Application configuration for all Mimir Workers. For more details: https://registry.terraform.io/providers/juju/juju/latest/docs/resources/application | object({
backend_config = optional(map(string), {})
read_config = optional(map(string), {})
write_config = optional(map(string), {})
constraints = optional(string, "arch=amd64")
revision = optional(number, null)
backend_storage_directives = optional(map(string), {})
read_storage_directives = optional(map(string), {})
write_storage_directives = optional(map(string), {})
backend_units = optional(number, 3)
read_units = optional(number, 3)
write_units = optional(number, 3)
}) | `{}` | no |
| [model\_uuid](#input\_model\_uuid) | Reference to an existing model resource or data source for the model to deploy to | `string` | n/a | yes |
| [opentelemetry\_collector](#input\_opentelemetry\_collector) | Application configuration for OpenTelemetry Collector. For more details: https://registry.terraform.io/providers/juju/juju/latest/docs/resources/application | object({
app_name = optional(string, "otelcol")
config = optional(map(string), {})
constraints = optional(string, "arch=amd64")
revision = optional(number, null)
storage_directives = optional(map(string), {})
units = optional(number, 1)
}) | `{}` | no |
| [s3\_access\_key](#input\_s3\_access\_key) | S3 access-key credential | `string` | n/a | yes |
diff --git a/terraform/cos/applications.tf b/terraform/cos/applications.tf
index 1c56535a..bd59c7f0 100644
--- a/terraform/cos/applications.tf
+++ b/terraform/cos/applications.tf
@@ -35,34 +35,36 @@ module "grafana" {
}
module "loki" {
- source = "git::https://github.com/canonical/observability-stack//terraform/loki"
- anti_affinity = var.anti_affinity
- channel = var.channel
- model_uuid = var.model_uuid
- s3_endpoint = var.s3_endpoint
- s3_secret_key = var.s3_secret_key
- s3_access_key = var.s3_access_key
- s3_bucket = var.loki_bucket
- s3_integrator_channel = var.s3_integrator.channel
- s3_integrator_config = var.s3_integrator.config
- s3_integrator_constraints = var.s3_integrator.constraints
- s3_integrator_revision = var.s3_integrator.revision
- s3_integrator_storage_directives = var.s3_integrator.storage_directives
- s3_integrator_units = var.s3_integrator.units
- coordinator_config = var.loki_coordinator.config
- coordinator_constraints = var.loki_coordinator.constraints
- coordinator_revision = var.loki_coordinator.revision
- coordinator_storage_directives = var.loki_coordinator.storage_directives
- coordinator_units = var.loki_coordinator.units
- backend_config = var.loki_worker.backend_config
- read_config = var.loki_worker.read_config
- write_config = var.loki_worker.write_config
- worker_constraints = var.loki_worker.constraints
- worker_revision = var.loki_worker.revision
- worker_storage_directives = var.loki_worker.storage_directives
- backend_units = var.loki_worker.backend_units
- read_units = var.loki_worker.read_units
- write_units = var.loki_worker.write_units
+ source = "git::https://github.com/canonical/observability-stack//terraform/loki"
+ anti_affinity = var.anti_affinity
+ channel = var.channel
+ model_uuid = var.model_uuid
+ s3_endpoint = var.s3_endpoint
+ s3_secret_key = var.s3_secret_key
+ s3_access_key = var.s3_access_key
+ s3_bucket = var.loki_bucket
+ s3_integrator_channel = var.s3_integrator.channel
+ s3_integrator_config = var.s3_integrator.config
+ s3_integrator_constraints = var.s3_integrator.constraints
+ s3_integrator_revision = var.s3_integrator.revision
+ s3_integrator_storage_directives = var.s3_integrator.storage_directives
+ s3_integrator_units = var.s3_integrator.units
+ coordinator_config = var.loki_coordinator.config
+ coordinator_constraints = var.loki_coordinator.constraints
+ coordinator_revision = var.loki_coordinator.revision
+ coordinator_storage_directives = var.loki_coordinator.storage_directives
+ coordinator_units = var.loki_coordinator.units
+ backend_config = var.loki_worker.backend_config
+ read_config = var.loki_worker.read_config
+ write_config = var.loki_worker.write_config
+ worker_constraints = var.loki_worker.constraints
+ worker_revision = var.loki_worker.revision
+ backend_worker_storage_directives = var.loki_worker.backend_storage_directives
+ read_worker_storage_directives = var.loki_worker.read_storage_directives
+ write_worker_storage_directives = var.loki_worker.write_storage_directives
+ backend_units = var.loki_worker.backend_units
+ read_units = var.loki_worker.read_units
+ write_units = var.loki_worker.write_units
}
module "mimir" {
@@ -89,19 +91,21 @@ module "mimir" {
"max_global_exemplars_per_user" = "100000"
}
)
- coordinator_constraints = var.mimir_coordinator.constraints
- coordinator_revision = var.mimir_coordinator.revision
- coordinator_storage_directives = var.mimir_coordinator.storage_directives
- coordinator_units = var.mimir_coordinator.units
- backend_config = var.mimir_worker.backend_config
- read_config = var.mimir_worker.read_config
- write_config = var.mimir_worker.write_config
- worker_constraints = var.mimir_worker.constraints
- worker_revision = var.mimir_worker.revision
- worker_storage_directives = var.mimir_worker.storage_directives
- backend_units = var.mimir_worker.backend_units
- read_units = var.mimir_worker.read_units
- write_units = var.mimir_worker.write_units
+ coordinator_constraints = var.mimir_coordinator.constraints
+ coordinator_revision = var.mimir_coordinator.revision
+ coordinator_storage_directives = var.mimir_coordinator.storage_directives
+ coordinator_units = var.mimir_coordinator.units
+ backend_config = var.mimir_worker.backend_config
+ read_config = var.mimir_worker.read_config
+ write_config = var.mimir_worker.write_config
+ worker_constraints = var.mimir_worker.constraints
+ worker_revision = var.mimir_worker.revision
+ backend_worker_storage_directives = var.mimir_worker.backend_storage_directives
+ read_worker_storage_directives = var.mimir_worker.read_storage_directives
+ write_worker_storage_directives = var.mimir_worker.write_storage_directives
+ backend_units = var.mimir_worker.backend_units
+ read_units = var.mimir_worker.read_units
+ write_units = var.mimir_worker.write_units
}
module "opentelemetry_collector" {
@@ -129,40 +133,45 @@ module "ssc" {
}
module "tempo" {
- source = "git::https://github.com/canonical/tempo-operators//terraform"
- anti_affinity = var.anti_affinity
- channel = var.channel
- model_uuid = var.model_uuid
- s3_endpoint = var.s3_endpoint
- s3_access_key = var.s3_access_key
- s3_secret_key = var.s3_secret_key
- s3_bucket = var.tempo_bucket
- s3_integrator_channel = var.s3_integrator.channel
- s3_integrator_config = var.s3_integrator.config
- s3_integrator_constraints = var.s3_integrator.constraints
- s3_integrator_revision = var.s3_integrator.revision
- s3_integrator_storage_directives = var.s3_integrator.storage_directives
- s3_integrator_units = var.s3_integrator.units
- coordinator_config = var.tempo_coordinator.config
- coordinator_constraints = var.tempo_coordinator.constraints
- coordinator_revision = var.tempo_coordinator.revision
- coordinator_storage_directives = var.tempo_coordinator.storage_directives
- coordinator_units = var.tempo_coordinator.units
- querier_config = var.tempo_worker.querier_config
- query_frontend_config = var.tempo_worker.query_frontend_config
- ingester_config = var.tempo_worker.ingester_config
- distributor_config = var.tempo_worker.distributor_config
- compactor_config = var.tempo_worker.compactor_config
- metrics_generator_config = var.tempo_worker.metrics_generator_config
- worker_constraints = var.tempo_worker.constraints
- worker_revision = var.tempo_worker.revision
- worker_storage_directives = var.tempo_worker.storage_directives
- compactor_units = var.tempo_worker.compactor_units
- distributor_units = var.tempo_worker.distributor_units
- ingester_units = var.tempo_worker.ingester_units
- metrics_generator_units = var.tempo_worker.metrics_generator_units
- querier_units = var.tempo_worker.querier_units
- query_frontend_units = var.tempo_worker.query_frontend_units
+ source = "git::https://github.com/canonical/tempo-operators//terraform"
+ anti_affinity = var.anti_affinity
+ channel = var.channel
+ model_uuid = var.model_uuid
+ s3_endpoint = var.s3_endpoint
+ s3_access_key = var.s3_access_key
+ s3_secret_key = var.s3_secret_key
+ s3_bucket = var.tempo_bucket
+ s3_integrator_channel = var.s3_integrator.channel
+ s3_integrator_config = var.s3_integrator.config
+ s3_integrator_constraints = var.s3_integrator.constraints
+ s3_integrator_revision = var.s3_integrator.revision
+ s3_integrator_storage_directives = var.s3_integrator.storage_directives
+ s3_integrator_units = var.s3_integrator.units
+ coordinator_config = var.tempo_coordinator.config
+ coordinator_constraints = var.tempo_coordinator.constraints
+ coordinator_revision = var.tempo_coordinator.revision
+ coordinator_storage_directives = var.tempo_coordinator.storage_directives
+ coordinator_units = var.tempo_coordinator.units
+ querier_config = var.tempo_worker.querier_config
+ query_frontend_config = var.tempo_worker.query_frontend_config
+ ingester_config = var.tempo_worker.ingester_config
+ distributor_config = var.tempo_worker.distributor_config
+ compactor_config = var.tempo_worker.compactor_config
+ metrics_generator_config = var.tempo_worker.metrics_generator_config
+ worker_constraints = var.tempo_worker.constraints
+ worker_revision = var.tempo_worker.revision
+ compactor_worker_storage_directives = var.tempo_worker.compactor_worker_storage_directives
+ distributor_worker_storage_directives = var.tempo_worker.distributor_worker_storage_directives
+ ingester_worker_storage_directives = var.tempo_worker.ingester_worker_storage_directives
+ metrics_generator_worker_storage_directives = var.tempo_worker.metrics_generator_worker_storage_directives
+ querier_worker_storage_directives = var.tempo_worker.querier_worker_storage_directives
+ query_frontend_worker_storage_directives = var.tempo_worker.query_frontend_worker_storage_directives
+ compactor_units = var.tempo_worker.compactor_units
+ distributor_units = var.tempo_worker.distributor_units
+ ingester_units = var.tempo_worker.ingester_units
+ metrics_generator_units = var.tempo_worker.metrics_generator_units
+ querier_units = var.tempo_worker.querier_units
+ query_frontend_units = var.tempo_worker.query_frontend_units
}
module "traefik" {
diff --git a/terraform/cos/variables.tf b/terraform/cos/variables.tf
index e8372714..46150c31 100644
--- a/terraform/cos/variables.tf
+++ b/terraform/cos/variables.tf
@@ -157,15 +157,17 @@ variable "loki_coordinator" {
variable "loki_worker" {
type = object({
- backend_config = optional(map(string), {})
- read_config = optional(map(string), {})
- write_config = optional(map(string), {})
- constraints = optional(string, "arch=amd64")
- revision = optional(number, null)
- storage_directives = optional(map(string), {})
- backend_units = optional(number, 3)
- read_units = optional(number, 3)
- write_units = optional(number, 3)
+ backend_config = optional(map(string), {})
+ read_config = optional(map(string), {})
+ write_config = optional(map(string), {})
+ constraints = optional(string, "arch=amd64")
+ revision = optional(number, null)
+ backend_storage_directives = optional(map(string), {})
+ read_storage_directives = optional(map(string), {})
+ write_storage_directives = optional(map(string), {})
+ backend_units = optional(number, 3)
+ read_units = optional(number, 3)
+ write_units = optional(number, 3)
})
default = {}
description = "Application configuration for all Loki Workers. For more details: https://registry.terraform.io/providers/juju/juju/latest/docs/resources/application"
@@ -185,15 +187,17 @@ variable "mimir_coordinator" {
variable "mimir_worker" {
type = object({
- backend_config = optional(map(string), {})
- read_config = optional(map(string), {})
- write_config = optional(map(string), {})
- constraints = optional(string, "arch=amd64")
- revision = optional(number, null)
- storage_directives = optional(map(string), {})
- backend_units = optional(number, 3)
- read_units = optional(number, 3)
- write_units = optional(number, 3)
+ backend_config = optional(map(string), {})
+ read_config = optional(map(string), {})
+ write_config = optional(map(string), {})
+ constraints = optional(string, "arch=amd64")
+ revision = optional(number, null)
+ backend_storage_directives = optional(map(string), {})
+ read_storage_directives = optional(map(string), {})
+ write_storage_directives = optional(map(string), {})
+ backend_units = optional(number, 3)
+ read_units = optional(number, 3)
+ write_units = optional(number, 3)
})
default = {}
description = "Application configuration for all Mimir Workers. For more details: https://registry.terraform.io/providers/juju/juju/latest/docs/resources/application"
@@ -254,21 +258,26 @@ variable "tempo_coordinator" {
variable "tempo_worker" {
type = object({
- querier_config = optional(map(string), {})
- query_frontend_config = optional(map(string), {})
- ingester_config = optional(map(string), {})
- distributor_config = optional(map(string), {})
- compactor_config = optional(map(string), {})
- metrics_generator_config = optional(map(string), {})
- constraints = optional(string, "arch=amd64")
- revision = optional(number, null)
- storage_directives = optional(map(string), {})
- compactor_units = optional(number, 3)
- distributor_units = optional(number, 3)
- ingester_units = optional(number, 3)
- metrics_generator_units = optional(number, 3)
- querier_units = optional(number, 3)
- query_frontend_units = optional(number, 3)
+ querier_config = optional(map(string), {})
+ query_frontend_config = optional(map(string), {})
+ ingester_config = optional(map(string), {})
+ distributor_config = optional(map(string), {})
+ compactor_config = optional(map(string), {})
+ metrics_generator_config = optional(map(string), {})
+ constraints = optional(string, "arch=amd64")
+ revision = optional(number, null)
+ compactor_worker_storage_directives = optional(map(string), {})
+ distributor_worker_storage_directives = optional(map(string), {})
+ ingester_worker_storage_directives = optional(map(string), {})
+ metrics_generator_worker_storage_directives = optional(map(string), {})
+ querier_worker_storage_directives = optional(map(string), {})
+ query_frontend_worker_storage_directives = optional(map(string), {})
+ compactor_units = optional(number, 3)
+ distributor_units = optional(number, 3)
+ ingester_units = optional(number, 3)
+ metrics_generator_units = optional(number, 3)
+ querier_units = optional(number, 3)
+ query_frontend_units = optional(number, 3)
})
default = {}
description = "Application configuration for all Tempo workers. For more details: https://registry.terraform.io/providers/juju/juju/latest/docs/resources/application"
diff --git a/terraform/loki/README.md b/terraform/loki/README.md
index c3fa27c0..f826c447 100644
--- a/terraform/loki/README.md
+++ b/terraform/loki/README.md
@@ -29,6 +29,7 @@ This is a Terraform module facilitating the deployment of Loki solution, using t
| [backend\_config](#input\_backend\_config) | Map of the backend worker configuration options | `map(string)` | `{}` | no |
| [backend\_name](#input\_backend\_name) | Name of the Loki app with the backend role | `string` | `"loki-backend"` | no |
| [backend\_units](#input\_backend\_units) | Number of Loki worker units with the backend role | `number` | `1` | no |
+| [backend\_worker\_storage\_directives](#input\_backend\_worker\_storage\_directives) | Map of storage used by the backend worker application, which defaults to 1 GB, allocated by Juju | `map(string)` | `{}` | no |
| [channel](#input\_channel) | Channel that the applications are deployed from | `string` | n/a | yes |
| [coordinator\_config](#input\_coordinator\_config) | Map of the coordinator configuration options | `map(string)` | `{}` | no |
| [coordinator\_constraints](#input\_coordinator\_constraints) | String listing constraints for the coordinator application | `string` | `"arch=amd64"` | no |
@@ -39,6 +40,7 @@ This is a Terraform module facilitating the deployment of Loki solution, using t
| [read\_config](#input\_read\_config) | Map of the read worker configuration options | `map(string)` | `{}` | no |
| [read\_name](#input\_read\_name) | Name of the Loki app with the read role | `string` | `"loki-read"` | no |
| [read\_units](#input\_read\_units) | Number of Loki worker units with the read role | `number` | `1` | no |
+| [read\_worker\_storage\_directives](#input\_read\_worker\_storage\_directives) | Map of storage used by the read worker application, which defaults to 1 GB, allocated by Juju | `map(string)` | `{}` | no |
| [s3\_access\_key](#input\_s3\_access\_key) | S3 access-key credential | `string` | n/a | yes |
| [s3\_bucket](#input\_s3\_bucket) | Bucket name | `string` | `"loki"` | no |
| [s3\_endpoint](#input\_s3\_endpoint) | S3 endpoint | `string` | n/a | yes |
@@ -52,10 +54,10 @@ This is a Terraform module facilitating the deployment of Loki solution, using t
| [s3\_secret\_key](#input\_s3\_secret\_key) | S3 secret-key credential | `string` | n/a | yes |
| [worker\_constraints](#input\_worker\_constraints) | String listing constraints for the worker application | `string` | `"arch=amd64"` | no |
| [worker\_revision](#input\_worker\_revision) | Revision number of the worker application | `number` | `null` | no |
-| [worker\_storage\_directives](#input\_worker\_storage\_directives) | Map of storage used by the worker application, which defaults to 1 GB, allocated by Juju | `map(string)` | `{}` | no |
| [write\_config](#input\_write\_config) | Map of the write worker configuration options | `map(string)` | `{}` | no |
| [write\_name](#input\_write\_name) | Name of the Loki app with the write role | `string` | `"loki-write"` | no |
| [write\_units](#input\_write\_units) | Number of Loki worker units with the write role | `number` | `1` | no |
+| [write\_worker\_storage\_directives](#input\_write\_worker\_storage\_directives) | Map of storage used by the write worker application, which defaults to 1 GB, allocated by Juju | `map(string)` | `{}` | no |
## Outputs
diff --git a/terraform/loki/main.tf b/terraform/loki/main.tf
index 138d26bb..bd4465e9 100644
--- a/terraform/loki/main.tf
+++ b/terraform/loki/main.tf
@@ -60,7 +60,7 @@ module "loki_backend" {
}, var.backend_config)
model_uuid = var.model_uuid
revision = var.worker_revision
- storage_directives = var.worker_storage_directives
+ storage_directives = var.backend_worker_storage_directives
units = var.backend_units
}
@@ -76,7 +76,7 @@ module "loki_read" {
}, var.read_config)
model_uuid = var.model_uuid
revision = var.worker_revision
- storage_directives = var.worker_storage_directives
+ storage_directives = var.read_worker_storage_directives
units = var.read_units
}
@@ -92,7 +92,7 @@ module "loki_write" {
}, var.write_config)
model_uuid = var.model_uuid
revision = var.worker_revision
- storage_directives = var.worker_storage_directives
+ storage_directives = var.write_worker_storage_directives
units = var.write_units
}
diff --git a/terraform/loki/variables.tf b/terraform/loki/variables.tf
index c3676c6f..46f5bbd8 100644
--- a/terraform/loki/variables.tf
+++ b/terraform/loki/variables.tf
@@ -172,8 +172,20 @@ variable "coordinator_storage_directives" {
default = {}
}
-variable "worker_storage_directives" {
- description = "Map of storage used by the worker application, which defaults to 1 GB, allocated by Juju"
+variable "backend_worker_storage_directives" {
+ description = "Map of storage used by the backend worker application, which defaults to 1 GB, allocated by Juju"
+ type = map(string)
+ default = {}
+}
+
+variable "read_worker_storage_directives" {
+ description = "Map of storage used by the read worker application, which defaults to 1 GB, allocated by Juju"
+ type = map(string)
+ default = {}
+}
+
+variable "write_worker_storage_directives" {
+ description = "Map of storage used by the write worker application, which defaults to 1 GB, allocated by Juju"
type = map(string)
default = {}
}
diff --git a/terraform/mimir/README.md b/terraform/mimir/README.md
index db9b0698..2b04d652 100644
--- a/terraform/mimir/README.md
+++ b/terraform/mimir/README.md
@@ -29,6 +29,7 @@ This is a Terraform module facilitating the deployment of Mimir solution, using
| [backend\_config](#input\_backend\_config) | Map of the backend worker configuration options | `map(string)` | `{}` | no |
| [backend\_name](#input\_backend\_name) | Name of the Mimir backend (meta role) app | `string` | `"mimir-backend"` | no |
| [backend\_units](#input\_backend\_units) | Number of Mimir worker units with the backend meta role | `number` | `1` | no |
+| [backend\_worker\_storage\_directives](#input\_backend\_worker\_storage\_directives) | Map of storage used by the backend worker application, which defaults to 1 GB, allocated by Juju | `map(string)` | `{}` | no |
| [channel](#input\_channel) | Channel that the applications are deployed from | `string` | n/a | yes |
| [coordinator\_config](#input\_coordinator\_config) | Map of the coordinator configuration options | `map(string)` | `{}` | no |
| [coordinator\_constraints](#input\_coordinator\_constraints) | String listing constraints for the coordinator application | `string` | `"arch=amd64"` | no |
@@ -39,6 +40,7 @@ This is a Terraform module facilitating the deployment of Mimir solution, using
| [read\_config](#input\_read\_config) | Map of the read worker configuration options | `map(string)` | `{}` | no |
| [read\_name](#input\_read\_name) | Name of the Mimir read (meta role) app | `string` | `"mimir-read"` | no |
| [read\_units](#input\_read\_units) | Number of Mimir worker units with the read meta role | `number` | `1` | no |
+| [read\_worker\_storage\_directives](#input\_read\_worker\_storage\_directives) | Map of storage used by the read worker application, which defaults to 1 GB, allocated by Juju | `map(string)` | `{}` | no |
| [s3\_access\_key](#input\_s3\_access\_key) | S3 access-key credential | `string` | n/a | yes |
| [s3\_bucket](#input\_s3\_bucket) | Bucket name | `string` | `"mimir"` | no |
| [s3\_endpoint](#input\_s3\_endpoint) | S3 endpoint | `string` | n/a | yes |
@@ -52,10 +54,10 @@ This is a Terraform module facilitating the deployment of Mimir solution, using
| [s3\_secret\_key](#input\_s3\_secret\_key) | S3 secret-key credential | `string` | n/a | yes |
| [worker\_constraints](#input\_worker\_constraints) | String listing constraints for the worker application | `string` | `"arch=amd64"` | no |
| [worker\_revision](#input\_worker\_revision) | Revision number of the worker application | `number` | `null` | no |
-| [worker\_storage\_directives](#input\_worker\_storage\_directives) | Map of storage used by the worker application, which defaults to 1 GB, allocated by Juju | `map(string)` | `{}` | no |
| [write\_config](#input\_write\_config) | Map of the write worker configuration options | `map(string)` | `{}` | no |
| [write\_name](#input\_write\_name) | Name of the Mimir write (meta role) app | `string` | `"mimir-write"` | no |
| [write\_units](#input\_write\_units) | Number of Mimir worker units with the write meta role | `number` | `1` | no |
+| [write\_worker\_storage\_directives](#input\_write\_worker\_storage\_directives) | Map of storage used by the write worker application, which defaults to 1 GB, allocated by Juju | `map(string)` | `{}` | no |
## Outputs
diff --git a/terraform/mimir/main.tf b/terraform/mimir/main.tf
index 92b030b8..98ee580b 100644
--- a/terraform/mimir/main.tf
+++ b/terraform/mimir/main.tf
@@ -61,7 +61,7 @@ module "mimir_backend" {
}, var.backend_config)
model_uuid = var.model_uuid
revision = var.worker_revision
- storage_directives = var.worker_storage_directives
+ storage_directives = var.backend_worker_storage_directives
units = var.backend_units
}
@@ -77,7 +77,7 @@ module "mimir_read" {
constraints = var.anti_affinity ? "arch=amd64 tags=anti-pod.app.kubernetes.io/name=${var.read_name},anti-pod.topology-key=kubernetes.io/hostname" : var.worker_constraints
model_uuid = var.model_uuid
revision = var.worker_revision
- storage_directives = var.worker_storage_directives
+ storage_directives = var.read_worker_storage_directives
units = var.read_units
}
@@ -93,7 +93,7 @@ module "mimir_write" {
constraints = var.anti_affinity ? "arch=amd64 tags=anti-pod.app.kubernetes.io/name=${var.write_name},anti-pod.topology-key=kubernetes.io/hostname" : var.worker_constraints
model_uuid = var.model_uuid
revision = var.worker_revision
- storage_directives = var.worker_storage_directives
+ storage_directives = var.write_worker_storage_directives
units = var.write_units
}
diff --git a/terraform/mimir/variables.tf b/terraform/mimir/variables.tf
index fa908ce8..f4f717fd 100644
--- a/terraform/mimir/variables.tf
+++ b/terraform/mimir/variables.tf
@@ -172,8 +172,20 @@ variable "coordinator_storage_directives" {
default = {}
}
-variable "worker_storage_directives" {
- description = "Map of storage used by the worker application, which defaults to 1 GB, allocated by Juju"
+variable "backend_worker_storage_directives" {
+ description = "Map of storage used by the backend worker application, which defaults to 1 GB, allocated by Juju"
+ type = map(string)
+ default = {}
+}
+
+variable "read_worker_storage_directives" {
+ description = "Map of storage used by the read worker application, which defaults to 1 GB, allocated by Juju"
+ type = map(string)
+ default = {}
+}
+
+variable "write_worker_storage_directives" {
+ description = "Map of storage used by the write worker application, which defaults to 1 GB, allocated by Juju"
type = map(string)
default = {}
}