Skip to content

Commit 8fa062d

Browse files
authored
Update implementation and test plan (#330)
1 parent f1e69f3 commit 8fa062d

File tree

1 file changed

+86
-4
lines changed

1 file changed

+86
-4
lines changed

design-proposals/cluster-orch-integrating-k8s-into-emt.md

Lines changed: 86 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -306,10 +306,92 @@ It is important to note that Kubernetes version upgrades, including those for K3
306306

307307
## Affected components and Teams
308308

309-
Edge Microvisor Toolkit
310-
Cluster Orchestration
309+
Edge Microvisor Toolkit (EMT)
310+
Cluster Orchestration (CO)
311311
UX/UI
312312

313-
## Implementation plan
313+
## Phase 1
314314

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

Comments
 (0)