Applications UI Lands in SCALE Nightly Images

tprelog

Patron
Joined
Mar 2, 2016
Messages
291
currently supported plugins

Do you think Home Assistant could eventually make it to this list? I mean, as an app on SCALE
 

tallnerd1985

Dabbler
Joined
Dec 1, 2016
Messages
10
Do you think Home Assistant could eventually make it to this list? I mean, as an app on SCALE

I think this would make for a good example on how to implement this in the application UI and a bonus, how to pass through a USB device and map it inside the container.
 

ornias

Wizard
Joined
Mar 6, 2020
Messages
1,458
I think this would make for a good example on how to implement this in the application UI and a bonus, how to pass through a USB device and map it inside the container.
I'm currently working on porting helmcharts to SCALE, so I kinda know the workflow (just need to perfect mine to get it done faster).


For simple helm charts, it's mostly addings some files, changing a few references for naming and storage and adapting the default UI stuff to add a few application specific fields (like a transcode path for example, in the case of plex).

Things like: Home Assistant, are what I call "not-so-simple" charts, those charts need more work because they often require more features (like passthrough)

Things like: Traefik, are wat i call "complicated" charts, those use CRD's and need lots of special attention.

Good examples are not more complicated than needed, using an app like Home Assistant as an example, would overcomplicate it for a lot of people.

That being said: In my experience you do need to have slightly more than basic experience in editing helm-charts and YAML/JSON files. If you do have that knowhow, you don't really need an example how to do it and if you don't have that know how, you might be better of learning to work with plain Helm charts first.
 

tallnerd1985

Dabbler
Joined
Dec 1, 2016
Messages
10
I'm currently working on porting helmcharts to SCALE, so I kinda know the workflow (just need to perfect mine to get it done faster).


For simple helm charts, it's mostly addings some files, changing a few references for naming and storage and adapting the default UI stuff to add a few application specific fields (like a transcode path for example, in the case of plex).

Things like: Home Assistant, are what I call "not-so-simple" charts, those charts need more work because they often require more features (like passthrough)

Things like: Traefik, are wat i call "complicated" charts, those use CRD's and need lots of special attention.

Good examples are not more complicated than needed, using an app like Home Assistant as an example, would overcomplicate it for a lot of people.

That being said: In my experience you do need to have slightly more than basic experience in editing helm-charts and YAML/JSON files. If you do have that knowhow, you don't really need an example how to do it and if you don't have that know how, you might be better of learning to work with plain Helm charts first.

I think with what you have stated, this might over complicate more homelab users out of using this feature themselves and relying on dev built templates. I know I’ve taken quite bit of time learning docker and then docker compose but the complexity behind k3s/k8s setup for single node setup might be too frustrating for most end users. I will file a Jira ticket later but I think in the Application UI, we need a different setup between Helm/k3s style container deployment and the simpler Docker config setup so users have a choice based on their server setups.
 

ornias

Wizard
Joined
Mar 6, 2020
Messages
1,458
I think with what you have stated, this might over complicate more homelab users out of using this feature themselves and relying on dev built templates. I know I’ve taken quite bit of time learning docker and then docker compose but the complexity behind k3s/k8s setup for single node setup might be too frustrating for most end users. I will file a Jira ticket later but I think in the Application UI, we need a different setup between Helm/k3s style container deployment and the simpler Docker config setup so users have a choice based on their server setups.
You can already add normal containers, you don't need these feature to add a standard container.
Just to add a app to the application database, which is the thing I was explaining and @tprelog was asking about....

Maybe first try to understand how things work, before creating needless jira issues?
 

thomasesrichter

