Configuration Management Documentation

This directory contains comprehensive documentation for Blueberry IDP's configuration management system.

Overview

Blueberry IDP uses a layered approach to configuration management, combining multiple sources and validation systems to provide secure, flexible, and maintainable configuration options.

Directory Structure

πŸ”§ Loading

Configuration loading mechanisms and priority systems
- Settings class initialization
- Environment variable handling
- Configuration file processing
- Priority resolution logic

πŸ” Secrets

Secret management workflows and security patterns
- Google Secret Manager integration
- Lazy loading patterns
- Workload Identity configuration
- Secret synchronization processes

βœ… Validation

Configuration validation and warning systems
- User input validation
- Field constraint checking
- Resource specification validation
- Warning generation and feedback

πŸ”„ Overrides

Runtime override system and value processing
- Helm values processing
- Override categories and rules
- Computed value generation
- Non-overridable field protection

☸️ Kubernetes

Kubernetes deployment configuration
- Helm chart integration
- ConfigMap and Secret management
- Pod configuration injection
- External Secrets Operator workflows

πŸš€ Workflows

Environment creation and management workflows
- Environment provisioning
- Configuration set processing
- Validation pipelines
- Error handling and recovery

Key Concepts

Configuration Priority

  1. Environment Variables (highest priority)
  2. config/app_config.yaml (file configuration)
  3. Default Values (lowest priority)

Secret Management

  • Central storage in Google Secret Manager
  • Lazy loading for performance
  • Secure access via Workload Identity
  • Automatic synchronization to Kubernetes

Validation Layers

  • Schema validation against default values
  • Resource constraint checking
  • Security policy enforcement
  • User feedback and warnings

Override Categories

  • Required: Always overridden at runtime
  • Computed: Dynamically calculated
  • Non-Overridable: System managed
  • Extendable: User modifiable

Getting Started

  1. Start with Loading to understand configuration initialization
  2. Review Secrets for security patterns
  3. Check Validation for constraint rules
  4. Explore Overrides for runtime processing
  5. Study Kubernetes for deployment integration
  6. Follow Workflows for end-to-end processes

Best Practices

  • Use Google Secret Manager for all sensitive configuration
  • Follow the configuration priority hierarchy
  • Validate user inputs against schema constraints
  • Implement proper error handling and user feedback
  • Monitor configuration access and changes
  • Use namespace isolation for multi-tenant configurations
Document ID: reference/configuration/README