cnti-testcatalog / testsuite

📞📱☎️📡🌐 Cloud Native Telecom Initiative (CNTI) Test Catalog is a tool to check for and provide feedback on the use of K8s + cloud native best practices in networking applications and platforms
https://wiki.lfnetworking.org/display/LN/Test+Catalog
Apache License 2.0
174 stars 72 forks source link

[EPIC] Redesign CNF installation process #2120

Open kosstennbl opened 3 months ago

kosstennbl commented 3 months ago

[EPIC] Redesign CNF installation process

Current installation process is quite limiting and hard to maintain. Multiple issues are already created and they only build up: #2095, #2106, #2036.

The idea is to redesign CNF installation process in a way that fixes some of the current issues and makes it easier to expand installation functionality (and possibly, in the future, make addition of new installation methods much easier).

Central idea of this change is to install CNFs in different ways, but then gather all installed resources as manifest files. Then, during testing, all tests would have to work only with manifest files regardless of installation method of CNF.

This planned redesign seems to be quite complex and time-consuming, so better approach would be to split it into several different issues and PRs, the following is the plan for the change (up to discussion, can be changed):

  1. Implement new cnf-testsuite.yml config format and its parsing (#2121).
  2. Implement additional functionality tied to configuration.
    1. Implement a way to transform old configs into new format.
    2. Implement generate_config for new format.
  3. Rewrite all sample/example CNF configs and change default config format to new one.
  4. Implement a way to create common manifest, use it for all tests that require manifest (#2125).
  5. Redesign tests that are not compliant with the common manifest or require deployment type-specific functionality to function.
  6. Prepare new installation process (and multiple charts support as a part of this).
  7. Check how specs would be affected, prepare for required fixes.
  8. Switch to new installation (use all prepared code), fix tests, remove old code.

It is planned to create GitHub issues and link them there when they would be ready for start. This issue should be resolved as soon as all connected issues and tasks are completed.