Not sure if this is the right place, but here goes.
As mentioned above I only had 2 applications left that came from TrueCharts (Podgrab and Scrutiny), and I’m currently trying to migrate them to a regular “Custom App” before upgrading to Electric Eel.
Obviously I want to keep the data, so I used the aforementioned heavy_script to mount the volumes of these two apps and copied the data out. So far so good.
For Podgrab (I know it’s unmaintained, but it works for what I need it) I was able to set up the bare docker container just using the hostpath mounts and everything is fine.
However, with Scrutiny I’m running into an issue. I took a look at TrueCharts’ configuration (since they took the repo offline all I have is what it in ix-applications):
% pwd && cat ix_values.yaml
/mnt/tank/ix-applications/releases/scrutiny/charts/11.0.8
image:
repository: ghcr.io/analogj/scrutiny
pullPolicy: IfNotPresent
tag: v0.8.1-omnibus@sha256:66a65d1d7f2bf330a55e0bb073a3b2496a7b61dc6414c8c53550bc0c3f6885dd
service:
main:
ports:
main:
targetPort: 8080
port: 10151
persistence:
varrun:
enabled: true
config:
enabled: true
mountPath: "/opt/scrutiny/config"
influxdb:
enabled: true
mountPath: "/opt/scrutiny/influxdb"
udev:
enabled: true
type: hostPath
hostPath: "/run/udev"
mountPath: "/run/udev"
readOnly: true
portal:
open:
enabled: true
securityContext:
container:
runAsNonRoot: false
readOnlyRootFilesystem: false
privileged: true
allowPrivilegeEscalation: true
capabilities:
# RawIO is for HDDs
# SYS_ADMIN is for NVMEs
add:
- SYS_RAWIO
- SYS_ADMIN
runAsUser: 0
runAsGroup: 0
workload:
main:
podSpec:
containers:
main:
probes:
liveness:
path: "/api/health"
readiness:
path: "/api/health"
startup:
path: "/api/health"
env:
COLLECTOR_CRON_SCHEDULE: "0 0 * * *"
COLLECTOR_HOST_ID: "TrueNAS"
I was able to enter everything in there into the Custom App interface (except varrun, no idea what that refers to), but when trying to create the container, I run into an error:
[EFAULT] Failed to install App: WARNING: Kubernetes configuration file is group-readable. This is insecure. Location: /etc/rancher/k3s/k3s.yaml Error: INSTALLATION FAILED: execution error at (ix-chart/templates/workload.yaml:9:7): Invalid hostpath /run/udev. Path must be a valid path under a given pool e.g /mnt/tank/somepath is valid whereas /mnt or /mnt/tank are invalid examples.
Not sure what that warning is about because I don’t think I have control over that, but my real problem is the invalid hostpath afterwards.
Soooo question is: a) do I even need this given that the container runs in privileged mode and just created it without the hostpath mount and the shell from inside the container says: ls: cannot access '/run/udev': No such file or directory b) if I do, any idea how I would get it to accept that hostpath? 
I’m not sure if a symlink on my pool would be enough since it’ll follow the symlink and then probably end up inside the container? just tried it and the symlink doesn’t even show up in the Host Path selection:
% pwd && ls -l
/mnt/tank/configs/scrutiny
total 10
drwxrwsr-x 2 root apps 3 Jan 3 00:00 scrutiny-config
drwxrwsr-x 3 root apps 6 Nov 5 2023 scrutiny-influxdb
lrwxrwxrwx 1 root root 9 Jan 4 01:47 udev -> /run/udev

edit:
Alternatively, does anyone know how the TrueNAS upgrade handles these orphaned TrueCharts apps? Does it just leave them be? Does it try to convert them to a custom app/compose file? Or does it just refuse to upgrade?
Since they are using Kubernetes’ PVCs I don’t think converting them automatically would work anyway…