Configuration Export Feature for GitOps Support #582
Replies: 3 comments 3 replies
-
|
This GitOps export capability will significantly improve our production deployment workflow. I support the overall direction, but have some critical questions about implementation details that should be clarified before we proceed. 1. Can we include versions? To handle schema evolution gracefully, we should version all exported configurations. This makes future breaking changes manageable and enables validation easier. I have propose to use Kubernetes Custom Resource Definition (CRD) format if possible. 2. Parameterization Rules should be controlled by Thunder, not users The proposal suggests customizable param-rules.yaml, but I question whether Concerns:
Recommendation: Thunder should define standard parameterization per resource type. If customization is truly needed, can you provide specific use cases that justify this complexity? 3. Use POST for all export operations The proposal uses both GET and POST endpoints. We should standardize on POST for all exports because:
Unless there's a strong reason to support GET, let's simplify to POST-only. 4. Async export is critical for large environments For production environments with hundreds of resources, synchronous export will likely timeout. We need:
Question: What's the expected maximum dataset size we need to support? 5. Parameter naming strategy to prevent conflicts The proposal shows examples like: clientSecret: ${{APP_MY_APP_CLIENT_SECRET}}
redirectUri: ${{REDIRECT_URI}}Concerns:
Recommendation: Enforce consistent parameter naming convention: |
Beta Was this translation helpful? Give feedback.
-
|
Currently, when configurations are exported, the UUID associated with each resource is not exported. This leads to inconsistency issues — the same logical application or resource ends up with different UUIDs across deployments or pods. Proposed Approaches
Description: Pros:
Cons:
And also, this will end up having the same uuid for application in higher environments, that can lead to an issue as this will let the developers (users with lower level access) knows the uuids of the applications in higher environments.
Description: Pros:
Cons:
References needs to be properly managed as if one exported file needs the UUID of the other files.
Description: Pros:
Cons:
Currently we do not support handle pattern for any of the resources. |
Beta Was this translation helpful? Give feedback.
-
|
When exporting and importing applications across different environments (e.g., development, staging, production), redirect URIs need to be environment-specific. However, the current implementation faces a fundamental limitation: Proposed solutionsSolution 1: Comma-Separated String with Split Logic
Cons:
Solution 1.1: Generalized Array Parsing Syntax
Solution 2: Single Redirect URI Parameterization
Solution 3: Parameterize Redirect URI Count In practical world redirect uri count can be different. WDYT? @darshanasbg @senthalan |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Overview
This proposes adding configuration export capabilities to Thunder to support a GitOps workflow where configurations created in one environment can be exported and deployed to other environments.
Background
Thunder will support two runtime modes:
Typical Workflow
Goals
This proposal focuses on providing export functionality.
Key Design Decisions
1. Parameterization Strategy
Secrets and environment-specific values will be parameterized and resolved from environment variables at runtime.
2. Auto-Parameterization Rules
Which fields should be automatically parameterized during export?
param-rules.yamlfor custom field mapping.3. Export Scope & Filtering
Filtering capabilities should allow exporting subsets of resources.
IF CLI
If Export using API
4. Output Structure
Option 1: Directory Structure (Preferred)
Option 2: Single File per Export
Suggested Approach:
As the runtime expects organized directories, the download ZIP should follow this structure for direct use with Thunder runtime.
5. Parameter Resolution
When are parameters resolved?
6. Parameter Documentation
Automatically generate parameter documentation for transparency and CI/CD validation.
⚖️ Proposed Approaches
Approach Comparison Summary
- No new API surface
- Fine-grained filtering
- Slightly higher learning curve
- UI integration possible
- Easy for one-off exports
- File size limits
- Enables UI integration
- Unified implementation
Visual Overview
Example Usage
Developer Workflow (DB Mode → File Mode)
Environment-Specific Deployment
API-Based Export Workflow
1. Export All Resources via API
2. Export Specific Resource Types
3. Export with Advanced Filtering (POST API)
Beta Was this translation helpful? Give feedback.
All reactions