init
This commit is contained in:
39
terraform/modules/k8s/valkey/helm.tf
Normal file
39
terraform/modules/k8s/valkey/helm.tf
Normal 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,
|
||||
]
|
||||
}
|
||||
7
terraform/modules/k8s/valkey/namespace.tf
Normal file
7
terraform/modules/k8s/valkey/namespace.tf
Normal file
@@ -0,0 +1,7 @@
|
||||
resource "kubernetes_namespace_v1" "this" {
|
||||
count = var.create_namespace ? 1 : 0
|
||||
|
||||
metadata {
|
||||
name = var.namespace
|
||||
}
|
||||
}
|
||||
13
terraform/modules/k8s/valkey/secret.tf
Normal file
13
terraform/modules/k8s/valkey/secret.tf
Normal 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)
|
||||
}
|
||||
}
|
||||
35
terraform/modules/k8s/valkey/variables.tf
Normal file
35
terraform/modules/k8s/valkey/variables.tf
Normal 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
|
||||
}
|
||||
14
terraform/modules/k8s/valkey/versions.tf
Normal file
14
terraform/modules/k8s/valkey/versions.tf
Normal 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"
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user