Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

PD-1369 / 25.04 / Pd 1369 update custom app #3123

Draft
wants to merge 38 commits into
base: master
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
38 commits
Select commit Hold shift + click to select a range
bdbea16
Update AppsDiscoverScreen.png
DjP-iX Oct 7, 2024
4750978
Update AppsDiscoverScreenHeaderAndSearch.png
DjP-iX Oct 7, 2024
66aea93
Update _index.md
DjP-iX Oct 7, 2024
3db1fc6
Update CustomAppEE.md
DjP-iX Oct 7, 2024
018bf59
Update _index.md
DjP-iX Oct 7, 2024
de9e4c2
Update InstallCustomAppScreens.md
DjP-iX Oct 7, 2024
adb004b
Update InstallCustomAppApplicationName.png
DjP-iX Oct 7, 2024
5ad3099
Update InstallCustomAppContainerEntrypoint.png
DjP-iX Oct 7, 2024
16a776d
Update InstallCustomAppContainerImages.png
DjP-iX Oct 7, 2024
4fd5937
Update InstallCustomAppScreenNameAndImage.png
DjP-iX Oct 7, 2024
733557f
Update InstallCustomAppTOC.png
DjP-iX Oct 7, 2024
175ce17
Update InstallCustomAppScreens.md
DjP-iX Oct 8, 2024
dfb93fa
Create InstallCustomAppSecurityContextConfiguration.png
DjP-iX Oct 8, 2024
6f4a003
Update InstallCustomAppScreens.md
DjP-iX Oct 8, 2024
bfd2f13
Update InstallCustomAppNetworking.png
DjP-iX Oct 8, 2024
f6c575f
Update InstallPiHoleApp.md
DjP-iX Oct 9, 2024
716d196
Update SMBSharesScreens.md
DjP-iX Oct 9, 2024
47ef7f1
Update NFSSharesScreens.md
DjP-iX Oct 9, 2024
56a456c
Update ReplicationScreensSCALE.md
DjP-iX Oct 9, 2024
3b38476
Update AddingNFSShares.md
DjP-iX Oct 9, 2024
106162d
Update InstallCustomAppScreens.md
DjP-iX Oct 9, 2024
2cb2521
Update InstallCustomAppAddHostPathVol.png
DjP-iX Oct 9, 2024
f10b5f6
Create InstallCustomAppAddixVolume.png
DjP-iX Oct 9, 2024
9bdac75
Update InstallCustomAppAddMemoryBackedVol.png
DjP-iX Oct 9, 2024
35be63a
Update InstallCustomAppAddPortalConfiguration.png
DjP-iX Oct 9, 2024
2a2d9c5
Update InstallCustomAppAddResourceLimits.png
DjP-iX Oct 9, 2024
2f792cd
Create InstallCustomAppAddSMB.png
DjP-iX Oct 9, 2024
560212f
Update InstallCustomAppAddStorageVolumes.png
DjP-iX Oct 9, 2024
53be553
Update InstallCustomAppScreenStorage.png
DjP-iX Oct 9, 2024
230a350
Update InstallCustomAppScreens.md
DjP-iX Oct 10, 2024
1105255
Update UsingCustomApp.md
DjP-iX Oct 10, 2024
8416027
Create InstallCustomAppYAML.png
DjP-iX Oct 10, 2024
7d8b14e
Update _index.md
DjP-iX Oct 10, 2024
a121a87
Update InstallCustomAppScreens.md
DjP-iX Oct 10, 2024
664794c
Update _index.md
DjP-iX Oct 10, 2024
76fa727
Update UsingCustomApp.md
DjP-iX Oct 10, 2024
e15fba1
Create CustomAppIntro.md
DjP-iX Oct 10, 2024
a8bbf93
Create YAMLWarning.md
DjP-iX Oct 10, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion content/SCALE/SCALETutorials/Shares/AddingNFSShares.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ Go to **Shares > Unix (NFS) Shares** and click **Add** to open the **Add NFS Sha

