You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Partial implementation of #4
Core changes:
- Add ValueBackend abstract base class with key-value interface
- Add PlainTextBackend for in-memory storage
- Add comprehensive unit test suite
Documentation:
- Update ADR with value storage model and design rationale
- Enhance low-level design with implementation details
- Update architecture overview with storage components
Testing:
- Set up pytest configuration
- Add unit test structure with backend tests
- Add test coverage for base and plaintext backends
This change introduces a clean separation between configuration
management and value storage, using a simple key-value interface
that aligns well with cloud provider APIs and enables easy testing.
Part of: #4
Copy file name to clipboardExpand all lines: docs/ADRs/001-helm-values-manager.md
+20Lines changed: 20 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -25,8 +25,28 @@ We have decided to implement the **Helm Values Manager** as a **Helm plugin writ
25
25
7.**ArgoCD Compatibility:** Generates `values.json` dynamically for GitOps workflows.
26
26
8.**JSON for Configuration:** Using JSON for configuration files provides better schema validation and consistent parsing across different platforms.
27
27
28
+
### Value Storage Model
29
+
The system uses a key-value storage model with clean separation of concerns:
30
+
1.**Configuration Layer**: Manages paths and environments, generating unique keys
31
+
2.**Storage Layer**: Simple key-value interface for all backend implementations
32
+
33
+
This design:
34
+
- Simplifies backend implementations
35
+
- Better aligns with cloud provider secret managers
36
+
- Provides flexibility in key generation strategies
37
+
- Enables easier testing and mocking
38
+
39
+
For detailed implementation, see [Low-Level Design](../Design/low-level-design.md).
40
+
28
41
## Configuration Structure
29
42
43
+
While the configuration file uses a hierarchical structure with paths and environments, internally values are stored using a key-value model. This provides:
44
+
- Simpler backend implementations
45
+
- Better alignment with secret manager APIs
46
+
- Flexibility in key generation strategies
47
+
48
+
See the [Low-Level Design](../Design/low-level-design.md) for implementation details.
0 commit comments