Skip to content

Helm improvements and ci script cleanup

Niels Alexander Buegel requested to merge 892-migrate-remaining-items-to-helm into main

Summary

Apologies in advance for the large MR. It contains quite a few things at once, but having to do these things one at a time and waiting for merges would slow things down enormously. Seeing as I have to check the new Catalogue schema against the production clone soon...

So I figured it's easier to ask for forgiveness than to ask for permission. Anyway, to make it manageable, I'll break it down below. Additionally, you can find a more elaborate overview of the new setup in the README.md file in the orchestration directory (TODO).

Anyway, there are a lot of line changes, but the vast majority of those are just the movement of the same functionality to other places or other small things like indentation fixes.

Below is a list of all the things this MR includes:

  • #901 Converted all the .conf files from the startup scripts in /opt/run/bin into ConfigMaps. As a result, the init_library.sh, init_database.sh and init_scheduler.sh are no longer necessary
    • The exception to this is the ctaeos chart, since this will at some point be replaced by EOS chart anyway
  • #897 Refactored the run_systemtest.sh and create_instance.sh scripts so that they take properly understandable arguments and refactored the CI accordingly to use these updated arguments
  • Removed all of the plain kubectl commands from the create_instance.sh script so that it is purely relying on Helm to spawn things
  • Separated out the Oracle unit test path from the create_instance.sh script as it should be unrelated. This is still WIP and can be improved further later. The Oracle unit tests have their own Helm chart that is spawned by the tests/unit_test_oracle.sh script
  • Removed all of the old plain .yaml files from the orchestration dir
  • #888 #900 Separated out the Catalogue and the Scheduler from the init chart, so that they can be redeployed/upgraded separately. They each generate the necessary configuration for the rest of the pods. The exception is that part of the scheduler config still needs to be passed to the CTA chart due to how the .conf files are constructed.
    • As a result, the init.sh script was separated into three separate parts: 1 that cleans mhvtl, 1 that cleans/sets up the catalogue and 1 that clean/sets up the scheduler
  • Refactored the liquibase update script so that it also uses Helm
  • Allow the user to specify their own library configuration (or have it be auto generated)
  • #902 Use Helm annotations to figure out whether a library device is in use instead of relying on the PVC generated by the minikube setup
  • #893 The scheduler/catalogue config is now properly based on a values.yaml. There are some local configs available in presets/. For the ci, they are expected to be in /opt/kubernetes/CTA/scheduler/ci-*-values.yaml and /opt/kubernetes/CTA/catalogue/ci-*-values.yaml. This has already been put in place on the cirunners.
  • #878 Fixed the default paths for the scheduler/catalogue configs

Still need to link a few tickets to the ones above

Additional Required Actions

References

Closes #892 #901 #897 #888 #900 #902 #893 #878

Edited by Niels Alexander Buegel

Merge request reports