{{< trueimage src="/images/SCALE/Shares/AddNFSScreen.png" alt="Add NFS Basic Options" id="Add NFS Basic Options" >}}

Enter the path or use the <span class="material-icons">arrow_right</span> icon to the left of **<span class="material-icons">folder</span>/mnt** to locate the dataset and populate the path.
Enter the path or use the <span class="material-icons">arrow_right</span> icon to the left of **<svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 24 24"><path fill="currentColor" d="M5 21L3 9h18l-2 12zm5-6h4q.425 0 .713-.288T15 14t-.288-.712T14 13h-4q-.425 0-.712.288T9 14t.288.713T10 15M6 8q-.425 0-.712-.288T5 7t.288-.712T6 6h12q.425 0 .713.288T19 7t-.288.713T18 8zm2-3q-.425 0-.712-.288T7 4t.288-.712T8 3h8q.425 0 .713.288T17 4t-.288.713T16 5z"/></svg>/mnt** to locate the dataset and populate the path.

{{< include file="/static/includes/FileExplorerFolderIcons.md" >}}

Expand Down
318 changes: 160 additions & 158 deletions content/SCALE/SCALEUIReference/Apps/InstallCustomAppScreens.md

Large diffs are not rendered by default.

16 changes: 9 additions & 7 deletions content/SCALE/SCALEUIReference/Apps/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ The **Installed** applications screen shows status of installed apps, provides a

