Upgrading

  1. Info
  2. Before Starting
  3. Upgrade the Replicated Agent
  4. Upgrade Waffle

Info

This is a special release, as we’ve integrated a MongoDB container removing the requirement for customers to host their own MongoDB instance. Previously, we’d require a customer to bring their own MongoDB installation.

We are doing a number of things here so it's highly advised to read over these steps beforehand and ensure you understand everything before proceeding.  During this procedure, waffle will be down the majority of the time.  This procedure should not take more than an hour.

This upgrade process will switch you over to the bundled mongo that we include as part of our application.  Once this data import has completed, one can tear down the old mongo instance.  We no longer support specifying your own mongo instance.

This upgrade includes the prerequisite of upgrading the Replicated Service.  What is replicated? Refer here to answer that question.  After that is completed, we'll upgrade to the latest waffle instance and import your data from your self hosted MongoDB.

Please note that when we are looking at versions below, Replicated and Waffle Takeout have different release versions that are not tied together, but currently they are very close.

Before Starting
We need to gather a couple of environment variables from the running installation and save this for the future:

  1. SSH into the node that is running Waffle
  2. Execute a docker ps  and look for the running container using the image waffleio-waffle.io-app 
  3. Run the command docker inspect <ID_FROM_ABOVE> 
  4. Get and save somewhere the following ENV  variables: WAFFLE_DB_ENCRYPTION_KEY  and WAFFLE_DB_SIGNING_KEY we'll need these later

If MongoDB is running on the same instance which Waffle is running, we need to avoid a port conflict.  It’s advised to modify your MongoDB instance’s configuration and utilize a new port temporarily.  Please see the mongo documentation for assistance if necessary. If by chance one installed the MongoDB service on a different host, this does not apply.

Upgrade the Replicated Agent

  1. Get replicated to the latest of version 1.x: curl -sSL https://get.replicated.com | sudo sh
  2. Restart your shell and log into the replicated app via the command line: replicated login  (the password is the same as your administrative password on the web UI
  3. Perform the replicated upgrade to latest: curl -sSL https://get.replicated.com/migrate-v2 | sudo bash  (We've noticed the operator will sometimes fail to start.  We've gotten past this by simply restarting it systemctl restart replicated-operator)
  4.  Restart your shell and validate you are running latest (should be 2.4.x): replicated --version  
  5. At this moment waffle will be down (and cannot be started) until the rest of the upgrade is completed. 

Upgrade Waffle

You can check for new app releases by going to your management interface dashboard https://instance:8800 and clicking on the 'Check Now' button.  Proceed to install the latest.  Keep in mind we do pin releases which may force you to install a slightly older version before upgrading to latest. (2.4.1, for example is a pinned release.  You'll be forced to install this version before installing latest)

Steps to Complete Upgrade

  1. When the upgrade has been completed, Waffle will be up with an empty database, so we now need to import the data from your prior MongoDB.
  2. In the admin console, go to the Settings tab.
  3. At the very bottom, click the migration check box, and fill out the appropriate details
  4. The MongoDB URI would point to the old MongoDB database, remember you might have changed the port in the above step
  5. And each env var we documented above should go into the appropriate text boxes
  6. Click Save then Apply
  7. Replicated will automatically restart the Waffle services
  8. After it’s back up and running, validate that your data is now available
  9. If it isn’t, pull a support bundle, and contact takeout@waffle.io
  10. When all is said and done, the Migration configuration MUST remain; but it is safe to tear down the old MongoDB instance as you see fit
  11. And now finally, you can navigate back to your management interface dashboard and hit that 'Check Now' button, and upgrade to latest
Did this answer your question?