Upgrading Unifi in Synology Docker

… FOR WHEN YOU JUST CAN’T SEEM TO REMEMBER THAT DAMN COMMAND

The blog where I copied the command has the above title. Interesting. It is interesting for me because I always have this issue. I need to start writing down everything I did so then I don’t have to reinvent the wheel when I need it again in the future. Just like this one — to upgrade Unifi version in Synology docker.

Luckily, I found this pretty quick.

Create a backup using the Web UI of UniFi by going to Settings > System > Backup and hit Download (Settings only). Once done, it’s time to power off your container:

Docker > Container > [your-unifi-container] > switch it off

Once powered down, proceed to fetch the :latest version of the image:

Docker > Registry > jacobalberty/unifi (:latest)

Hit Download at the top (or Right-click on the image name and select Download this image“
Wait for the download to complete – you should see a notification once that’s done.

Finally, we’re going to reset the container itself:

Docker > Container > [your-unifi-controller] > Action > Reset > Yes

Upgrading DSM 6 to DSM 7

DSM 7

Synology has released the latest and greatest version of DSM 7 on June 2021 but I just upgraded today. If it ain’t broke, don’t fix it. However, the Christmas holiday give me some room in case the upgrade didn’t go well. Luckily, there is no major issues.

Before Upgrade

I used the following applications before the upgrade:

  • Photo Station
  • Docker — I have my Unifi controller and Folding@home running in containers
  • CardDav Server
  • Video Station

The Upgrade

The upgrade was from DSM 6.x to DSM 7.1.1-42962 Update 3. It is running on DS218+.

Applications That Don’t Work Anymore

Photo Station and CardDav server.

Synology introduced Synology Photos to replace Photo Station. The photos are still there but I needed to install the Synology Photos Mobile on my phone and setting up the automatic backup again. All the photos and videos are still there.

CardDav, however, is a different story. It is replaced by Synology Contacts but all the contacts that I had before were all deleted. Since I am not using CardDav as my main contacts, I have no issues with it. But if you do use carddav heavily, please consider to do the backup before doing the upgrade.

I do remember vividly that they told you about this possibility when I started the upgrade process but I completely ignored it since I am not using CardDav that much.

Applications That Work

There were no issues whatsoever with Docker and the Video Station. They just keep working as expected. All containers are running immediately after the upgrade without problems.

Dependency CCS failed to install

This error has been bugging me last time when I was installing Watson Studio on IBM Cloud Pak for Data, running on OCP 4.8.

Dependency CCS failed to install
Unable to install CSS prerequisite

Apparently the reason is that one of the required service, IBM Common Core Service has not been installed correctly. One of the pods failed to pull the image due to pull secret issue with IBM Entitlement Key.

Please make sure that the secret has been propagated correctly to all worker nodes.

Somehow once it fails, it will be problematic.

How to request Let’s Encrypt wildcard certificate?

Background

I am tired getting the certificate error every time I access my servers at home. Those servers have no access to the public network. I need to create the certificate manually.

Certbot

Certbot is a free, open source software tool for automatically using Let’s Encrypt certificates on manually-administrated websites to enable HTTPS. This will be used to create the TLS certificates which then will be installed on the internal servers.

Configuration

Let’s install Certbot using Brew

brew install certbot

I don’t have any servers with port 80 open but I have access to my DNS. So I use DNS installation method in which you need to add a TXT record.

sudo certbot certonly --manual --preferred-challenges dns

Follow the setup process. When it prompts on which domain would need the TLS certs to be requested, please use asterisk (*) in front of the chosen domain name.

*.ardho.nl

Continue the process of adding the txt records in the DNS and eventually the keys will then be created and can be installed on all the servers.

How to delete all Kubernetes jobs in a namespace ?

Somehow, I was not able to find easily the command to remove all jobs in a single namespace. It could be that I just missed it, but I hope after this, no one needs to spend too much time to find it.

kubectl delete jobs --all -n <namespace> 

And on top of it, you can also use the field selector to delete jobs based on their labels.

kubectl delete jobs --field-selector status.successful=0 -n <namespace>