@@ -306,10 +306,92 @@ It is important to note that Kubernetes version upgrades, including those for K3
306
306
307
307
# # Affected components and Teams
308
308
309
- Edge Microvisor Toolkit
310
- Cluster Orchestration
309
+ Edge Microvisor Toolkit (EMT)
310
+ Cluster Orchestration (CO)
311
311
UX/UI
312
312
313
- # # Implementation plan
313
+ # # Phase 1
314
314
315
- # # Test Plan
315
+ # ## Implementation Plan: Foundation and Initial Functionality
316
+
317
+ 1. **Build and Package K3s**
318
+ - Develop the SPEC file for K3s and its dependencies.
319
+ - Integrate the SPEC file into the EMT build pipeline.
320
+ - Test the RPM build process to ensure correct packaging.
321
+
322
+ 2. **Embed K3s into EMT**
323
+ - Create the package list file (`k3s.json`) specifying K3s packages.
324
+ - Update EMT image configurations to include the `k3s.json` package list.
325
+ - Modify the EMT build pipeline to embed K3s version information into the `manifest.json` file.
326
+
327
+ 3. **Cluster Manager Enhancements**
328
+ - Implement logic to filter cluster templates based on the Kubernetes version embedded in EMT images.
329
+ - Add support for the `airGapped` configuration in the Cluster Manager API for K3s on EMT.
330
+
331
+ 4. **CAPINTEL Provider Updates**
332
+ - Modify CAPINTEL to handle new workflows for cluster creation and deletion.
333
+ - Implement safeguards to block incompatible EMT image upgrades.
334
+
335
+ 5. **UI/UX Improvements**
336
+ - Add a toggle for `Create Cluster Automatically` during host registration.
337
+ - Update the UI to filter cluster templates based on the selected OS profile.
338
+
339
+ # ## Test Plan
340
+
341
+ 1. **Unit Tests**
342
+ - Test the SPEC file for correct RPM packaging of K3s and dependencies.
343
+
344
+ 2. **Integration Tests**
345
+ - Test the EMT build pipeline to ensure K3s is correctly embedded in the image.
346
+
347
+ 3. **End-to-End Tests**
348
+ - Test automatic cluster creation during host registration.
349
+ - Validate logic for filtering cluster templates based on Kubernetes versions.
350
+
351
+ # ## Goals
352
+ - Achieve a working integration of K3s into EMT with basic functionality.
353
+ - Ensure most of the development is completed in the first phase for CO, UI and EMT.
354
+ - Ensure documentation is updated to guide users through new workflows.
355
+
356
+ # # Phase 2
357
+
358
+ # ## Implementation plan: Enhancements and Optimization
359
+
360
+ We expect most of the implementation to be completed in the first phase. The second phase will focus on refining the
361
+ user experience and optimizing workflows based on feedback from the first phase.
362
+
363
+ The documentation shall be updated to reflect the new workflows and limitations introduced by this design change.
364
+ The following updates are planned :
365
+ - Update user documentation to reflect new workflows and limitations.
366
+ - Update EMT and EMT-S documentation to include K3s integration details.
367
+
368
+
369
+ # ## Test Plan
370
+
371
+ 1. **Integration Tests**
372
+ - Verify the `airGapped` configuration during cluster creation.
373
+
374
+ 2. **End-to-End Tests**
375
+ - Test manual cluster creation with compatible and incompatible EMT images.
376
+ - Test cluster deletion and ensure proper cleanup of Kubernetes configurations.
377
+
378
+ 3. **Upgrade Tests**
379
+ - Test upgrading the EMT image with a new K3s version.
380
+ - Validate safeguards to block incompatible EMT image upgrades.
381
+
382
+ 4. **UI/UX Tests**
383
+ - Verify the functionality of the `Create Cluster Automatically` toggle.
384
+ - Ensure the UI correctly filters cluster templates based on OS profiles.
385
+
386
+ 5. **Performance Tests**
387
+ - Measure cluster creation times for K3s on EMT and compare them to existing setups.
388
+ - Test scalability of automatic cluster creation for bulk host registration.
389
+
390
+ 6. **Regression Tests**
391
+ - Ensure existing workflows for K3s on Ubuntu and RKE2 on EMT/Ubuntu remain unaffected.
392
+ - Validate that multi-node cluster workflows are not disrupted.
393
+
394
+ # ## Goals
395
+ - Enhance functionality and optimize workflows based on feedback from Sprint 1.
396
+ - Implement additional features and safeguards to improve reliability and user experience.
397
+ - Conduct comprehensive testing to ensure robustness and scalability.
0 commit comments