Upgrading¶
For Kubernetes, we need to differ between upstream releases (UR) and (security) image releases (IR) for their different release schemas.
Upstream releases (UR)¶
When switching to a new Dataverse version, please always read upstream release notes carefully.
Obviously, upstream files and additions from this project are included in the images, but sometimes, you will need to execute some actions manually.
These actions are left out of automation by intent. For example re-indexing might be a heavy lifting task in your installation and put heavy load on your deployment (you might want to schedule that for off-hours).
We will try to point out any of those in our release notes.
A list of jobs usefull during upgrades:
Image releases (IR)¶
As described in the images documentation Image “dataverse-k8s” and Image “solr-k8s”, the latest UR image is released with updated base images every night.
As every container running on your cluster contains its own operating system
installation, it’s a good idea to update regularly. It’s not feasible to
run yum update
or similar - instead, use rollouts to replace containers.
As of writing this in January 2020, there are two main approaches to ensure this.
Using pull policy and restart¶
First add imagePullPolicy: Always
to the container or deployment spec if not
yet present (we don’t set this by default to avoid unnecessary pulls).
Then run
kubectl rollout restart deployment/dataverse
kubectl rollout restart deployment/solr
which will trigger a complete redeployment of your pods, restarting the applications.
Using tools like “imago”¶
Similar to Watchtower, you can use
a similar project named Imago to sync your
Pod
images with Docker Hub images.
This works independently from your imagePullPolicy
by using the sha256
image checksum in background.