@morganL Yes I read through that documentation, but unfortunately it touches mostly on the either complete command line users or complete UI users. I am one of those unfortunate suckers trying to to something in the middle. In an ideal world I would like to setup docker containers via the UI (in some very basic form) but then add all the complex configuration in the generated helm charts/config files. Mostly because the UI, at least in its current state, doesn't provide me with all the options I need and it's just slower trying to map in 10 directories into a docker container.
-Thats not how the Apps system is meant to be working, it's designed for users that one a zero-CLI way of doing thing. If you want CLI, you need to use standard Helm charts, which is perfectly possible.
And that's ok, because it's obviously beta.
- It's NOT a beta, its an alpha, meaning it isn't stable nor complete in any way, shape or form.
I guess I was just a bit confused by what the UI was doing.
Some clear flowcharts might be usefull when Beta hits.
In my mind, which to be fair has only a vague understanding of helm charts and kubernetes...
Tbh, the UI doesn't have much to do with Helm or K8s... it's build ontop of those, but what the UI is doing is pretty much limited to generating Helm values.yaml and thats pretty much it...
there is always something to learn. The whole reason I am currently able to work on building Apps, is the fact i've started learning Helm and K8S is september as soon as there was a timeframe and vague design for SCALE Apps.
I would setup a docker container via the UI and it would generate some rudimentary helm chart/kubernetes config file. Then i could go into that and really add in the, eg hack in, the rest of the configuration.
- Helm files are not a "modify on the fly" kind of thing, running stock. You load a helm chart (with your personallised values.yaml) and after it's loaded the config files are not read anymore, they are turned into k8s objects, within k8s. Ofcoarse you can modifiy the values.yaml and update the k8s objects (which can even be done automatically), but thats not the "default" way of doing things in Helm.
- IX Apps also feature a number of additional failsafes and rolebacks for chart updates, which would be totally incompatible when you go edit all sorts of things.
- If you want to run plain Helm files to edit yourself: Use plain helm.
However it doesn't seem to actually be doing that as the yaml files generated have none of the config options I set in the UI... which is where I was really getting confused.
-i'm personally not sure how things are going to be saved. Did you check all files?
Great to hear you guys are making progress here. Honestly for a beta alpha it has been, mostly, rock solid!
;-)
It also sounds like you are saying SCALE should be doing, at least some of what I want, already. Eg taking the limited UI configuration and dropping a local set of yaml files that represent that config. Let me try to summarize what I've done so far.
- yes, but messing with it is:
a. totally unsupported
b. will
fuck things up in the future
If you want to use plain helm charts, just go use plain helm charts. You are overcomplicating a LOT of things. You could even create helm charts from docker-compose yaml, which you already have.
1. Setup plex via the default built-in config.
This works if I don't change anything but I start to see weird "crashes" that prevent deployment if I change default config options.
Are you doing so inside the UI? If so what did you change?
Outside of the UI and redeploying the way you are doing IS NOT supposed to be Possible.
(okey, everything is possible, but you get the point)
2. Set up plex using the "manual", "Launch docker image" option in the UI.
This works, and I can configure *most* of the things I need, but not all.
- Thats very well possible, in that case: use your own Helm chart, because the UI is not meant to cover every edge case AND it's an alpha so not supposed to be featurecomplete.
- Expect it next release, it just missed the previous one by a few weeks.
setting up directories outside a "pool"
Thats not going to be possible, all content should be inside the pool, thats how TrueNAS and FreeNAS manage storage. It's unlikely that main design principles of TrueNAS/FreeNAS are going to change.
How do you think features get added when you refer to them as just etc? ;-)
When I do this do see a set of generated yaml files, however they don't match at all to anything remotely close to what I configured in the UI. For instance... in my plex config I specified a repo of
"plexinc/pms-docker"
and tag of
"plexpass"
However in the ix-applications/releases/plex/charts/2012.0.0/values.yaml file I see this:
image:
repository: debian
pullPolicy: IfNotPresent
# Overrides the image tag whose default is the chart appVersion.
tag: "latest"
which just looks like it copied the default config in there. The weird thing is the plex app *does* work... to some extent. It at least pulls the right image/tag. So those yaml files have nothing to do with the actual image/container that's running.
I should've been clearer: Values.yaml is the file containing some chart defaults. (because thats how Helm is designed, not by design of IX)
IX generates the equivalent of a values.yaml, but the original values.yaml isn't used.
To be fair: this was also not clear for me, Had to have the dev explain it to me.
I also was in the understanding it would actually modify values.yaml
3. Set up docker containers via docker-compose
This works almost 100%, with only a couple things I couldn't figure out without "hacking" too much. Those things are:
- How to enable/passthrough nvidia GPUs into the docker via docker-compose without nvidia-docker
Thats a good one (and a pain) afaik.
Intel works solid though
- One container seems to have networking issues which don't exist on my other Ubuntu machine (same exact docker-compose.yaml file). It's related to VPN configurations. Normally I expect to see something like:
Code:
Creating TUN device /dev/net/tun
...
2020-12-27 20:12:37 Downloading config: us5848.nordvpn.com.ovpn
2020-12-27 20:12:37 Downloading from: https://downloads.nordcdn.com/configs/files/ovpn_udp/servers/us5848.nordvpn.com.udp.ovpn
Starting OpenVPN using config us5848.nordvpn.com.ovpn
Modifying /etc/openvpn/nordvpn/us5848.nordvpn.com.ovpn for best behaviour in this container
Setting OpenVPN credentials...
adding route to local network 10.0.0.0/16 via 172.19.0.1 dev eth0
but instead see:
Code:
Creating TUN device /dev/net/tun
...
2020-12-26 21:41:58 Downloading config: default.ovpn
2020-12-26 21:41:58 Downloading from: https://downloads.nordcdn.com/configs/files/ovpn_udp/servers/.udp.ovpn
curl: (6) Could not resolve host: downloads.nordcdn.com
No VPN configuration provided. Using default.
Modifying /etc/openvpn/nordvpn/default.ovpn for best behaviour in this container
sed: /etc/openvpn/nordvpn/default.ovpn: No such file or directory
sed: /etc/openvpn/nordvpn/default.ovpn: No such file or directory
sed: /etc/openvpn/nordvpn/default.ovpn: No such file or directory
Setting OpenVPN credentials...
adding route to local network 10.0.0.0/16 via 172.17.0.1 dev eth0
Sat Dec 26 21:42:18 2020 disabling NCP mode (--ncp-disable) because not in P2MP client or server mode
Options error: You must define TUN/TAP device (--dev)
It seems to be DNS related,
Thats indeed a DNS problem, try pinging and digging from a running container (preferably this one) and trace it like you would any other VM.
But it is either:
a. A general networking problem
b. A DNS issue
but I'm not exactly sure where it's going wrong since my other containers seem to be ok.
Remember most containers don't actively use DNS a lot...
So it might actually be broken in all...
TLDR:
- If you want to setup via GUI, use Apps
- If you want to setup via CLI use Helm
- If you want to use docker-compose: That might work just fine, but is technically unsupported (and has a few bugs)