The **Discover** screen show widgets for the installed catalog of apps.
The individual app widgets open app information screens with details about that application, and access to an installation wizard for the app.
<!-- It also provides access to a [**Custom Apps**](#install-custom-app-screen) wizard that allows users to add an app not included in the catalog. commented out until RC1 release when the Custom App screen is added back to the UI -->
It also includes options to install [third-party applications](#install-custom-app-screen) in Docker containers that allow users to deploy apps not included in the catalog.

## Installed Screen
The first time you go to **Apps**, the **Installed** applications screen header shows an <i class="fa fa-cog" aria-hidden="true"></i> **Apps Service Not Configured** status and dialog opens prompting you to choose the pool for apps to use.
Expand Down Expand Up @@ -244,8 +244,8 @@ The breadcrumbs at the top of the screen header show links to the previous or th

{{< trueimage src="/images/SCALE/Apps/AppsDiscoverScreenHeaderAndSearch.png" alt="Apps Discover Screen Header and Search" id="Discover Screen Header and Search" >}}

<!--
**Custom App** opens the **[Install Custom App](#install-custom-app-screen)** screen. commenting out until added back into the UI in RC1 -->
**Custom App** opens the **[Install iX App](#install-custom-app-screens)** screen with an install wizard.
<i class="material-icons" aria-hidden="true" title="more_vert">more_vert</i> > **Install via YAML** opens the **Custom App** screen with an advanced YAML editor for deploying apps using Docker Compose.

The **Discover** screen includes a search field, links to other application management screens, and filters to sort the application widgets displayed.
**Show All** shows all application widgets in the trains added to the **Stable** catalog. The links are:
Expand All @@ -261,11 +261,13 @@ Filter information includes the **Category**, **App Name**, and **Updated Date**
* **App Name** sorts app widgets alphabetically (A to Z).
* **Updated Date** sorts the app widgets by date of update.

<!-- commenting out until RC1 when this function is added back to the UI
## Install Custom App Screen
## Install Custom App Screens

The **Install Custom App** screen displays the setting options needed to install a third-party application not included in the TRUENAS catalog.
See [Install Custom App Screens]({{< relref "InstallCustomAppScreens.md" >}}) for more information. -->
TrueNAS 24.10 or later provides two options for installing a third-party application not included in the official catalogs using a Docker image.
**Custom App** opens the **[Install iX App](#install-custom-app-screens)** screen with a guided installation wizard.
<i class="material-icons" aria-hidden="true" title="more_vert">more_vert</i> > **Install via YAML** opens the **Custom App** screen with an advanced YAML editor for deploying apps using Docker Compose.

See [Install Custom App Screens]({{< relref "InstallCustomAppScreens.md" >}}) for more information.

## Application Information Screens
Each application widget on the **Discover** screen opens a information screen with details about that application, a few screenshot of web UI for the application, and the **Install** button.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -304,7 +304,7 @@ The Source setting options change based on selections made in **Recursive** and
{{< truetable >}}
| Setting | Description |
|---------|-------------|
| **Source** | (Required) Enter or use <span class="material-icons">arrow_right</span> to the left of the **/mnt** folder and at each dataset to expand the dataset tree to browse to the dataset location that has snapshots to replicate. Click on the dataset or directory name, folder icon, or checkbox to select the dataset or directory. To enter multiple datasets, enter a comma (,) after each path in the **Source** field and then select another dataset. Click the <span class="material-icons"><span class="material-icons">arrow_drop_down</span></span> at the <span class="material-icons">folder</span>**/mnt** to collapse the dataset tree. |
| **Source** | (Required) Enter or use <span class="material-icons">arrow_right</span> to the left of the **/mnt** folder and at each dataset to expand the dataset tree to browse to the dataset location that has snapshots to replicate. Click on the dataset or directory name, folder icon, or checkbox to select the dataset or directory. To enter multiple datasets, enter a comma (,) after each path in the **Source** field and then select another dataset. Click the <span class="material-icons"><span class="material-icons">arrow_drop_down</span></span> at the <svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 24 24"><path fill="currentColor" d="M5 21L3 9h18l-2 12zm5-6h4q.425 0 .713-.288T15 14t-.288-.712T14 13h-4q-.425 0-.712.288T9 14t.288.713T10 15M6 8q-.425 0-.712-.288T5 7t.288-.712T6 6h12q.425 0 .713.288T19 7t-.288.713T18 8zm2-3q-.425 0-.712-.288T7 4t.288-.712T8 3h8q.425 0 .713.288T17 4t-.288.713T16 5z"/></svg>**/mnt** to collapse the dataset tree. |
| **Recursive** | Select to replicate all child dataset snapshots. When selected, **Exclude Child Datasets** displays. |
| **Exclude Child Datasets** | Displays after selecting **Recursive**. Enter the specific child dataset snapshots from the replication. Separate each entry by pressing <kbd>Enter</kbd>. |
| **Include Dataset Properties** | Select to include ZFS dataset properties with the replicated snapshots. For more information on ZFS dataset properties see [ZFS manpages](https://linux.die.net/man/8/zfs). |
Expand Down
4 changes: 2 additions & 2 deletions content/SCALE/SCALEUIReference/Shares/NFSSharesScreens.md
Original file line number Diff line number Diff line change
Expand Up @@ -78,8 +78,8 @@ The **Basic Options** settings display by default and also show in the **Advance
{{< truetable >}}
| Setting | Description |
|---------|-------------|
| **Path** | Enter the path or use the <span class="material-icons">arrow_right</span> icon to the left of **<span class="material-icons">folder</span>/mnt** to locate the dataset and populate the path. **Path** is the directory tree on the local file system that TrueNAS exports over the SMB protocol. |
| **<span class="material-icons">folder</span>/mnt** | Click the <span class="material-icons">arrow_right</span> icon to expand the path at each dataset until you get to the SMB share dataset you want to use. This populates the **Path**. |
| **Path** | Enter the path or use the <span class="material-icons">arrow_right</span> icon to the left of **<svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 24 24"><path fill="currentColor" d="M5 21L3 9h18l-2 12zm5-6h4q.425 0 .713-.288T15 14t-.288-.712T14 13h-4q-.425 0-.712.288T9 14t.288.713T10 15M6 8q-.425 0-.712-.288T5 7t.288-.712T6 6h12q.425 0 .713.288T19 7t-.288.713T18 8zm2-3q-.425 0-.712-.288T7 4t.288-.712T8 3h8q.425 0 .713.288T17 4t-.288.713T16 5z"/></svg>/mnt** to locate the dataset and populate the path. **Path** is the directory tree on the local file system that TrueNAS exports over the SMB protocol. |
| **<svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 24 24"><path fill="currentColor" d="M5 21L3 9h18l-2 12zm5-6h4q.425 0 .713-.288T15 14t-.288-.712T14 13h-4q-.425 0-.712.288T9 14t.288.713T10 15M6 8q-.425 0-.712-.288T5 7t.288-.712T6 6h12q.425 0 .713.288T19 7t-.288.713T18 8zm2-3q-.425 0-.712-.288T7 4t.288-.712T8 3h8q.425 0 .713.288T17 4t-.288.713T16 5z"/></svg>/mnt** | Click the <span class="material-icons">arrow_right</span> icon to expand the path at each dataset until you get to the SMB share dataset you want to use. This populates the **Path**. |
| **Create Dataset** | Click to open the **Create Dataset** dialog. Enter a name to create a new dataset for the share. Click **Create** to add the dataset and populate the **Name** field on the **Add NFS** screen. |
| **Description** | Enter any notes or reminders about the share. |
| **Enabled** | Select to enable this NFS share. Clear the checkbox to disable this NFS share without deleting the configuration. |
Expand Down
4 changes: 2 additions & 2 deletions content/SCALE/SCALEUIReference/Shares/SMBSharesScreens.md
Original file line number Diff line number Diff line change
Expand Up @@ -91,8 +91,8 @@ The **Basic Options** settings in this section also display in the **Advanced Op
{{< truetable >}}
| Setting | Description |
|---------|-------------|
| **Path** | Enter the path or use the <span class="material-icons">arrow_right</span> icon to the left of **<span class="material-icons">folder</span>/mnt** to locate the dataset and populate the path. **Path** is the directory tree on the local file system that TrueNAS exports over the SMB protocol. |
| **<span class="material-icons">folder</span>/mnt** | Click the <span class="material-icons">arrow_right</span> icon to expand the path at each dataset until you get to the SMB share dataset you want to use. This populates the **Path**. |
| **Path** | Enter the path or use the <span class="material-icons">arrow_right</span> icon to the left of **<svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 24 24"><path fill="currentColor" d="M5 21L3 9h18l-2 12zm5-6h4q.425 0 .713-.288T15 14t-.288-.712T14 13h-4q-.425 0-.712.288T9 14t.288.713T10 15M6 8q-.425 0-.712-.288T5 7t.288-.712T6 6h12q.425 0 .713.288T19 7t-.288.713T18 8zm2-3q-.425 0-.712-.288T7 4t.288-.712T8 3h8q.425 0 .713.288T17 4t-.288.713T16 5z"/></svg>/mnt** to locate the dataset and populate the path. **Path** is the directory tree on the local file system that TrueNAS exports over the SMB protocol. |
| **<svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 24 24"><path fill="currentColor" d="M5 21L3 9h18l-2 12zm5-6h4q.425 0 .713-.288T15 14t-.288-.712T14 13h-4q-.425 0-.712.288T9 14t.288.713T10 15M6 8q-.425 0-.712-.288T5 7t.288-.712T6 6h12q.425 0 .713.288T19 7t-.288.713T18 8zm2-3q-.425 0-.712-.288T7 4t.288-.712T8 3h8q.425 0 .713.288T17 4t-.288.713T16 5z"/></svg>/mnt** | Click the <span class="material-icons">arrow_right</span> icon to expand the path at each dataset until you get to the SMB share dataset you want to use. This populates the **Path**. |
| **Create Dataset** | Click to open the **Create Dataset** dialog. Enter a name to create a new dataset for the share. Click **Create** to add the dataset and populate the **Name** field on the **Add SMB** screen. |
| **Name** | Enter a name for this share that is less than or equal to 80 characters. Because of how the SMB protocol uses the name, the name must not exceed 80 characters. The name cannot have invalid characters as specified in Microsoft documentation MS-FSCC section 2.1.6. If not supplied, the share name becomes the last component of the path. This forms part of the full share path name when SMB clients perform and SMB tree connect. If you change the name, follow the naming conventions for [files and directories](https://learn.microsoft.com/en-us/windows/win32/fileio/naming-a-file#naming-conventions) or [share names](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-fscc/dc9978d7-6299-4c5a-a22d-a039cdc716ea). |
| **Purpose** | Select a [preset option](#purpose-setting-options) from the dropdown list. The option applies predetermined settings ([presets](#advanced-options-presets)) and disables changing some share setting options. |
Expand Down
2 changes: 1 addition & 1 deletion content/TruenasApps/StableApps/InstallPiHoleApp.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ Enter **WEBPASSWORD** in **Name**, then a secure password like the example the o

Scroll down to the **Storage** settings.
Select **Enable Custom Host Path for Pihole Configuration Volume** to add the **Host Path for Pihole Configuration Volume** field and dataset browse option.
Click the arrow to the left of **<span class="material-icons">folder</span> /mnt** and at each dataset to expand the tree and browse to the dataset and directory paths you created before beginning the container deployment.
Click the arrow to the left of **<svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 24 24"><path fill="currentColor" d="M5 21L3 9h18l-2 12zm5-6h4q.425 0 .713-.288T15 14t-.288-.712T14 13h-4q-.425 0-.712.288T9 14t.288.713T10 15M6 8q-.425 0-.712-.288T5 7t.288-.712T6 6h12q.425 0 .713.288T19 7t-.288.713T18 8zm2-3q-.425 0-.712-.288T7 4t.288-.712T8 3h8q.425 0 .713.288T17 4t-.288.713T16 5z"/></svg> /mnt** and at each dataset to expand the tree and browse to the dataset and directory paths you created before beginning the container deployment.
Pi-hole uses volumes store your data between container upgrades.

{{< hint type=warning >}}
Expand Down
95 changes: 44 additions & 51 deletions content/TruenasApps/UsingCustomApp.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: "Using Install Custom App"
description: "Provides information on using Install Custom App to configure custom or third-party applications in TrueNAS SCALE."
title: "Installing Custom Applications"
description: "Provides information on installing and configuring custom or third-party applications in TrueNAS SCALE."
weight: 50
aliases:
- /scale/scaletutorials/apps/docker/
Expand All @@ -17,22 +17,9 @@

{{< include file="/static/includes/CustomAppEE.md" >}}

<!-- Existing content to be rewritten once Custom App redesign is complete -->
{{< include file="/static/includes/CustomAppIntro.md" >}}

Check failure on line 20 in content/TruenasApps/UsingCustomApp.md

View workflow job for this annotation

GitHub Actions / spellcheck

Misspelled word

Misspelled word "CustomAppIntro". Suggested alternatives: "Customapp Intro", "Customapp-intro", "Usingcustomapp", "AppsCustomApp" If you want to ignore this message, add CustomAppIntro to the ignore file at ./words-to-ignore.txt

<!--
TrueNAS includes the ability to run third-party apps in containers (pods) using Kubernetes settings.

{{< expand "What is Kubernetes?" "v" >}}
Kubernetes (K8s) is an open-source system for automating deployment, scaling, and managing containerized applications.
{{< /expand >}}

Generally, any container that follows the [Open Container Initiative](https://opencontainers.org/) specifications can be deployed.

Always read through the documentation page for the application container you are considering installing so that you know all of the settings that you need to configure.
To set up a new container image, first, determine if you want the container to use additional TrueNAS datasets.
If yes, [create a dataset]({{< relref "DatasetsSCALE.md" >}}) for host volume paths before you click **Custom App** on the **Discover** application screen.

### Custom Docker Applications
## Custom Docker Applications

Custom Docker applications typically follow Open Container specifications and deploy in TrueNAS following the Custom Application deployment process described below.

Expand All @@ -43,12 +30,50 @@
If your application requires specific directory paths, datasets, or other storage arrangements, configure these before you start the **Install Custom App** wizard.

You cannot save settings and exit the configuration wizard to create data storage or directories in the middle of the process.
If you are unsure about any configuration settings, review the [Install Custom App Screen UI reference article]({{< relref "InstallCustomAppScreens.md" >}}) before creating a new container image.

Check failure on line 33 in content/TruenasApps/UsingCustomApp.md

View workflow job for this annotation

GitHub Actions / spellcheck

Misspelled word

Misspelled word "InstallCustomAppScreens". Suggested alternatives: "AppsInstalledAppsScreenNoApps", "SCALEInstallMainScreen" If you want to ignore this message, add InstallCustomAppScreens to the ignore file at ./words-to-ignore.txt

To create directories in a dataset on TrueNAS, before you begin installing the container, open the TrueNAS CLI and enter `storage filesystem mkdir path="/PATH/TO/DIRECTORY"`.
{{< /hint >}}

## Adding Custom Applications
## Setting up App Storage

To set up a new container image, first, determine if you want the container to use additional TrueNAS datasets.
If yes, [create the dataset(s)]({{< relref "DatasetsSCALE.md" >}}) before you begin the app installation.

The custom app installation wizard provides four options for mounting app storage, see below.
When deploying a custom app via YAML, refer to the Docker [Storage](https://docs.docker.com/engine/storage/) documentation for guidance on mount options.

### Defining Host Path Volumes









You can mount TrueNAs storage locations inside the container.

Check failure on line 56 in content/TruenasApps/UsingCustomApp.md

View workflow job for this annotation

GitHub Actions / spellcheck

Misspelled word

Misspelled word "TrueNAs". Suggested alternatives: "True Nas", "Truenas", "TrueNAS", "TrueNas", "True-nas" If you want to ignore this message, add TrueNAs to the ignore file at ./words-to-ignore.txt
To mount TrueNAS storage, define the path to the system storage and the container internal path for the system storage location to appear.
You can also mount the storage as read-only to prevent using the container to change any stored data.

### Using ixVolumes

Check failure on line 60 in content/TruenasApps/UsingCustomApp.md

View workflow job for this annotation

GitHub Actions / spellcheck

Misspelled word

Misspelled word "ixVolumes". Suggested alternatives: "ix Volumes", "ixVolume", "ixVolume s", "ix-volumes", "volumes" If you want to ignore this message, add ixVolumes to the ignore file at ./words-to-ignore.txt

### Defining Persistent Volumes

Users can create additional Persistent Volumes (PVs) for storage within the container.

Check failure on line 64 in content/TruenasApps/UsingCustomApp.md

View workflow job for this annotation

GitHub Actions / spellcheck

Misspelled word

Misspelled word "PVs". Suggested alternatives: "PV", "PVCs", "IVs", "PRs", "RVs", "TVs", "PVC", "PCs", "PMs", "P's", "PV s", "Pis", "Pas", "Pus", "Vs" If you want to ignore this message, add PVs to the ignore file at ./words-to-ignore.txt
PVs consume space from the pool chosen for application management.

Check failure on line 65 in content/TruenasApps/UsingCustomApp.md

View workflow job for this annotation

GitHub Actions / spellcheck

Misspelled word

Misspelled word "PVs". Suggested alternatives: "PV", "PVCs", "IVs", "PRs", "RVs", "TVs", "PVC", "PCs", "PMs", "P's", "PV s", "Pis", "Pas", "Pus", "Vs" If you want to ignore this message, add PVs to the ignore file at ./words-to-ignore.txt
You need to name each new dataset and define a path where that dataset appears inside the container.

To view created container datasets, go to **Datasets** and expand the dataset tree for the pool you use for applications.

Users developing applications should be mindful that if an application uses Persistent Volume Claims (PVC), those datasets are not mounted on the host and therefore are not accessible within a file browser. Upstream zfs-localpv uses this behavior to manage PVC(s).

Check failure on line 70 in content/TruenasApps/UsingCustomApp.md

View workflow job for this annotation

GitHub Actions / spellcheck

Misspelled word

Misspelled word "zfs-localpv". Suggested alternatives: "zfs-local", "localhost" If you want to ignore this message, add zfs-localpv to the ignore file at ./words-to-ignore.txt

If you want to consume or have file browser access to data that is present on the host, set up your custom application to use host path volumes.

### Using Memory Backed Storage

## Installing via Wizard

When you are ready to create a container, go to **Apps**, click **Discover Apps**, then click **Custom App**.

Expand All @@ -57,9 +82,9 @@
1. Enter a name for the container in **Application Name**.
Accept the application train number in **Version**.

{{< trueimage src="/images/SCALE/Apps/InstallCustomAppApplicationName.png" alt="Application Name" id="Application Name" >}}

Check failure on line 85 in content/TruenasApps/UsingCustomApp.md

View workflow job for this annotation

GitHub Actions / spellcheck

Misspelled word

Misspelled word "InstallCustomAppApplicationName". Suggested alternatives: "SCALEInstallUpdateMethodSelection" If you want to ignore this message, add InstallCustomAppApplicationName to the ignore file at ./words-to-ignore.txt

2. Enter the Docker Hub repository for the application you want to install in **Image Repository** using the format `maintainer/image`, for example *storjlabs/storagenode*, or `image`, such as *debian*, for Docker Official Images.

Check failure on line 87 in content/TruenasApps/UsingCustomApp.md

View workflow job for this annotation

GitHub Actions / spellcheck

Misspelled word

Misspelled word "storjlabs". Suggested alternatives: "storj labs", "storj-labs", "astrolabes" If you want to ignore this message, add storjlabs to the ignore file at ./words-to-ignore.txt

Check failure on line 87 in content/TruenasApps/UsingCustomApp.md

View workflow job for this annotation

GitHub Actions / spellcheck

Misspelled word

Misspelled word "storagenode". Suggested alternatives: "storage node", "storage-node", "storage" If you want to ignore this message, add storagenode to the ignore file at ./words-to-ignore.txt

If the application requires it, enter the correct value in **Image Tag** and select the **Image Pull Policy** to use.

Expand Down Expand Up @@ -149,37 +174,5 @@

Click on the App card reveals details.

## Setting up App Storage

### Defining Host Path Volumes

You can mount TrueNAs storage locations inside the container.
To mount TrueNAS storage, define the path to the system storage and the container internal path for the system storage location to appear.
You can also mount the storage as read-only to prevent using the container to change any stored data.
For more details, see the [Kubernetes hostPath documentation](https://kubernetes.io/docs/concepts/storage/volumes/#hostpath).

### Defining Other Volumes

Users can create additional Persistent Volumes (PVs) for storage within the container.
PVs consume space from the pool chosen for application management.
You need to name each new dataset and define a path where that dataset appears inside the container.

To view created container datasets, go to **Datasets** and expand the dataset tree for the pool you use for applications.

### Setting Up Persistent Volume Access

Users developing applications should be mindful that if an application uses Persistent Volume Claims (PVC), those datasets are not mounted on the host and therefore are not accessible within a file browser. Upstream zfs-localpv uses this behavior to manage PVC(s).

If you want to consume or have file browser access to data that is present on the host, set up your custom application to use host path volumes.

Alternatively, you can use the network to copy directories and files to and from the pod using `k3s kubectl` commands.

To copy from a pod in a specific container:
`k3s kubectl cp <file-spec-src> <file-spec-dest> -c <specific-container>`

To copy a local file to the remote pod:
`k3s kubectl cp /tmp/foo <some-namespace>/<some-pod>:/tmp/bar`
## Installing via YAML

To copy a remote pod file locally:
`k3s kubectl cp <some-namespace>/<some-pod>:/tmp/foo /tmp/bar`
-->
Loading
Loading