48 lines
1.3 KiB
Plaintext
Raw Normal View History

2025-10-07 11:20:26 +01:00
# Info: Redis KCL schemas for provisioning (Provisioning)
# Author: Example Template
# Release: 0.0.1
# Date: $(date +%Y-%m-%d)
schema Redis:
"""
Redis configuration schema for infrastructure provisioning
"""
name: str = "redis"
version: str
# Network configuration
port: int = 6379
bind_address: str = "127.0.0.1"
# Memory configuration
maxmemory: str = "256mb"
maxmemory_policy: "noeviction" | "allkeys-lru" | "volatile-lru" | "allkeys-random" | "volatile-random" | "volatile-ttl" = "allkeys-lru"
# Persistence configuration
persistence: bool = True
save_interval: str = "900 1 300 10 60 10000" # Save every 900s if 1 key changed, etc.
# Security
requirepass?: str
# Replication
master_host?: str
master_port?: int
# Clustering
cluster_enabled: bool = False
cluster_config_file?: str
# Logging
loglevel: "debug" | "verbose" | "notice" | "warning" = "notice"
logfile: str = "/var/log/redis/redis-server.log"
# Performance
tcp_keepalive: int = 300
timeout: int = 0
# Validation
check:
port > 0 and port < 65536, "Port must be between 1 and 65535"
len(version) > 0, "Version must be specified"
master_port == Undefined or (master_port > 0 and master_port < 65536), "Master port must be valid if specified"