Dabbler
Joined
Jan 18, 2019
Messages
15
I think with what you have stated, this might over complicate more homelab users out of using this feature themselves and relying on dev built templates. I know I’ve taken quite bit of time learning docker and then docker compose but the complexity behind k3s/k8s setup for single node setup might be too frustrating for most end users. I will file a Jira ticket later but I think in the Application UI, we need a different setup between Helm/k3s style container deployment and the simpler Docker config setup so users have a choice based on their server setups.
I agree, I had my docker setup and running on SCALE with everything working, Portainer-ce, Plex, Nextcloud, Postgres, all the arr's, Heimdall... And now I'm trying to figure out k3s. The only thing I'm not getting is the networking. The TrueNAS UI is really limited in this particular point. My Nextcloud can't access the internet and therefore can't send e-mails and other features. I don't understand how TrueNAS apps are setting up their networks. And what I need to do to make them work. On Docker I used portainer and got them working in no time.
 

ornias

Wizard
Joined
Mar 6, 2020
Messages
1,458
Some notes:
I've recently come to the conclussion that the premise of this thread is false.
The "Applications UI" has not "Landed".

It can best be described as a "proof of concept", as all it's applications (Nextcloud, Plex, Minio and docker-to-k3s) have hardcoded UI's, that are not actually based on the app-charts themselves.

I was really hooked to get some community Apps ready this week and am hugely disappointed that i'm not even able to hack it together (it's like 50% of UI related development that is missing). Sorry guys.

*edit*
Had a nice chat with Kriss and it's now made clear it's just initial support for this UI.
To be clear: The API side of this is way more complete than the UI, so hold your horses it's gonna be a great run! :)
 
Last edited:

Kris Moore

SVP of Engineering
Administrator
Moderator
iXsystems
Joined
Nov 12, 2015
Messages
1,448
Some notes:
I've recently come to the conclussion that the premise of this thread is false.
The "Applications UI" has not "Landed".

It can best be described as a "proof of concept", as all it's applications (Nextcloud, Plex, Minio and docker-to-k3s) have hardcoded UI's, that are not actually based on the app-charts themselves.

I was really hooked to get some community Apps ready this week and am hugely disappointed that i'm not even able to hack it together (it's like 50% of UI related development that is missing). Sorry guys.

*edit*
Had a nice chat with Kriss and it's now made clear it's just initial support for this UI.
To be clear: The API side of this is way more complete than the UI, so hold your horses it's gonna be a great run! :)

Yep, this is where Slack comes in handy :) I tried to clarify that in the message above now. This is essentially ALPHA2 of SCALE, and we've a long way to go still. The backend has come a long way in past 3-4 months, but we've still got a full TODO plate before we consider it all -RELEASE next year :)

Stay tuned, and keep the feedback coming!
 

ornias

Wizard
Joined
Mar 6, 2020
Messages
1,458
@Kris Moore To be fair: The API side of things is solid and the process of going from a helm-chart to a IX-App, is understandable and doable for those of us with helm-chart-skills. I'm looking forward to get some PoC Apps ready when you guys are ready.

