Upgrading Avalon 8.0.1 to Avalon 8.1
Requirements
Ruby 3.4.x and Node.js 20.x are recommended.
The wowza-avalon integration has been updated to work with newer versions of the Wowza Streaming Engine (greater than 4.7.8). See the project’s README for instructions on setting it up.
Config changes
If your Avalon is configured to use :aws_sdk as the email delivery method then you will need to manually apply the changes in
Update AWS setup of actionmailer by cjcolvar · Pull Request #6573 · avalonmediasystem/avalonin order for your Avalon to start. This is a known issue and will be resolved in Avalon 8.2.
Required
Redis now requires a full url (e.g. redis://localhost:6379/0) instead of constituent parts (hostname, port, db). Update this in your settings.yml or with the SETTINGS__REDIS__URL environment variable.
Optional
Avalon 8.1 adds a link to an accessibility request form under the media player if the form url is set in accessibility_request_link (under email) in settings.yml. The default text for the link is Need an accessible version? Contact us and can be changed in config/locales/en.yml under accessibility_request_text.
A repository read-only mode can be enabled by setting repository_read_only_mode in settings.yml. This will disable all write operations to Fedora and Solr but not the database. This can be useful when running long migrations. When repository read-only mode is enabled a flash message appears for all users with write privileges and is configurable with the repository_read_only_mode_message setting in settings.yml.
When using a reverse proxy or similar infrastructure, the avalon rails server may have a public and a private base url. In some scenarios it could be useful or necessary to have the streaming server authorization callback checks go to the private base url instead of the public one. The auth_referer setting in settings.yml allows setting the Referer header sent when fetching M3U8 HLS manifests from the streaming server. The streaming server then uses this header to determine which avalon to callback for authorization. (See Using a devoted rails server for streaming auth callbacks for more information on this setup.)
Upgrade Steps
For Manual Installations
Install ruby 3.4.x (if needed)
Update gems, and migrate DB
bundle install --with production --without development test RAILS_ENV=production bundle exec rake db:migrateInstall node.js 20.x (if needed)
Update JS dependencies
yarn install # in Avalon root dirUpdate configuration, see Config changes above
Restart passenger (if using)
passenger-config restart-app
For Docker Installations
Stop Avalon
docker-compose downUpdate new code from avalon-docker
git fetch git checkout v8.1.0 git pullPull new images
docker-compose pull avalonCheck config changes then restart the Avalon containers
docker-compose up
You can also build your own image, Docker Buildkit is recommended
docker-compose build avalon
For Terraform installations
See note about additional steps needed for SES mailing above in Config changes.
Set
avalon_docker_code_branchandavalon_branchinterraform.tfvarsif necessary. (Latest tags arev8.1.0for Avalon andavalon-8.1.0-aws_minfor avalon-docker.)Perform the upgrade:
terraform apply
You may also see an error when attempting to create an iam user which already exists. If this happens rerunning the terraform apply should resolve the issue and successfully run to completion