EaaSI Development Update - June 2023

Development work slowed some in April and May due to an unexpected, extended bout of personal illness on the dev team; capacity is slowly ramping up again and the intended v2023.[xx] spring release will hopefully be prepared by the end of the month (though we will refrain from tagging the date until that is confirmed!)

Recent work accomplished (April 2023 - May 2023)

  • drafted eaasi-installer migrations for upgrading EaaSI’s Keycloak component
    • recent, in-support Keycloak versions changed the application’s runtime and internal database structure in a manner that broke compatibility with Keycloak user data in EaaSI (v2020.03 or v2021.10) deployments; automatic migrations offered by Keycloak team for upgrading installs were failing
    • following support/suggestion of Keycloak team, designed an automated path for EaaSI migration that 1) completely exports the Keycloak database to a custom JSON format defined by Keycloak team, 2) removes and installs the upgraded Keycloak app, 3) re-imports the legacy user data from JSON into the updated Keycloak database
  • pinned/resolved several minor dependency issues encountered with running eaasi-installer
  • troubleshot and merged issue reported by AusEaaSI related to object import that were traced to spaces in object file names
    • while the object upload process was completing successfully, spaces in file paths were causing issues with path resolution for display in UI, emulators locating files and metadata in storage, etc.
    • both objects and image files with spaces in their names should now be handled correctly by EaaSI front- and back-ends
  • troubleshot a series of conditions by which back-end task UUIDs could be repeated, causing unpredictable behavior when attempting to run or save an Environment (e.g. the back-end might run or display an Environment other than the one selected by the user)
    • condition was initially discovered/reported by AusEaaSI users and traced to an issue where the configured deployment was running out of system space, preventing updates to the EaaS database
    • however, on investigation the same replication of task UUIDs could be triggered by other conditions, including unclean emulator shutdown when attempting to save a derivative Environment, or externally-mounted storage volumes being inaccessible at the moment certain processes attempt to execute
    • general fixes merged to check database health and cleanly error out processes when new task UUIDs can not be properly written, instead of repeating or re-using UUIDs
  • debugged issues encountered with new S3 API tooling in eaasi-installer, where in some cases the user-specified S3 configuration would revert to default values
  • added back-end API endpoint to trigger re-synchronization of configured image and object archives without completely restarting the EaaS server
  • fixed an issue with deploying on to a distributed cloud computing cluster, where a requirement for absolute file paths to emulator containers required the EaaS Gateway component to have access to persistent EmuComp component(s)
    • relative paths and data resolution between Gateway and EmuComp components now allow emulator containers to be cached and installed to cloud computing clusters on-the-fly (should allow EaaSI system administrators to configure and pay for the computing required for actually running emulation sessions - the EmuComp - as needed, rather than pre-configuring a set, and potentially dormant, amount of CPU + RAM)
  • removed a legacy migration from eaasi-installer that applied only to earlier/other EaaS deployments (not EaaSI v2019.11, v2020.03, or v2021.10) that resulted in undesirable behavior in latest codebase

Expected work (June 2023)

  • test and merge several small EaaSI UI tweaks for legibility
  • test and merge an EaaSI UI menu option to trigger re-synchronization of image and object archives based on new API endpoint described above
  • draft and distribute release notes for v2023.[xx]
  • perform final user-facing QC and update documentation for upgrading existing installations to v2023.[xx]