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 = {} }