I finally decided to get to the long-overdue update of my truenas scale (It was still on 22.12.4.2). I know that this version is no longer supported and that the newer versions are no longer using kubernetes (or at least that’s what I gathered), but hey, this is what I get for being lazy with my hobby system
I started with my apps, and when I tried to jump to the newest release of Nextcloud I quickly found out that it can only be updated one major version at a time. I think I started out from 28. Upgrading to 29 (chart version 2.0.15) was simple enough, but I noticed that there was no chart version in the dropdown corresponding to Nextcloud 30. After a lot of looking around in the github repo I relized that there used to be a chart 2.0.22 with version 30, but it was overwritten with 2.0.23 and nextcloud version 31. After some more digging, I found out that the enterprise branch still had the needed 2.0.22.
So the next task was to point the chart repo to that branch - easier said than done I tried adding it as a second repo, but the app still only showed the 2.0.23 version in the upgrade dropdown. I needed a more drastic approach. After some back-and-forth with chatgpt (hey, it actually helped) and searching around in the middlewared source files, I found out about the /data/freenas-v1.db file, which (as far as I understand) contains the config data for the system. In there there is a table called services_catalog with the TRUENAS repo in it as a record.
A simple sql update did the trick:
update services_catalog set branch='enterprise-apps' where label = 'TRUENAS';
My Nextcloud app found the needed 2.0.22, and upgraded successfully. After reversing the change (update services_catalog set branch='master' where label = 'TRUENAS';
) it successfully grabbed the originally visible 2.0.23, and finally managed to upgrade itself to 31.
There might have been an easier (possibly much easier) way to do this, but hey, it wouldn’t have been as ̶p̶a̶i̶n̶f̶u̶l educational. I haven’t even talked about the frontend debugging and websocket monitoring, which mostly just made me realize I should have been looking at the middlewared repo instead
I guess I should file a bug report, unless someone points out something obvious that makes this whole journey completely pointless. Though the repo’s readme says it is deprecated, but it’s still getting commits, so I’m not totally sure if I should.
I mostly just wanted to share my journey. Thanks for reading!