This commit is contained in:
Hrankin, Aleksandr (contracted)
2026-02-19 11:34:13 +00:00
commit f243f440c3
191 changed files with 6183 additions and 0 deletions

View File

@@ -0,0 +1,39 @@
resource "helm_release" "valkey" {
name = var.release_name
namespace = var.namespace
repository = var.repository
chart = "valkey"
version = var.chart_version
create_namespace = false
values = [
yamlencode({
auth = {
enabled = true
usersExistingSecret = kubernetes_secret_v1.valkey_users.metadata[0].name
# ВАЖНО: 'default' обязан быть определён тут (или в aclConfig),
# иначе чарт ругнётся / будет небезопасная конфигурация
aclUsers = {
default = {
permissions = "~* &* +@all"
# password НЕ нужен, потому что берётся из usersExistingSecret
}
}
}
# (опционально) персистентность на Ceph RBD:
# dataStorage = {
# enabled = true
# requestedSize = "5Gi"
# className = "ceph-rbd"
# }
})
]
depends_on = [
kubernetes_namespace_v1.this,
kubernetes_secret_v1.valkey_users,
]
}

View File

@@ -0,0 +1,7 @@
resource "kubernetes_namespace_v1" "this" {
count = var.create_namespace ? 1 : 0
metadata {
name = var.namespace
}
}

View File

@@ -0,0 +1,13 @@
resource "kubernetes_secret_v1" "valkey_users" {
metadata {
name = "valkey-users"
namespace = var.namespace # "valkey"
}
type = "Opaque"
data = {
# ВАЖНО: ключ = username, по умолчанию чарт ожидает так
default = base64encode(var.valkey_password)
}
}

View File

@@ -0,0 +1,35 @@
variable "namespace" {
type = string
default = "valkey"
}
variable "create_namespace" {
type = bool
default = true
}
variable "release_name" {
type = string
default = "valkey"
}
variable "chart_version" {
type = string
default = "0.9.2"
}
variable "repository" {
type = string
default = "https://valkey.io/valkey-helm/"
}
# Если хочешь кастомизировать chart values — просто передай сюда yamlencode({...})
variable "values" {
type = list(string)
default = []
}
variable "valkey_password" {
type = string
sensitive = true
}

View File

@@ -0,0 +1,14 @@
terraform {
required_version = ">= 1.5.0"
required_providers {
helm = {
source = "hashicorp/helm"
version = ">= 3.0.0"
}
kubernetes = {
source = "hashicorp/kubernetes"
version = ">= 2.0.0"
}
}
}