edge-connect-client/apply-todo.md
Waldemar 8b02fe54e5 feat(apply): Implement CLI command with comprehensive deployment workflow
- Add edge-connect apply command with -f/--file and --dry-run flags
- Integrate config parser, deployment planner, and resource manager
- Provide comprehensive error handling and progress reporting
- Support deployment confirmation prompts and result summaries
- Move internal packages to public SDK packages for CLI access
- Update all tests to pass with new package structure
- Complete Phase 4 CLI Command Implementation

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-29 17:24:59 +02:00

72 lines
No EOL
3.6 KiB
Markdown

# EdgeConnect Apply Command - Implementation Todo List
## Current Status: Phase 4 Complete ✅ - Ready for Phase 5
## Phase 1: Configuration Foundation ✅ COMPLETED
- [x] **Step 1.1**: Create `sdk/internal/config/types.go` with EdgeConnectConfig structs
- [x] **Step 1.2**: Implement YAML unmarshaling and validation in `sdk/internal/config/parser.go`
- [x] **Step 1.3**: Add comprehensive field validation methods
- [x] **Step 1.4**: Create `sdk/internal/config/parser_test.go` with full test coverage
- [x] **Step 1.5**: Test config parsing with example EdgeConnectConfig.yaml
## Phase 2: Deployment Planning ✅ COMPLETED
- [x] **Step 2.1**: Create deployment plan types in `sdk/internal/apply/types.go`
- [x] **Step 2.2**: Implement Planner interface in `sdk/internal/apply/planner.go`
- [x] **Step 2.3**: Add state comparison logic (existing vs desired)
- [x] **Step 2.4**: Create deployment summary generation
- [x] **Step 2.5**: Add comprehensive tests in `sdk/internal/apply/planner_test.go`
## Phase 3: Resource Management ✅ COMPLETED
- [x] **Step 3.1**: Create ResourceManager in `sdk/internal/apply/manager.go`
- [x] **Step 3.2**: Implement app creation with manifest file handling
- [x] **Step 3.3**: Add instance deployment across multiple cloudlets
- [x] **Step 3.4**: Handle network configuration application
- [x] **Step 3.5**: Add rollback functionality for failed deployments
- [x] **Step 3.6**: Create manager tests in `sdk/internal/apply/manager_test.go`
## Phase 4: CLI Command Implementation ✅ COMPLETED
- [x] **Step 4.1**: Create basic apply command in `cmd/apply.go`
- [x] **Step 4.2**: Add file flag handling and validation
- [x] **Step 4.3**: Implement deployment execution flow
- [x] **Step 4.4**: Add progress reporting during deployment
- [x] **Step 4.5**: Integrate with root command in `cmd/root.go`
- [x] **Step 4.6**: Add --dry-run flag support
## Phase 5: Testing & Polish
- [ ] **Step 5.1**: Create integration tests in `cmd/apply_test.go`
- [ ] **Step 5.2**: Test error scenarios and rollback behavior
- [ ] **Step 5.3**: Add example configurations in `examples/apply/`
- [ ] **Step 5.4**: Create user documentation
- [ ] **Step 5.5**: Performance testing for large deployments
## Phase 6: Advanced Features
- [ ] **Step 6.1**: Implement manifest file hash tracking in annotations
- [ ] **Step 6.2**: Add intelligent update detection
- [ ] **Step 6.3**: Create deployment status tracking
- [ ] **Step 6.4**: Add environment variable substitution support
- [ ] **Step 6.5**: Implement configuration validation enhancements
## Dependencies & Prerequisites
- ✅ Existing SDK in `sdk/edgeconnect/`
- ✅ Cobra CLI framework already integrated
- ✅ Viper configuration already setup
- ✅ Example EdgeConnectConfig.yaml available
## Risks & Mitigation
- **Risk**: Complex nested YAML validation
- **Mitigation**: Use struct tags and dedicated validation functions
- **Risk**: Parallel deployment complexity
- **Mitigation**: Use goroutines with proper error handling and rollback
- **Risk**: Large manifest files
- **Mitigation**: Stream file reading and hash calculation
## Success Criteria
- [ ] Single command deploys complex applications across multiple cloudlets
- [ ] Configuration validation provides helpful error messages
- [ ] Failed deployments rollback gracefully
- [ ] Parallel deployments complete 70% faster than sequential
- [ ] Integration tests cover all major scenarios
- [ ] Code follows existing CLI patterns and conventions
## Ready to Begin Implementation
All planning is complete. The implementation can now proceed phase by phase with each step building incrementally on the previous work.