Description
Problem Statement
Currently, the Helm Values Manager uses hardcoded file paths for its configuration and lock files (helm-values.json
and .helm-values.lock
). This limits flexibility in several ways:
- Users cannot manage multiple configurations in the same directory
- Organizations may have specific naming conventions that conflict with our hardcoded names
- Integration with existing systems that might have their own file organization is difficult
- Configuration files must be in the current working directory
Proposed Solution
Enhance the Helm Values Manager to support custom configuration file paths by:
-
Adding a
--config-file
option to all commands:config_file: str = typer.Option( "helm-values.json", "--config-file", "-c", help="Path to the configuration file" )
-
Updating the
BaseCommand
class to accept a config file path -
Generating the lock file name based on the config file path
-
Propagating the config file path to all command instances
The implementation should be backward compatible, using the current hardcoded paths as defaults.
Alternative Solutions
- Environment Variables: Use environment variables to specify the configuration file path, but this is less user-friendly for CLI tools.
- Configuration Profiles: Implement a profile system where users can switch between different configurations, but this adds more complexity than needed.
- Configuration Directory: Use a dedicated directory for all configurations, but this constrains where files can be placed.
Additional Context
An Architecture Decision Record (ADR-009: Custom Configuration File Paths) has been created to document this feature and its implementation details. The feature will increase flexibility, allow for custom naming, improve integration with existing systems, and provide location freedom for configuration files.
Requirements
- This feature aligns with the project's scope and goals
- I've checked that this feature doesn't already exist
- I've searched for existing feature requests