mirror of
https://gitlab.sarex.io/infra/terraform-contour-mirror.git
synced 2026-08-05 18:31:00 +03:00
57 lines
1.9 KiB
HCL
57 lines
1.9 KiB
HCL
locals {
|
|
valkey_users_map = {
|
|
for valkey_user in var.valkey_users : "${valkey_user.cluster_id}:${valkey_user.user.name}" => valkey_user
|
|
}
|
|
|
|
valkey_user_permissions = {
|
|
for key, valkey_user in local.valkey_users_map : key => merge(
|
|
try(valkey_user.permissions.commands, null) != null ? {
|
|
commands = valkey_user.permissions.commands
|
|
} : {},
|
|
try(valkey_user.permissions.categories, null) != null ? {
|
|
categories = valkey_user.permissions.categories
|
|
} : {},
|
|
try(valkey_user.permissions.patterns, null) != null ? {
|
|
patterns = valkey_user.permissions.patterns
|
|
} : {},
|
|
try(valkey_user.permissions.pub_sub_channels, try(valkey_user.permissions.pubSubChannels, null)) != null ? {
|
|
pub_sub_channels = try(valkey_user.permissions.pub_sub_channels, valkey_user.permissions.pubSubChannels)
|
|
} : {},
|
|
try(valkey_user.permissions.sanitize_payload, try(valkey_user.permissions.sanitizePayload, null)) != null ? {
|
|
sanitize_payload = try(valkey_user.permissions.sanitize_payload, valkey_user.permissions.sanitizePayload)
|
|
} : {},
|
|
try(valkey_user.permissions.databases, null) != null ? {
|
|
databases = valkey_user.permissions.databases
|
|
} : {}
|
|
)
|
|
}
|
|
}
|
|
|
|
resource "random_password" "user_password" {
|
|
for_each = local.valkey_users_map
|
|
|
|
length = try(each.value.user.password_length, 32)
|
|
special = try(each.value.user.password_special, false)
|
|
upper = true
|
|
lower = true
|
|
numeric = true
|
|
|
|
lifecycle {
|
|
ignore_changes = all
|
|
}
|
|
}
|
|
|
|
resource "yandex_mdb_redis_user" "this" {
|
|
for_each = local.valkey_users_map
|
|
|
|
cluster_id = each.value.cluster_id
|
|
name = each.value.user.name
|
|
passwords = [random_password.user_password[each.key].result]
|
|
enabled = try(each.value.user.enabled, true)
|
|
permissions = local.valkey_user_permissions[each.key]
|
|
|
|
lifecycle {
|
|
ignore_changes = [passwords]
|
|
}
|
|
}
|