Files
dnviti 2719cfff59
Some checks failed
Build / Code Quality Checks (push) Successful in 15m11s
Build / Build & Push Docker Images (worker) (push) Successful in 13m44s
Build / Build & Push Docker Images (frontend) (push) Successful in 5m8s
Build / Build & Push Docker Images (chat) (push) Failing after 30m7s
Build / Build & Push Docker Images (api) (push) Failing after 21m39s
Add Helm chart, Docs, and Config conversion script
2025-10-22 14:35:21 +02:00

514 lines
13 KiB
YAML

# =============================================================================
# Datacenter Documentation System - Configuration Values
# This file provides a structured YAML configuration based on .env variables
# Can be used with Helm or directly for configuration management
# =============================================================================
# =============================================================================
# MongoDB Configuration
# =============================================================================
mongodb:
# Authentication
auth:
enabled: true
rootUsername: admin
rootPassword: admin123
database: datacenter_docs
# Connection URL (auto-generated in Helm, can be overridden)
url: "mongodb://admin:admin123@mongodb:27017"
# Service configuration
service:
host: mongodb
port: 27017
# Persistence (for Kubernetes deployments)
persistence:
enabled: true
size: 10Gi
storageClass: "longhorn"
# =============================================================================
# Redis Configuration
# =============================================================================
redis:
# Authentication
auth:
enabled: false
password: admin
# Connection URL
url: "redis://redis:6379/0"
# Service configuration
service:
host: redis
port: 6379
# Database number
database: 0
# =============================================================================
# MCP Server Configuration
# =============================================================================
mcp:
# MCP server connection
server:
url: "https://mcp.company.local"
apiKey: "7DKfHC8i79iPp43tFKNyiHEXQRSec4dH"
timeout: 30
# Enable MCP integration
enabled: true
# =============================================================================
# Proxmox VE Configuration
# =============================================================================
proxmox:
# Proxmox server
host: "proxmox.apps.home.arpa.viti"
port: 443
# Authentication Method 1: Username + Password (less secure)
auth:
user: "monitoring@pve"
name: "docs-llm-token"
password: "4d97d058-cc96-4189-936d-fe6a6583fcbd"
# Authentication Method 2: API Token (RECOMMENDED)
# To create: Datacenter → Permissions → API Tokens
# Format: user@realm!tokenname
# token:
# user: "automation@pam"
# name: "docs-collector"
# value: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
# SSL Configuration
ssl:
verify: false # Set to true in production with valid certificates
# Connection settings
timeout: 30
# Enable Proxmox collector
enabled: true
# =============================================================================
# LLM Configuration (OpenAI-compatible API)
# =============================================================================
llm:
# Provider selection - uncomment the one you want to use
# --- OpenAI (Default) ---
provider: openai
baseUrl: "https://llm-studio.apps.home.arpa.viti/v1"
apiKey: ""
model: "llama-3.2-3b-instruct"
# Alternative models: gpt-4, gpt-3.5-turbo, gpt-4o
# --- Anthropic Claude ---
# provider: anthropic
# baseUrl: "https://api.anthropic.com/v1"
# apiKey: "sk-ant-your-anthropic-key-here"
# model: "claude-sonnet-4-20250514"
# Alternative models: claude-3-opus-20240229, claude-3-sonnet-20240229
# --- LLMStudio (Local) ---
# provider: llmstudio
# baseUrl: "http://localhost:1234/v1"
# apiKey: "not-needed"
# model: "your-local-model-name"
# --- Open-WebUI (Local) ---
# provider: openwebui
# baseUrl: "http://localhost:8080/v1"
# apiKey: "your-open-webui-key"
# model: "llama3"
# Alternative models: mistral, mixtral, codellama
# --- Ollama (Local) ---
# provider: ollama
# baseUrl: "http://localhost:11434/v1"
# apiKey: "ollama"
# model: "llama3"
# Alternative models: mistral, mixtral, codellama, phi3
# Generation Settings
generation:
temperature: 0.3
maxTokens: 4096
topP: 1.0
frequencyPenalty: 0.0
presencePenalty: 0.0
# =============================================================================
# API Configuration
# =============================================================================
api:
# Server settings
host: "0.0.0.0"
port: 8000
workers: 4
# Service configuration (for Kubernetes)
service:
type: ClusterIP
port: 8000
targetPort: 8000
# Application settings
debug: false
reloadOnChange: false
# Security
secretKey: "your-secret-key-change-in-production"
apiKeyEnabled: true
# =============================================================================
# CORS Configuration
# =============================================================================
cors:
enabled: true
origins:
- "http://localhost:3000"
- "https://docs.company.local"
allowCredentials: true
allowMethods:
- "GET"
- "POST"
- "PUT"
- "DELETE"
- "PATCH"
- "OPTIONS"
allowHeaders:
- "*"
# =============================================================================
# Application Settings
# =============================================================================
application:
# Logging
logging:
level: "INFO" # DEBUG, INFO, WARNING, ERROR, CRITICAL
format: "json" # json or text
# Debug mode
debug: false
# Environment
environment: "production" # development, staging, production
# =============================================================================
# Auto-Remediation Configuration
# =============================================================================
autoRemediation:
# Enable/disable auto-remediation
enabled: true
# Reliability thresholds
minReliabilityScore: 85.0
requireApprovalThreshold: 90.0
# Rate limiting
maxActionsPerHour: 100
maxActionsPerDay: 500
# Safety settings
dryRun: false # Set to true for testing
requireHumanApproval: false
# Notification settings
notifications:
enabled: true
channels:
- email
- slack
# =============================================================================
# Celery Configuration (Background Tasks)
# =============================================================================
celery:
# Broker configuration
broker:
url: "redis://redis:6379/0"
transport: "redis"
# Result backend
result:
backend: "redis://redis:6379/0"
expires: 3600
# Worker configuration
worker:
concurrency: 4
maxTasksPerChild: 1000
prefetchMultiplier: 4
# Task configuration
task:
acks_late: true
reject_on_worker_lost: true
time_limit: 3600
soft_time_limit: 3000
# Queue configuration
queues:
default:
name: "default"
priority: 5
high_priority:
name: "high_priority"
priority: 10
low_priority:
name: "low_priority"
priority: 1
# =============================================================================
# Vector Store Configuration
# =============================================================================
vectorStore:
# Storage type
type: "chroma" # chroma, pinecone, weaviate
# ChromaDB configuration
chroma:
path: "./data/chroma_db"
persistDirectory: "/data/vector_store"
# Embedding configuration
embedding:
model: "sentence-transformers/all-MiniLM-L6-v2"
dimensions: 384
# Alternative models:
# - "sentence-transformers/all-mpnet-base-v2" (768 dims, better quality)
# - "BAAI/bge-small-en-v1.5" (384 dims, good performance)
# - "thenlper/gte-small" (384 dims, multilingual)
# Search configuration
search:
topK: 5
scoreThreshold: 0.7
# =============================================================================
# Documentation Generation Settings
# =============================================================================
documentation:
# Generation settings
generation:
enabled: true
autoUpdate: true
updateInterval: 3600 # seconds
# Output configuration
output:
format: "markdown" # markdown, html, pdf
directory: "./docs/generated"
templateDirectory: "./templates/docs"
# Content settings
content:
includeTimestamps: true
includeMetadata: true
includeDiagrams: true
includeExamples: true
# =============================================================================
# Ticket Management Settings
# =============================================================================
tickets:
# Auto-categorization
autoCategorization:
enabled: true
confidenceThreshold: 0.8
# Priority assignment
autoPriority:
enabled: true
# SLA settings
sla:
critical: 1 # hours
high: 4
medium: 24
low: 72
# Notification settings
notifications:
enabled: true
onCreation: true
onStatusChange: true
onResolution: true
# =============================================================================
# Collectors Configuration
# =============================================================================
collectors:
# VMware vCenter
vmware:
enabled: false
host: "vcenter.example.com"
username: "administrator@vsphere.local"
password: "your-password"
verifySsl: false
collectInterval: 3600
# Kubernetes
kubernetes:
enabled: false
configPath: "~/.kube/config"
context: "default"
collectInterval: 1800
# Network devices
network:
enabled: false
devices: []
# - host: "switch1.example.com"
# type: "cisco"
# username: "admin"
# password: "password"
collectInterval: 7200
# Storage
storage:
enabled: false
systems: []
collectInterval: 3600
# =============================================================================
# Monitoring & Observability
# =============================================================================
monitoring:
# Metrics
metrics:
enabled: true
port: 9090
path: "/metrics"
# Health checks
health:
enabled: true
path: "/health"
interval: 30
# Tracing
tracing:
enabled: false
provider: "jaeger" # jaeger, zipkin, otlp
endpoint: "http://jaeger:14268/api/traces"
# Logging exporters
logging:
exporters:
- type: "stdout"
# - type: "elasticsearch"
# endpoint: "http://elasticsearch:9200"
# - type: "loki"
# endpoint: "http://loki:3100"
# =============================================================================
# Security Settings
# =============================================================================
security:
# Authentication
authentication:
enabled: true
method: "jwt" # jwt, oauth2, ldap
tokenExpiration: 3600
# Authorization
authorization:
enabled: true
rbacEnabled: true
# Encryption
encryption:
enabled: true
algorithm: "AES-256-GCM"
# Rate limiting
rateLimit:
enabled: true
requestsPerMinute: 100
requestsPerHour: 1000
# =============================================================================
# Backup & Recovery
# =============================================================================
backup:
# Enable backup
enabled: true
# Backup schedule (cron format)
schedule: "0 2 * * *" # Daily at 2 AM
# Retention policy
retention:
daily: 7
weekly: 4
monthly: 12
# Backup destination
destination:
type: "s3" # s3, gcs, azure, local
# s3:
# bucket: "datacenter-docs-backups"
# region: "us-east-1"
# accessKeyId: "your-access-key"
# secretAccessKey: "your-secret-key"
# =============================================================================
# Feature Flags
# =============================================================================
features:
# Enable/disable specific features
autoRemediation: true
aiDocGeneration: true
vectorSearch: true
chatInterface: true
ticketManagement: true
multiTenancy: false
auditLogging: true
realTimeUpdates: true
# =============================================================================
# Resource Limits (for Kubernetes deployments)
# =============================================================================
resources:
# API service
api:
requests:
memory: "512Mi"
cpu: "250m"
limits:
memory: "2Gi"
cpu: "1000m"
# Worker service
worker:
requests:
memory: "512Mi"
cpu: "250m"
limits:
memory: "2Gi"
cpu: "1000m"
# Chat service
chat:
requests:
memory: "256Mi"
cpu: "100m"
limits:
memory: "1Gi"
cpu: "500m"
# =============================================================================
# Notes
# =============================================================================
# - Copy this file to customize your deployment
# - For Helm deployments, use: helm install -f values.yaml
# - For environment variables, use the .env file
# - Sensitive values should be stored in Kubernetes Secrets or external secret managers
# - See documentation at: https://git.commandware.com/it-ops/llm-automation-docs-and-remediation-engine