cluster |
Parameters for the Percona Server for MongoDB cluster |
object({ image = optional(string, “percona/percona-server-mongodb”) tag = optional(string) database_name = optional(string, “database”) replicas = optional(number, 1) node_selector = optional(map(string), {}) annotations = optional(map(string), {}) }) |
{}
|
no |
name |
Name used for the helm chart release and the associated resources |
string
|
"percona-mongodb"
|
no |
namespace |
Namespace of ArmoniK resources |
string
|
"default"
|
no |
operator |
Parameters for the Percona PSMDB Operator deployment |
object({ helm_chart_repository = optional(string, “https://percona.github.io/percona-helm-charts/”) helm_chart_name = optional(string, “psmdb-operator”) helm_chart_version = optional(string) image = optional(string, “percona/percona-server-mongodb-operator”) tag = optional(string) node_selector = optional(map(string), {}) annotations = optional(map(string), {}) }) |
{}
|
no |
persistence |
Persistence parameters for MongoDB pods |
object({ shards = optional(object({ mount_options = optional(string) storage_size = optional(string, “8Gi”) storage_class_name = optional(string) # Use existing StorageClass storage_provisioner = optional(string) # Or create one reclaim_policy = optional(string, “Delete”) volume_binding_mode = optional(string, “WaitForFirstConsumer”) access_modes = optional(list(string), [“ReadWriteOnce”]) parameters = optional(map(string), {}) }), {})
configsvr = optional(object({ mount_options = optional(string) storage_size = optional(string, “3Gi”) storage_class_name = optional(string) storage_provisioner = optional(string) reclaim_policy = optional(string, “Delete”) volume_binding_mode = optional(string, “WaitForFirstConsumer”) access_modes = optional(list(string), [“ReadWriteOnce”]) parameters = optional(map(string), {}) }), {}) }) |
null
|
no |
resources |
Resource requests and limits per component |
object({ shards = optional(object({ limits = optional(map(string)) requests = optional(map(string)) }), {}) configsvr = optional(object({ limits = optional(map(string)) requests = optional(map(string)) }), {}) mongos = optional(object({ limits = optional(map(string)) requests = optional(map(string)) }), {}) }) |
{}
|
no |
sharding |
Sharding configuration. Set to null to disable sharding. |
object({ shards_quantity = optional(number, 1) configsvr = optional(object({ replicas = optional(number, 1) node_selector = optional(map(string), {}) }), {}) mongos = optional(object({ replicas = optional(number, 1) node_selector = optional(map(string), {}) }), {}) }) |
null
|
no |
timeout |
Timeout in seconds for the helm release creation |
number
|
600
|
no |
tls |
TLS configuration for the Percona MongoDB cluster.
self_managed – When true (default), Terraform generates the CA and server certificates using the tls provider and pre-creates the ssl / ssl-internal Kubernetes secrets. The Percona operator then uses those secrets directly without invoking cert-manager. When false, the operator delegates certificate generation to cert-manager; cert-manager must therefore be installed in the cluster.
validity_period_hours – Lifetime of the generated certificates in hours. Only relevant when self_managed = true. Defaults to 8760h (1 year). |
object({ self_managed = optional(bool, true) validity_period_hours = optional(number, 8760) }) |
{}
|
no |