diff --git a/content/GettingStarted/23.10Upgrades.md b/content/GettingStarted/23.10Upgrades.md index 7017a8a79a..aa57fe6855 100644 --- a/content/GettingStarted/23.10Upgrades.md +++ b/content/GettingStarted/23.10Upgrades.md @@ -22,24 +22,19 @@ When available, update the system to 22.12.4 (Bluefin), resolve any migrations f ## Upgrading from the Web Interface Log in to the SCALE web interface and go to **System Settings > Update**. -The screen shows which update train is active for the install. +The **Update Screen** displays the current active update train. For more information on other available trains, see [Release Schedules](https://www.truenas.com/docs/truenasupgrades/). -{{< truetable >}} -| Train Type | Name | Notes | -|------------|------|-------| -| Stable Release | TrueNAS-SCALE-Bluefin | | -| Prerelease | TrueNAS-SCALE-Cobia-BETA | Intended for early testing and feature previews. Do not use a prerelease train for production use. | -| Nightly | TrueNAS-SCALE-Cobia-Nightlies | Adventurous users with disposable hardware only. Requires nightly [.iso file](https://download.truenas.com/truenas-scale-cobia-nightly/) upgrade to switch to this train. | -{{< /truetable >}} +When a new maintenance version is available from the current train, TrueNAS SCALE stages available updates. +Click **Apply Pending Update** to install it. -When a new version is available, open the **Current Train** dropdown and select the desired release option. -TrueNAS begins checking for update files from the new train and stages any updates available from that location. +{{< include file="/_includes/UpgradeClearCache.md" >}} -Alternately, uploading a .update file and manually updating switches the system between train types. +Alternately, upload an .update file and perform a manual update. {{< expand "Manual Update Process (Click to expand)" "v" >}} {{< include file="/content/_includes/ManualUpdates.md" >}} {{< /expand >}} +Uploading an .update file from another train and manually updating switches the system between train types. Changing trains is a one-way operation! Do not change to a prerelease or nightly release unless the system is intended to permanently remain on early versions and is not storing any critical data. diff --git a/content/GettingStarted/Install/InstallEnterpriseHASCALE.md b/content/GettingStarted/Install/InstallEnterpriseHASCALE.md index 14157bd5b7..7e5a86ed39 100644 --- a/content/GettingStarted/Install/InstallEnterpriseHASCALE.md +++ b/content/GettingStarted/Install/InstallEnterpriseHASCALE.md @@ -29,12 +29,13 @@ Incorrect use of CLI commands can further disrupt your system access and can pot This article outlines a procedure to do a clean install of a SCALE Enterprise High Availability (HA) systems using an iso file. -HA systems are dual controller systems with the primary controller referred to as controller 1 (sometimes also as controller A) and controller 2 (or controller B). +HA systems are dual controller systems with the primary controller referred to as controller 1 (sometimes also as controller A) and controller 2 (or controller B). {{< include file="/content/_includes/HAControllerInstallBestPracticeSCALE.md" >}} SCALE includes features and functions to help guide with completing the configuration process after installing and getting access to the SCALE web interface. ### Preparing for a Clean Install + For a list of SCALE Enterprise (HA) preparation information, see [Preparing for SCALE UI Configuration (Enterprise)]({{< relref "InstallPrepEnterprise.md" >}}). Have this information handy to complete this procedure: @@ -51,6 +52,7 @@ When restoring after a clean install, also have ready: * System configuration file from the previous TrueNAS install. ### Overview of the Installation Procedure + {{< hint type=important >}} {{< include file="/content/_includes/HAControllerInstallBestPracticeSCALE.md" >}} {{< /hint >}} @@ -60,20 +62,20 @@ There are two ways to install the HA dual controller system to ensure controller * Install both controller simultaneously beginning with controller 1, then immediately starting the install on controller 2. * Installing each controller individually to specific points in the installation process. -Simultaneous installation must start with controller 1 so it comes online first. +Simultaneous installation must start with controller 1 so it comes online first. Installing each controller individually follows a particular method to ensure controller 1 comes online as the primary controller. The sections in this article cover the primary steps as a simultaneous installation: 1. [Download](#downloading-the-scale-install-file) the iso file from the TrueNAS website and prepare the USB flash drives if not using IPMI for remote access. -2. [Log into your IPMI](#using-ipmi-to-install-the-iso-on-a-controller) system using the network address assigned to controller 1, and then establish a second connection with controller 2 in a new browser session. -3. [Install SCALE using the iso file](#using-ipmi-to-install-the-iso-on-a-controller) and select the **Fresh Install** option. +2. [Log into your IPMI](#using-ipmi-to-install-the-iso-on-a-controller) system using the network address assigned to controller 1, and then establish a second connection with controller 2 in a new browser session. +3. [Install SCALE using the iso file](#using-ipmi-to-install-the-iso-on-a-controller) and select the **Fresh Install** option. Install on controller 1, then immediately begin installing on controller 2 in the other IPMI session to simultaneously install SCALE on both controllers. -4. Disable DHCP, then enter the network settings to controller 1 using the [Console Setup Menu](#configuring-the-network-with-console-setup-menu). +4. Disable DHCP, then enter the network settings to controller 1 using the [Console Setup Menu](#configuring-the-network-with-console-setup-menu). Enter the IP address and netmask assigned to controller 1, then enter the global network settings for host name, domain name, and nameservers. - Use the SCALE UI for system configuration as it has safety mechanisms in place to prevent disrupting network access that could require you to repeat the clean install to access your system. + Use the SCALE UI for system configuration as it has safety mechanisms in place to prevent disrupting network access that could require you to repeat the clean install to access your system. However, if you are experienced with the Console Setup Menu and are using it to configure network settings you can configure the rest of the controller 1 network settings with the Console setup menu. 5. [Log into the SCALE UI](#configuring-settings-in-the-scale-ui) for controller 1 to sign the EULA agreement and apply the system HA license. @@ -85,12 +87,13 @@ The sections in this article cover the primary steps as a simultaneous installat The sections that follow describe these steps in detail. #### Overview of the Alternative Installation Process + This process of installing each controller sequentially has two methods: * Install and configure controller 1 up to the point where you are ready to sync to controller 2. When complete, install controller 2 and reboot. After the console setup menu displays, switch back to controller 1 and sync to peer. This synchronizes the completed configuration from controller 1 to controller 2 and keeps controller 1 designated as the primary controller. -Or +Or * Begin installing controller 2 immediately after installing controller 1. When controller 2 finishes installing, power it off and keep it powered down. When finished configuring controller 1, power up controller 2 and wait for it to finish booting up. Switch back to controller 1 and sync the configuration to controller 2. @@ -116,14 +119,14 @@ If you are remote to the system and are installing through an IPMI connection yo If you are physically present with the TrueNAS SCALE system, burn the .iso file to a USB flash drive and use that as the install media. -### Using IPMI to Install the ISO on a Controller +### Using IPMI to Install the ISO on a Controller -Use this process to install the iso file on both controller 1 and controller 2. Best practice is to begin the install on controller 1, then immediately begin the install on controller 2. +Use this process to install the iso file on both controller 1 and controller 2. Best practice is to begin the install on controller 1, then immediately begin the install on controller 2. {{< expand "Installing ISO Steps" "v" >}} 1. Enter the IP address assigned to the controller 1 IPMI port into a web browser and log into your IPMI system with admin credentials. -2. Select **Remote Control > iKVM/HTML5** to open the Console Setup window. +2. Select **Remote Control > iKVM/HTML5** to open the Console Setup window. IPMI interfaces can vary but they generally have options for **Remote Control** and **iKVM/HTML5** to open a console session on the platform. @@ -135,8 +138,8 @@ Use this process to install the iso file on both controller 1 and c For example, if you stored the file in an *iso* folder enter **/iso/TrueNAS-SCALE-22.12.1.iso** in **Path to Image**. c. Click **Save**, then **Mount**. You should see the .iso file under **Device 1** or the device name your IPMI configures. -3. Return to the **Remote Control > iKVM/HTML5** window opened in step 2. Either use your keyboard or open the keyboard in the window then: - +4. Return to the **Remote Control > iKVM/HTML5** window opened in step 2. Either use your keyboard or open the keyboard in the window then: + a. Type **8** to reboot controller 1 (also repeat for controller 2), and type **y** to confirm and reboot. b. As the system reboots, be prepared to hit the F11 key when you first see the **TrueNAS Open Storage** splash screen. @@ -144,7 +147,9 @@ Use this process to install the iso file on both controller 1 and c c. Select the **UEFI: ATEN Virtual CDROM** device from the boot list. The bootstrap loader begins. When it ends the SCALE installer opens. {{< /expand >}} + ### Using the SCALE Installer + {{< hint type=note >}} If you are doing a clean install from the SCALE .iso file to recover from an issue that requires you to re-install SCALE from the .iso, have your network configuration information ready to use for controller 1 after the installation completes. Do not configure network settings on controller 2. Also have your SCALE system configuration file and data backups handy so you can recover your system settings and import your data into the recovered SCALE clean-install system. @@ -160,24 +165,25 @@ Also have your SCALE system configuration file and data backups handy so you can SCALE is now installed on controller 1 and repeated for controller 2 starting with [Using IPMI to Install the ISO on a Controller](#using-ipmi-to-install-the-iso-on-a-controller). {{< /expand >}} + ### Configuring the Network with Console Setup Menu -After installing the SCALE .iso file on both controller 1 and 2 and finishing the TrueNAS SCALE Installer process, use the Console setup menu to configure the required network settings on controller 1 so it can access the SCALE UI. -TrueNAS SCALE single controller systems use the DHCP-assigned IP address for the primary network interface to access the SCALE UI to complete the rest of the network and other configuration settings. -However, HA systems with dual controllers must use static IP addresses. +After installing the SCALE .iso file on both controller 1 and 2 and finishing the TrueNAS SCALE Installer process, use the Console setup menu to configure the required network settings on controller 1 so it can access the SCALE UI. +TrueNAS SCALE single controller systems use the DHCP-assigned IP address for the primary network interface to access the SCALE UI to complete the rest of the network and other configuration settings. +However, HA systems with dual controllers must use static IP addresses. -To allow controller 1 to access the UI, you must disable DHCP and add the controller 1 static IP address and netmask as an alias on the primary network interface, and then enter the network settings for host name, domain name, default gateway, and the name servers (1 and 2). +To allow controller 1 to access the UI, you must disable DHCP and add the controller 1 static IP address and netmask as an alias on the primary network interface, and then enter the network settings for host name, domain name, default gateway, and the name servers (1 and 2). You can configure the rest of the HA global network settings in the SCALE web UI. To use the Console setup menu to configure required network settings on controller 1: {{< trueimage src="/images/SCALE/22.12/ConsoleSetupMenuSCALE.png" alt="TrueNAS SCALE Console Setup Menu" id="TrueNAS SCALE Console Setup Menu" >}} -1. Type 1 and then press Enter to open the **Network Interfaces** screen. - - {{< trueimage src="/images/SCALE/22.12/CSMNetworkInterfacesNoAliasIP.png" alt="Network Interfaces Screen" id="Network Interfaces Screen" >}} +1. Type 1 and then press Enter to open the **Network Interfaces** screen. + + {{< trueimage src="/images/SCALE/22.12/CSMNetworkInterfacesNoAliasIP.png" alt="Network Interfaces Screen" id="Network Interfaces Screen" >}} -2. Use either Tab or the arrow keys to select the interface assigned as your primary network interface. +2. Use either Tab or the arrow keys to select the interface assigned as your primary network interface. If you have more than one interface installed and wired to your network, the primary interface is typically **eno1**. With the interface highlighted, press Enter to open the **Update Network Interface** screen. @@ -185,18 +191,18 @@ To use the Console setup menu to configure required network settings on controll 3. Tab or arrow down to **ipv4_dhcp** and change it to **no**. -4. Tab or arrow down to the **aliases** setting and enter the static IP address for controller 1. +4. Tab or arrow down to the **aliases** setting and enter the static IP address for controller 1. Tab or arrow down to **Save**, and then press Enter. A pending network changes notice displays with additional options. -5. Type a to apply the change, then p to make it persist. +5. Type a to apply the change, then p to make it persist. Type q to return to the main Console setup menu. -6. Type 2 and then press Enter to open the **Network Configuration** screen. - +6. Type 2 and then press Enter to open the **Network Configuration** screen. + {{< trueimage src="/images/SCALE/22.12/CSMNetworkConfigurationHANoValues.png" alt="Update Network Configuration for HA" id="Update Network Configuration for HA" >}} -7. Use either Tab or the arrow keys to select each field. Type the value for each field listed below. Press Enter after each value. - +7. Use either Tab or the arrow keys to select each field. Type the value for each field listed below. Press Enter after each value. + {{< truetable>}} | Field | Description/Example | |-------|---------------------| @@ -209,17 +215,19 @@ To use the Console setup menu to configure required network settings on controll 8. Use either Tab or the arrow keys to select **Save**, then type q to return to the main Console setup menu. ### Configuring Settings in the SCALE UI + {{< hint type=note >}} This section only applies to controller 1. Do not configure settings on controller 2. {{< /hint >}} Use the SCALE UI to: -1. [Apply the HA license](#applying-the-ha-license). -2. [Complete the network settings](#configure-network-settings). -3. [Add the first storage pool](#adding-the-storage-pool). -4. [Sync controller 1 with controller 2](#syncing-controller-1-and-2). +1. [Apply the HA license](#applying-the-ha-license). +2. [Complete the network settings](#configure-network-settings). +3. [Add the first storage pool](#adding-the-storage-pool). +4. [Sync controller 1 with controller 2](#syncing-controller-1-and-2). ### Applying the HA License + SCALE UI Enterprise customers see the End User License Agreement (EULA) screen the first time they log in. Sign the agreement to open the main SCALE **Dashboard**. Apply the system license next. @@ -229,7 +237,8 @@ The **Reload** dialog opens. Click **Reload Now**. Controller 1 restarts, and di The controller 1 and 2 (or a and b) serial numbers display on the **Support** widget on the **System Settings > General** screen. -### Configuring Network Settings +### Configuring Network Settings + {{< hint type=important >}} You must disable the failover service before you can configure network settings! @@ -237,9 +246,9 @@ Only configure network settings on controller 1! When ready to sync to peer, SCA {{< /hint >}} SCALE Enterprise (HA) systems use three static IP addresses for access to the UI: -* VIP to provide UI access regardless of which controller is active. +* VIP to provide UI access regardless of which controller is active. If your system fails over from controller 1 to 2, then fails over back to controller 1 later you might not know which controller is active. -* IP for controller 1. If enabled on your network, DHCP assigns only the controller 1 IP address. +* IP for controller 1. If enabled on your network, DHCP assigns only the controller 1 IP address. If not able to use DHCP, you must change this to the static IP address your network administrator assigned to this controller. * IP for controller 2. DHCP does not assign the second controller an IP address. @@ -262,10 +271,10 @@ To configure network settings on controller 1: a. Turn DHCP off if it is on. Select **DHCP** to clear the checkbox. b. Add the failover settings. Select **Critical**, and then select **1** on the **Failover Group** dropdown list. - + {{< trueimage src="/images/SCALE/22.12/EditInterfaceFailoveSettingsHA.png" alt="Edit Network Interface Failover Settings" id="Edit Network Interface Failover Settings" >}} - c. Add the virtual IP (VIP) and controller 2 IP. Click **Add** for **Aliases** to display the additional IP address fields. + c. Add the virtual IP (VIP) and controller 2 IP. Click **Add** for **Aliases** to display the additional IP address fields. {{< trueimage src="/images/SCALE/22.12/EditInterfaceAddAliasesHA.png" alt="Add Alias IP Addresses" id="Add Alias IP Addresses" >}} @@ -274,10 +283,10 @@ To configure network settings on controller 1: Next, enter the controller 2 IP address into **IP Address (TrueNAS Controller 2)**. Finally, enter the VIP address into **Virtual IP Address (Failover Address)**. - + 4. Click **Save** -5. Click **Test Changes** after editing the interface settings. +5. Click **Test Changes** after editing the interface settings. You have 60 seconds to test and then save changes before they revert. If this occurs, edit the interface again. ### Adding the Storage Pool @@ -285,7 +294,7 @@ To configure network settings on controller 1: Create or import a storage pool from a backup. You must have at least one storage pool on controller 1. After saving the storage pool, controller 2 automatically restarts. Wait until it comes back online before syncing controller 1 with controller 2. -For more information on how to create a new pool [click here]({{< relref "CreatePoolWizard.md" >}}). +For more information on how to create a new pool [click here]({{< relref "CreatePoolWizard.md" >}}). For more information on how to import a pool [click here]({{< relref "ImportPoolSCALE.md" >}}). ### Syncing Controller 1 and 2 @@ -297,22 +306,23 @@ For more information on how to import a pool [click here]({{< relref "ImportPool 3. Log out of the controller 1 UI, and log in using the VIP address. -4. Sync controller 1 and 2. - With controller 2 powered on, but not configured, from controller 1 click **Sync To Peer**. - Select **Reboot standby TrueNAS controller** and **Confirm**, then click **Proceed** to start the sync operation. +4. Sync controller 1 and 2. + With controller 2 powered on, but not configured, from controller 1 click **Sync To Peer**. + Select **Reboot standby TrueNAS controller** and **Confirm**, then click **Proceed** to start the sync operation. This sync controller 2 with controller 1 which adds the network settings and pool to controller 2. {{< trueimage src="/images/SCALE/22.12/FailoverSyncToPeerDialog.png" alt="Failover Sync To Peer" id="Failover Sync To Peer" >}} -When the system comes back up, log into SCALE using the virtual IP address. -The main **Dashboard** displays two **System Information** widgets. In standard configurations by iXsystems, Controller 1 shows its serial number and a host name that includes the letter **a**. Controller 2 is labeled as **Standby Controller** and shows its serial number and a host name that includes the letter **b**. -Take note of this information. +When the system comes back up, log into SCALE using the virtual IP address. +The main **Dashboard** displays two **System Information** widgets. In standard configurations by iXsystems, Controller 1 shows its serial number and a host name that includes the letter **a**. Controller 2 is labeled as **Standby Controller** and shows its serial number and a host name that includes the letter **b**. +Take note of this information. {{< trueimage src="/images/SCALE/22.12/HAMainDashboard.png" alt="Main Dashboard for HA Systems" id="Main Dashboard for HA Systems" >}} ### Troubleshooting HA Installation -If controller 2 comes on line as the primary and controller 1 as the standby, you installed and configured these controllers incorrectly. -Go to **System Settings > Failover**, clear the **Default TrueNAS Controller** option, and click **Save**. + +If controller 2 comes on line as the primary and controller 1 as the standby, you installed and configured these controllers incorrectly. +Go to **System Settings > Failover**, clear the **Default TrueNAS Controller** option, and click **Save**. The system reboots and fails over to the current standby controller (in this case, to controller 1). Log back into the UI with the VIP address, go to **System Settings > Failover** and select **Default TrueNAS Controller** to make controller 1 the primary controller. and then select **Sync to Peer**. SCALE makes controller 2 the standby controller and syncs the configuration on controller 1 to controller 2. diff --git a/content/GettingStarted/Install/InstallingSCALE.md b/content/GettingStarted/Install/InstallingSCALE.md index fbb7457979..59cc0869a2 100644 --- a/content/GettingStarted/Install/InstallingSCALE.md +++ b/content/GettingStarted/Install/InstallingSCALE.md @@ -26,6 +26,7 @@ Enterprise customers with High Availability (HA) systems should not attempt to r {{< /enterprise >}} ## ISO Verification + The iXsystems Security Team cryptographically signs TrueNAS .iso files so that users can verify the integrity of their downloaded file. This section demonstrates how to verify an .iso file using the [Pretty Good Privacy (PGP)](https://tools.ietf.org/html/rfc4880) and [SHA256](https://tools.ietf.org/html/rfc6234) methods. @@ -33,18 +34,19 @@ This section demonstrates how to verify an .iso file using the [Prett You need an OpenPGP encryption application for this method of ISO verification. {{< expand "Click here for the verification process." "v" >}} -1. Obtain an OpenPGP encryption application to used. - There are many different free applications available, but the OpenPGP group provides a list of available software for different operating systems at https://www.openpgp.org/software/. + +1. Obtain an OpenPGP encryption application to use. + There are many different free applications available, but the OpenPGP group provides a list of available software for different operating systems at https://www.openpgp.org/software/. The examples in this section show verifying the TrueNAS .iso using [gnupg2](https://gnupg.org/software/index.html) in a command prompt, but [Gpg4win](https://www.gpg4win.org/) is also a good option for Windows users. -2. To verify the .iso source, go to https://www.truenas.com/download-tn-scale/, expand the **Security** option, - and click **PGP Signature** to download the Gnu Privacy Guard signature file. This file may be a (.gpg) or a (.sig) file. +2. To verify the .iso source, go to https://www.truenas.com/download-tn-scale/, expand the **Security** option, + and click **PGP Signature** to download the Gnu Privacy Guard signature file. This file may be a (.gpg) or a (.sig) file. Open the [PGP Public key link](https://keyserver.ubuntu.com/pks/lookup?search=0xC8D62DEF767C1DB0DFF4E6EC358EAA9112CF7946&fingerprint=on&op=index) and note the address in your browser and **Search results for** string. 3. Use one of the OpenPGP encryption tools mentioned above to import the public key and verify the PGP signature. Go to the .iso and the .iso.gpg or .iso.sig download location and import the public key using the keyserver address and search results string: - + ``` user@ubuntu /tmp> gpg --keyserver keys.gnupg.net --recv-keys 0xc8d62def767c1db0dff4e6ec358eaa9112cf7946 gpg: DBG: Using CREATE_BREAKAWAY_FROM_JOB flag @@ -54,9 +56,9 @@ You need an OpenPGP encryption application for this method of ISO verification. gpg: imported: 1 user@ubuntu /tmp> ``` - + Use `gpg --verify` to compare the .iso and the .iso.gpg or .iso.sig files: - + ``` user@ubuntu /tmp> gpg --verify TrueNAS-SCALE-21.04-ALPHA.1.iso gpg: Signature made Thu May 27 10:49:02 2021 EDT using RSA key ID 12CF7946 @@ -66,14 +68,15 @@ You need an OpenPGP encryption application for this method of ISO verification. Primary key fingerprint: C8D6 2DEF 767C 1DB0 DFF4 E6EC 358E AA91 12CF 7946 user@ubuntu /tmp> ``` - - This response means the signature is correct but still untrusted. -4. Go back to the browser page that has the **PGP Public key**. + This response means the signature is correct but still untrusted. + +4. Go back to the browser page that has the **PGP Public key**. Open and manually confirm that the key is issued for `IX SecTeam ` (iX Security Team) on October 15, 2019 and is signed by an iXsystems account. {{< /expand >}} ### Using SHA256 Verification + SHA256 verification uses the checksum to validate/verify the file. {{< expand "Click here for the verification process." "v" >}} The command to verify the checksum varies by operating system: @@ -89,13 +92,14 @@ Different checksum values indicate a corrupted installer file that you should no {{< /expand >}} ## Installing SCALE + You can install SCALE on either physical hardware or a virtual machine. - + {{< hint type=important >}} Prior to starting the update process, confirm that the system storage has enough space to handle the update. The update stops if there is insufficient space for it to finish. {{< /hint >}} -### Installing on Physical Hardware +### Installing on Physical Hardware TrueNAS SCALE is very flexible and can run on any x86_64 compatible (Intel or AMD) processor. SCALE requires at least 8GB of RAM (more is better) and a 20GB Boot Device. @@ -143,9 +147,10 @@ Select the install device as the boot drive, exit, and reboot the system. If the USB stick is not shown as a boot option, try a different USB slot. Slots available for boot differs by hardware. -#### Using the TrueNAS Installer Console Setup +#### Using the TrueNAS Installer Console Setup + {{< hint type=important >}} -If you are doing a clean install from the SCALE .iso file as part of migrating from a different version of TrueNAS CORE or SCALE, or to recover from a serious issue that requires you to re-install SCALE from the .iso, have your network configuration information ready to use after the installation completes. +If you are doing a clean install from the SCALE .iso file as part of migrating from a different version of TrueNAS CORE or SCALE, or to recover from a serious issue that requires you to re-install SCALE from the .iso, have your network configuration information ready to use after the installation completes. Also have your SCALE system configuration file and data backups handy so you can recover your system settings and import your data into the recovered SCALE clean-install system. {{< /hint >}} After the system boots into the installer, follow these steps. @@ -156,19 +161,19 @@ After following the steps to install, reboot the system and remove the install m {{< expand "Troubleshooting" "v">}} If the system does not boot into TrueNAS SCALE, there are several things you can check to resolve the situation: -* Check the system BIOS and see if there is an option to change the **USB emulation** from **CD/DVD/floppy** to **hard drive**. +* Check the system BIOS and see if there is an option to change the **USB emulation** from **CD/DVD/floppy** to **hard drive**. If it still does not boot, check to see if the card/drive is UDMA compliant. * Check to see if the system BIOS supports **UEFI with BIOS emulation**, if not, see if it has an option to boot using **legacy BIOS mode**. -* If the system starts to boot but hangs with this repeated error message: `run_interrupt_driven_hooks: still waiting after 60 seconds for xpt_config`, +* If the system starts to boot but hangs with this repeated error message: `run_interrupt_driven_hooks: still waiting after 60 seconds for xpt_config`, go into the system BIOS and look for an onboard device configuration for a `1394 Controller`. If present, disable that device and try booting again. -* If the burned image fails to boot and the image was burned using a Windows system, wipe the USB stick before trying a second burn using a utility such as [Active@ KillDisk](https://www.killdisk.com/eraser.html). - Otherwise, the second burn attempt fails as Windows does not understand the partition that was written from the image file. +* If the burned image fails to boot and the image was burned using a Windows system, wipe the USB stick before trying a second burn using a utility such as [Active@ KillDisk](https://www.killdisk.com/eraser.html). + Otherwise, the second burn attempt fails as Windows does not understand the partition written from the image file. Be very careful to specify the correct USB stick when using a wipe utility! {{< /expand >}} {{< /expand >}} -### Installing on a Virtual Machine +### Installing on a Virtual Machine Because TrueNAS SCALE is built and provided as an .iso file, it works on all virtual machine solutions (VMware, VirtualBox, Citrix Hypervisor, etc). This section describes installing on a VM using [VMware Workstation Player](https://www.vmware.com/products/workstation-player/workstation-player-evaluation.html) on Windows. @@ -176,6 +181,7 @@ This section describes installing on a VM using [VMware Workstation Player](http #### Minimum Virtual Machine Settings Regardless of virtualization application, use these minimum settings: + * RAM: at least 8192MB (8GB) * DISKS: two virtual disks with at least 16GB, one for the operating system and boot environments and at least one additional virtual disk to use as data storage. * NETWORK: Use NAT, bridged, or host-only depending on your host network configuration. @@ -192,19 +198,20 @@ Enable **MAC spoofing** and **promiscuous mode** on the switch first, and then t For most hypervisors, the procedure for creating a TrueNAS VM is the same. {{< expand "Generic VM Install Instructions" "v" >}} + 1. Create a new virtual machine as usual, taking note of the following: * The virtual hardware has a bootable CD/DVD device pointed to the TrueNAS SCALE installer image (this is usually an .iso). - * The virtual network card configuration allows your network to reach it. + * The virtual network card configuration allows your network to reach it. **bridged** mode is optimal as this treats the network card as one plugged into a simple switch on the existing network. - * Some products require you identify the OS you plan to install on the VM. The ideal option is **Debian 11 64 bit**. + * Some products require you identify the OS you plan to install on the VM. The ideal option is **Debian 11 64 bit**. If this is not available, try options like **Debian 11**, **Debian 64 bit**, **64 bit OS**, or **Other**. * For VMWare hypervisors, install in BIOS mode. - * Ensure the VM has sufficient memory and disk space. For TrueNAS set to at least **8 GB** RAM and **20 GB** disk space. + * Ensure the VM has sufficient memory and disk space. For TrueNAS set to at least **8 GB** RAM and **20 GB** disk space. Not all hypervisors allocate enough memory by default. 2. Boot the VM and install TrueNAS as usual. @@ -215,6 +222,7 @@ For most hypervisors, the procedure for creating a TrueNAS VM is the same. {{< /expand >}} #### Example VMWare Player 15.5 Installation + This example describes installing TrueNAS SCALE using VMWare Player 15.5. {{< expand " Click here for more information." "v" >}} Open VMware Player and click **Create a New Virtual Machine** to enter the New Virtual Machine Wizard. @@ -231,12 +239,12 @@ Open VMware Player and click **Create a New Virtual Machine** to enter the New V Specify the maximum disk size for the initial disk. The default *20GB* is enough for TrueNAS. - + Next, select **Store virtual disk as a single file**. 4. Review the virtual machine. - Review the virtual machine configuration before proceeding. + Review the virtual machine configuration before proceeding. By default, VMware Player does not set enough RAM for the virtual machine. Click **Customize Hardware...** > **Memory**. @@ -246,9 +254,11 @@ Open VMware Player and click **Create a New Virtual Machine** to enter the New V {{< /expand >}} #### Adding Virtual Disks -After installing SCALE on a virtual machine (VM), add virtual disks to the VM. You need a minimum of two disks, 16 GB each. + +After installing SCALE on a virtual machine (VM), add virtual disks to the VM. You need a minimum of two disks, 16 GB each. One disk is for the boot environment the other for data storage. {{< expand "Click Here for More Information" "v" >}} + 1. After creating the virtual machine, select it from the virtual machine list and click **Edit virtual machine settings**. 2. Click **Add...** and select **Hard Disk**. Select **SCSI** as the virtual disk type. @@ -260,11 +270,12 @@ One disk is for the boot environment the other for data storage. 5. Name and chose a location for the new virtual disk. -Repeat this process until enough disks are available for TrueNAS to create ideal storage pools. This depends on your specific TrueNAS use case. -See [Pool Creation]({{< relref "CreatePoolWizard.md" >}}) for descriptions of the various pool ("vdev") types and layouts. +Repeat this process until enough disks are available for TrueNAS to create ideal storage pools. This depends on your specific TrueNAS use case. +See [Pool Creation]({{< relref "CreatePoolWizard.md" >}}) for descriptions of the various pool ("vdev") types and layouts. {{< /expand >}} -#### Using the TrueNAS Installer +#### Using the TrueNAS Installer + Just as with installing SCALE on physical hardware, you complete the install in the VM by booting into the TrueNAS installer. {{< expand "Using the TrueNAS Installer in a Virtual Machine" "v" >}} Select the virtual machine from the list and click **Play virtual machine**. diff --git a/content/GettingStarted/SCALEReleaseNotes.md b/content/GettingStarted/SCALEReleaseNotes.md index 37f7862b31..3303a3bc5d 100644 --- a/content/GettingStarted/SCALEReleaseNotes.md +++ b/content/GettingStarted/SCALEReleaseNotes.md @@ -9,11 +9,15 @@ weight: 10 {{< toc >}} +## SCALE 23.10 (Cobia) Primary Features + +{{< include file="/content/_includes/23.10FeatureList.md" >}} + ## Obtaining a Release -Log in to the web interface and go to **System Settings > Update** to see an option to switch to the **TrueNAS-SCALE-Cobia-BETA** update train and begin downloading the latest BETA release. +Log in to the web interface and go to **System Settings > Update** to check for available updates from the **TrueNAS-SCALE-Cobia - TrueNAS SCALE Cobia [release]** update train and begin downloading the latest stable release. -Alternately, to download an .iso file or .update for installing or upgrading to SCALE 23.10-BETA.1 (Cobia), go to https://www.truenas.com/truenas-scale/ and click **Download**. +Alternately, to download an .iso file or .update for installing or upgrading to SCALE 23.10.1 (Cobia), go to https://www.truenas.com/truenas-scale/ and click **Download**. {{< include file="/_includes/23.10UpgradeMethods.md" >}} More details are available from [23.10 Upgrades]({{< relref "23.10Upgrades.md" >}}). @@ -26,23 +30,20 @@ More details are available from [23.10 Upgrades]({{< relref "23.10Upgrades.md" > {{< truetable >}} | Version | Checkpoint | Scheduled Date | |---------|------------|----------------| -| SCALE 23.10.1 (Cobia) | Code-freeze | 29 November 2023 | -| | **Release** | **19 December 2023** | +| SCALE 23.10.2 (Cobia) | **Release** | **Q1 2024** | {{< /truetable >}} {{< /expand >}} -## SCALE 23.10 (Cobia) Primary Features - -{{< include file="/content/_includes/23.10FeatureList.md" >}} - ## Upgrade Notes * {{< hint type="warning" title="ISO Upgrades Unsupported" >}} - The only install option supported by the 23.10 (Cobia) ISO installer is **Fresh Install**. - The ISO installer upgrade option does not function and is removed in a future SCALE maintenance update. + The only install option supported by the 23.10.1 (Cobia) ISO installer is a clean installation. + The ISO installer **Upgrade Install** and **Fresh Install** options are removed. Continue to use the TrueNAS SCALE [update process]({{< relref "UpdateSCALE.md" >}}) to seamlessly upgrade from one SCALE major version to another. {{< /hint >}} +* {{< include file="/_includes/UpgradeClearCache.md" >}} + * Several built-in services from SCALE 22.12 (Bluefin) or TrueNAS CORE 13.0 in **System Settings > Services** are replaced by community applications. You must disable these built-in services and begin using the equivalent application **before** upgrading to SCALE 23.10 (Cobia). @@ -66,7 +67,7 @@ More details are available from [23.10 Upgrades]({{< relref "23.10Upgrades.md" > {{< hint type="info" title="S3 Service Replacement" >}} Due to [Minio's filesystem mode deprecation](https://min.io/docs/minio/container/operations/install-deploy-manage/migrate-fs-gateway.html) and update methodology, older versions of Minio are not updatable to newer versions and require additional update steps. This impacts moving from the built-in **S3** service to the **Minio** application. - A detailed TrueNAS-specific tutorial for moving configuration and storage data from the built-in **S3** service to the latest **Minio** version available from the Community App Catalog is forthcoming. + See [Migrating from MinIO S3](https://www.truenas.com/docs/scale/22.12/scaletutorials/apps/communityapps/minioclustersscale/migratingfroms3service/) in the TrueNAS SCALE 22.12 (Bluefin) documentation for a detailed, TrueNAS-specific, tutorial for moving configuration and storage data from the built-in **S3** service to the latest **Minio** version, available from the Community App Catalog. {{< /hint >}} {{< /expand >}} @@ -94,8 +95,15 @@ More details are available from [23.10 Upgrades]({{< relref "23.10Upgrades.md" > * TrueNAS SCALE 23.10 (Cobia) changed from using `ntpd` to [chronyd](https://chrony-project.org/doc/4.4/chronyd.html) for system time management. Use [chronyc](https://chrony-project.org/doc/4.4/chronyc.html) commands instead of `ntpq` or similar ntp commands. +* Systems with physical NICs upgrading from TrueNAS SCALE 22.12 (Bluefin) to 23.10 (Cobia) might encounter an issue where the Dashboard doesn't fully load when logging in to 23.10 (Cobia). + If this occurs, go to **Network** and re-apply the interface settings to the named physical interfaces. + ### Upgrade Paths +There are a variety of options for upgrading to SCALE 23.10. + +{{< include file="/_includes/23.10UpgradeMethods.md" >}} + See the TrueNAS Software Status page for recommendations about which software version to use based on your user type. Update the system to the latest maintenance release of the installed major version before attempting to upgrade to a new TrueNAS SCALE major version. @@ -114,22 +122,22 @@ Migrations from TrueNAS CORE for Enterprise High Availability (HA) systems are n {{< columns >}} **TrueNAS SCALE** -```mermaid +{{< mermaid class="mermaid_sizing" >}} flowchart LR A["22.02.4 (Angelfish)"] --> C -B[CORE 13.0-U5.3] --> C -C["22.12.4 (Bluefin)"] --> D -D["23.10.0.1 (Cobia)"] -``` +B[CORE 13.0-U6] --> C +C["22.12.4.2 (Bluefin)"] --> D +D["23.10.1 (Cobia)"] +{{< /mermaid >}} <---> **TrueNAS SCALE Enterprise** -```mermaid +{{< mermaid class="mermaid_sizing" >}} flowchart LR -A("Current 22.12 (Bluefin) release") --> B["22.12.4.2 (Bluefin)"] --> C["23.10.0.1 (Cobia)"] -``` +A("Current 22.12 (Bluefin) release") --> B["22.12.4.2 (Bluefin)"] --> C["23.10.1 (Cobia)"] +{{< /mermaid >}} {{< /columns >}} @@ -141,13 +149,13 @@ Click the component version number to see the latest release notes for that comp Version - Linux Kernel6.1.42 + Linux Kernel6.1.63 Nvidia Driver535.54.03-2 - OpenZFS2.2.0 + OpenZFS2.2.0
(2.2.2 released with SCALE 23.10.1) @@ -159,17 +167,55 @@ The items listed here represent new feature flags implemented since the previous |--------------|------|-------| | blake3 | [org.openzfs:blake3](https://openzfs.github.io/openzfs-docs/man/master/7/zpool-features.7.html#org.openzfs:blake3) | | | block_cloning | [com.fudosecurity:block_cloning](https://openzfs.github.io/openzfs-docs/man/master/7/zpool-features.7.html#com.fudosecurity:block_cloning) | This is enabled by default for pools created in 23.10 (Cobia). Systems upgrading to 23.10 have to upgrade existing pools to enable this feature. | -| draid | [org.openzfs:draid](https://openzfs.github.io/openzfs-docs/man/master/7/zpool-features.7.html#org.openzfs:draid) | Web interface support is not present in 23.10-BETA.1. | +| draid | [org.openzfs:draid](https://openzfs.github.io/openzfs-docs/man/master/7/zpool-features.7.html#org.openzfs:draid) | | | head_errlog | [com.delphix:head_errlog](https://openzfs.github.io/openzfs-docs/man/master/7/zpool-features.7.html#com.delphix:head_errlog) | | | vdev_zaps_v2 | [com.klarasystems:vdev_zaps_v2](https://openzfs.github.io/openzfs-docs/man/master/7/zpool-features.7.html#com.klarasystems:vdev_zaps_v2) | | -| zilsaxattr | [org.openzfs:zilsaxattr](https://openzfs.github.io/openzfs-docs/man/master/7/zpool-features.7.html#org.openzfs:zilsaxattr) | Web interface support is not present in 23.10-BETA.1. | +| zilsaxattr | [org.openzfs:zilsaxattr](https://openzfs.github.io/openzfs-docs/man/master/7/zpool-features.7.html#org.openzfs:zilsaxattr) | | {{< /truetable >}} -For more details on feature flags see [OpenZFS Feature Flags](https://openzfs.github.io/openzfs-docs/Basic%20Concepts/Feature%20Flags.html). -For more details on zpool.features.7 see [OpenZFS zpool-feature.7](https://openzfs.github.io/openzfs-docs/man/7/zpool-features.7.html). +For more details on feature flags see [OpenZFS Feature Flags](https://openzfs.github.io/openzfs-docs/Basic%20Concepts/Feature%20Flags.html) and [OpenZFS zpool-feature.7](https://openzfs.github.io/openzfs-docs/man/7/zpool-features.7.html). + +## 23.10.1 Changelog + +**December 19, 2023** + +iXsystems is pleased to release TrueNAS SCALE 23.10.1! +This is a maintenance release to address community reported bugs in SCALE 23.10 (Cobia) and improve stability. + +Notable changes: + +* Reported issues involving cached Web UI artifacts are addressed in 23.10.1 ([NAS-124602](https://ixsystems.atlassian.net/browse/NAS-124602)). + + {{< include file="/_includes/UpgradeClearCache.md" >}} + +* OpenZFS is updated to [version 2.2.2](https://github.com/openzfs/zfs/releases/tag/zfs-2.2.2) to fix a data integrity issue discovered in that project ([NAS-125541](https://ixsystems.atlassian.net/browse/NAS-125541)). + While this bug has been present in OpenZFS for many years, this issue has not been found to impact any TrueNAS systems to date. + See this [TrueNAS Community announcement](https://www.truenas.com/community/threads/old-openzfs-issue-found-and-being-resolved.114556/) for more details. +* The ZFS block cloning feature is temporarily disabled in 23.10.1. This is being done out of an abundance of caution while the OpenZFS project conducts additional testing. While re-enabling this feature is anticipated in a future 23.10 release, SCALE nightly builds continue to have ZFS block cloning enabled for experimentation and testing. +* [Exporting]({{< relref "ConfigReportsSCALE.md #configuring-reporting-exporters" >}}) Netdata reporting metrics to a third party database (Graphite) is now supported ([NAS-123668](https://ixsystems.atlassian.net/browse/NAS-123668)). +* The Linux kernel is updated to version [6.1.63](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tag/?h=v6.1.63) ([NAS-125309](https://ixsystems.atlassian.net/browse/NAS-125309)). +* All network interface hardware addresses persist at upgrade to address a name change some TrueNAS Enterprise system NICs experience when upgrading from TrueNAS SCALE Bluefin to TrueNAS SCALE Cobia ([NAS-124679](https://ixsystems.atlassian.net/browse/NAS-124679)). +* The deprecated **Use System Dataset** option in **System Settings > Advanced > Syslog** is removed ([WebUI PR #9026](https://github.com/truenas/webui/pull/9026/)). +* Improved sorting and filtering of replace disk search results ([NAS-124732](https://ixsystems.atlassian.net/browse/NAS-124732)). +* Fix issue with immutable fields preventing additional storage configuration for applications ([NAS-125196](https://ixsystems.atlassian.net/browse/NAS-125196)). +* The only install option supported by the 23.10.1 (Cobia) ISO installer is a clean installation. + The ISO installer **Upgrade Install** and **Fresh Install** options are removed. + Only the **Fresh Install** behavior is supported by the SCALE 23.10.1 (and later versions) ISO file. + Continue to use the TrueNAS SCALE [update process]({{< relref "UpdateSCALE.md" >}}) to seamlessly upgrade from one SCALE major version to another. + +Click here for the full changelog of completed tickets that are included in the 23.10.1 release. +{{< include file="_includes/JiraFilterInstructions.md" >}} + +### 23.10.1 Ongoing Issues + +* Importing a designated **ix-applications** pool does not start the installed applications. + This is targeted for resolution in the SCALE 23.10.2 maintenance release. + +Click here to see the latest information about issues discovered in 23.10.1 that are being resolved in a future TrueNAS SCALE release. ## 23.10.0.1 Changelog +{{< expand "Click to Expand" "v" >}} **October 31, 2023** iXsystems is pleased to release TrueNAS SCALE 23.10.0.1! @@ -182,9 +228,11 @@ Changes: * Fix issue where system logs stop sending to a remote logging server ([NAS-124825](https://ixsystems.atlassian.net/browse/NAS-124845)). See the **23.10.0 Ongoing Issues** list below for any additional details about issues discovered after the 23.10.0 release. +{{< /expand >}} ## 23.10.0 Changelog +{{< expand "Click to Expand" "v" >}} **October 24, 2023** iXsystems is pleased to release TrueNAS SCALE 23.10.0! @@ -205,6 +253,7 @@ Notable changes: When the system has a single NIC that is affected and web interface access is unavailable, connect to the system serial console and manually port the previous configuration to the newly named NIC. Click here to see the latest information about issues discovered in 23.10.0 that are being resolved in a future TrueNAS SCALE release. +{{< /expand >}} ## 23.10-RC.1 Changelog diff --git a/content/SCALETutorials/ConfigReportsScale.md b/content/SCALETutorials/ConfigReportsScale.md index 989bcb9259..659997fab0 100644 --- a/content/SCALETutorials/ConfigReportsScale.md +++ b/content/SCALETutorials/ConfigReportsScale.md @@ -13,7 +13,7 @@ tags: TrueNAS has a built-in reporting engine that provides helpful graphs and information about the system. -![CPUReportingUsageTemp](/images/SCALE/23.10/CPUReportingUsageTemp.png "CPU Reporting Usage and Temperature") +{{< trueimage src="/images/SCALE/23.10/CPUReportingUsageTemp.png" alt="Reporting Screen" id="Reporting Screen" >}} {{< expand "What does TrueNAS use for reporting?" "v" >}} TrueNAS uses [netdata](https://github.com/netdata/netdata) to gather system metrics and present them in the **Reporting** screens. @@ -36,4 +36,43 @@ Click on the icon to zoom Click the to move the graph forward. Click the to move the graph backward. +## Configuring Reporting Exporters + +Click **Exporters** to open the [**Reporting Exporters**]({{< relref "ReportingScreensSCALE.md #reporting-exporters-screen" >}}) screen. +The **Reporting Exporters** screen displays any configured third party reporting exports on the system. + +{{< trueimage src="/images/SCALE/23.10/ReportingExportersScreen.png" alt="Reporting Exporters Screen" id="Reporting Exporters Screen" >}} + +Exporting enables TrueNAS SCALE to send Netdata reporting metrics to another time-series database. +For more information, see the Netdata [exporting reference guide](https://learn.netdata.cloud/docs/exporting/exporting-reference). + +Click **Add** to open the **Add Reporting Exporter** screen and configure a third party reporting integration. + +{{< trueimage src="/images/SCALE/23.10/AddReportingExporter.png" alt="Add Reporting Exporter" id="Add Reporting Exporter" >}} + +Enter a unique name for the exporter configuration in **Name**. If configuring multiple exporter instances, give each a distinct name. + +Select the target database from **Type**. +Graphite is the only current supported option. +Additional settings fields automatically populate to configure the selected exporter type. + +Select **Enable** to send reporting metrics to the configured exporter instance. Leave the checkbox cleared to disable the exporter without removing configuration. + +### Configuring Graphite Exporting + +[Graphite](https://graphiteapp.org/) is a monitoring tool that stores and renders time-series data based on a plaintext database. +Netdata exports reporting metrics to Graphite in the format *prefix*.*hostname*.*chart*.*dimension*. + +To send reporting data to Graphite, select **GRAPHITE** in **Type**. + +{{< trueimage src="/images/SCALE/23.10/AddReportingExporterGraphite.png" alt="Graphite Settings" id="Graphite Settings" >}} + +Enter the IP address of the Graphite server in **Destination Ip**. +Enter the port number the Graphite server monitors in **Destination Port**. + +You can accept the defaults for all other settings, or enter configuration settings to match your use case. + +See "Graphite Settings" in [Add Reporting Exporter]({{< relref "ReportingScreensSCALE.md #add-reporting-exporter" >}}) for default values. +For additional information, see the Netdata [Graphite exporting guide](https://learn.netdata.cloud/docs/exporting/graphite). + {{< taglist tag="scalereports" limit="10" >}} diff --git a/content/SCALETutorials/SystemSettings/UpdateSCALE.md b/content/SCALETutorials/SystemSettings/UpdateSCALE.md index d2e4e36e0f..e801cf4606 100644 --- a/content/SCALETutorials/SystemSettings/UpdateSCALE.md +++ b/content/SCALETutorials/SystemSettings/UpdateSCALE.md @@ -2,7 +2,8 @@ title: "Updating SCALE" description: "Provides instructions on updating SCALE releases in the UI." weight: 10 -alias: /scale/scaleuireference/systemsettings/updatescale/ +alias: +- /scale/scaleuireference/systemsettings/updatescale/ tags: - scaleupdate --- @@ -11,11 +12,12 @@ tags: TrueNAS has several software branches (linear update paths) known as trains. If SCALE is in a prerelease train it can have various preview/early build releases of the software. -The **Update Screen** only displays the current train. For more information on other available trains, see [TrueNAS Upgrades](https://www.truenas.com/docs/truenasupgrades/). +The **Update Screen** only displays the current train. For more information on other available trains, see [Release Schedules](https://www.truenas.com/docs/truenasupgrades/). {{< hint type=warning >}} See the [Software Status](https://www.truenas.com/software-status/) page for the latest recommendations for software usage. -Cobia and Nightlies are non-production trains. +Do not change to a prerelease or nightly release unless the system is intended to permanently remain on early versions and is not storing any critical data. + If you are using a non-production train, be prepared to experience bugs or other problems. Testers are encouraged to submit bug reports and debug files. For information on how to file an issue ticket see [Filing an Issue Ticket in SCALE]({{< relref "FileIssueSCALE.md" >}}). @@ -49,6 +51,8 @@ The **Apply Pending Updates** window opens. Click **Confirm**, then **Continue** to start the automatic installation process. TrueNAS SCALE downloads the configuration file and the update file, then starts the install. +{{< include file="/_includes/UpgradeClearCache.md" >}} + ## Performing a Manual Update If the system detects an available update, to do a manual update click **Download Updates** and wait for the file to download to your system. diff --git a/content/SCALEUIReference/ReportingScreensSCALE.md b/content/SCALEUIReference/ReportingScreensSCALE.md index 8ac140d59e..43e33a53a0 100644 --- a/content/SCALEUIReference/ReportingScreensSCALE.md +++ b/content/SCALEUIReference/ReportingScreensSCALE.md @@ -11,7 +11,15 @@ tags: {{< toc >}} -The **Reporting** screen displays graphs of system information for CPU, disk, memory, network, NFS, partition, target, UPS, ZFS, and system functions. The **CPU** report displays by default. +The **Reporting** screen displays graphs of system information for CPU, disk, memory, network, NFS, partition, target, UPS, ZFS, and system functions. +Use the dropdown in the upper right corner to select between reporting graph display options. +The **CPU** report displays by default. + +{{< expand "What does TrueNAS SCALE use for reporting?" "v" >}} +TrueNAS SCALE uses [Netdata](https://www.netdata.cloud/) to gather metrics, create visualizations, and provide reporting statistics. +{{< /expand >}} + +To configure third party reporting integration, such as Graphite, click **Exporters** to open the [**Reporting Exporters**](#reporting-exporters-screen) screen. ## Reporting Screen Display Options @@ -33,9 +41,9 @@ The following sections provide examples of each report graph. CPU graphs show the amount of time spent by the CPU in various states such as executing user code, executing system code, and being idle. Graphs of short-, mid-, and long-term load are shown, along with CPU temperature graphs. -![CPUReportingUsageTemp](/images/SCALE/23.10/CPUReportingUsageTemp.png "CPU Reporting Usage and Temperature") +{{< trueimage src="/images/SCALE/23.10/CPUReportingUsageTemp.png" alt="CPU Reporting Usage and Temperature" id="CPU Reporting Usage and Temperature" >}} -![CPUReportingSystemLoad](/images/SCALE/23.10/CPUReportingSystemLoad.png "CPU Reporting System Load") +{{< trueimage src="/images/SCALE/23.10/CPUReportingSystemLoad.png" alt="CPU Reporting System Load" id="CPU Reporting System Load" >}} {{< /expand >}} ### Disk Graphs @@ -43,9 +51,9 @@ Graphs of short-, mid-, and long-term load are shown, along with CPU temperature Disk graphs shows read and write statistics on I/O, percent busy, latency, operations per second, pending I/O requests, and disk temperature. Use the **Select Disks** dropdown list to select the disks and the **Select Reports** dropdown to select the report types to display. -![DiskReportingIO](/images/SCALE/23.10/DiskReportingIO.png "Disks Reporting I/O") +{{< trueimage src="/images/SCALE/23.10/DiskReportingIO.png" alt="Disks Reporting I/O" id="Disks Reporting I/O" >}} -![DiskReportingTemperature](/images/SCALE/23.10/DiskReportingTemperature.png "Disks Reporting Temperature") +{{< trueimage src="/images/SCALE/23.10/DiskReportingTemperature.png" alt="Disks Reporting Temperature" id="Disks Reporting Temperature" >}} ### Disk Report Options @@ -71,21 +79,21 @@ For example, a system with 18,446,744,073,709,551,615 bytes reports the number a {{< expand "Click Here for More Information" "v" >}} Memory graphs display memory usage and swap graphs display the amount of free and used swap space. -![MemoryReportingPhysSwap](/images/SCALE/23.10/MemoryReportingPhysSwap.png "Memory Reporting Physical and Swap") +{{< trueimage src="/images/SCALE/23.10/MemoryReportingPhysSwap.png" alt="Memory Reporting" id="Memory Reporting" >}} {{< /expand >}} ### Network Graphs {{< expand "Click Here for More Information" "v" >}} Network graph report received and transmitted traffic in megabytes per second for each configured interface. -![NetworkReportingIntTraffic](/images/SCALE/23.10/NetworkReportingIntTraffic.png "Network Reporting") +{{< trueimage src="/images/SCALE/23.10/NetworkReportingIntTraffic.png" alt="Network Reporting" id="Network Reporting" >}} {{< /expand >}} ### System Graphs {{< expand "Click Here for More Information" "v" >}} System graphs display the number of processes grouped by state, sleeping, running, stopped, zombies and blocked, and system uptime. -![SystemReportingProcessUptime](/images/SCALE/23.10/SystemReportingProcessUptime.png "System Reporting") +{{< trueimage src="/images/SCALE/23.10/SystemReportingProcessUptime.png" alt="System Reporting" id="System Reporting" >}} {{< /expand >}} @@ -93,9 +101,55 @@ System graphs display the number of processes grouped by state, sleeping, runnin {{< expand "Click Here for More Information" "v" >}} ZFS graphs show compressed physical ARC size, hit ratio, demand data, demand metadata, and prefetch data and metadata. -![ZFSReportingARCSizeHit](/images/SCALE/23.10/ZFSReportingActualHitsHitsRate.png "ZFS Reporting ARC Actual Cache Hits Rate and and ARC Hit Rate") +{{< trueimage src="/images/SCALE/23.10/ZFSReportingActualHitsHitsRate.png" alt="ZFS ARC Actual Cache Hits Rate and and ARC Hit Rate" id="ZFS ARC Actual Cache Hits Rate and and ARC Hit Rate" >}} +{{< trueimage src="/images/SCALE/23.10/ZFSReportingARCSizeResult.png" alt="ZFS ARC Size and ARC Result" id="ZFS ARC Size and ARC Result" >}} + +{{< /expand >}} + +## Reporting Exporters Screen + +The **Reporting Exporters** screen displays any configured third party reporting exports on the system. +Exporting enables TrueNAS SCALE to send Netdata reporting metrics to another time-series database. +For more information, see the Netdata [exporting reference guide](https://learn.netdata.cloud/docs/exporting/exporting-reference). + +{{< trueimage src="/images/SCALE/23.10/ReportingExportersScreen.png" alt="Reporting Exporters Screen" id="Reporting Exporters Screen" >}} + +Click **Add** to open the **Add Reporting Exporter** screen. + +### Add Reporting Exporter + +Use the **Add Reporting Exporter** screen to configure third party reporting integrations. + +{{< trueimage src="/images/SCALE/23.10/AddReportingExporter.png" alt="Add Reporting Exporter" id="Add Reporting Exporter" >}} + +{{< truetable >}} +| Setting | Description | +|---------|-------------| +| **Name** | Enter a unique name for the exporter configuration. If configuring multiple instances, give each a distinct name. | +| **Type** | Select the exporter type to configure. The only current supported option is **GRAPHITE**. | +| **Enable** | Select to send reporting data to the configured exporter. Leave checkbox clear to disable the explorer without removing configuration. | +{{< /truetable >}} + +Additional settings populate based on the selected **Type** option. + +{{< expand "Graphite Settings" "v" >}} + +{{< trueimage src="/images/SCALE/23.10/AddReportingExporterGraphite.png" alt="Graphite Settings" id="Graphite Settings" >}} + +{{< truetable >}} +| Setting | Description | +|-----------|-------------| +| **Destination Ip** | Required. Enter the IP address of the Graphite server. | +| **Destination Port** | Required. Enter the port the Graphite server monitors. | +| **Prefix** | Enter the prefix to add to all Netdata metrics sent to Graphite. Defaults to *dragonfish*.
Netdata exports reporting metrics to Graphite in the format *prefix*.*hostname*.*chart*.*dimension*. | +| **Hostname** | Enter the host name to add to all metrics sent to the Graphite server. Defaults to *truenas*. | +| **Update Every** | Enter the number of seconds for the interval to send data to the Graphite database. Defaults to *1*. | +| **Buffer On Failures** | Enter the number of iterations (**Update Every** seconds) to buffer data, when the Graphite server is not available. Defaults to *10*. | +| **Send Names Instead Of Ids** | Enter *true* to send Netdata chart and dimension names to Graphite or *false* to send IDs. Defaults to *true*. | +| **Matching Charts** | Enter one or more space separated patterns in regular expression (use * as wildcard or ! to define a negative match) to specify the charts to send to Graphite. Defaults to * (send all charts). | +{{< /truetable >}} -![ZFSReportingARCDemandDataMeta](/images/SCALE/23.10/ZFSReportingARCSizeResult.png "ZFS Reporting ARC Size and ARC Result") +See [Configuring Graphite Exporting]({{< relref "ConfigReportsScale.md #configuring-graphite-exporting" >}}) for more information. {{< /expand >}} diff --git a/content/SCALEUIReference/SystemSettings/UpdateScreensSCALE.md b/content/SCALEUIReference/SystemSettings/UpdateScreensSCALE.md index 456bb75005..2569c0f6fe 100644 --- a/content/SCALEUIReference/SystemSettings/UpdateScreensSCALE.md +++ b/content/SCALEUIReference/SystemSettings/UpdateScreensSCALE.md @@ -9,6 +9,8 @@ tags: {{< toc >}} +{{< include file="/_includes/UpgradeClearCache.md" >}} + The TrueNAS SCALE **Update** screen provides users with two different methods to update the system, automatic or manual. The screen can have up to four information panes: * Current train diff --git a/content/_includes/ISOUpgrades.md b/content/_includes/ISOUpgrades.md deleted file mode 100644 index cd3b2fd501..0000000000 --- a/content/_includes/ISOUpgrades.md +++ /dev/null @@ -1,30 +0,0 @@ - - -Start by plugging the USB drive with the saved [SCALE ISO file](https://www.truenas.com/download-tn-scale/) into a USB port on the TrueNAS system to upgrade and then boot or reboot the system. - -At the motherboard splash screen, use the hotkey defined by your motherboard manufacturer to select a boot device, then select the USB drive with the SCALE .iso. - -When the SCALE console setup screen displays, select **Install/Upgrade**. - -{{< trueimage src="/images/SCALE/22.12/SCALEInstallMainScreen.png" alt="Console Setup Install/Upgrade" id="Console Setup Install/Upgrade" >}} - -Next, select your TrueNAS boot disk. -Make sure this is the same boot disk previously used when TrueNAS was first installed. - -{{< trueimage src="/images/SCALE/22.12/SCALEInstallDriveScreen.png" alt="Select the Boot Drive" id="Select the Boot Drive" >}} - -The installer asks if you want to preserve your existing configuration or start with a fresh installation. -Select **Upgrade Install** to keep the current system configuration in place when the new version installs. - -{{< trueimage src="/images/SCALE/22.12/SCALEInstallUpgradeFresh.png" alt="Preserve Existing Configuration" id="Preserve Existing Configuration" >}} - -Then select **Install in new boot environment**. - -{{< trueimage src="/images/SCALE/22.12/SCALEInstallUpdateMethodSelection.png" alt="Install in New Boot Environment" id="Install in New Boot Environment" >}} - -After choosing to install in new boot environment, the installer warns the boot disk can not be used for sharing data and requests confirmation. -Select **Yes** to continue with the upgrade. - -{{< trueimage src="/images/SCALE/22.12/SCALEUpgrade4.png" alt="Proceed with the Upgrade" id="Proceed with the Upgrade" >}} - -After the installation completes, reboot the system and remove the USB with the SCALE .iso file. diff --git a/content/_includes/SCALEInstallerProcedure.md b/content/_includes/SCALEInstallerProcedure.md index 75d0195fd3..b6022ae5b1 100644 --- a/content/_includes/SCALEInstallerProcedure.md +++ b/content/_includes/SCALEInstallerProcedure.md @@ -1,40 +1,33 @@ 1. Select **Install/Upgrade**. - - ![SCALEInstallUpgrade](/images/SCALE/22.12/SCALEInstallMainScreen.png "SCALE Install Main Screen") + + ![SCALEInstallUpgrade](/images/SCALE/23.10/SCALEInstallMainScreen.png "SCALE Install Main Screen") 2. Select the desired install drive. - - ![InstallDrive](/images/SCALE/22.12/SCALEInstallDriveScreen.png "Install Drive Screen") - Select **Yes**. - - ![InstallWarning](/images/SCALE/22.12/SCALEInstallWarningScreen.png "Install Warning Screen") + ![InstallDrive](/images/SCALE/23.10/SCALEInstallDriveScreen.png "Install Drive Screen") -3. Select **Fresh Install** to do a clean install of the downloaded version of TrueNAS SCALE. + Select **Yes** to proceed with a clean installation of TrueNAS SCALE from the .iso. This erases the contents of the selected drive! - - ![InstallFresh](/images/SCALE/22.12/SCALEInstallUpgradeFresh.png "Upgrade or Fresh Install Screen") - - When the operating system device has enough additional space, you can choose to allocate some space for a swap partition to improve performance. Select **Create Swap** and press Enter. - - ![InstallPartition](/images/SCALE/22.12/SCALEInstallPartitionScreen.png "Install Partition Screen") - When existing versions of TrueNAS are present on the device, you can choose **Install in new boot environment** to create a partition or **Format the boot device** to remove previous boot environments. + ![InstallWarning](/images/SCALE/23.10/SCALEInstallWarningScreen.png "Install Warning Screen") + +3. When the operating system device has enough additional space, you can choose to allocate some space for a swap partition to improve performance. + Select **Create Swap** and press Enter. - ![InstallUpdateMethodSelection](/images/SCALE/22.12/SCALEInstallUpdateMethodSelection.png "Update Method Selection Screen") + ![InstallPartition](/images/SCALE/23.10/SCALEInstallPartitionScreen.png "Install Partition Screen") -4. Select option **1 Administrative user (admin)** and then **OK** to install SCALE, and create the admin user account. +4. Select option **1 Administrative user (admin)** then **OK** to install SCALE and create the admin user account. SCALE Bluefin has implemented rootless login. Create an admin account and password. The system retains root as a fallback but it is no longer the default. This account has full control over TrueNAS and is used to log in to the web interface. Set a strong password and protect it. We do not recommend selecting **3 Configure using Web UI**. - - ![SCALEInstallerConsoleSetupAdminAccount](/images/SCALE/22.12/SCALEInstallerConsoleSetupAdminAccount.png "Admin User Screen") + + ![SCALEInstallerConsoleSetupAdminAccount](/images/SCALE/23.10/SCALEInstallerConsoleSetupAdminAccount.png "Admin User Screen") Next, enter a password for the new admin user. - ![SCALEInstallerConsoleSetupAdminPassword](/images/SCALE/22.12/SCALEInstallerConsoleSetupAdminPassword.png "Install Password Screen") + ![SCALEInstallerConsoleSetupAdminPassword](/images/SCALE/23.10/SCALEInstallerConsoleSetupAdminPassword.png "Install Password Screen") 5. Select **Boot via UEFI** at the **TrueNAS Boot Mode** prompt, then select **OK** and press Enter to begin the installation. diff --git a/content/_includes/UpgradeClearCache.md b/content/_includes/UpgradeClearCache.md new file mode 100644 index 0000000000..fc37065284 --- /dev/null +++ b/content/_includes/UpgradeClearCache.md @@ -0,0 +1,5 @@ + + +{{< hint type=important title="Clear browser cache after update" >}} +After updating, clear the browser cache (CTRL+F5) before logging in to SCALE. This ensures stale data doesn't interfere with loading the SCALE UI. +{{< /hint >}} diff --git a/static/api/scale_rest_api.html b/static/api/scale_rest_api.html index 25ad7fade0..bc1827dfbd 100644 --- a/static/api/scale_rest_api.html +++ b/static/api/scale_rest_api.html @@ -13,7 +13,7 @@
diff --git a/static/api/scale_websocket_api.html b/static/api/scale_websocket_api.html index 777602d6f8..0610fd917a 100644 --- a/static/api/scale_websocket_api.html +++ b/static/api/scale_websocket_api.html @@ -450,6 +450,9 @@
  • reporting
  • +
  • + reporting.exporters +
  • route
  • @@ -34171,6 +34174,36 @@

    core

    "string", "null" ] + }, + "credentials": { + "type": "object", + "properties": { + "type": { + "_name_": "type", + "title": "type", + "_required_": false, + "type": "string" + }, + "data": { + "type": "object", + "properties": {}, + "additionalProperties": true, + "_name_": "data", + "title": "data", + "default": {}, + "_required_": false, + "_attrs_order_": [] + } + }, + "additionalProperties": false, + "_name_": "credentials", + "title": "credentials", + "default": {}, + "_required_": false, + "_attrs_order_": [ + "type", + "data" + ] } }, "additionalProperties": false, @@ -34194,7 +34227,8 @@

    core

    "exc_info", "state", "time_started", - "time_finished" + "time_finished", + "credentials" ] }, { @@ -34442,6 +34476,36 @@

    core

    "string", "null" ] + }, + "credentials": { + "type": "object", + "properties": { + "type": { + "_name_": "type", + "title": "type", + "_required_": false, + "type": "string" + }, + "data": { + "type": "object", + "properties": {}, + "additionalProperties": true, + "_name_": "data", + "title": "data", + "default": {}, + "_required_": false, + "_attrs_order_": [] + } + }, + "additionalProperties": false, + "_name_": "credentials", + "title": "credentials", + "default": {}, + "_required_": false, + "_attrs_order_": [ + "type", + "data" + ] } }, "additionalProperties": false, @@ -34465,7 +34529,8 @@

    core

    "exc_info", "state", "time_started", - "time_finished" + "time_finished", + "credentials" ] } ] @@ -42272,6 +42337,7 @@

    failover

    LAJOLLA2 (f-series) PUMA (x-series) BHYVE (HA VMs for CI) + IXKVM (HA VMs (on KVM) for CI) MANUAL (everything else)

    @@ -44635,10 +44701,52 @@

    filesystem

    { - "_name_": "path", - "title": "path", + "type": "object", + "properties": { + "path": { + "_name_": "path", + "title": "path", + "_required_": false, + "type": "string" + }, + "options": { + "type": "object", + "properties": { + "mode": { + "_name_": "mode", + "title": "mode", + "default": "755", + "_required_": false, + "type": "string" + }, + "raise_chmod_error": { + "type": "boolean", + "_name_": "raise_chmod_error", + "title": "raise_chmod_error", + "default": true, + "_required_": false + } + }, + "additionalProperties": false, + "_name_": "options", + "title": "options", + "default": {}, + "_required_": false, + "_attrs_order_": [ + "mode", + "raise_chmod_error" + ] + } + }, + "additionalProperties": false, + "_name_": "filesystem_mkdir", + "title": "filesystem_mkdir", + "default": {}, "_required_": false, - "type": "string" + "_attrs_order_": [ + "path", + "options" + ] }
    @@ -44697,7 +44805,8 @@

    filesystem

    ], "_name_": "mode", "title": "mode", - "_required_": true + "_required_": true, + "description": "`mode` - specify the permissions to set on the new directory (0o755 is default).\n`raise_chmod_error` - choose whether to raise an exception if the attempt to set\nmode fails. In this case, the newly created directory will be removed to prevent\nuse with unintended permissions." }, "acl": { "type": [ @@ -44766,6 +44875,14 @@

    filesystem

    Create a directory at the specified path.

    +

    The following options are supported:

    +

    mode - specify the permissions to set on the new directory (0o755 is default). +raise_chmod_error - choose whether to raise an exception if the attempt to set +mode fails. In this case, the newly created directory will be removed to prevent +use with unintended permissions.

    +

    NOTE: if chmod error is skipped, the resulting mode key in mkdir response will +indicate the current permissions on the directory and not the permissions specified +in the mkdir payload

    @@ -79260,7 +79377,8 @@

    pool

    "SHA256", "SHA512", "SKEIN", - "EDONR" + "EDONR", + "BLAKE3" ] }, "encryption_options": { @@ -83471,6 +83589,15 @@

    pool.dataset

    "enum": [ "EDONR" ] + }, + "BLAKE3": { + "_name_": "BLAKE3", + "title": "BLAKE3", + "_required_": false, + "type": "string", + "enum": [ + "BLAKE3" + ] } }, "additionalProperties": false, @@ -83485,7 +83612,8 @@

    pool.dataset

    "SHA256", "SHA512", "SKEIN", - "EDONR" + "EDONR", + "BLAKE3" ] }
    @@ -83511,6 +83639,15 @@

    pool.dataset

    { "type": "object", "properties": { + "ON": { + "_name_": "ON", + "title": "ON", + "_required_": false, + "type": "string", + "enum": [ + "ON" + ] + }, "OFF": { "_name_": "OFF", "title": "OFF", @@ -83959,6 +84096,7 @@

    pool.dataset

    "default": {}, "_required_": false, "_attrs_order_": [ + "ON", "OFF", "LZ4", "GZIP", @@ -84155,6 +84293,7 @@

    pool.dataset

    "title": "compression", "_required_": false, "enum": [ + "ON", "OFF", "LZ4", "GZIP", @@ -84464,7 +84603,8 @@

    pool.dataset

    "SHA256", "SHA512", "SKEIN", - "EDONR" + "EDONR", + "BLAKE3" ], "nullable": false, "anyOf": [ @@ -84590,6 +84730,7 @@

    pool.dataset

    "type": "string", "enum": [ "GENERIC", + "MULTIPROTOCOL", "SMB", "APPS" ] @@ -103271,6 +103412,7 @@

    pool.dataset

    "title": "compression", "_required_": false, "enum": [ + "ON", "OFF", "LZ4", "GZIP", @@ -103580,7 +103722,8 @@

    pool.dataset

    "SHA256", "SHA512", "SKEIN", - "EDONR" + "EDONR", + "BLAKE3" ], "nullable": false, "anyOf": [ @@ -116263,73 +116406,6 @@

    reporting

    - - - - - - - - -
    - reporting.config -
    - Return Arguments: -
    -
    -
    { - "type": "object", - "properties": { - "graphite": { - "_name_": "graphite", - "title": "graphite", - "_required_": true, - "type": "string" - }, - "graphite_separateinstances": { - "type": "boolean", - "_name_": "graphite_separateinstances", - "title": "graphite_separateinstances", - "_required_": true - }, - "graph_age": { - "type": "integer", - "_name_": "graph_age", - "title": "graph_age", - "_required_": true - }, - "graph_points": { - "type": "integer", - "_name_": "graph_points", - "title": "graph_points", - "_required_": true - }, - "id": { - "type": "integer", - "_name_": "id", - "title": "id", - "_required_": true - } - }, - "additionalProperties": false, - "_name_": "reporting_entry", - "title": "reporting_entry", - "default": {}, - "_required_": false, - "_attrs_order_": [ - "graphite", - "graphite_separateinstances", - "graph_age", - "graph_points", - "id" - ] -}
    -
    -
    -
    -
    - - -
    @@ -116401,7 +116477,7 @@

    reporting

    "type": "integer", "_name_": "page", "title": "page", - "default": 0, + "default": 1, "_required_": false, "description": "For the time period of the graph either `unit` and `page` OR `start` and `end` should be\nused, not both." }, @@ -116766,18 +116842,6 @@

    reporting

    "type": "string" } ] - }, - "stacked": { - "type": "boolean", - "_name_": "stacked", - "title": "stacked", - "_required_": false - }, - "stacked_show_total": { - "type": "boolean", - "_name_": "stacked_show_total", - "title": "stacked_show_total", - "_required_": false } }, "additionalProperties": false, @@ -116789,9 +116853,7 @@

    reporting

    "name", "title", "vertical_label", - "identifiers", - "stacked", - "stacked_show_total" + "identifiers" ] }, { @@ -116839,18 +116901,6 @@

    reporting

    "type": "string" } ] - }, - "stacked": { - "type": "boolean", - "_name_": "stacked", - "title": "stacked", - "_required_": false - }, - "stacked_show_total": { - "type": "boolean", - "_name_": "stacked_show_total", - "title": "stacked_show_total", - "_required_": false } }, "additionalProperties": false, @@ -116862,9 +116912,7 @@

    reporting

    "name", "title", "vertical_label", - "identifiers", - "stacked", - "stacked_show_total" + "identifiers" ] } ] @@ -117599,10 +117647,11 @@

    reporting

    +

    reporting.exporters

    + + + + + +
    - reporting.update + reporting.exporters.create
    Arguments: @@ -117611,111 +117660,884 @@

    reporting

    { "type": "object", "properties": { - "graphite": { - "_name_": "graphite", - "title": "graphite", + "enabled": { + "type": "boolean", + "_name_": "enabled", + "title": "enabled", + "_required_": true + }, + "type": { + "_name_": "type", + "title": "type", "_required_": true, "type": "string", - "description": "`graphite` specifies a destination hostname or IP for collectd data sent by the Graphite plugin.." + "enum": [ + "GRAPHITE" + ] + }, + "attributes": { + "type": "object", + "properties": {}, + "additionalProperties": true, + "_name_": "attributes", + "title": "attributes", + "description": "Specific attributes of each `exporter`", + "default": {}, + "_required_": false, + "_attrs_order_": [] + }, + "name": { + "_name_": "name", + "title": "name", + "description": "User defined name of exporter configuration", + "_required_": true, + "type": "string" + } + }, + "additionalProperties": false, + "_name_": "reporting_exporters_create", + "title": "reporting_exporters_create", + "default": {}, + "_required_": false, + "_attrs_order_": [ + "enabled", + "type", + "attributes", + "name" + ] +}
    + +
    + +
    + Return Arguments: +
    +
    +
    { + "type": "object", + "properties": { + "id": { + "type": "integer", + "_name_": "id", + "title": "id", + "_required_": true }, - "graphite_separateinstances": { + "enabled": { "type": "boolean", - "_name_": "graphite_separateinstances", - "title": "graphite_separateinstances", + "_name_": "enabled", + "title": "enabled", + "_required_": true + }, + "type": { + "_name_": "type", + "title": "type", "_required_": true, - "description": "`graphite_separateinstances` corresponds to collectd SeparateInstances option." + "type": "string", + "enum": [ + "GRAPHITE" + ] }, - "graph_age": { - "type": "integer", - "_name_": "graph_age", - "title": "graph_age", + "attributes": { + "type": "object", + "properties": {}, + "additionalProperties": true, + "_name_": "attributes", + "title": "attributes", + "description": "Specific attributes of each `exporter`", + "default": {}, + "_required_": false, + "_attrs_order_": [] + }, + "name": { + "_name_": "name", + "title": "name", + "description": "User defined name of exporter configuration", "_required_": true, - "description": "`graph_age` specifies the maximum age of stored graphs in months. `graph_points` is the number of points for\neach hourly, daily, weekly, etc. graph. Changing these requires destroying the current reporting database,\nso when these fields are changed, an additional `confirm_rrd_destroy: true` flag must be present." + "type": "string" + } + }, + "additionalProperties": false, + "_name_": "reporting_exporters_create_returns", + "title": "reporting_exporters_create_returns", + "default": {}, + "_required_": false, + "_attrs_order_": [ + "id", + "enabled", + "type", + "attributes", + "name" + ] +}
    +
    +
    +
    +
    +

    Create a specific reporting exporter configuration containing required details for exporting reporting metrics.

    +
    + + + + + + + + + +
    + reporting.exporters.delete +
    + Arguments: +
    +
    +
    { + "type": "integer", + "_name_": "id", + "title": "id", + "_required_": false +}
    +
    +
    +
    +
    + Return Arguments: +
    +
    +
    { + "type": "boolean", + "_name_": "deleted", + "title": "deleted", + "description": "Will return `true` if `id` is deleted successfully", + "_required_": false +}
    +
    +
    +
    +
    +

    Delete Reporting Exporter of id.

    +
    + + + + + + + + +
    + reporting.exporters.exporter_schemas +
    + Return Arguments: +
    +
    +
    { + "_name_": "exporter_schemas", + "title": "Reporting Exporter Schemas", + "default": [], + "_required_": false, + "type": "array", + "items": [ + { + "type": "object", + "properties": { + "key": { + "_name_": "key", + "title": "key", + "_required_": true, + "type": "string" + }, + "schema": { + "_name_": "schema", + "title": "schema", + "default": [], + "_required_": false, + "type": "array", + "items": [ + { + "type": "object", + "properties": {}, + "additionalProperties": true, + "_name_": "attribute_schema", + "title": "Attribute Schema", + "default": {}, + "_required_": false, + "_attrs_order_": [] + } + ] + } + }, + "additionalProperties": false, + "_name_": "schema_entry", + "title": "Reporting Exporter Schema", + "default": {}, + "_required_": false, + "_attrs_order_": [ + "key", + "schema" + ] + } + ] +}
    +
    +
    +
    +
    +

    Get the schemas for all the reporting export types we support with their respective attributes +required for successfully exporting reporting metrics to them.

    +
    + + + + + + + + +
    + reporting.exporters.get_instance +
    + Arguments: +
    +
    +
    { + "anyOf": [ + { + "type": "string" + }, + { + "type": "integer" + }, + { + "type": "boolean" + }, + { + "type": "object" + }, + { + "type": "array" + } + ], + "nullable": false, + "_name_": "id", + "title": "id", + "_required_": false, + "description": "Returns instance matching `id`. If `id` is not found, Validation error is raised." +}
    +
    +
    +
    { + "type": "object", + "properties": { + "relationships": { + "type": "boolean", + "_name_": "relationships", + "title": "relationships", + "default": true, + "_required_": false }, - "graph_points": { + "extend": { + "_name_": "extend", + "title": "extend", + "default": null, + "_required_": false, + "type": [ + "string", + "null" + ] + }, + "extend_context": { + "_name_": "extend_context", + "title": "extend_context", + "default": null, + "_required_": false, + "type": [ + "string", + "null" + ] + }, + "prefix": { + "_name_": "prefix", + "title": "prefix", + "default": null, + "_required_": false, + "type": [ + "string", + "null" + ] + }, + "extra": { + "type": "object", + "properties": {}, + "additionalProperties": true, + "_name_": "extra", + "title": "extra", + "default": {}, + "_required_": false, + "_attrs_order_": [] + }, + "order_by": { + "_name_": "order_by", + "title": "order_by", + "default": [], + "_required_": false, + "type": "array", + "items": [] + }, + "select": { + "_name_": "select", + "title": "select", + "default": [], + "_required_": false, + "type": "array", + "items": [] + }, + "count": { + "type": "boolean", + "_name_": "count", + "title": "count", + "default": false, + "_required_": false + }, + "get": { + "type": "boolean", + "_name_": "get", + "title": "get", + "default": false, + "_required_": false + }, + "offset": { "type": "integer", - "_name_": "graph_points", - "title": "graph_points", - "_required_": true, - "description": "`graph_age` specifies the maximum age of stored graphs in months. `graph_points` is the number of points for\neach hourly, daily, weekly, etc. graph. Changing these requires destroying the current reporting database,\nso when these fields are changed, an additional `confirm_rrd_destroy: true` flag must be present." + "_name_": "offset", + "title": "offset", + "default": 0, + "_required_": false + }, + "limit": { + "type": "integer", + "_name_": "limit", + "title": "limit", + "default": 0, + "_required_": false }, - "confirm_rrd_destroy": { + "force_sql_filters": { "type": "boolean", - "_name_": "confirm_rrd_destroy", - "title": "confirm_rrd_destroy", + "_name_": "force_sql_filters", + "title": "force_sql_filters", + "default": true, "_required_": false } }, "additionalProperties": false, - "_name_": "reporting_update", - "title": "reporting_update", + "_name_": "query-options-get_instance", + "title": "query-options-get_instance", "default": {}, "_required_": false, "_attrs_order_": [ - "graphite", - "graphite_separateinstances", - "graph_age", - "graph_points", - "confirm_rrd_destroy" + "relationships", + "extend", + "extend_context", + "prefix", + "extra", + "order_by", + "select", + "count", + "get", + "offset", + "limit", + "force_sql_filters" ] }
    +

    Returns instance matching id. If id is not found, Validation error is raised.

    +

    Please see query method documentation for options.

    +
    + + + + + + + + +
    - Return Arguments: + reporting.exporters.query +
    + Arguments:
    { + "_name_": "query-filters", + "title": "query-filters", + "default": [], + "_required_": false, + "type": "array", + "items": [ + { + "_name_": "query-filter", + "title": "query-filter", + "default": [], + "_required_": false, + "type": "array", + "items": [] + } + ] +}
    +
    +
    +
    { "type": "object", "properties": { - "graphite": { - "_name_": "graphite", - "title": "graphite", - "_required_": true, - "type": "string", - "description": "`graphite` specifies a destination hostname or IP for collectd data sent by the Graphite plugin.." + "relationships": { + "type": "boolean", + "_name_": "relationships", + "title": "relationships", + "default": true, + "_required_": false + }, + "extend": { + "_name_": "extend", + "title": "extend", + "default": null, + "_required_": false, + "type": [ + "string", + "null" + ] + }, + "extend_context": { + "_name_": "extend_context", + "title": "extend_context", + "default": null, + "_required_": false, + "type": [ + "string", + "null" + ] + }, + "prefix": { + "_name_": "prefix", + "title": "prefix", + "default": null, + "_required_": false, + "type": [ + "string", + "null" + ] }, - "graphite_separateinstances": { + "extra": { + "type": "object", + "properties": {}, + "additionalProperties": true, + "_name_": "extra", + "title": "extra", + "default": {}, + "_required_": false, + "_attrs_order_": [] + }, + "order_by": { + "_name_": "order_by", + "title": "order_by", + "default": [], + "_required_": false, + "type": "array", + "items": [] + }, + "select": { + "_name_": "select", + "title": "select", + "default": [], + "_required_": false, + "type": "array", + "items": [] + }, + "count": { "type": "boolean", - "_name_": "graphite_separateinstances", - "title": "graphite_separateinstances", - "_required_": true, - "description": "`graphite_separateinstances` corresponds to collectd SeparateInstances option." + "_name_": "count", + "title": "count", + "default": false, + "_required_": false + }, + "get": { + "type": "boolean", + "_name_": "get", + "title": "get", + "default": false, + "_required_": false }, - "graph_age": { + "offset": { "type": "integer", - "_name_": "graph_age", - "title": "graph_age", - "_required_": true, - "description": "`graph_age` specifies the maximum age of stored graphs in months. `graph_points` is the number of points for\neach hourly, daily, weekly, etc. graph. Changing these requires destroying the current reporting database,\nso when these fields are changed, an additional `confirm_rrd_destroy: true` flag must be present." + "_name_": "offset", + "title": "offset", + "default": 0, + "_required_": false }, - "graph_points": { + "limit": { "type": "integer", - "_name_": "graph_points", - "title": "graph_points", - "_required_": true, - "description": "`graph_age` specifies the maximum age of stored graphs in months. `graph_points` is the number of points for\neach hourly, daily, weekly, etc. graph. Changing these requires destroying the current reporting database,\nso when these fields are changed, an additional `confirm_rrd_destroy: true` flag must be present." + "_name_": "limit", + "title": "limit", + "default": 0, + "_required_": false }, + "force_sql_filters": { + "type": "boolean", + "_name_": "force_sql_filters", + "title": "force_sql_filters", + "default": false, + "_required_": false + } + }, + "additionalProperties": false, + "_name_": "query-options", + "title": "query-options", + "default": {}, + "_required_": false, + "_attrs_order_": [ + "relationships", + "extend", + "extend_context", + "prefix", + "extra", + "order_by", + "select", + "count", + "get", + "offset", + "limit", + "force_sql_filters" + ] +}
    +
    +
    +
    +
    + Return Arguments: +
    +
    +
    { + "anyOf": [ + { + "_name_": "query_result", + "title": "query_result", + "default": [], + "_required_": false, + "type": "array", + "items": [ + { + "type": "object", + "properties": { + "id": { + "type": "integer", + "_name_": "id", + "title": "id", + "_required_": true + }, + "enabled": { + "type": "boolean", + "_name_": "enabled", + "title": "enabled", + "_required_": true + }, + "type": { + "_name_": "type", + "title": "type", + "_required_": true, + "type": "string", + "enum": [ + "GRAPHITE" + ] + }, + "attributes": { + "type": "object", + "properties": {}, + "additionalProperties": true, + "_name_": "attributes", + "title": "attributes", + "description": "Specific attributes of each `exporter`", + "default": {}, + "_required_": false, + "_attrs_order_": [] + }, + "name": { + "_name_": "name", + "title": "name", + "description": "User defined name of exporter configuration", + "_required_": true, + "type": "string" + } + }, + "additionalProperties": false, + "_name_": "reporting_exporter_entry", + "title": "reporting_exporter_entry", + "default": {}, + "_required_": false, + "_attrs_order_": [ + "id", + "enabled", + "type", + "attributes", + "name" + ] + } + ] + }, + { + "type": "object", + "properties": { + "id": { + "type": "integer", + "_name_": "id", + "title": "id", + "_required_": true + }, + "enabled": { + "type": "boolean", + "_name_": "enabled", + "title": "enabled", + "_required_": true + }, + "type": { + "_name_": "type", + "title": "type", + "_required_": true, + "type": "string", + "enum": [ + "GRAPHITE" + ] + }, + "attributes": { + "type": "object", + "properties": {}, + "additionalProperties": true, + "_name_": "attributes", + "title": "attributes", + "description": "Specific attributes of each `exporter`", + "default": {}, + "_required_": false, + "_attrs_order_": [] + }, + "name": { + "_name_": "name", + "title": "name", + "description": "User defined name of exporter configuration", + "_required_": true, + "type": "string" + } + }, + "additionalProperties": false, + "_name_": "reporting_exporter_entry", + "title": "reporting_exporter_entry", + "default": {}, + "_required_": false, + "_attrs_order_": [ + "id", + "enabled", + "type", + "attributes", + "name" + ] + }, + { + "type": "integer", + "_name_": "count", + "title": "count", + "_required_": false + }, + { + "type": "object", + "properties": { + "id": { + "type": "integer", + "_name_": "id", + "title": "id", + "_required_": true + }, + "enabled": { + "type": "boolean", + "_name_": "enabled", + "title": "enabled", + "_required_": true + }, + "type": { + "_name_": "type", + "title": "type", + "_required_": true, + "type": "string", + "enum": [ + "GRAPHITE" + ] + }, + "attributes": { + "type": "object", + "properties": {}, + "additionalProperties": true, + "_name_": "attributes", + "title": "attributes", + "description": "Specific attributes of each `exporter`", + "default": {}, + "_required_": false, + "_attrs_order_": [] + }, + "name": { + "_name_": "name", + "title": "name", + "description": "User defined name of exporter configuration", + "_required_": true, + "type": "string" + } + }, + "additionalProperties": false, + "_name_": "reporting_exporter_entry", + "title": "reporting_exporter_entry", + "default": {}, + "_required_": false, + "_attrs_order_": [ + "id", + "enabled", + "type", + "attributes", + "name" + ] + } + ], + "nullable": false, + "_name_": "query_result", + "description": null, + "_required_": false +}
    +
    +
    +
    +
    + - +
    + + + + + -
    + reporting.exporters.update +
    + Arguments: +
    +
    +
    { + "type": "integer", + "_name_": "id", + "title": "id", + "_required_": false +}
    +
    +
    +
    { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "_name_": "enabled", + "title": "enabled", + "_required_": true + }, + "attributes": { + "type": "object", + "properties": {}, + "additionalProperties": true, + "_name_": "attributes", + "title": "attributes", + "description": "Specific attributes of each `exporter`", + "default": {}, + "_required_": false, + "_attrs_order_": [] + }, + "name": { + "_name_": "name", + "title": "name", + "description": "User defined name of exporter configuration", + "_required_": true, + "type": "string" + } + }, + "additionalProperties": false, + "_name_": "reporting_exporter_update", + "title": "reporting_exporter_update", + "default": {}, + "_required_": false, + "_attrs_order_": [ + "enabled", + "attributes", + "name" + ] +}
    +
    +
    +
    +
    + Return Arguments: +
    +
    +
    { + "type": "object", + "properties": { "id": { "type": "integer", "_name_": "id", "title": "id", "_required_": true + }, + "enabled": { + "type": "boolean", + "_name_": "enabled", + "title": "enabled", + "_required_": true + }, + "type": { + "_name_": "type", + "title": "type", + "_required_": true, + "type": "string", + "enum": [ + "GRAPHITE" + ] + }, + "attributes": { + "type": "object", + "properties": {}, + "additionalProperties": true, + "_name_": "attributes", + "title": "attributes", + "description": "Specific attributes of each `exporter`", + "default": {}, + "_required_": false, + "_attrs_order_": [] + }, + "name": { + "_name_": "name", + "title": "name", + "description": "User defined name of exporter configuration", + "_required_": true, + "type": "string" } }, "additionalProperties": false, - "_name_": "reporting_update_returns", - "title": "reporting_update_returns", + "_name_": "reporting_exporters_update_returns", + "title": "reporting_exporters_update_returns", "default": {}, "_required_": false, "_attrs_order_": [ - "graphite", - "graphite_separateinstances", - "graph_age", - "graph_points", - "id" + "id", + "enabled", + "type", + "attributes", + "name" ] }
    @@ -117725,36 +118547,8 @@

    reporting

    -

    Configure Reporting Database settings.

    -

    graphite specifies a destination hostname or IP for collectd data sent by the Graphite plugin..

    -

    graphite_separateinstances corresponds to collectd SeparateInstances option.

    -

    graph_age specifies the maximum age of stored graphs in months. graph_points is the number of points for -each hourly, daily, weekly, etc. graph. Changing these requires destroying the current reporting database, -so when these fields are changed, an additional confirm_rrd_destroy: true flag must be present.

    +

    Update Reporting Exporter of id.

    Update reporting settings

    -
    {
    -    "id": "6841f242-840a-11e6-a437-00e04d680384",
    -    "msg": "method",
    -    "method": "reporting.update",
    -    "params": [{
    -        "graphite": "",
    -    }]
    -}
    -
    - -

    Recreate reporting database with new settings

    -
    {
    -    "id": "6841f242-840a-11e6-a437-00e04d680384",
    -    "msg": "method",
    -    "method": "reporting.update",
    -    "params": [{
    -        "graph_age": 12,
    -        "graph_points": 1200,
    -        "confirm_rrd_destroy": true,
    -    }]
    -}
    -

    route

    @@ -145681,6 +146475,62 @@

    vm.device

    + + + + + + + + + +
    + vm.device.get_pci_ids_for_gpu_isolation +
    + Arguments: +
    +
    +
    { + "_name_": "gpu_pci_id", + "title": "gpu_pci_id", + "_required_": false, + "type": "string", + "description": "Get PCI IDs of devices which are required to be isolated for `gpu_pci_id` GPU isolation." +}
    +
    +
    +
    +
    + Return Arguments: +
    +
    +
    { + "_name_": "get_pci_ids_for_gpu_isolation", + "title": "get_pci_ids_for_gpu_isolation", + "default": [], + "_required_": false, + "type": "array", + "items": [ + { + "_name_": "pci_ids", + "title": "pci_ids", + "_required_": false, + "type": "string" + } + ] +}
    +
    +
    +
    +
    +

    Get PCI IDs of devices which are required to be isolated for gpu_pci_id GPU isolation.

    +

    Basically when a GPU passthrough is desired for a VM, we need to isolate all the devices which are in the same +IOMMU group as the GPU. This is required because if we don't do this, the VM will not be able to start because +the devices in the same IOMMU group as the GPU will be in use by the host and will not be available for the VM +to use.

    +

    This endpoints retrieves all the PCI devices which are in the same IOMMU group as the GPU and returns their PCI +IDs so UI can use those and create PCI devices for them and isolate them.

    +
    @@ -158753,6 +159603,70 @@

    Return Arguments

    ] +

    reporting.exporters.query

    +

    Sent on reporting.exporters changes.

    +

    This event can be subscribed to with the wildcard * as the event name.

    +

    Return Arguments

    +
            [
    +     {
    +      "type": "object",
    +      "properties": {
    +       "id": {
    +        "type": "integer",
    +        "_name_": "id",
    +        "title": "id",
    +        "_required_": true
    +       },
    +       "enabled": {
    +        "type": "boolean",
    +        "_name_": "enabled",
    +        "title": "enabled",
    +        "_required_": true
    +       },
    +       "type": {
    +        "_name_": "type",
    +        "title": "type",
    +        "_required_": true,
    +        "type": "string",
    +        "enum": [
    +         "GRAPHITE"
    +        ]
    +       },
    +       "attributes": {
    +        "type": "object",
    +        "properties": {},
    +        "additionalProperties": true,
    +        "_name_": "attributes",
    +        "title": "attributes",
    +        "description": "Specific attributes of each `exporter`",
    +        "default": {},
    +        "_required_": false,
    +        "_attrs_order_": []
    +       },
    +       "name": {
    +        "_name_": "name",
    +        "title": "name",
    +        "description": "User defined name of exporter configuration",
    +        "_required_": true,
    +        "type": "string"
    +       }
    +      },
    +      "additionalProperties": false,
    +      "_name_": "reporting_exporter_entry",
    +      "title": "reporting_exporter_entry",
    +      "default": {},
    +      "_required_": false,
    +      "_attrs_order_": [
    +       "id",
    +       "enabled",
    +       "type",
    +       "attributes",
    +       "name"
    +      ]
    +     }
    +    ]
    +
    +

    rsynctask.query

    Sent on rsynctask changes.

    This event can be subscribed to with the wildcard * as the event name.

    @@ -160319,15 +161233,201 @@

    Return Arguments

    } ], "nullable": true, - "_name_": "auth.sessions", - "title": "auth.sessions", + "_name_": "auth.sessions", + "title": "auth.sessions", + "_required_": false + } + ] + + +

    system.ready

    +

    Finished boot process

    +

    This event can be subscribed to with the wildcard * as the event name.

    +

    Return Arguments

    +
            [
    +     {
    +      "anyOf": [
    +       {
    +        "type": "string"
    +       },
    +       {
    +        "type": "integer"
    +       },
    +       {
    +        "type": "boolean"
    +       },
    +       {
    +        "type": "object"
    +       },
    +       {
    +        "type": "array"
    +       }
    +      ],
    +      "nullable": true,
    +      "_name_": "system.ready",
    +      "title": "system.ready",
    +      "_required_": false
    +     }
    +    ]
    +
    + +

    system.reboot

    +

    Started reboot process

    +

    This event can be subscribed to with the wildcard * as the event name.

    +

    Return Arguments

    +
            [
    +     {
    +      "anyOf": [
    +       {
    +        "type": "string"
    +       },
    +       {
    +        "type": "integer"
    +       },
    +       {
    +        "type": "boolean"
    +       },
    +       {
    +        "type": "object"
    +       },
    +       {
    +        "type": "array"
    +       }
    +      ],
    +      "nullable": true,
    +      "_name_": "system.reboot",
    +      "title": "system.reboot",
    +      "_required_": false
    +     }
    +    ]
    +
    + +

    system.shutdown

    +

    Started shutdown process

    +

    This event can be subscribed to with the wildcard * as the event name.

    +

    Return Arguments

    +
            [
    +     {
    +      "anyOf": [
    +       {
    +        "type": "string"
    +       },
    +       {
    +        "type": "integer"
    +       },
    +       {
    +        "type": "boolean"
    +       },
    +       {
    +        "type": "object"
    +       },
    +       {
    +        "type": "array"
    +       }
    +      ],
    +      "nullable": true,
    +      "_name_": "system.shutdown",
    +      "title": "system.shutdown",
    +      "_required_": false
    +     }
    +    ]
    +
    + +

    alert.list

    +

    Sent on alert changes.

    +

    This event can be subscribed to with the wildcard * as the event name.

    +

    Return Arguments

    +
            [
    +     {
    +      "anyOf": [
    +       {
    +        "type": "string"
    +       },
    +       {
    +        "type": "integer"
    +       },
    +       {
    +        "type": "boolean"
    +       },
    +       {
    +        "type": "object"
    +       },
    +       {
    +        "type": "array"
    +       }
    +      ],
    +      "nullable": true,
    +      "_name_": "alert.list",
    +      "title": "alert.list",
    +      "_required_": false
    +     }
    +    ]
    +
    + +

    network.config

    +

    Sent on network configuration changes.

    +

    This event can be subscribed to with the wildcard * as the event name.

    +

    Return Arguments

    +
            [
    +     {
    +      "anyOf": [
    +       {
    +        "type": "string"
    +       },
    +       {
    +        "type": "integer"
    +       },
    +       {
    +        "type": "boolean"
    +       },
    +       {
    +        "type": "object"
    +       },
    +       {
    +        "type": "array"
    +       }
    +      ],
    +      "nullable": true,
    +      "_name_": "network.config",
    +      "title": "network.config",
    +      "_required_": false
    +     }
    +    ]
    +
    + +

    directoryservices.status

    +

    Sent on directory service state changes.

    +

    This event can be subscribed to with the wildcard * as the event name.

    +

    Return Arguments

    +
            [
    +     {
    +      "anyOf": [
    +       {
    +        "type": "string"
    +       },
    +       {
    +        "type": "integer"
    +       },
    +       {
    +        "type": "boolean"
    +       },
    +       {
    +        "type": "object"
    +       },
    +       {
    +        "type": "array"
    +       }
    +      ],
    +      "nullable": true,
    +      "_name_": "directoryservices.status",
    +      "title": "directoryservices.status",
           "_required_": false
          }
         ]
     
    -

    system.ready

    -

    Finished boot process

    +

    failover.setup

    +

    Sent when failover is being setup.

    This event can be subscribed to with the wildcard * as the event name.

    Return Arguments

            [
    @@ -160350,15 +161450,15 @@ 

    Return Arguments

    } ], "nullable": true, - "_name_": "system.ready", - "title": "system.ready", + "_name_": "failover.setup", + "title": "failover.setup", "_required_": false } ]
    -

    system.reboot

    -

    Started reboot process

    +

    failover.status

    +

    Sent when failover status changes.

    This event can be subscribed to with the wildcard * as the event name.

    Return Arguments

            [
    @@ -160381,46 +161481,18 @@ 

    Return Arguments

    } ], "nullable": true, - "_name_": "system.reboot", - "title": "system.reboot", + "_name_": "failover.status", + "title": "failover.status", "_required_": false } ]
    -

    system.shutdown

    -

    Started shutdown process

    -

    This event can be subscribed to with the wildcard * as the event name.

    -

    Return Arguments

    -
            [
    -     {
    -      "anyOf": [
    -       {
    -        "type": "string"
    -       },
    -       {
    -        "type": "integer"
    -       },
    -       {
    -        "type": "boolean"
    -       },
    -       {
    -        "type": "object"
    -       },
    -       {
    -        "type": "array"
    -       }
    -      ],
    -      "nullable": true,
    -      "_name_": "system.shutdown",
    -      "title": "system.shutdown",
    -      "_required_": false
    -     }
    -    ]
    -
    +

    failover.upgrade_pending

    +

    Sent when system is ready and HA upgrade is pending.

    +

    It is expected the client will react by issuing upgrade_finish call +at user will.

    -

    alert.list

    -

    Sent on alert changes.

    This event can be subscribed to with the wildcard * as the event name.

    Return Arguments

            [
    @@ -160443,15 +161515,15 @@ 

    Return Arguments

    } ], "nullable": true, - "_name_": "alert.list", - "title": "alert.list", + "_name_": "failover.upgrade_pending", + "title": "failover.upgrade_pending", "_required_": false } ]
    -

    network.config

    -

    Sent on network configuration changes.

    +

    zfs.pool.scan

    +

    Progress of pool resilver/scrub.

    This event can be subscribed to with the wildcard * as the event name.

    Return Arguments

            [
    @@ -160474,15 +161546,15 @@ 

    Return Arguments

    } ], "nullable": true, - "_name_": "network.config", - "title": "network.config", + "_name_": "zfs.pool.scan", + "title": "zfs.pool.scan", "_required_": false } ]
    -

    directoryservices.status

    -

    Sent on directory service state changes.

    +

    failover.vrrp_event

    +

    Sent when a VRRP state changes.

    This event can be subscribed to with the wildcard * as the event name.

    Return Arguments

            [
    @@ -160505,15 +161577,15 @@ 

    Return Arguments

    } ], "nullable": true, - "_name_": "directoryservices.status", - "title": "directoryservices.status", + "_name_": "failover.vrrp_event", + "title": "failover.vrrp_event", "_required_": false } ]
    -

    failover.setup

    -

    Sent when failover is being setup.

    +

    failover.disabled.reasons

    +

    Sent when failover status reasons change.

    This event can be subscribed to with the wildcard * as the event name.

    Return Arguments

            [
    @@ -160536,15 +161608,15 @@ 

    Return Arguments

    } ], "nullable": true, - "_name_": "failover.setup", - "title": "failover.setup", + "_name_": "failover.disabled.reasons", + "title": "failover.disabled.reasons", "_required_": false } ]
    -

    failover.status

    -

    Sent when failover status changes.

    +

    disk.query

    +

    Sent on disk changes.

    This event can be subscribed to with the wildcard * as the event name.

    Return Arguments

            [
    @@ -160567,18 +161639,15 @@ 

    Return Arguments

    } ], "nullable": true, - "_name_": "failover.status", - "title": "failover.status", + "_name_": "disk.query", + "title": "disk.query", "_required_": false } ]
    -

    failover.upgrade_pending

    -

    Sent when system is ready and HA upgrade is pending.

    -

    It is expected the client will react by issuing upgrade_finish call -at user will.

    - +

    kubernetes.state

    +

    Kubernetes state events

    This event can be subscribed to with the wildcard * as the event name.

    Return Arguments

            [
    @@ -160601,15 +161670,15 @@ 

    Return Arguments

    } ], "nullable": true, - "_name_": "failover.upgrade_pending", - "title": "failover.upgrade_pending", + "_name_": "kubernetes.state", + "title": "kubernetes.state", "_required_": false } ]
    -

    chart.release.events

    -

    Application deployment events

    +

    kubernetes.events

    +

    Kubernetes cluster events

    This event can be subscribed to with the wildcard * as the event name.

    Return Arguments

            [
    @@ -160632,8 +161701,8 @@ 

    Return Arguments

    } ], "nullable": true, - "_name_": "chart.release.events", - "title": "chart.release.events", + "_name_": "kubernetes.events", + "title": "kubernetes.events", "_required_": false } ] @@ -160670,70 +161739,8 @@

    Return Arguments

    ]
    -

    failover.vrrp_event

    -

    Sent when a VRRP state changes.

    -

    This event can be subscribed to with the wildcard * as the event name.

    -

    Return Arguments

    -
            [
    -     {
    -      "anyOf": [
    -       {
    -        "type": "string"
    -       },
    -       {
    -        "type": "integer"
    -       },
    -       {
    -        "type": "boolean"
    -       },
    -       {
    -        "type": "object"
    -       },
    -       {
    -        "type": "array"
    -       }
    -      ],
    -      "nullable": true,
    -      "_name_": "failover.vrrp_event",
    -      "title": "failover.vrrp_event",
    -      "_required_": false
    -     }
    -    ]
    -
    - -

    failover.disabled.reasons

    -

    Sent when failover status reasons change.

    -

    This event can be subscribed to with the wildcard * as the event name.

    -

    Return Arguments

    -
            [
    -     {
    -      "anyOf": [
    -       {
    -        "type": "string"
    -       },
    -       {
    -        "type": "integer"
    -       },
    -       {
    -        "type": "boolean"
    -       },
    -       {
    -        "type": "object"
    -       },
    -       {
    -        "type": "array"
    -       }
    -      ],
    -      "nullable": true,
    -      "_name_": "failover.disabled.reasons",
    -      "title": "failover.disabled.reasons",
    -      "_required_": false
    -     }
    -    ]
    -
    - -

    disk.query

    -

    Sent on disk changes.

    +

    user.web_ui_login_disabled

    +

    Sent when root user login to the Web UI is disabled.

    This event can be subscribed to with the wildcard * as the event name.

    Return Arguments

            [
    @@ -160756,15 +161763,15 @@ 

    Return Arguments

    } ], "nullable": true, - "_name_": "disk.query", - "title": "disk.query", + "_name_": "user.web_ui_login_disabled", + "title": "user.web_ui_login_disabled", "_required_": false } ]
    -

    kubernetes.state

    -

    Kubernetes state events

    +

    truecommand.config

    +

    Sent on TrueCommand configuration changes.

    This event can be subscribed to with the wildcard * as the event name.

    Return Arguments

            [
    @@ -160787,15 +161794,15 @@ 

    Return Arguments

    } ], "nullable": true, - "_name_": "kubernetes.state", - "title": "kubernetes.state", + "_name_": "truecommand.config", + "title": "truecommand.config", "_required_": false } ]
    -

    kubernetes.events

    -

    Kubernetes cluster events

    +

    chart.release.events

    +

    Application deployment events

    This event can be subscribed to with the wildcard * as the event name.

    Return Arguments

            [
    @@ -160818,48 +161825,21 @@ 

    Return Arguments

    } ], "nullable": true, - "_name_": "kubernetes.events", - "title": "kubernetes.events", + "_name_": "chart.release.events", + "title": "chart.release.events", "_required_": false } ]
    -

    truecommand.config

    -

    Sent on TrueCommand configuration changes.

    -

    This event can be subscribed to with the wildcard * as the event name.

    -

    Return Arguments

    -
            [
    -     {
    -      "anyOf": [
    -       {
    -        "type": "string"
    -       },
    -       {
    -        "type": "integer"
    -       },
    -       {
    -        "type": "boolean"
    -       },
    -       {
    -        "type": "object"
    -       },
    -       {
    -        "type": "array"
    -       }
    -      ],
    -      "nullable": true,
    -      "_name_": "truecommand.config",
    -      "title": "truecommand.config",
    -      "_required_": false
    -     }
    -    ]
    -
    +

    filesystem.file_tail_follow

    +

    Retrieve last no_of_lines specified as an integer argument for a specific path and then

    +

    any new lines as they are added. Specified argument has the format path:no_of_lines ( /var/log/messages:3 ).

    +

    no_of_lines is optional and if it is not specified it defaults to 3.

    +

    However path is required for this.

    -

    user.web_ui_login_disabled

    -

    Sent when root user login to the Web UI is disabled.

    -

    This event can be subscribed to with the wildcard * as the event name.

    -

    Return Arguments

    +

    This event cannot be subscribed to with the wildcard * as the event name.

    +

    Accept Arguments

            [
          {
           "anyOf": [
    @@ -160880,16 +161860,12 @@ 

    Return Arguments

    } ], "nullable": true, - "_name_": "user.web_ui_login_disabled", - "title": "user.web_ui_login_disabled", + "_name_": "filefollowtaileventsource", "_required_": false } ]
    -

    zfs.pool.scan

    -

    Progress of pool resilver/scrub.

    -

    This event can be subscribed to with the wildcard * as the event name.

    Return Arguments

            [
          {
    @@ -160911,19 +161887,16 @@ 

    Return Arguments

    } ], "nullable": true, - "_name_": "zfs.pool.scan", - "title": "zfs.pool.scan", + "_name_": "filefollowtaileventsource_returns", "_required_": false } ]
    -

    filesystem.file_tail_follow

    -

    Retrieve last no_of_lines specified as an integer argument for a specific path and then

    -

    any new lines as they are added. Specified argument has the format path:no_of_lines ( /var/log/messages:3 ).

    -

    no_of_lines is optional and if it is not specified it defaults to 3.

    -

    However path is required for this.

    - +

    system.health

    +

    Notifies of current system health which include statistics about consumption of memory and CPU, pools and

    +

    if updates are available. An integer delay argument can be specified to determine the delay +on when the periodic event should be generated.

    This event cannot be subscribed to with the wildcard * as the event name.

    Accept Arguments

            [
    @@ -160946,7 +161919,7 @@ 

    Accept Arguments

    } ], "nullable": true, - "_name_": "filefollowtaileventsource", + "_name_": "systemhealtheventsource", "_required_": false } ] @@ -160973,16 +161946,116 @@

    Return Arguments

    } ], "nullable": true, - "_name_": "filefollowtaileventsource_returns", + "_name_": "systemhealtheventsource_returns", "_required_": false } ]
    -

    reporting.processes

    -

    Retrieve currently running processes stats.

    -

    Usage: reporting.processes:{"interval": 10, "cpu_percent": 0.1, "memory_percent": 0.1}

    +

    kubernetes.pod_log_follow

    +

    Retrieve logs of a container in a pod in a chart release.

    +

    Name of chart release, name of pod and name of container is required. +Optionally tail_lines and limit_bytes can be specified.

    +

    tail_lines is an option to select how many lines of logs to retrieve for the said container. It +defaults to 500. If set to null, it will retrieve complete logs of the container.

    +

    limit_bytes is an option to select how many bytes to retrieve from the tail lines selected. If set +to null ( which is the default ), it will not limit the bytes returned. To clarify, tail_lines +is applied first and the required number of lines are retrieved and then limit_bytes is applied.

    +

    This event cannot be subscribed to with the wildcard * as the event name.

    +

    Accept Arguments

    +
            [
    +     {
    +      "type": "object",
    +      "properties": {
    +       "tail_lines": {
    +        "type": "integer",
    +        "_name_": "tail_lines",
    +        "title": "tail_lines",
    +        "default": 500,
    +        "_required_": false,
    +        "description": "Optionally `tail_lines` and `limit_bytes` can be specified.\n`tail_lines` is an option to select how many lines of logs to retrieve for the said container. It\ndefaults to 500. If set to `null`, it will retrieve complete logs of the container."
    +       },
    +       "limit_bytes": {
    +        "type": [
    +         "integer",
    +         "null"
    +        ],
    +        "_name_": "limit_bytes",
    +        "title": "limit_bytes",
    +        "default": null,
    +        "_required_": false,
    +        "description": "Optionally `tail_lines` and `limit_bytes` can be specified."
    +       },
    +       "release_name": {
    +        "_name_": "release_name",
    +        "title": "release_name",
    +        "_required_": true,
    +        "type": "string"
    +       },
    +       "pod_name": {
    +        "_name_": "pod_name",
    +        "title": "pod_name",
    +        "_required_": true,
    +        "type": "string"
    +       },
    +       "container_name": {
    +        "_name_": "container_name",
    +        "title": "container_name",
    +        "_required_": true,
    +        "type": "string"
    +       }
    +      },
    +      "additionalProperties": false,
    +      "_name_": "kubernetespodlogsfollowtaileventsource",
    +      "default": {},
    +      "_required_": false,
    +      "_attrs_order_": [
    +       "tail_lines",
    +       "limit_bytes",
    +       "release_name",
    +       "pod_name",
    +       "container_name"
    +      ]
    +     }
    +    ]
    +
    + +

    Return Arguments

    +
            [
    +     {
    +      "type": "object",
    +      "properties": {
    +       "data": {
    +        "_name_": "data",
    +        "title": "data",
    +        "_required_": true,
    +        "type": "string"
    +       },
    +       "timestamp": {
    +        "_name_": "timestamp",
    +        "title": "timestamp",
    +        "_required_": true,
    +        "type": [
    +         "string",
    +         "null"
    +        ]
    +       }
    +      },
    +      "additionalProperties": false,
    +      "_name_": "kubernetespodlogsfollowtaileventsource_returns",
    +      "default": {},
    +      "_required_": false,
    +      "_attrs_order_": [
    +       "data",
    +       "timestamp"
    +      ]
    +     }
    +    ]
    +
    + +

    smart.test.progress

    +

    Reports current S.M.A.R.T. test progress for the specified disk.

    This event cannot be subscribed to with the wildcard * as the event name.

    Accept Arguments

            [
    @@ -161005,7 +162078,7 @@ 

    Accept Arguments

    } ], "nullable": true, - "_name_": "processeseventsource", + "_name_": "smarttesteventsource", "_required_": false } ] @@ -161032,7 +162105,7 @@

    Return Arguments

    } ], "nullable": true, - "_name_": "processeseventsource_returns", + "_name_": "smarttesteventsource_returns", "_required_": false } ] @@ -161057,7 +162130,9 @@

    Accept Arguments

    }, "additionalProperties": false, "_name_": "realtimeeventsource", - "default": {}, + "default": { + "interval": 2 + }, "_required_": false, "_attrs_order_": [ "interval" @@ -161317,169 +162392,10 @@

    Return Arguments

    ]
    -

    system.health

    -

    Notifies of current system health which include statistics about consumption of memory and CPU, pools and

    -

    if updates are available. An integer delay argument can be specified to determine the delay -on when the periodic event should be generated.

    -

    This event cannot be subscribed to with the wildcard * as the event name.

    -

    Accept Arguments

    -
            [
    -     {
    -      "anyOf": [
    -       {
    -        "type": "string"
    -       },
    -       {
    -        "type": "integer"
    -       },
    -       {
    -        "type": "boolean"
    -       },
    -       {
    -        "type": "object"
    -       },
    -       {
    -        "type": "array"
    -       }
    -      ],
    -      "nullable": true,
    -      "_name_": "systemhealtheventsource",
    -      "_required_": false
    -     }
    -    ]
    -
    - -

    Return Arguments

    -
            [
    -     {
    -      "anyOf": [
    -       {
    -        "type": "string"
    -       },
    -       {
    -        "type": "integer"
    -       },
    -       {
    -        "type": "boolean"
    -       },
    -       {
    -        "type": "object"
    -       },
    -       {
    -        "type": "array"
    -       }
    -      ],
    -      "nullable": true,
    -      "_name_": "systemhealtheventsource_returns",
    -      "_required_": false
    -     }
    -    ]
    -
    - -

    kubernetes.pod_log_follow

    -

    Retrieve logs of a container in a pod in a chart release.

    -

    Name of chart release, name of pod and name of container is required. -Optionally tail_lines and limit_bytes can be specified.

    -

    tail_lines is an option to select how many lines of logs to retrieve for the said container. It -defaults to 500. If set to null, it will retrieve complete logs of the container.

    -

    limit_bytes is an option to select how many bytes to retrieve from the tail lines selected. If set -to null ( which is the default ), it will not limit the bytes returned. To clarify, tail_lines -is applied first and the required number of lines are retrieved and then limit_bytes is applied.

    - -

    This event cannot be subscribed to with the wildcard * as the event name.

    -

    Accept Arguments

    -
            [
    -     {
    -      "type": "object",
    -      "properties": {
    -       "tail_lines": {
    -        "type": "integer",
    -        "_name_": "tail_lines",
    -        "title": "tail_lines",
    -        "default": 500,
    -        "_required_": false,
    -        "description": "Optionally `tail_lines` and `limit_bytes` can be specified.\n`tail_lines` is an option to select how many lines of logs to retrieve for the said container. It\ndefaults to 500. If set to `null`, it will retrieve complete logs of the container."
    -       },
    -       "limit_bytes": {
    -        "type": [
    -         "integer",
    -         "null"
    -        ],
    -        "_name_": "limit_bytes",
    -        "title": "limit_bytes",
    -        "default": null,
    -        "_required_": false,
    -        "description": "Optionally `tail_lines` and `limit_bytes` can be specified."
    -       },
    -       "release_name": {
    -        "_name_": "release_name",
    -        "title": "release_name",
    -        "_required_": true,
    -        "type": "string"
    -       },
    -       "pod_name": {
    -        "_name_": "pod_name",
    -        "title": "pod_name",
    -        "_required_": true,
    -        "type": "string"
    -       },
    -       "container_name": {
    -        "_name_": "container_name",
    -        "title": "container_name",
    -        "_required_": true,
    -        "type": "string"
    -       }
    -      },
    -      "additionalProperties": false,
    -      "_name_": "kubernetespodlogsfollowtaileventsource",
    -      "default": {},
    -      "_required_": false,
    -      "_attrs_order_": [
    -       "tail_lines",
    -       "limit_bytes",
    -       "release_name",
    -       "pod_name",
    -       "container_name"
    -      ]
    -     }
    -    ]
    -
    - -

    Return Arguments

    -
            [
    -     {
    -      "type": "object",
    -      "properties": {
    -       "data": {
    -        "_name_": "data",
    -        "title": "data",
    -        "_required_": true,
    -        "type": "string"
    -       },
    -       "timestamp": {
    -        "_name_": "timestamp",
    -        "title": "timestamp",
    -        "_required_": true,
    -        "type": [
    -         "string",
    -         "null"
    -        ]
    -       }
    -      },
    -      "additionalProperties": false,
    -      "_name_": "kubernetespodlogsfollowtaileventsource_returns",
    -      "default": {},
    -      "_required_": false,
    -      "_attrs_order_": [
    -       "data",
    -       "timestamp"
    -      ]
    -     }
    -    ]
    -
    +

    reporting.processes

    +

    Retrieve currently running processes stats.

    +

    Usage: reporting.processes:{"interval": 10, "cpu_percent": 0.1, "memory_percent": 0.1}

    -

    smart.test.progress

    -

    Reports current S.M.A.R.T. test progress for the specified disk.

    This event cannot be subscribed to with the wildcard * as the event name.

    Accept Arguments

            [
    @@ -161502,7 +162418,7 @@ 

    Accept Arguments

    } ], "nullable": true, - "_name_": "smarttesteventsource", + "_name_": "processeseventsource", "_required_": false } ] @@ -161529,7 +162445,7 @@

    Return Arguments

    } ], "nullable": true, - "_name_": "smarttesteventsource_returns", + "_name_": "processeseventsource_returns", "_required_": false } ] @@ -161777,131 +162693,197 @@

    Basic Usage

    Each condition in the filter list should compare a field with a value.

    eg. Filter Syntax: ["field", "operator", value]

    For example, to filter the data returned by disk.query, we provide a list of conditions:

    -

    Javascript: - :::javascript - [ - ["name","=","ada1"] - ]

    +

    Javascript:

    +
    [
    +  ["name","=","ada1"] 
    +]
    +
    +

    Supported Operators

    -

    | Operator | Description | -| :------------- | :----------: | -| '=' | x == y | -| '!=' | x != y | -| '>' | x > y | -| '>=' | x >= y | -| '<' | x < y | -| '<=' | x <= y | -| '~' | re.match(y, x) | -| 'in' | x in y | -| 'nin' | x not in y | -| 'rin' | x is not None and y in x | -| 'rnin' | x is not None and y not in x | -| '^' | x is not None and x.startswith(y) | -| '!^' | x is not None and not x.startswith(y) | -| '$' | x is not None and x.endswith(y) | -| '!$' | x is not None and not x.endswith(y) |

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    OperatorDescription
    '='x == y
    '!='x != y
    '>'x > y
    '>='x >= y
    '<'x < y
    '<='x <= y
    '~'re.match(y, x)
    'in'x in y
    'nin'x not in y
    'rin'x is not None and y in x
    'rnin'x is not None and y not in x
    '^'x is not None and x.startswith(y)
    '!^'x is not None and not x.startswith(y)
    '$'x is not None and x.endswith(y)
    '!$'x is not None and not x.endswith(y)

    Specifing the prefix 'C' will perform a case-insensitive version of the filter, e.g. C=.

    Multiple Filters

    We can use disk.query with the "type" and "rotationrate" filters to find hard drives with a rotation rate higher than 5400 RPM:

    -

    Javascript: - :::javascript - [ - ["type","=","HDD"], - ["rotationrate",">",5400] // Note that the value should be the correct type - ]

    +

    Javascript:

    +
    [
    +  ["type","=","HDD"],
    +  ["rotationrate",">",5400] // Note that the value should be the correct type
    +]
    +
    +

    Connectives

    Queries with no explicitly defined logical connectives assume conjunction AND. The disjunction OR is also supported by using the syntax illustrated below. We can use chart.release.query with OR to filter chart releases by name. Note that the operand for the disjunction contains an array of conditions.

    The following is a valid example. -Javascript: - :::javascript - ["OR", - [ - ["name","=", "firstchart"], - ["name","=", "secondchart"], - ] - ]

    +Javascript:

    +
    ["OR", 
    +  [
    +    ["name","=", "firstchart"],
    +    ["name","=", "secondchart"],
    +  ]
    +]
    +
    +

    The following is also a valid example that returns users that are unlocked and either have password-based authentication for SSH enabled or are SMB users. -Javascript: - :::javascript - [ - ["OR", - [ - ["ssh_password_enabled", "=", true], - ["smb", "=", true] - ] - ], - ["locked", "=", false] - ]

    +Javascript:

    +
    [
    +  ["OR",
    +    [
    +      ["ssh_password_enabled", "=", true],
    +      ["smb", "=", true]
    +    ]
    +  ],
    +  ["locked", "=", false]
    +]
    +
    +

    The following is an invalid example because the first array member is a conjunction of multiple conditions rather than a single condition. -Javascript: - :::javascript - ["OR", - [ - [["ssh_password_enabled", "=", true], ["twofactor_auth_configured", "=", false]], - ["enabled","=", true], - ] - ]

    +Javascript:

    +
    ["OR",
    +  [
    +    [["ssh_password_enabled", "=", true], ["twofactor_auth_configured", "=", false]],
    +    ["enabled","=", true],
    +  ]
    +]
    +
    +

    Some additional examples of connective use are as follows.

    These filters when used with user.query finds unlocked users with password authentication enabled and two-factor authentication disabled.

    -

    Javascript: - :::javascript - [ - ["ssh_password_enabled", "=", true], - ["twofactor_auth_configured", "=", false], - ["locked", "=", false] - ]

    +

    Javascript:

    +
    [
    +  ["ssh_password_enabled", "=", true],
    +  ["twofactor_auth_configured", "=", false],
    +  ["locked", "=", false]
    +]
    +
    +

    Sub-keys in complex JSON objects may be specified by using dot (".") to indicate the key. For example the following query-filters if passed to user.query endpoint will return entries with a primary group ID of 3000.

    -

    Javascript: - :::javascript - [ - ["group.bsdgrp_gid", "=", 3000], - ]

    +

    Javascript:

    +
    [
    +  ["group.bsdgrp_gid", "=", 3000],
    +]
    +
    +

    If a key contains a literal dot (".") in its name, then it must be escaped via a double backlash. -Javascript: - :::javascript - [ - ["foo\.bar", "=", 42], - ]

    +Javascript:

    +
    [
    +  ["foo\\.bar", "=", 42],
    +]
    +
    +

    Query Options

    Query Options are objects that can further customize the results returned by a Query Method.

    Properties of a Query Option include extend | extend_context | prefix | extra | order_by | select | count | get | limit | offset

    Count

    Use the count option to get the number of results returned.

    -

    Javascript: - :::javascript - { - "count": true - }

    +

    Javascript:

    +
    {
    +  "count": true
    +}
    +
    +

    Limit

    Use the limit option to limit the number of results returned.

    -

    Javascript: - :::javascript - { - "limit": 5 - }

    +

    Javascript:

    +
    {
    +  "limit": 5
    +}
    +
    +

    Offset

    Use the offset option to remove the first items from a returned list.

    -

    Javascript: - :::javascript - { - "offset": 1 // Omits the first item from the query result - }

    +

    Javascript:

    +
    {
    +  "offset": 1 // Omits the first item from the query result
    +}
    +
    +

    Select

    Use the select option to specify the exact fields to return. Fields must be provided in an array of strings. The dot character (".") may be used to explicitly select only subkeys of the query result.

    -

    Javascript: - :::javascript - { - "select": ["devname","size","rotationrate"] - }

    -

    Javascript: - :::javascript - { - "select": [ - "Authentication.status", - "Authentication.localAddress", - "Authentication.clientAccount" - ] - }

    +

    Javascript:

    +
    {
    +  "select": ["devname","size","rotationrate"]
    +}
    +
    + +

    Javascript:

    +
    {
    +  "select": [
    +    "Authentication.status",
    +    "Authentication.localAddress",
    +    "Authentication.clientAccount"
    +  ]
    +}
    +
    +

    Order By

    Use the order_by option to specify which field determines the sort order. Fields must be provided in an array of strings.

    @@ -161909,11 +162891,11 @@

    Order By

    - reverse sort direction.

    nulls_first: place any NULL values at head of results list.

    nulls_last: place any NULL values at tail of results list.

    -

    Javascript: - :::javascript - { - "order_by": ["size", "-devname", "nulls_first:-expiretime"] - }

    +

    Javascript:

    +
    {
    +  "order_by": ["size", "-devname", "nulls_first:-expiretime"]
    +}
    +
    diff --git a/static/custom.css b/static/custom.css index 515691b7bd..cf0be4e214 100644 --- a/static/custom.css +++ b/static/custom.css @@ -1112,3 +1112,12 @@ svg.gdoc-icon { line-height: 1rem; } /* End Children shortcode line adjust */ +/* Adjust mermaid chart display size */ +pre.gdoc-mermaid.mermaid.mermaid_sizing { + display: flex; + max-width: 75%; + margin: 0 auto; + justify-content: center; + align-items: center; + background-color: var(--body-background); +} \ No newline at end of file diff --git a/static/images/SCALE/22.12/SCALEInstallDriveScreen.png b/static/images/SCALE/22.12/SCALEInstallDriveScreen.png deleted file mode 100644 index e05c80529a..0000000000 Binary files a/static/images/SCALE/22.12/SCALEInstallDriveScreen.png and /dev/null differ diff --git a/static/images/SCALE/22.12/SCALEInstallMainScreen.png b/static/images/SCALE/22.12/SCALEInstallMainScreen.png deleted file mode 100644 index 53bf64c67e..0000000000 Binary files a/static/images/SCALE/22.12/SCALEInstallMainScreen.png and /dev/null differ diff --git a/static/images/SCALE/22.12/SCALEInstallPartitionScreen.png b/static/images/SCALE/22.12/SCALEInstallPartitionScreen.png deleted file mode 100644 index 1ddadb2df5..0000000000 Binary files a/static/images/SCALE/22.12/SCALEInstallPartitionScreen.png and /dev/null differ diff --git a/static/images/SCALE/22.12/SCALEInstallUpdateMethodSelection.png b/static/images/SCALE/22.12/SCALEInstallUpdateMethodSelection.png deleted file mode 100644 index 8da26085e4..0000000000 Binary files a/static/images/SCALE/22.12/SCALEInstallUpdateMethodSelection.png and /dev/null differ diff --git a/static/images/SCALE/22.12/SCALEInstallUpgradeFresh.png b/static/images/SCALE/22.12/SCALEInstallUpgradeFresh.png deleted file mode 100644 index cf6c03e138..0000000000 Binary files a/static/images/SCALE/22.12/SCALEInstallUpgradeFresh.png and /dev/null differ diff --git a/static/images/SCALE/22.12/SCALEInstallWarningScreen.png b/static/images/SCALE/22.12/SCALEInstallWarningScreen.png deleted file mode 100644 index 92c07eb58b..0000000000 Binary files a/static/images/SCALE/22.12/SCALEInstallWarningScreen.png and /dev/null differ diff --git a/static/images/SCALE/22.12/SCALEInstallerConsoleSetupAdminAccount.png b/static/images/SCALE/22.12/SCALEInstallerConsoleSetupAdminAccount.png deleted file mode 100644 index 1974b6bd61..0000000000 Binary files a/static/images/SCALE/22.12/SCALEInstallerConsoleSetupAdminAccount.png and /dev/null differ diff --git a/static/images/SCALE/22.12/SCALEInstallerConsoleSetupAdminPassword.png b/static/images/SCALE/22.12/SCALEInstallerConsoleSetupAdminPassword.png deleted file mode 100644 index 90eb2befad..0000000000 Binary files a/static/images/SCALE/22.12/SCALEInstallerConsoleSetupAdminPassword.png and /dev/null differ diff --git a/static/images/SCALE/23.10/AddReportingExporter.png b/static/images/SCALE/23.10/AddReportingExporter.png new file mode 100644 index 0000000000..b368d0c569 Binary files /dev/null and b/static/images/SCALE/23.10/AddReportingExporter.png differ diff --git a/static/images/SCALE/23.10/AddReportingExporterGraphite.png b/static/images/SCALE/23.10/AddReportingExporterGraphite.png new file mode 100644 index 0000000000..2331c8ce3e Binary files /dev/null and b/static/images/SCALE/23.10/AddReportingExporterGraphite.png differ diff --git a/static/images/SCALE/23.10/CPUReportingUsageTemp.png b/static/images/SCALE/23.10/CPUReportingUsageTemp.png index 4b5c801e5d..0ed7af0b1f 100644 Binary files a/static/images/SCALE/23.10/CPUReportingUsageTemp.png and b/static/images/SCALE/23.10/CPUReportingUsageTemp.png differ diff --git a/static/images/SCALE/23.10/DiskReportingIO.png b/static/images/SCALE/23.10/DiskReportingIO.png index 120086da72..363b2c2063 100644 Binary files a/static/images/SCALE/23.10/DiskReportingIO.png and b/static/images/SCALE/23.10/DiskReportingIO.png differ diff --git a/static/images/SCALE/23.10/MemoryReportingPhysSwap.png b/static/images/SCALE/23.10/MemoryReportingPhysSwap.png index d078250cd9..aef18a45d7 100644 Binary files a/static/images/SCALE/23.10/MemoryReportingPhysSwap.png and b/static/images/SCALE/23.10/MemoryReportingPhysSwap.png differ diff --git a/static/images/SCALE/23.10/NetworkReportingIntTraffic.png b/static/images/SCALE/23.10/NetworkReportingIntTraffic.png index 4ff30db071..456d83671a 100644 Binary files a/static/images/SCALE/23.10/NetworkReportingIntTraffic.png and b/static/images/SCALE/23.10/NetworkReportingIntTraffic.png differ diff --git a/static/images/SCALE/23.10/ReportingExportersScreen.png b/static/images/SCALE/23.10/ReportingExportersScreen.png new file mode 100644 index 0000000000..1d25af2280 Binary files /dev/null and b/static/images/SCALE/23.10/ReportingExportersScreen.png differ diff --git a/static/images/SCALE/23.10/SCALEInstallDriveScreen.png b/static/images/SCALE/23.10/SCALEInstallDriveScreen.png new file mode 100644 index 0000000000..a92e18691d Binary files /dev/null and b/static/images/SCALE/23.10/SCALEInstallDriveScreen.png differ diff --git a/static/images/SCALE/23.10/SCALEInstallMainScreen.png b/static/images/SCALE/23.10/SCALEInstallMainScreen.png new file mode 100644 index 0000000000..6cec7b712b Binary files /dev/null and b/static/images/SCALE/23.10/SCALEInstallMainScreen.png differ diff --git a/static/images/SCALE/23.10/SCALEInstallPartitionScreen.png b/static/images/SCALE/23.10/SCALEInstallPartitionScreen.png new file mode 100644 index 0000000000..98392311c3 Binary files /dev/null and b/static/images/SCALE/23.10/SCALEInstallPartitionScreen.png differ diff --git a/static/images/SCALE/23.10/SCALEInstallWarningScreen.png b/static/images/SCALE/23.10/SCALEInstallWarningScreen.png new file mode 100644 index 0000000000..5d02b11796 Binary files /dev/null and b/static/images/SCALE/23.10/SCALEInstallWarningScreen.png differ diff --git a/static/images/SCALE/23.10/SCALEInstallerConsoleSetupAdminAccount.png b/static/images/SCALE/23.10/SCALEInstallerConsoleSetupAdminAccount.png new file mode 100644 index 0000000000..b79b9aa376 Binary files /dev/null and b/static/images/SCALE/23.10/SCALEInstallerConsoleSetupAdminAccount.png differ diff --git a/static/images/SCALE/23.10/SCALEInstallerConsoleSetupAdminPassword.png b/static/images/SCALE/23.10/SCALEInstallerConsoleSetupAdminPassword.png new file mode 100644 index 0000000000..8a0a239dc9 Binary files /dev/null and b/static/images/SCALE/23.10/SCALEInstallerConsoleSetupAdminPassword.png differ diff --git a/static/images/SCALE/23.10/SystemReportingProcessUptime.png b/static/images/SCALE/23.10/SystemReportingProcessUptime.png index 653927e943..7f2c7ff8d6 100644 Binary files a/static/images/SCALE/23.10/SystemReportingProcessUptime.png and b/static/images/SCALE/23.10/SystemReportingProcessUptime.png differ diff --git a/static/images/SCALE/23.10/TimeoutDialog.png b/static/images/SCALE/23.10/TimeoutDialog.png index 92defcac61..4df4dc6699 100644 Binary files a/static/images/SCALE/23.10/TimeoutDialog.png and b/static/images/SCALE/23.10/TimeoutDialog.png differ diff --git a/static/images/SCALE/23.10/ZFSReportingActualHitsHitsRate.png b/static/images/SCALE/23.10/ZFSReportingActualHitsHitsRate.png index 90ea0d2c29..ae589fc7c7 100644 Binary files a/static/images/SCALE/23.10/ZFSReportingActualHitsHitsRate.png and b/static/images/SCALE/23.10/ZFSReportingActualHitsHitsRate.png differ diff --git a/words-to-ignore.txt b/words-to-ignore.txt index c473d5e82b..417718cc21 100644 --- a/words-to-ignore.txt +++ b/words-to-ignore.txt @@ -1599,9 +1599,29 @@ SyncthingWebPortalAdvancedConfig mydata MyData AddAppCertificate +UpgradeClearCache +ConfigReportsSCALE +ConfigReportsScale +CPUReportingUsageTemp +ReportingExportersScreen +AddReportingExporter +AddReportingExporterGraphite +ReportingScreensSCALE +CPUReportingUsageTemp +CPUReportingSystemLoad +DiskReportingIO +DiskReportingTemperature +MemoryReportingPhysSwap +NetworkReportingIntTraffic +SystemReportingProcessUptime +ZFSReportingActualHitsHitsRate +ZFSReportingARCSizeResult +ReportingExportersScreen +integrations +dragonfish SCALEReleaseNotes StorageDashboardUpgradPoolConfirmation repsnaps CLICommandToRemoveMigrateJsonFiles ManageBootEnvironSCALE -RemoteReplicationSCALE \ No newline at end of file +RemoteReplicationSCALE