# BZZZ SLURP Configuration apiVersion: v1 kind: ConfigMap metadata: name: slurp-config namespace: bzzz-slurp labels: app.kubernetes.io/name: bzzz-slurp app.kubernetes.io/component: config data: # Application Configuration app.yaml: | cluster: name: "bzzz-slurp-prod" region: "us-east-1" environment: "production" network: p2p_port: 11434 http_port: 8080 metrics_port: 9090 health_port: 8081 max_connections: 1000 connection_timeout: 30s keep_alive: true dht: bootstrap_timeout: 60s discovery_interval: 300s protocol_prefix: "/bzzz-slurp" mode: "auto" auto_bootstrap: true max_peers: 50 replication: default_factor: 3 min_factor: 2 max_factor: 7 consistency_level: "eventual" repair_threshold: 0.8 rebalance_interval: 6h avoid_same_node: true storage: data_dir: "/app/data" max_size: "100GB" compression: true encryption: true backup_enabled: true backup_interval: "24h" security: encryption_enabled: true role_based_access: true audit_logging: true tls_enabled: true cert_path: "/app/certs" monitoring: metrics_enabled: true health_checks: true tracing_enabled: true log_level: "info" structured_logging: true # Role-based Access Control roles: senior_architect: access_level: "critical" compartments: ["architecture", "system", "security"] permissions: ["read", "write", "delete", "distribute"] project_manager: access_level: "critical" compartments: ["project", "coordination", "planning"] permissions: ["read", "write", "distribute"] devops_engineer: access_level: "high" compartments: ["infrastructure", "deployment", "monitoring"] permissions: ["read", "write", "distribute"] backend_developer: access_level: "medium" compartments: ["backend", "api", "services"] permissions: ["read", "write"] frontend_developer: access_level: "medium" compartments: ["frontend", "ui", "components"] permissions: ["read", "write"] # Logging Configuration logging.yaml: | level: info format: json output: stdout loggers: coordinator: level: info handlers: ["console", "file"] distributor: level: info handlers: ["console", "file", "elasticsearch"] dht: level: warn handlers: ["console"] security: level: debug handlers: ["console", "file", "audit"] handlers: console: type: console format: "%(asctime)s %(levelname)s [%(name)s] %(message)s" file: type: file filename: "/app/logs/slurp.log" max_size: "100MB" backup_count: 5 format: "%(asctime)s %(levelname)s [%(name)s] %(message)s" elasticsearch: type: elasticsearch hosts: ["http://elasticsearch:9200"] index: "slurp-logs" audit: type: file filename: "/app/logs/audit.log" max_size: "50MB" backup_count: 10 # Prometheus Configuration prometheus.yml: | global: scrape_interval: 15s evaluation_interval: 15s rule_files: - "slurp_alerts.yml" scrape_configs: - job_name: 'slurp-coordinator' static_configs: - targets: ['slurp-coordinator:9090'] scrape_interval: 15s metrics_path: '/metrics' - job_name: 'slurp-distributors' kubernetes_sd_configs: - role: pod namespaces: names: - bzzz-slurp relabel_configs: - source_labels: [__meta_kubernetes_pod_label_app_kubernetes_io_name] action: keep regex: slurp-distributor - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_scrape] action: keep regex: true - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_port] action: replace target_label: __address__ regex: ([^:]+)(?::\d+)?;(\d+) replacement: $1:$2 # Alert Rules slurp_alerts.yml: | groups: - name: slurp.rules rules: - alert: SlurpCoordinatorDown expr: up{job="slurp-coordinator"} == 0 for: 2m labels: severity: critical annotations: summary: "SLURP Coordinator is down" description: "SLURP Coordinator has been down for more than 2 minutes." - alert: SlurpDistributorDown expr: up{job="slurp-distributors"} == 0 for: 2m labels: severity: critical annotations: summary: "SLURP Distributor is down" description: "SLURP Distributor {{ $labels.instance }} has been down for more than 2 minutes." - alert: HighMemoryUsage expr: (process_resident_memory_bytes / process_virtual_memory_bytes) > 0.9 for: 5m labels: severity: warning annotations: summary: "High memory usage" description: "Memory usage is above 90% for {{ $labels.instance }}" - alert: HighCPUUsage expr: rate(process_cpu_seconds_total[5m]) > 0.8 for: 5m labels: severity: warning annotations: summary: "High CPU usage" description: "CPU usage is above 80% for {{ $labels.instance }}" - alert: DHTPartitionDetected expr: slurp_network_partitions > 1 for: 1m labels: severity: critical annotations: summary: "Network partition detected" description: "{{ $value }} network partitions detected in the cluster" - alert: ReplicationFactorBelowThreshold expr: slurp_replication_factor < 2 for: 5m labels: severity: warning annotations: summary: "Replication factor below threshold" description: "Average replication factor is {{ $value }}, below minimum of 2" # Grafana Dashboard Configuration grafana-dashboard.json: | { "dashboard": { "id": null, "title": "BZZZ SLURP Distributed Context System", "tags": ["bzzz", "slurp", "distributed"], "style": "dark", "timezone": "UTC", "panels": [ { "id": 1, "title": "System Overview", "type": "stat", "targets": [ { "expr": "up{job=~\"slurp-.*\"}", "legendFormat": "Services Up" } ] }, { "id": 2, "title": "Context Distribution Rate", "type": "graph", "targets": [ { "expr": "rate(slurp_contexts_distributed_total[5m])", "legendFormat": "Distributions/sec" } ] }, { "id": 3, "title": "DHT Network Health", "type": "graph", "targets": [ { "expr": "slurp_dht_connected_peers", "legendFormat": "Connected Peers" } ] } ], "time": { "from": "now-1h", "to": "now" }, "refresh": "30s" } } --- # Secrets (placeholder - should be created separately with actual secrets) apiVersion: v1 kind: Secret metadata: name: slurp-secrets namespace: bzzz-slurp labels: app.kubernetes.io/name: bzzz-slurp app.kubernetes.io/component: secrets type: Opaque data: # Base64 encoded values - these are examples, use actual secrets in production redis-password: YWRtaW4xMjM= # admin123 minio-access-key: YWRtaW4= # admin minio-secret-key: YWRtaW4xMjM0NTY= # admin123456 elasticsearch-username: ZWxhc3RpYw== # elastic elasticsearch-password: Y2hhbmdlbWU= # changeme encryption-key: "YWJjZGVmZ2hpams=" # base64 encoded encryption key jwt-secret: "c3VwZXJzZWNyZXRqd3RrZXk=" # base64 encoded JWT secret