Migration Guide¶
Version 2.13¶
Version 2.13 deprecates the portainer component
If you are currently using the portainer component in your stack change the entry in the
BIRDHOUSE_EXTRA_CONF_DIRS variable from ./components/portainer to deprecated-components/portainer.
Consider using a different solution than portainer going forward since this component may be removed
completely in future versions.
Version 2.9¶
Version 2.9 updates JupyterHub to version 5.
To upgrade to version 2.9 from an earlier version:
If your local environment file sets the
c.DockerSpawner.image_whitelistconfig option in theJUPYTERHUB_ENABLE_MULTI_NOTEBOOKSenvironment variable. Changec.DockerSpawner.image_whitelisttoc.DockerSpawner.allowed_images.If you have changed any of the default
jupyterhubsettings you may need to consult the JupyterHub upgrade guide to see if any of those settings have been changed.
Version 2.7.3¶
Version 2.7.3 introduced docker compose syntax that is incompatible with docker compose versions older than 2.20.2.
If your docker compose version is older than
2.20.2you should update to the latest version of docker compose as soon as possible.You may also want to update any docker compose version 1 syntax at this time to avoid deprecation warnings right now (and deployment failures in the future if the version 1 syntax eventually is no longer supported).
Version 1 syntax may include:
top level
versionkeysdeclaring volumes and networks as external with the
external: <name>syntax (where name is the name of the volume or network) instead ofexternal: true.
Version 2.4¶
Version 2.4 renames files and variables that included the string PAVICS.
For historical reasons the name PAVICS was used in variable names, constants and filenames in this repo to refer to the software stack in general. This was because, for a long time, the PAVICS deployment of this stack was the only one that was being used in production. However, now that multiple deployments of this software exist in production (that are not named PAVICS), we remove unnecessary references to PAVICS in order to reduce confusion for maintainers and developers who may not be aware of the historical reasons for the PAVICS name.
To upgrade to version 2.4 from an earlier version, please follow these steps:
Update
env.localfile to replace all variables that containPAVICSwithBIRDHOUSE. Variable names have also been updated to ensure that they start with the prefixBIRDHOUSE_.see
birdhouse/env.local.exampleto see new variable namessee the
BIRDHOUSE_BACKWARDS_COMPATIBLE_VARIABLESvariable (defined inbirdhouse/default.env) for a full list of changed environment variable names.
Update any external scripts that access the old variable names directly to use the updated variable names.
Update any external scripts that access any of the following files to use the new file name:
old file name
new file name
pavics-compose.shbirdhouse-compose.shPAVICS-deploy.logrotatebirdhouse-deploy.logrotateconfigure-pavics.shconfigure-birdhouse.shtrigger-pavicscrawlertrigger-birdhousecrawlerUpdate any external scripts that called
pavics-compose.shorread-configs.include.shto use the CLI entrypoint inbin/birdhouseinstead.The following default values have changed. If your deployment was using the old default value, update your
env.localfile to explicitly set the old default values.old variable name
new variable name
old default value
new default value
POSTGRES_PAVICS_USERNAMEBIRDHOUSE_POSTGRES_USERNAMEpostgres-pavicspostgres-birdhouseTHREDDS_DATASET_LOCATION_ON_CONTAINER(no change)
/pavics-ncml/birdhouse-ncmlTHREDDS_SERVICE_DATA_LOCATION_ON_CONTAINER(no change)
/pavics-data/birdhouse-data(hardcoded)
BIRDHOUSE_POSTGRES_DBpavicsbirdhousePAVICS_LOG_DIRBIRDHOUSE_LOG_DIR/var/log/PAVICS/var/log/birdhouse(hardcoded)
GRAFANA_DEFAULT_PROVIDER_FOLDERLocal-PAVICSLocal-Birdhouse(hardcoded)
GRAFANA_DEFAULT_PROVIDER_FOLDER_UUIDlocal-pavicslocal-birdhouse(hardcoded)
GRAFANA_PROMETHEUS_DATASOURCE_UUIDlocal_pavics_prometheuslocal_birdhouse_prometheusNote that the
PAVICS_LOG_DIRvariable was actually hardcoded as/var/log/PAVICSin some scripts. IfPAVICS_LOG_DIRwas set to anything other than/var/log/PAVICSyou’ll end up with inconsistent log outputs as previously some logs would have been sent toPAVICS_LOG_DIRand others to/var/log/PAVICS. We recommend merging these two log files. Going forward, all logs will be sent toBIRDHOUSE_LOG_DIR.Update any jupyter notebooks that make use of the
PAVICS_HOST_URLenvironment variable to use the newBIRDHOUSE_HOST_URLinstead.Set the
BIRDHOUSE_POSTGRES_DBvariable topavicsin theenv.localfile. This value was previously hardcoded to the stringpavicsso to maintain backwards compatibility with any existing databases this should be kept the same. If you do want to update to the new database name, you will need to rename the existing database. For example, the following will update the existing database namedpavicstobirdhouse(assuming the old default values for the postgres username):docker exec -it postgres psql -U postgres-pavics -d postgres -c 'ALTER DATABASE pavics RENAME TO birdhouse'
You can then update the
env.localfile to the new variable name and restart the stackSet the
BIRDHOUSE_POSTGRES_USERvariable topostgres-pavicsin theenv.localfile if you would like to preserve the old default value. If you would like to change the value ofBIRDHOUSE_POSTGRES_USERthen also update the name for any running postgres instances. For example, the following will update the user namedpostgres-pavicstopostgres-birdhouse:docker exec -it postgres psql -U postgres-pavics -d postgres -c 'CREATE USER "tmpsuperuser" WITH SUPERUSER' docker exec -it postgres psql -U tmpsuperuser -d postgres -c 'ALTER ROLE "postgres-pavics" RENAME TO "postgres-birdhouse"' docker exec -it postgres psql -U tmpsuperuser -d postgres -c 'ALTER ROLE "postgres-birdhouse" WITH PASSWORD '\''postgres-qwerty'\' docker exec -it postgres psql -U postgres-birdhouse -d postgres -c 'DROP ROLE "tmpsuperuser"'
Note that the
postgres-qwertyvalue is meant just for illustration, you should replace this with the value of theBIRDHOUSE_POSTGRES_PASSWORDvariable. Note that you’ll need to do the same for thestac-dbservice as well (assuming that you weren’t previously overriding theSTAC_POSTGRES_USERwith a custom value).