At least we now know the basic format and structure we can expect and what will (and won't) be exposed to the end-user.
 

inman.turbo

Contributor
Joined
Aug 27, 2019
Messages
149
This is great! I looked under the hood a bit and kubectl in the cli via k3s is available there. K3s is an excellent choice here. What about secrets support? And community apps? I'm currently working on one that deploys nginx proxy manager as a load balancer and reverse proxy.
 

thomasesrichter

Dabbler
Joined
Jan 18, 2019
Messages
15
@Kris Moore To be fair: The API side of things is solid and the process of going from a helm-chart to a IX-App, is understandable and doable for those of us with helm-chart-skills. I'm looking forward to get some PoC Apps ready when you guys are ready.

At least we now know the basic format and structure we can expect and what will (and won't) be exposed to the end-user.

As for what you could expose to the end-user in the UI, I think should be as much as the TrueNAS CORE jail plugins. For instance Volume management and host mapping for the Apps as well as a Network management UI.
 

ornias

Wizard
Joined
Mar 6, 2020
Messages
1,458
What about secrets support? And community apps?
only by cli currently

And community apps?
See above...
Community apps are going to be supported, but for now very big portions of the UI are hardcoded to only work with the current 3 IX-made applications. Which means: No currently you cant get them into the UI.

You can test the apps via CLI though...
 

cmoyroud

Cadet
Joined
Dec 11, 2020
Messages
9
FYI - Its also on my list to test using https://kompose.io/ to try and convert a docker compose file to helm chart, and load that way. Hopefully will find some time for that next week ;)

Yes please! I've started playing with Kompose to move my current Docker Compose stack. I think kompose convert -c --volumes hostPath should do the trick. But I can't test it right now (especially the volumes mapping, I don't know how that's handled by SCALE/k3s), because I can't upgrade my SCALE for 20.10 to 20.12. I keep getting "Error: ('Connection broken: OSError("(104, \'ECONNRESET\')")', OSError("(104, 'ECONNRESET')")) " after a little while. I've bumped the memory on the SCALE VM, and I've got an otherwise stable 500Mbps fiber connection.
 

ksimm1

Dabbler
Joined
Dec 7, 2020
Messages
42
Just following up here to say thanks for the updated developer's notes. Very helpful -- particularly the links to other k8s documentation pages and kubectl commands. Those pages have a lot of docker config comparisons already thoroughly covered, which is exactly what I needed.

In this case you're probably thinking of host paths, which are how you map storage on /mnt/<pool>/<directory> to inside your container. Can you provide some examples of where you think its going wrong, or how you are using it?
...

The documentation for the 2012 release ix helm chart was also crucial. Now I see why the different application UI sections were named the way they were.

I'm up and running on 6+ docker images deployed via the UI with no issues. I also installed the kubernetes dashboard that ornias described in a different thread; pretty cool.

Now I need to figure out how to leverage the traefik service baked-in to k3s to do reverse proxy for my apps (attempting to port over this guide)... probably off-topic for this thread.
 

morganL

Captain Morgan
Administrator
Moderator
iXsystems
Joined
Mar 10, 2018
Messages
2,691
I'm up and running on 6+ docker images deployed via the UI with no issues. I also installed the kubernetes dashboard that ornias described in a different thread; pretty cool.

Great to hear.... would love to see a how to thread based on your experiences. Would love to hear recommendations on how to improve.
 

ornias

Wizard
Joined
Mar 6, 2020
Messages
1,458
Now I need to figure out how to leverage the traefik service baked-in to k3s to do reverse proxy for my apps (attempting to port over this guide)... probably off-topic for this thread.
You can't afaik k3s is ran with: --disable traefik

*Edit*
Here it is:

'--disable=traefik,metrics-server,local-storage' \

*Edit 2*
It does not look to be done on purpose by IX seems to be part of a port from debian:

It's worth a debate if this is useable.
The thing is:
a. Not everyone needs an ingresscontroller, most home users would prop. be fine with using nodeports
b. It uses 80 and 443 by default, so that needs to be overridden
c. It might be less customisable and at the very least not UI customisable (unless IX goes out of there way to make a seperate UI just for this)
d. Enterprise customers might not even want to run this (by default) anyway)
e. The default settings are pretty mediocre... When it comes to TLS for example, quite some tuning is required to get it into a production-ready state

I'm currently working on a Traefik App, I think thats the way to go tbh.
I already got it past CI and the Helmchart is working, just needs some polish, some work to get certs to work and work on getting the UI working (which first requires IX to make sure I actually can test the UI, by making sure the questions.yaml generates one)
 
Last edited:

ksimm1

Dabbler
Joined
Dec 7, 2020
Messages
42
Great to hear.... would love to see a how to thread based on your experiences. Would love to hear recommendations on how to improve.

IMO a quick win would be simply adding/improving the tooltips on the Install Application UI fields. They're pretty sparse at the moment. If you include links to docs/reference pages in the tooltips as well (like on other tooltips throughout the truenas UI) that'll definitely help!
 

morganL

Captain Morgan
Administrator
Moderator
iXsystems
Joined
Mar 10, 2018
Messages
2,691
IMO a quick win would be simply adding/improving the tooltips on the Install Application UI fields. They're pretty sparse at the moment. If you include links to docs/reference pages in the tooltips as well (like on other tooltips throughout the truenas UI) that'll definitely help!
Agreed.... 1at step is to get TrueNAS SCALE documentation to RELEASE state in Q1. After that, there will be docs we can point to reliably.
 
Top