Morio v0.14 migration guide
This migration guide covers migrating Morio from v0.13 to v0.14.
Pre-migration
No changes are required, although we recommend you backup your configuration and database.
Post-migration
Broker certificate change
To avoid problems with hairpin NAT that can occur on some systems with specific network configurations, the console service no longer connects to the broker’s public URL, but instead connects to its internal name on a custom port.
This internal connection too is protected with TLS and thus the broker certificate now needs a SAN entry for the internal name. Morio core will generate such a broker certificate, but it will only do so if there is not yet a certificate on disk, or if it is close to expiry.
If you are already running a broker, and your console service does not come up due to this issue, you can force a certificate renewal as such:
sudo systemctl daemon-reload
sudo mv /etc/morio/moriod/broker/certs.json /tmp
sudo docker rm -f morio-broker
sudo docker rm -f morio-console
sudo systemctl restart moriod
This will:
- Reload the sytemctl daemon to ensure it has picked up the new version
- Remove the
certs.jsonfile which is used to track certificate expiry by Morio core, and is not used by the broker itself. - Remove both the broker and console containers
- Restart the moriod service, which will restart core, which will recreate the
containers after generating the new broker certificate as it will detect
certs.jsonis missing.
Moriohub content
Note that you will need to reseed Morio if you are using content from Moriohub.
If you are using your own custom stream processing logic, please make sure to adapt them to the changes in Tap. You can refer to the reference documentation.
Database file permissions
This version includes a major upgrade of the underlying database service. Specifically, this release comes with Rqlite 9.
The container image has been changed in this new major version to no longer run
as the root user, but instead as user rqlite with UID 1000. To allow the
container to function, Morio core will chmod all the database data to be owned