Skip to content

Commit

Permalink
DOCS-3186: Remove subsystem term from agent docs
Browse files Browse the repository at this point in the history
  • Loading branch information
npentrel committed Dec 2, 2024
1 parent 49b57ef commit be972c9
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 17 deletions.
26 changes: 12 additions & 14 deletions docs/configure/agent.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,14 +13,14 @@ date: "2024-08-16"
The [`viam-agent`](https://github.com/viamrobotics/agent) is a self-updating service manager that maintains the lifecycle for itself and the following system services:

- `viam-server`: the core of the machine
- [`agent-provisioning`](#agent-provisioning): device provisioning subsystem that can set up machine configs and manage WiFi networks. For more information see [Provisioning](/fleet/provision/).
- [`agent-provisioning`](#agent-provisioning): device provisioning which can set up machine configs and manage WiFi networks. For more information see [Provisioning](/fleet/provision/).
- [`agent-syscfg`](#agent-syscfg): provides various operating system and system configuration tweaks

Among other things, `viam-agent`:

- Installs, runs, and monitors `viam-server`
You can also use a custom build of `viam-server`, if needed.
- Provides automatic updates for `viam-server`, the agent itself, and any configured subsystems (such as the `agent-provisioning` subsystem).
- Provides automatic updates for `viam-server` and the agent itself.
- Allows control of deployed software versions through the Viam app.

{{< alert title="Support notice" color="note" >}}
Expand Down Expand Up @@ -174,15 +174,13 @@ Edit and fill in the attributes as applicable.
{{% /tab %}}
{{< /tabs >}}

Each section primarily controls updates for that subsystem:

### `viam-agent`

<!-- prettier-ignore -->
| Option | Type | Required? | Description |
| ------ | ---- | --------- | ----------- |
| `release_channel` | string | Optional | `viam-agent` is semantically versioned and is tested before release. Releases happen infrequently. When set to `"stable"`, `viam-agent` will automatically upgrade when a new version is released. Options: `"stable"` (default). |
| `pin_version` | string | Optional | Lock the subsystem to a specific version (as provided by the release channel). If set, no automatic upgrades will be performed until the setting is updated to a new version (or removed to revert to the release channel). If both `pin_url` and `pin_version` is set, `pin_url` will be used. Default: `""`. |
| `pin_version` | string | Optional | Use a specific version for `viam-agent` (as provided by the release channel). If set, no automatic upgrades will be performed until the setting is updated to a new version (or removed to revert to the release channel). If both `pin_url` and `pin_version` is set, `pin_url` will be used. Default: `""`. |
| `pin_url` | string | Optional | Ignore normal version selection and directly download from the specified URL. If set, no automatic upgrades will be performed until the setting is updated to a new URL (or removed to revert to the release channel). Typically this is only used for testing/troubleshooting. If both `pin_url` and `pin_version` is set, `pin_url` will be used. Default: `""`. |

### `viam-server`
Expand All @@ -191,9 +189,9 @@ Each section primarily controls updates for that subsystem:
| Option | Type | Required? | Description |
| ------ | ---- | --------- | ----------- |
| `release_channel` | string | Optional | `viam-agent` is semantically versioned and is tested before release. Releases happen infrequently. When set to `"stable"`, `viam-agent` will automatically upgrade when a new version is released. Options: `"stable"` (default), `"latest"`. |
| `pin_version` | string | Optional | "Lock" the subsystem to a specific version (as provided by the release channel). If set, no automatic upgrades will be performed until the setting is updated to a new version (or removed to revert to the release channel). If both `pin_url` and `pin_version` is set, `pin_url` will be used. Default: `""`. |
| `pin_version` | string | Optional | Use a specific version for `viam-server` (as provided by the release channel). If set, no automatic upgrades will be performed until the setting is updated to a new version (or removed to revert to the release channel). If both `pin_url` and `pin_version` is set, `pin_url` will be used. Default: `""`. |
| `pin_url` | string | Optional | Ignore normal version selection and directly download from the specified URL. If set, no automatic upgrades will be performed until the setting is updated to a new URL (or removed to revert to the release channel). Typically this is only used for testing/troubleshooting. If both `pin_url` and `pin_version` is set, `pin_url` will be used. Default: `""`. |
| `disable_subsystem` | boolean | Optional | When set to `true` it disables the `viam-server` subsystem. |
| `disable_subsystem` | boolean | Optional | When set to `true` it disables the management of `viam-server`. |
| `attributes` | object | Optional | <ul><li>`fast_start`: If set to `true`, `viam-agent` will not wait for a network connection nor check for updates before starting `viam-server`. See [Fast start mode](#fast-start-mode).</li></ul> |

#### Fast start mode
Expand All @@ -216,9 +214,9 @@ You can also start `viam-agent` in fast start mode by setting `VIAM_AGENT_FAST_S
| Option | Type | Required? | Description |
| ------ | ---- | --------- | ----------- |
| `release_channel` | string | Optional | `agent-provisioning` is semantically versioned and is tested before release. Releases happen infrequently. When set to `"stable"`, `viam-agent` will automatically upgrade when a new version is released. Options: `"stable"` (default), `"latest"`. |
| `pin_version` | string | Optional | Lock the subsystem to a specific version (as provided by the release channel). If set, no automatic upgrades will be performed until the setting is updated to a new version (or removed to revert to the release channel). If both `pin_url` and `pin_version` is set, `pin_url` will be used. Default: `""`. |
| `pin_version` | string | Optional | Use a specific version of `agent-provisioning` (as provided by the release channel). If set, no automatic upgrades will be performed until the setting is updated to a new version (or removed to revert to the release channel). If both `pin_url` and `pin_version` is set, `pin_url` will be used. Default: `""`. |
| `pin_url` | string | Optional | Ignore normal version selection and directly download from the specified URL. If set, no automatic upgrades will be performed until the setting is updated to a new URL (or removed to revert to the release channel). Typically this is only used for testing/troubleshooting. If both `pin_url` and `pin_version` is set, `pin_url` will be used. Default: `""`. |
| `disable_subsystem` | boolean | Optional | When set to `true` it disables the `agent-provisioning` subsystem. |
| `disable_subsystem` | boolean | Optional | When set to `true` it disables `agent-provisioning` management. |
| `attributes` | object | Optional | You can override all attributes from the [`viam-agent` configuration file](/fleet/provision/#configuration) here. The [`viam-agent` configuration file](/fleet/provision/#configuration) is generally customized by the manufacturer to provide "out of the box" settings. The attributes configured in the machine config in the Viam app can let you as the machine user override those if you wish. For security purposes, you should change the `hotspot_password`. You can also configure `roaming_mode` and add any additional networks you want to configure. <ul><li>`hotspot_password`: Overwrite the password set for the WiFi hotspot a machine creates during provisioning.</li><li>`networks`: Networks a machine can automatically connect to when roaming mode is enabled. See [Networks](#networks). </li><li>`roaming_mode`: If enabled, lets the machine connect to additional configured networks. See [Networks](#networks). </li><li>`wifi_power_save`: If set, will explicitly enable or disable power save for all WiFi connections managed by NetworkManager. </li></ul> |

#### Networks
Expand Down Expand Up @@ -275,15 +273,15 @@ The following configuration defines the connection information and credentials f

### `agent-syscfg`

`agent-syscfg` is a subsystem (plugin) for `viam-agent` that provides a number of system and operating system configuration helpers.
`agent-syscfg` is a plugin for `viam-agent` that provides a number of system and operating system configuration helpers.

<!-- prettier-ignore -->
| Option | Type | Required? | Description |
| ------ | ---- | --------- | ----------- |
| `release_channel` | string | Optional | `agent-syscfg` is semantically versioned and is tested before release. Releases happen infrequently. When set to `"stable"`, `viam-agent` will automatically upgrade when a new version is released. Options: `"stable"` (default), `"latest"`. |
| `pin_version` | string | Optional | "Lock" the subsystem to a specific version (as provided by the release channel). If set, no automatic upgrades will be performed until the setting is updated to a new version (or removed to revert to the release channel). If both `pin_url` and `pin_version` is set, `pin_url` will be used. Default: `""`. |
| `pin_version` | string | Optional | Use a specific version of `agent-syscfg` (as provided by the release channel). If set, no automatic upgrades will be performed until the setting is updated to a new version (or removed to revert to the release channel). If both `pin_url` and `pin_version` is set, `pin_url` will be used. Default: `""`. |
| `pin_url` | string | Optional | Ignore normal version selection and directly download from the specified URL. If set, no automatic upgrades will be performed until the setting is updated to a new URL (or removed to revert to the release channel). Typically this is only used for testing/troubleshooting. If both `pin_url` and `pin_version` is set, `pin_url` will be used. Default: `""`. |
| `disable_subsystem` | boolean | Optional | When set to `true` it disables the `agent-syscfg` subsystem. |
| `disable_subsystem` | boolean | Optional | When set to `true` it disables `agent-syscfg`. |
| `attributes` | object | Optional | <ul><li>`logging`: parameters for logging<ul><li>`system_max_use`: sets the maximum disk space `journald` will user for persistent log storage. Numeric values are in bytes, with optional single letter suffix for larger units, for example. K, M, or G. Default: `512M`.</li><li>`runtime_max_use`: sets the runtime/temporary limit. Numeric values are in bytes, with optional single letter suffix for larger units, for example. K, M, or G. Default: `512M`.</li><li>`disable`: If `false` (default), Viam enforces the given logging configurations. If `true`: Viam does NOT modify logging configuration, and the operating system defaults are used.</li></ul></li><li>`upgrades`: using `upgrades` installs the `unattended-upgrades` package, and replace `20auto-upgrades` and `50unattended-upgrades` in <FILE>/etc/apt/apt.conf.d/</FILE>, with the latter's Origins-Pattern list being generated automatically from configured repositories on the system, so custom repos (at the time the setting is enabled) will be included.<ul><li>`type`: Configured unattended upgrades for Debian bullseye and bookworm. Options: `""` (no effect), `"disable"` (disables automatic upgrades), `"security"` (only enables updates from sources with "security" in their codename, ex: `bookworm-security`), `"all"` (enable updates from all configured sources).</li></ul></li></ul> |

The following configuration allows all upgrades from configured sources and sets the maximum disk space `journald` will user for persistent log storage to 128MB and the runtime limit to 96MB:
Expand All @@ -306,7 +304,7 @@ The following configuration allows all upgrades from configured sources and sets

## Version management for `viam-agent` and `viam-server`

By default, `viam-agent` automatically updates both itself, its subsystems, and `viam-server` as new updates are released.
By default, `viam-agent` automatically updates both itself and `viam-server` as new updates are released.
You can configure update behavior using the [Viam app](https://app.viam.com/).
To ensure that updates only occur when your machines are ready, configure a [maintenance window](/architecture/viam-server/#maintenance-window).

Expand Down Expand Up @@ -337,7 +335,7 @@ You can find these messages on the [**LOGS** tab](/cloud/machines/#logs) of your
`viam-agent` only sends messages when your machine is online and connected to the internet.
If your machine is offline, log messages are queued and are sent to the Viam app once your machine reconnects to the internet.

These log messages include when `viam-server` is stopped and started, the status of agent subsystems, and any errors or warnings encountered during operation.
These log messages include when `viam-server` is stopped and started, the status of `viam-agent`, and any errors or warnings encountered during operation.

## Next Steps

Expand Down
4 changes: 2 additions & 2 deletions docs/fleet/provision.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,15 +18,15 @@ date: "2024-08-16"
You can use Viam's software provisioning manager (`agent-provisioning`), to provision a machine as it first comes online with a pre-defined configuration.
This is useful when deploying a fleet of machines directly from the factory to a customer, or when bundling proprietary software on your Viam machine.

The provisioning subsystem is a feature of [`viam-agent`](/configure/agent/), which you can install as part of your manufacturing process.
Provisioning is a feature of [`viam-agent`](/configure/agent/), which you can install as part of your manufacturing process.
`agent-provisioning` will then perform the rest of the first-time setup for your machine once an [end user sets up the machine](#end-user-experience).

Consider a company that sells machines that monitor weather conditions on a maritime craft and provide navigation advice based on those readings.
Such a machine might use Viam to regularly capture and upload a stream of sensor readings, for example.
To parse the readings and provide tailored guidance to a ship's captain, the company writes their own proprietary application which includes live analytics and speech generation for conveying advice to the captain.

Using `agent-provisioning`, this company can ship their machines directly to customers with `viam-agent` installed.
When a customer sets up their machine, the provisioning subsystem installs `viam-server`.
When a customer sets up their machine, `viam-agent` installs `viam-server`.
By having the end customer set up the machine, the company:

- eliminates per-device setup and individualization at the factory
Expand Down
2 changes: 1 addition & 1 deletion docs/how-tos/provision-setup.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ date: "2024-08-21"
cost: "0"
---

The provisioning subsystem is a feature of `viam-agent`, which you can install as part of your manufacturing process. `agent-provisioning` will then perform the rest of the first-time setup for your machine once an end user sets up the machine.
Provisioning is a feature of `viam-agent`, which you can install as part of your manufacturing process. `agent-provisioning` will then perform the rest of the first-time setup for your machine once an end user sets up the machine.

This is useful when deploying a fleet of machines directly from the factory to a customer, or when bundling proprietary software on your Viam machine.

Expand Down

0 comments on commit be972c9

Please sign in to comment.